This commit was manufactured by cvs2svn to create branch
'R3_3_1_maintenance'.
Sprout from master 2007-06-12 13:44:42 UTC Kim Moir <kmoir> 'update copyright'
Cherrypick from R3_3_maintenance 2007-09-11 14:19:22 UTC Kim Moir <kmoir> 'Bug 202925 update 3.3.1 release notes':
features/org.eclipse.rcp/feature.xml
features/org.eclipse.sdk/feature.xml
oldfeatures/org.eclipse.platform-feature/feature.xml
oldfeatures/org.eclipse.platform-feature/rootfiles/readme/readme_eclipse.html
Delete:
bundles/org.eclipse.ant.optional.junit/.project
bundles/org.eclipse.ant.optional.junit/META-INF/MANIFEST.MF
bundles/org.eclipse.ant.optional.junit/about.html
bundles/org.eclipse.ant.optional.junit/build.properties
bundles/org.eclipse.cvs/.project
bundles/org.eclipse.cvs/META-INF/MANIFEST.MF
bundles/org.eclipse.cvs/about.html
bundles/org.eclipse.cvs/about.ini
bundles/org.eclipse.cvs/about.mappings
bundles/org.eclipse.cvs/about.properties
bundles/org.eclipse.cvs/build.properties
bundles/org.eclipse.cvs/eclipse32.gif
bundles/org.eclipse.cvs/eclipse32.png
bundles/org.eclipse.cvs/notice.html
bundles/org.eclipse.cvs/plugin.properties
bundles/org.eclipse.pde.tools.versioning/.classpath
bundles/org.eclipse.pde.tools.versioning/.cvsignore
bundles/org.eclipse.pde.tools.versioning/.options
bundles/org.eclipse.pde.tools.versioning/.project
bundles/org.eclipse.pde.tools.versioning/.settings/org.eclipse.jdt.core.prefs
bundles/org.eclipse.pde.tools.versioning/META-INF/MANIFEST.MF
bundles/org.eclipse.pde.tools.versioning/about.html
bundles/org.eclipse.pde.tools.versioning/build.properties
bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual.htm
bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual_files/image001.jpg
bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual_files/image002.jpg
bundles/org.eclipse.pde.tools.versioning/plugin.properties
bundles/org.eclipse.pde.tools.versioning/plugin.xml
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/Activator.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CheckedItem.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/ClassFileHelper.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CompareOptionFileHelper.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CompareResult.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/FeatureModelTable.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/FeatureVersionCompare.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/JavaClassVersionCompare.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/ManifestHelper.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/Messages.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/PluginVersionCompare.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionClassDirFilter.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionCompareConstants.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionCompareDispatcher.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionVerifier.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningDirFilter.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningFeatureFileFilter.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningFilenameFilter.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningProgressMonitorWrapper.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/messages.properties
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/ICompareResult.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/IVersionCompare.java
bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/VersionCompareFactory.java
bundles/org.eclipse.releng.tests/.classpath
bundles/org.eclipse.releng.tests/.cvsignore
bundles/org.eclipse.releng.tests/.project
bundles/org.eclipse.releng.tests/META-INF/MANIFEST.MF
bundles/org.eclipse.releng.tests/about.html
bundles/org.eclipse.releng.tests/build.properties
bundles/org.eclipse.releng.tests/compare.properties
bundles/org.eclipse.releng.tests/ignoreErrorsUnix.txt
bundles/org.eclipse.releng.tests/ignoreErrorsWindows.txt
bundles/org.eclipse.releng.tests/ignoreFiles.txt
bundles/org.eclipse.releng.tests/notes.txt
bundles/org.eclipse.releng.tests/plugin.xml
bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/BuildTests.java
bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/FileTool.java
bundles/org.eclipse.releng.tests/test.xml
bundles/org.eclipse.releng.tools/.classpath
bundles/org.eclipse.releng.tools/.cvsignore
bundles/org.eclipse.releng.tools/.project
bundles/org.eclipse.releng.tools/.settings/org.eclipse.jdt.core.prefs
bundles/org.eclipse.releng.tools/.settings/org.eclipse.jdt.ui.prefs
bundles/org.eclipse.releng.tools/META-INF/MANIFEST.MF
bundles/org.eclipse.releng.tools/TestCases.doc
bundles/org.eclipse.releng.tools/about.html
bundles/org.eclipse.releng.tools/book.css
bundles/org.eclipse.releng.tools/build.properties
bundles/org.eclipse.releng.tools/html/00001.html
bundles/org.eclipse.releng.tools/html/00002.html
bundles/org.eclipse.releng.tools/html/00003.html
bundles/org.eclipse.releng.tools/html/00004.html
bundles/org.eclipse.releng.tools/html/00005.html
bundles/org.eclipse.releng.tools/html/00006.html
bundles/org.eclipse.releng.tools/html/00007.html
bundles/org.eclipse.releng.tools/html/00008.html
bundles/org.eclipse.releng.tools/html/00009.html
bundles/org.eclipse.releng.tools/html/00010.html
bundles/org.eclipse.releng.tools/html/00011.html
bundles/org.eclipse.releng.tools/html/00012.html
bundles/org.eclipse.releng.tools/html/00013.html
bundles/org.eclipse.releng.tools/html/00014.html
bundles/org.eclipse.releng.tools/html/00015.html
bundles/org.eclipse.releng.tools/html/00016.html
bundles/org.eclipse.releng.tools/html/00017.html
bundles/org.eclipse.releng.tools/html/00018.html
bundles/org.eclipse.releng.tools/html/00019.html
bundles/org.eclipse.releng.tools/html/00020.html
bundles/org.eclipse.releng.tools/html/00021.html
bundles/org.eclipse.releng.tools/html/00022.html
bundles/org.eclipse.releng.tools/html/00023.html
bundles/org.eclipse.releng.tools/html/00024.html
bundles/org.eclipse.releng.tools/html/00025.html
bundles/org.eclipse.releng.tools/html/00026.html
bundles/org.eclipse.releng.tools/html/00027.html
bundles/org.eclipse.releng.tools/html/00028.html
bundles/org.eclipse.releng.tools/html/00029.html
bundles/org.eclipse.releng.tools/html/00030.html
bundles/org.eclipse.releng.tools/html/00031.html
bundles/org.eclipse.releng.tools/html/00032.html
bundles/org.eclipse.releng.tools/html/00033.html
bundles/org.eclipse.releng.tools/html/00034.html
bundles/org.eclipse.releng.tools/html/00035.html
bundles/org.eclipse.releng.tools/html/00036.html
bundles/org.eclipse.releng.tools/html/00037.html
bundles/org.eclipse.releng.tools/html/00038.html
bundles/org.eclipse.releng.tools/html/00039.html
bundles/org.eclipse.releng.tools/html/00040.html
bundles/org.eclipse.releng.tools/html/00041.html
bundles/org.eclipse.releng.tools/html/00042.html
bundles/org.eclipse.releng.tools/html/00043.html
bundles/org.eclipse.releng.tools/html/00044.html
bundles/org.eclipse.releng.tools/html/00045.html
bundles/org.eclipse.releng.tools/html/00046.html
bundles/org.eclipse.releng.tools/html/00047.html
bundles/org.eclipse.releng.tools/html/00048.html
bundles/org.eclipse.releng.tools/html/00049.html
bundles/org.eclipse.releng.tools/html/00050.html
bundles/org.eclipse.releng.tools/html/00051.html
bundles/org.eclipse.releng.tools/html/00052.html
bundles/org.eclipse.releng.tools/html/00053.html
bundles/org.eclipse.releng.tools/html/00054.html
bundles/org.eclipse.releng.tools/html/00055.html
bundles/org.eclipse.releng.tools/html/00056.html
bundles/org.eclipse.releng.tools/html/00057.html
bundles/org.eclipse.releng.tools/html/00058.html
bundles/org.eclipse.releng.tools/html/00059.html
bundles/org.eclipse.releng.tools/html/00060.html
bundles/org.eclipse.releng.tools/html/00061.html
bundles/org.eclipse.releng.tools/html/00062.html
bundles/org.eclipse.releng.tools/html/00063.html
bundles/org.eclipse.releng.tools/html/00064.html
bundles/org.eclipse.releng.tools/html/00065.html
bundles/org.eclipse.releng.tools/html/00066.html
bundles/org.eclipse.releng.tools/html/00067.html
bundles/org.eclipse.releng.tools/html/00068.html
bundles/org.eclipse.releng.tools/html/00069.html
bundles/org.eclipse.releng.tools/html/00070.html
bundles/org.eclipse.releng.tools/html/00071.html
bundles/org.eclipse.releng.tools/html/00072.html
bundles/org.eclipse.releng.tools/html/00073.html
bundles/org.eclipse.releng.tools/icons/full/clcl16/release_action.gif
bundles/org.eclipse.releng.tools/plugin.properties
bundles/org.eclipse.releng.tools/plugin.xml
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/AdvancedCopyrightComment.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/AdvancedFixCopyrightAction.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BatFile.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BlockComment.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BuildNotesPage.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CFile.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CommitCommentPage.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CompareLocalToMap.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/FixCopyrightAction.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/GetBugsOperation.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/IBMCopyrightComment.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/JavaFile.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/LoadMap.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapContentDocument.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapEntry.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFile.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFileCompareEditorInput.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFileComparePage.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapProject.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapProjectSelectionPage.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/Messages.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/OrderedMap.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectComparePage.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectSelectionPage.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectValidationDialog.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/PropertiesFile.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/RelEngPlugin.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ReleaseWizard.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ReplaceLocalFromMap.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/RepositorySelectionDialog.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ShellMakeFile.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/SourceFile.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagAndReleaseAction.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagAndReleaseOperation.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagMap.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagPage.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/messages.properties
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/CopyrightPreferencePage.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/RelEngCopyrightConstants.java
bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/RelEngPreferenceInitializer.java
bundles/org.eclipse.releng.tools/toc.xml
bundles/org.eclipse.sdk.examples/.project
bundles/org.eclipse.sdk.examples/about.html
bundles/org.eclipse.sdk.examples/about.ini
bundles/org.eclipse.sdk.examples/about.mappings
bundles/org.eclipse.sdk.examples/about.properties
bundles/org.eclipse.sdk.examples/build.properties
bundles/org.eclipse.sdk.examples/eclipse32.gif
bundles/org.eclipse.sdk.examples/eclipse32.png
bundles/org.eclipse.sdk.examples/notice.html
bundles/org.eclipse.sdk.examples/plugin.properties
bundles/org.eclipse.sdk.examples/plugin.xml
bundles/org.eclipse.sdk.tests/.project
bundles/org.eclipse.sdk.tests/about.html
bundles/org.eclipse.sdk.tests/about.ini
bundles/org.eclipse.sdk.tests/about.mappings
bundles/org.eclipse.sdk.tests/about.properties
bundles/org.eclipse.sdk.tests/build.properties
bundles/org.eclipse.sdk.tests/eclipse32.gif
bundles/org.eclipse.sdk.tests/epl-v10.html
bundles/org.eclipse.sdk.tests/notice.html
bundles/org.eclipse.sdk.tests/plugin.properties
bundles/org.eclipse.sdk.tests/plugin.xml
bundles/org.eclipse.test.performance.data/.classpath
bundles/org.eclipse.test.performance.data/.cvsignore
bundles/org.eclipse.test.performance.data/.project
bundles/org.eclipse.test.performance.data/META-INF/MANIFEST.MF
bundles/org.eclipse.test.performance.data/build.properties
bundles/org.eclipse.test.performance.data/src/org/eclipse/test/performance/data/DataPlugin.java
bundles/org.eclipse.test.performance.win32/.project
bundles/org.eclipse.test.performance.win32/META-INF/MANIFEST.MF
bundles/org.eclipse.test.performance.win32/about.html
bundles/org.eclipse.test.performance.win32/build.properties
bundles/org.eclipse.test.performance.win32/os/win32/x86/ivjperf.dll
bundles/org.eclipse.test.performance.win32/plugin.properties
bundles/org.eclipse.test.performance.win32/src/build.bat
bundles/org.eclipse.test.performance.win32/src/ivjperf.c
bundles/org.eclipse.test.performance.win32/src/ivjperf.h
bundles/org.eclipse.test.performance.win32/src/resource.h
bundles/org.eclipse.test.performance/.classpath
bundles/org.eclipse.test.performance/.cvsignore
bundles/org.eclipse.test.performance/.project
bundles/org.eclipse.test.performance/.settings/org.eclipse.jdt.core.prefs
bundles/org.eclipse.test.performance/.settings/org.eclipse.jdt.ui.prefs
bundles/org.eclipse.test.performance/META-INF/MANIFEST.MF
bundles/org.eclipse.test.performance/about.html
bundles/org.eclipse.test.performance/build.properties
bundles/org.eclipse.test.performance/doc/FP_I200409240800_I200410050800.jpeg
bundles/org.eclipse.test.performance/doc/Performance Tests HowTo.html
bundles/org.eclipse.test.performance/plugin.properties
bundles/org.eclipse.test.performance/scripts/cs.sh
bundles/org.eclipse.test.performance/scripts/derby.sh
bundles/org.eclipse.test.performance/src/org/eclipse/perfmsr/core/PerformanceMonitor.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/InternalDimensions.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/InternalPerformanceMeter.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/NullPerformanceMeter.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/OSPerformanceMeter.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/OSPerformanceMeterFactory.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMeterFactory.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitor.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorLinux.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorMac.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorWindows.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceTestPlugin.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/SystemTimePerformanceMeter.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/SystemTimePerformanceMeterFactory.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Assert.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DataPoint.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Dim.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DimensionMessages.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DimensionMessages.properties
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Sample.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Scalar.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Unit.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/DB.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/DBHelpers.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Report.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/SQL.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Scenario.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/SummaryEntry.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/TimeSeries.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Variations.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/View.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/AbsoluteBandChecker.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/AssertChecker.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/EmptyEvaluator.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/Evaluator.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/IEvaluator.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/RelativeBandChecker.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/StatisticsSession.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/StatisticsUtil.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/AllTests.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/DBTests.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/PerformanceMeterFactoryTest.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/SimplePerformanceMeterTest.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/TestPerformanceMeter.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/VariationsTests.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/Dimension.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/Performance.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/PerformanceMeter.java
bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/PerformanceTestCase.java
bundles/org.eclipse.test/.classpath
bundles/org.eclipse.test/.cvsignore
bundles/org.eclipse.test/.project
bundles/org.eclipse.test/JUNIT.XSL
bundles/org.eclipse.test/META-INF/MANIFEST.MF
bundles/org.eclipse.test/about.html
bundles/org.eclipse.test/build.properties
bundles/org.eclipse.test/library.xml
bundles/org.eclipse.test/plugin.properties
bundles/org.eclipse.test/plugin.xml
bundles/org.eclipse.test/src/org/eclipse/test/CoreTestApplication.java
bundles/org.eclipse.test/src/org/eclipse/test/EclipseTestRunner.java
bundles/org.eclipse.test/src/org/eclipse/test/RegressionTest.java
bundles/org.eclipse.test/src/org/eclipse/test/UITestApplication.java
bundles/org.eclipse.test/testframework.html
features/com.ibm.icu.base/build.properties
features/com.ibm.icu.base/feature.xml
features/master-equinox/build.properties
features/master-equinox/feature.xml
features/master-root/.project
features/master-root/build.properties
features/master-root/feature.xml
features/master-root/rootfiles/epl-v10.html
features/master-root/rootfiles/notice.html
features/master/.project
features/master/build.properties
features/master/feature.xml
features/org.eclipse.equinox.sdk/.project
features/org.eclipse.equinox.sdk/build.properties
features/org.eclipse.equinox.sdk/feature.xml
features/org.eclipse.equinox/.project
features/org.eclipse.equinox/build.properties
features/org.eclipse.equinox/epl-v10.html
features/org.eclipse.equinox/feature.properties
features/org.eclipse.equinox/feature.xml
features/org.eclipse.equinox/license.html
features/org.eclipse.equinox/sourceTemplateFeature/build.properties
features/org.eclipse.equinox/sourceTemplateFeature/eclipse_update_120.jpg
features/org.eclipse.equinox/sourceTemplateFeature/epl-v10.html
features/org.eclipse.equinox/sourceTemplateFeature/feature.properties
features/org.eclipse.equinox/sourceTemplateFeature/license.html
features/org.eclipse.equinox/sourceTemplatePlugin/about.html
features/org.eclipse.equinox/sourceTemplatePlugin/about.ini
features/org.eclipse.equinox/sourceTemplatePlugin/about.mappings
features/org.eclipse.equinox/sourceTemplatePlugin/about.properties
features/org.eclipse.equinox/sourceTemplatePlugin/build.properties
features/org.eclipse.equinox/sourceTemplatePlugin/eclipse32.gif
features/org.eclipse.equinox/sourceTemplatePlugin/eclipse32.png
features/org.eclipse.equinox/sourceTemplatePlugin/plugin.properties
features/org.eclipse.releng.tools/.project
features/org.eclipse.releng.tools/build.properties
features/org.eclipse.releng.tools/eclipse_update_120.jpg
features/org.eclipse.releng.tools/epl-v10.html
features/org.eclipse.releng.tools/feature.properties
features/org.eclipse.releng.tools/feature.xml
features/org.eclipse.releng.tools/license.html
features/org.eclipse.sdk.examples-feature/.project
features/org.eclipse.sdk.examples-feature/build.properties
features/org.eclipse.sdk.examples-feature/eclipse_update_120.jpg
features/org.eclipse.sdk.examples-feature/epl-v10.html
features/org.eclipse.sdk.examples-feature/feature.properties
features/org.eclipse.sdk.examples-feature/feature.xml
features/org.eclipse.sdk.examples-feature/license.html
features/org.eclipse.sdk.examples-feature/rootfiles/.eclipseextension
features/org.eclipse.sdk.examples-feature/rootfiles/epl-v10.html
features/org.eclipse.sdk.examples-feature/rootfiles/notice.html
features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.html
features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.ini
features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.mappings
features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.properties
features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/build.properties
features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/eclipse32.gif
features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/plugin.properties
features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/about.html
features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/build.properties
features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/eclipse32.gif
features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/plugin.properties
features/org.eclipse.sdk.tests/.project
features/org.eclipse.sdk.tests/build.properties
features/org.eclipse.sdk.tests/eclipse_update_120.jpg
features/org.eclipse.sdk.tests/epl-v10.html
features/org.eclipse.sdk.tests/feature.properties
features/org.eclipse.sdk.tests/feature.xml
features/org.eclipse.sdk.tests/license.html
features/org.eclipse.sdk.tests/rootfiles/epl-v10.html
features/org.eclipse.sdk.tests/rootfiles/notice.html
features/org.eclipse.test-feature/.project
features/org.eclipse.test-feature/build.properties
features/org.eclipse.test-feature/eclipse_update_120.jpg
features/org.eclipse.test-feature/epl-v10.html
features/org.eclipse.test-feature/feature.properties
features/org.eclipse.test-feature/feature.xml
features/org.eclipse.test-feature/license.html
features/org.eclipse.test-feature/rootfiles/epl-v10.html
features/org.eclipse.test-feature/rootfiles/notice.htmldiff --git a/bundles/org.eclipse.ant.optional.junit/.project b/bundles/org.eclipse.ant.optional.junit/.project
deleted file mode 100644
index 01c4c81..0000000
--- a/bundles/org.eclipse.ant.optional.junit/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ant.optional.junit</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- </buildSpec>
- <natures>
- </natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ant.optional.junit/META-INF/MANIFEST.MF b/bundles/org.eclipse.ant.optional.junit/META-INF/MANIFEST.MF
deleted file mode 100644
index 43f1150..0000000
--- a/bundles/org.eclipse.ant.optional.junit/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,9 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Junit Fragment
-Bundle-SymbolicName: org.eclipse.ant.optional.junit
-Bundle-Version: 3.2.100
-Fragment-Host: org.apache.ant;bundle-version="[1.6.5,2.0.0)"
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime.compatibility,
- org.junit
diff --git a/bundles/org.eclipse.ant.optional.junit/about.html b/bundles/org.eclipse.ant.optional.junit/about.html
deleted file mode 100644
index 5d03fd4..0000000
--- a/bundles/org.eclipse.ant.optional.junit/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>May 2, 2006</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
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ant.optional.junit/build.properties b/bundles/org.eclipse.ant.optional.junit/build.properties
deleted file mode 100644
index ddcdb5e..0000000
--- a/bundles/org.eclipse.ant.optional.junit/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = about.html,\
- META-INF/
diff --git a/bundles/org.eclipse.cvs/.project b/bundles/org.eclipse.cvs/.project
deleted file mode 100644
index d28ce1d..0000000
--- a/bundles/org.eclipse.cvs/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.cvs</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <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>
- </natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.cvs/META-INF/MANIFEST.MF b/bundles/org.eclipse.cvs/META-INF/MANIFEST.MF
deleted file mode 100644
index 2190b94..0000000
--- a/bundles/org.eclipse.cvs/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,8 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.cvs; singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.cvs/about.html b/bundles/org.eclipse.cvs/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.cvs/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.cvs/about.ini b/bundles/org.eclipse.cvs/about.ini
deleted file mode 100644
index 76a0356..0000000
--- a/bundles/org.eclipse.cvs/about.ini
+++ /dev/null
@@ -1,27 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page
-# optional
diff --git a/bundles/org.eclipse.cvs/about.mappings b/bundles/org.eclipse.cvs/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/bundles/org.eclipse.cvs/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/bundles/org.eclipse.cvs/about.properties b/bundles/org.eclipse.cvs/about.properties
deleted file mode 100644
index fcfff6b..0000000
--- a/bundles/org.eclipse.cvs/about.properties
+++ /dev/null
@@ -1,24 +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
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Eclipse CVS Client\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2000, 2007. All rights reserved.\n\
-Visit http://www.eclipse.org/eclipse/platform-cvs
-
diff --git a/bundles/org.eclipse.cvs/build.properties b/bundles/org.eclipse.cvs/build.properties
deleted file mode 100644
index d504b5a..0000000
--- a/bundles/org.eclipse.cvs/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = about.html,\
- about.ini,\
- about.mappings,\
- about.properties,\
- eclipse32.gif,\
- eclipse32.png,\
- plugin.properties,META-INF/
-
diff --git a/bundles/org.eclipse.cvs/eclipse32.gif b/bundles/org.eclipse.cvs/eclipse32.gif
deleted file mode 100644
index 811eccb..0000000
--- a/bundles/org.eclipse.cvs/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.cvs/eclipse32.png b/bundles/org.eclipse.cvs/eclipse32.png
deleted file mode 100644
index 568fac1..0000000
--- a/bundles/org.eclipse.cvs/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.cvs/notice.html b/bundles/org.eclipse.cvs/notice.html
deleted file mode 100644
index c6af966..0000000
--- a/bundles/org.eclipse.cvs/notice.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/bundles/org.eclipse.cvs/plugin.properties b/bundles/org.eclipse.cvs/plugin.properties
deleted file mode 100644
index da475c0..0000000
--- a/bundles/org.eclipse.cvs/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=Eclipse CVS Client
-providerName=Eclipse.org
diff --git a/bundles/org.eclipse.pde.tools.versioning/.classpath b/bundles/org.eclipse.pde.tools.versioning/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/.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.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.pde.tools.versioning/.cvsignore b/bundles/org.eclipse.pde.tools.versioning/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.pde.tools.versioning/.options b/bundles/org.eclipse.pde.tools.versioning/.options
deleted file mode 100644
index 6b8208b..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/.options
+++ /dev/null
@@ -1,5 +0,0 @@
-# Debugging options for the org.eclipse.pde.tools.versioning plug-in.
-org.eclipse.pde.tools.versioning/debug/features=false
-org.eclipse.pde.tools.versioning/debug/plugins=false
-org.eclipse.pde.tools.versioning/debug/manifests=false
-org.eclipse.pde.tools.versioning/debug/classfiles=false
diff --git a/bundles/org.eclipse.pde.tools.versioning/.project b/bundles/org.eclipse.pde.tools.versioning/.project
deleted file mode 100644
index 84436cb..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.pde.tools.versioning</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/bundles/org.eclipse.pde.tools.versioning/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.pde.tools.versioning/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index fa9dbf5..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,52 +0,0 @@
-#Tue Oct 10 11:46:37 EDT 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/bundles/org.eclipse.pde.tools.versioning/META-INF/MANIFEST.MF b/bundles/org.eclipse.pde.tools.versioning/META-INF/MANIFEST.MF
deleted file mode 100644
index ac2ccf5..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.pde.tools.versioning;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Localization: plugin
-Eclipse-LazyStart: true
-Import-Package: org.eclipse.jdt.core,
- org.eclipse.jdt.core.dom,
- org.eclipse.jdt.core.util,
- org.eclipse.update.configurator,
- org.eclipse.update.core,
- org.eclipse.update.core.model
-Export-Package: org.eclipse.pde.tools.internal.versioning,
- org.eclipse.pde.tools.versioning
-Bundle-Vendor: Eclipse.org
-Require-Bundle: org.eclipse.core.runtime
-Bundle-Activator: org.eclipse.pde.tools.internal.versioning.Activator
diff --git a/bundles/org.eclipse.pde.tools.versioning/about.html b/bundles/org.eclipse.pde.tools.versioning/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.tools.versioning/build.properties b/bundles/org.eclipse.pde.tools.versioning/build.properties
deleted file mode 100644
index eb8494f..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
- ###############################################################################
- # Copyright (c) 2006 IBM Corporation and others.
- # All rights reserved. This program and the accompanying materials
- # are made available under the terms of the Eclipse Public License v1.0
- # which accompanies this distribution, and is available at
- # http://www.eclipse.org/legal/epl-v10.html
- #
- # Contributors:
- # IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = .,\
- META-INF/,\
- plugin.xml,\
- doc/,\
- about.html,\
- plugin.properties,\
- .options
diff --git a/bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual.htm b/bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual.htm
deleted file mode 100644
index 3cab516..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual.htm
+++ /dev/null
@@ -1,155 +0,0 @@
-<html xmlns:v="urn:schemas-microsoft-com:vml"
-xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<link rel=File-List href="Version%20Compare%20Tool%20Manual_files/filelist.xml">
-<link rel=Edit-Time-Data
-href="Version%20Compare%20Tool%20Manual_files/editdata.mso">
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<p align=center style='text-align:center'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:14.0pt'>Version Compare Tool<o:p></o:p></span></b></p>
-
-<p>The version compare tool is developed to verify Eclipse
-feature versions and plug-in versions. The full name of this plug-in tool is “<span
-class=SpellE>org.eclipse.pde.tools.versioning</span>”. </p>
-
-<p></p>
-
-<p><b style='mso-bidi-font-weight:normal'><span
-style='font-size:14.0pt'>Feature Version, Plug-in Version, and Java Class<o:p></o:p></span></b></p>
-
-<p>Figure 1 shows the hierarchy of feature, plug-in and Java
-Class. From the hierarchy, it is easy to understand that updates on Java
-classes will cause plug-in update; plug-in, feature updates will cause feature
-updates. Therefore, if we want to verify if a feature is correct, we need to
-verify versions of its included features and plug-ins; to verify the version of
-a plug-in, we need to check updates on the Java classes it contains. </p>
-
-<p></p>
-
-<p>Anyone, who has some experience on Eclipse, must knows there
-are a bunch of features and plug-ins under an Eclipse installation. Thus, it is
-difficult to manually check whether the new versions of features and plug-ins
-have been updated correctly. This tool will help people to verify the new
-feature versions and plug-in versions.</p>
-
-<p>
- <IMG SRC="Version Compare Tool Manual_files/image001.jpg">
-</p>
-
-<p></p>
-
-<p><b style='mso-bidi-font-weight:normal'><span
-style='font-size:14.0pt'>How to use this tool?<o:p></o:p></span></b></p>
-
-<p>We provide two approaches to use this tool. </p>
-
-<li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list .5in'>It can
- be executed as an Eclipse plug-in which provides GUI to select input
- information (see: Figure 2).</li>
-
-<p></p>
-
-<p>
- <IMG SRC="Version Compare Tool Manual_files/image002.jpg">
-</p>
-
-<p style='margin-left:.25in'><o:p> </o:p></p>
-
-<p style='margin-left:.25in'>In the “Feature Select Option”
-area, you need to select if the features you are going to compare are under the
-“/features” directory under an Eclipse installation directory, or included in
-the Eclipse configuration file <span class=GramE>( usually</span> it is the
-“\configuration\<span class=SpellE>org.eclipse.updateplatform.xml</span>” file
-under an Eclipse installation directory)</p>
-
-<p style='margin-left:.25in'><o:p> </o:p></p>
-
-<p style='margin-left:.25in'>In the “<span class=SpellE>Plugin</span>
-Compare Option” area, you can choose if you want to compare plug-ins as
-objects. If you choose this option, all classes denoted by “Bundle-<span
-class=SpellE>ClassPath</span>” in a plug-in manifest file will be compared.</p>
-
-<p style='margin-left:.25in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.25in'>In the “Information Option” area,
-you can choose what kinds of messages you want to see in the compare result.</p>
-
-<p class=MsoNormal style='margin-left:.25in'><o:p> </o:p></p>
-
-<p style='margin-left:.25in'>In the file selection area, you
-can choose:</p>
-
-<p style='margin-left:.25in'><span style='mso-tab-count:1'> </span>“New”,
-directory or <span class=GramE>configuration file</span> which includes new
-version of features;</p>
-
-<p><span style='mso-tab-count:1'> </span>“Old”, directory
-or configuration file which includes old version of features;</p>
-
-<p><span style='mso-tab-count:1'> </span>“Option
-File”, a property file which contains inclusion and exclusion information;</p>
-
-<p><span style='mso-tab-count:1'> </span>“Output
-File”, a XML file to which the compare messages will be written;</p>
-
-<p><span style='mso-spacerun:yes'> </span></p>
-
-<p><span style='mso-spacerun:yes'> </span>In the button
-bar, </p>
-
-<p><span style='mso-spacerun:yes'> </span><span
-style='mso-tab-count:1'> </span>Button “Verify” is pressed to do compare;</p>
-
-<p style='margin-left:.5in'>Button “Filter Result” is pressed
-to show interested messages; this function is combined with the selections in
-“Information Option” area;</p>
-
-<p style='margin-left:.5in'>Button “Close” is pressed to
-terminate the application;</p>
-
-<p></p>
-
-<p></p>
-
-<p></p>
-
- <li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list .5in'>It can
- be executed in command line as an Eclipse application.</li>
-
-<p style='margin-left:.5in'>The usage is:</p>
-
-<p style='margin-left:.5in'><span class=GramE>java</span> -cp <span
-class=SpellE>startup.jar</span> <span class=SpellE>org.eclipse.core.launcher.Main</span>
--application <span class=SpellE>org.eclipse.pde.tools.versioning.VersionVerifier</span>
--new [path] -old [path] -option [path] -output [path] [-<span class=SpellE>pluginCompare</span>]
-[-<span class=SpellE>consoleOutput</span>]</p>
-
-<p></p>
-
-<p style='margin-left:.5in'>-new: path of new configuration
-file or features directory</p>
-
-<p style='margin-left:.5in'>-old: path of old configuration
-file or features directory</p>
-
-<p style='margin-left:.5in'>-option: path of compare option
-file (optional)</p>
-
-<p style='margin-left:.5in'>-output: path of result XML file</p>
-
-<p style='margin-left:.5in'>-<span class=SpellE>pluginCompare</span>:
-if need to compare <span class=SpellE>plugins</span> as objects (optional)</p>
-
-<p style='margin-left:.5in'>-<span class=SpellE>consoleOutput</span>:
-print results to the system console (optional)</p>
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual_files/image001.jpg b/bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual_files/image001.jpg
deleted file mode 100644
index df2c307..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual_files/image001.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual_files/image002.jpg b/bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual_files/image002.jpg
deleted file mode 100644
index 3980106..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/doc/Version Compare Tool Manual_files/image002.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.tools.versioning/plugin.properties b/bundles/org.eclipse.pde.tools.versioning/plugin.properties
deleted file mode 100644
index 244fdd5..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/plugin.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=Versioning Tools Plug-in
diff --git a/bundles/org.eclipse.pde.tools.versioning/plugin.xml b/bundles/org.eclipse.pde.tools.versioning/plugin.xml
deleted file mode 100644
index 6d22773..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/plugin.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
- <extension
- id="application"
- point="org.eclipse.core.runtime.applications">
- <application>
- <run class="org.eclipse.pde.tools.internal.versioning.VersionVerifier">
- </run>
- </application>
- </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/Activator.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/Activator.java
deleted file mode 100644
index 5983cca..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/Activator.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import org.eclipse.osgi.service.debug.DebugOptions;
-import org.eclipse.osgi.service.pluginconversion.PluginConverter;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * org.eclipse.pde.tools.versioning bundle activator
- *
- */
-public class Activator implements BundleActivator {
- public static final String PLUGIN_ID = "org.eclipse.pde.tools.versioning"; //$NON-NLS-1$
- private static PluginConverter pluginConverter = null;
- private static BundleContext context = null;
- private static ServiceTracker bundleTracker = null;
- private static ServiceTracker debugTracker = null;
-
- /**
- * Log the given debug message.
- */
- public static void debug(String message) {
- if (message != null)
- System.out.println(message);
- }
-
- /**
- * Return a boolean value indicating whether or not debug options are
- * turned on for the given key.
- */
- public static boolean getBooleanDebugOption(String key) {
- if (context == null)
- return false;
- if (debugTracker == null) {
- debugTracker = new ServiceTracker(context, DebugOptions.class.getName(), null);
- debugTracker.open();
- }
- DebugOptions debug = (DebugOptions) debugTracker.getService();
- return debug == null ? false : debug.getBooleanOption(key, false);
- }
-
- /*
- * Constructor for the class.
- */
- public Activator() {
- super();
- }
-
- /* (non-Javadoc)
- * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
- */
- public void start(BundleContext runtimeContext) throws Exception {
- context = runtimeContext;
- }
-
- /* (non-Javadoc)
- * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext runtimeContext) {
- if (bundleTracker != null) {
- bundleTracker.close();
- bundleTracker = null;
- }
- if (debugTracker != null) {
- debugTracker.close();
- debugTracker = null;
- }
- context = null;
- pluginConverter = null;
- }
-
- /**
- * Return the plug-in converter class or <code>null</code> if it
- * is not available.
- *
- * @return the plug-in converter or <code>null</code>
- */
- public static PluginConverter getPluginConverter() {
- if (pluginConverter == null) {
- if (bundleTracker == null) {
- if (context == null)
- return null;
- bundleTracker = new ServiceTracker(context, PluginConverter.class.getName(), null);
- bundleTracker.open();
- }
- pluginConverter = (PluginConverter) bundleTracker.getService();
- }
- return pluginConverter;
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CheckedItem.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CheckedItem.java
deleted file mode 100644
index 66f6a50..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CheckedItem.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import org.eclipse.pde.tools.versioning.IVersionCompare;
-import org.osgi.framework.Version;
-
-/**
- * This class represents version change of a checked feature(or plugin)
- */
-public class CheckedItem {
- /**
- * compare source feature or plugin key(id + "#" + version)
- */
- private String sourceKey;
- /**
- * compare destination feature or plugin key(id + "#" + version)
- * for plugin, this value must be set when create a new instance of this class,
- * since it is possible there are two plugins have the same id but different versions exist
- * in an Eclipse installation;
- * for feature, this value can be set as <code>null</code>
- */
- private String destinationKey;
- private Version version;
- private int change;
-
- /**
- * Constructor for the class. Set the key, version, and change to be the given values.
- *
- * @param sourceKey compare source feature id(or plugin id) + "#" + feature version(or plugin version)
- * @param destinationKey compare destination feature id(or plugin id) + "#" + feature version(or plugin version)
- * @param version if the new version is correct, it is the new version; if the new version
- * is incorrect, it is the recommended version; if some error happened, it is <code>null</code>
- * @param change change happened on the feature or plugin
- */
- public CheckedItem(String sourceKey, String destinationKey, Version version, int change) {
- this.sourceKey = sourceKey;
- this.destinationKey = destinationKey;
- this.version = version;
- this.change = change;
- }
-
- /**
- * Return the compare source feature(or plugin) key.
- *
- * @return feature(or plugin) key, feature id(or plugin id) + "#" + feature version(or plugin version)
- */
- public String getSourceKey() {
- return this.sourceKey;
- }
-
- /**
- * Return the compare destination feature(or plugin) key.
- *
- * @return feature(or plugin) key, feature id(or plugin id) + "#" + feature version(or plugin version)
- * it can be <code>null</code> if the instance of this class represents a compare result of features
- */
- public String getDestinationKey() {
- return this.destinationKey;
- }
-
- /**
- * Return the compare result's version. If the new version is correct, it is the
- * new version; if the new version is incorrect, it is the recommended
- * version; if some error happened, it is <code>null</code>.
- *
- * @return version the version or <code>null</code>
- */
- public Version getVersion() {
- return this.version;
- }
-
- /**
- * returns change on the feature or plugin
- * <p>
- * The value of change is an int number of the following:
- * <ul>
- * <li>{@link IVersionCompare#ERROR_OCCURRED}</li>
- * <li>{@link IVersionCompare#MAJOR_CHANGE}</li>
- * <li>{@link IVersionCompare#MINOR_CHANGE}</li>
- * <li>{@link IVersionCompare#NEW_ADDED}</li>
- * <li>{@link IVersionCompare#NO_LONGER_EXIST}</li>
- * <li>{@link IVersionCompare#MICRO_CHANGE}</li>
- * <li>{@link IVersionCompare#QUALIFIER_CHANGE}</li>
- * <li>{@link IVersionCompare#NO_CHANGE}</li>
- * </ul>
- * </p>
- * @return change int number which indicates the overall change happened on a plugin or class
- * @see IVersionCompare#ERROR_OCCURRED
- * @see IVersionCompare#MAJOR_CHANGE
- * @see IVersionCompare#MINOR_CHANGE
- * @see IVersionCompare#NEW_ADDED
- * @see IVersionCompare#NO_LONGER_EXIST
- * @see IVersionCompare#MICRO_CHANGE
- * @see IVersionCompare#QUALIFIER_CHANGE
- * @see IVersionCompare#NO_CHANGE
- */
- public int getChange() {
- return this.change;
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/ClassFileHelper.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/ClassFileHelper.java
deleted file mode 100644
index 69eeddd..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/ClassFileHelper.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.*;
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.ToolFactory;
-import org.eclipse.jdt.core.util.IClassFileReader;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Helper class for dealing with class files.
- */
-public class ClassFileHelper implements VersionCompareConstants {
-
- /**
- * Return a class file reader based on the given object or <code>null</code>.
- */
- public static IClassFileReader getReader(Object object) throws CoreException {
- if (object instanceof String)
- return getClassReaderFromFile(new File((String) object));
- if (object instanceof File)
- return getClassReaderFromFile((File) object);
- if (object instanceof URL)
- return getClassReaderFromURL((URL) object);
- if (object instanceof InputStream) {
- IClassFileReader fileReader = ToolFactory.createDefaultClassFileReader((InputStream) object, IClassFileReader.ALL);
- return fileReader;
- } else if (object instanceof IClassFileReader)
- return (IClassFileReader) object;
- else
- // otherwise throw CoreException
- throw new CoreException(new Status(IStatus.WARNING, PLUGIN_ID, IStatus.WARNING, NLS.bind(Messages.JavaClassVersionCompare_unexpectedTypeMsg, object.getClass().getName()), null));
- }
-
- /**
- * gets IClassFileReader of the java class denoted by <code>file</code>
- * @param file java class file
- * @return IClassFileReader instance or <code>null</code>if file type is wrong or any error occurred
- */
- private static IClassFileReader getClassReaderFromFile(File file) {
- if (isGivenTypeFile(file, CLASS_FILE_EXTENSION))
- return ToolFactory.createDefaultClassFileReader(file.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
- if (isGivenTypeFile(file, JAVA_FILE_EXTENSION))
- return null;
- return null;
- }
-
- /**
- * Checks whether or not the given file potentially represents a given type file on the file-system.
- *
- * @param file File instance which denotes to a file on the file-system
- * @param type file type(e.g. "java","class")
- * @return <code>true</code> <code>file</code> exists and is a configuration file,
- * <code>false</code> otherwise
- */
- private static boolean isGivenTypeFile(File file, String type) {
- return file.isFile() && file.getName().endsWith(type);
- }
-
- /**
- * Return a class file reader based on the contents of the given URL's input stream.
- *
- * @param url location of the class file
- * @return the class file reader or <code>null</code>if any error occurred
- */
- private static IClassFileReader getClassReaderFromURL(URL url) {
- try {
- InputStream input = url.openStream();
- try {
- return ToolFactory.createDefaultClassFileReader(input, IClassFileReader.ALL_BUT_METHOD_BODIES);
- } finally {
- if (input != null) {
- input.close();
- input = null;
- }
- }
- } catch (IOException e) {
- //ignore, result will be checked outside
- }
- return null;
- }
-
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CompareOptionFileHelper.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CompareOptionFileHelper.java
deleted file mode 100644
index 18a187a..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CompareOptionFileHelper.java
+++ /dev/null
@@ -1,390 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.*;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.pde.tools.versioning.IVersionCompare;
-import org.eclipse.update.core.IIncludedFeatureReference;
-import org.eclipse.update.core.model.FeatureModel;
-import org.eclipse.update.core.model.PluginEntryModel;
-
-/**
- * This class provides methods to process compare option property file, store the inclusive and exclusive
- * information, check if a feature of plugin is need to be compared.
- * <p>
- * The properties in the compare option file are as following:
- * <ul>
- * <li>"exclude.os" - which indicates exclusive Operation Systems
- * <li>"include.os" - which indicates inclusive Operation Systems
- * <li>"exclude.ws" - which indicates exclusive windows system architecture specifications
- * <li>"include.ws" - which indicates inclusive windows system architecture specifications
- * <li>"exclude.arch" - which indicates exclusive optional system architecture specifications
- * <li>"include.arch" - which indicates inclusive optional system architecture specifications
- * <li>"exclude.nl" - which indicates exclusive optional locale language specifications
- * <li>"include.nl" - which indicates inclusive optional locale language specifications
- * <li>"exclude.features" - which indicates exclusive feature ids
- * <li>"include.features" - which indicates inclusive feature ids
- * <li>"exclude.plugins" - which indicates exclusive plugin ids
- * <li>"include.plugins" - which indicates inclusive plugin ids
- * </ul>
- * </p>
- *
- */
-public class CompareOptionFileHelper implements VersionCompareConstants {
-
- private Map optionTable = null;
-
- /**
- * constructor
- * @param file compare option file
- * @throws CoreException <p>if nested CoreException has been thrown
- */
- public CompareOptionFileHelper(File file) throws CoreException {
- if (file == null)
- return;
- processVersioningOptionFile(file);
- }
-
- /**
- * processes the compare option file denoted by <code>file</code>, and put
- * property key as key, List of property values of the property key as value
- * into a map.
- *
- *
- * @param file compare option file
- * @throws CoreException if <code>file</code> does not exist or any IOException has been thrown
- */
- private void processVersioningOptionFile(File file) throws CoreException {
- Map table = new Hashtable();
- InputStream inputStream = null;
- Properties properties = new Properties();
- try {
- inputStream = new BufferedInputStream(new FileInputStream(file));
- properties.load(inputStream);
- } catch (FileNotFoundException fnfe) {
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.VersionCompareDispatcher_fileNotFoundMsg, file.getAbsolutePath()), fnfe));
- } catch (IOException ioe) {
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.VersionCompareDispatcher_readPropertyFailedMsg, file.getAbsolutePath()), ioe));
- } finally {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (IOException ioe) {
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.VersionCompareDispatcher_closeFileFailedMsg, file.getAbsolutePath()), ioe));
- }
- }
- }
- for (Iterator iterator = properties.keySet().iterator(); iterator.hasNext();) {
- Object key = iterator.next();
- String property = properties.getProperty((String) key);
- if (property == null || property.trim().equals(VersionCompareConstants.EMPTY_STRING))
- continue;
- List propertyValueList;
- // for feature or plugin inclusion, exclusion values, we convert them into Patterns
- if (key.equals(IVersionCompare.INCLUDE_FEATURES_OPTION) || key.equals(IVersionCompare.EXCLUDE_FEATURES_OPTION) || key.equals(IVersionCompare.INCLUDE_PLUGINS_OPTION) || key.equals(IVersionCompare.EXCLUDE_PLUGINS_OPTION))
- propertyValueList = generatePatternList(Arrays.asList(property.split(VersionCompareConstants.COMMA_MARK)));
- else
- propertyValueList = Arrays.asList(property.split(VersionCompareConstants.COMMA_MARK));
- table.put(key, propertyValueList);
- }
- this.optionTable = table;
- }
-
- /*
- * check the includes/excludes filters based on operating system
- */
- private boolean filterOS(Object object) {
- List inclusionValueList = (List) optionTable.get(IVersionCompare.INCLUDE_OS_OPTION);
- String[] propertyValue;
- if (object instanceof IIncludedFeatureReference)
- propertyValue = ((IIncludedFeatureReference) object).getOS() == null ? null : ((IIncludedFeatureReference) object).getOS().split(COMMA_MARK);
- else if (object instanceof PluginEntryModel)
- propertyValue = ((PluginEntryModel) object).getOS() == null ? null : ((PluginEntryModel) object).getOS().split(COMMA_MARK);
- else
- propertyValue = ((FeatureModel) object).getOS() == null ? null : ((FeatureModel) object).getOS().split(COMMA_MARK);
- if (!inclusionMatch(propertyValue, inclusionValueList))
- return false;
- // inclusionMatch is true, do exclusionMatch
- return !exclusionMatch(propertyValue, (List) optionTable.get(IVersionCompare.EXCLUDE_OS_OPTION));
- }
-
- /*
- * check the includes/excludes filters based on windowing system
- */
- private boolean filterWS(Object object) {
- List inclusionValueList = (List) optionTable.get(IVersionCompare.INCLUDE_WS_OPTION);
- String[] propertyValue;
- if (object instanceof IIncludedFeatureReference)
- propertyValue = ((IIncludedFeatureReference) object).getWS() == null ? null : ((IIncludedFeatureReference) object).getWS().split(COMMA_MARK);
- else if (object instanceof PluginEntryModel)
- propertyValue = ((PluginEntryModel) object).getWS() == null ? null : ((PluginEntryModel) object).getWS().split(COMMA_MARK);
- else
- propertyValue = ((FeatureModel) object).getWS() == null ? null : ((FeatureModel) object).getWS().split(COMMA_MARK);
- if (!inclusionMatch(propertyValue, inclusionValueList))
- return false;
- // inclusionMatch is true, do exclusionMatch
- return !exclusionMatch(propertyValue, (List) optionTable.get(IVersionCompare.EXCLUDE_WS_OPTION));
- }
-
- /*
- * check the includes/excludes filters based on system architecture
- */
- private boolean filterArch(Object object) {
- List inclusionValueList = (List) optionTable.get(IVersionCompare.INCLUDE_ARCH_OPTION);
- String[] propertyValue;
- if (object instanceof IIncludedFeatureReference)
- propertyValue = ((IIncludedFeatureReference) object).getOSArch() == null ? null : ((IIncludedFeatureReference) object).getOSArch().split(COMMA_MARK);
- else if (object instanceof PluginEntryModel)
- propertyValue = ((PluginEntryModel) object).getOSArch() == null ? null : ((PluginEntryModel) object).getOSArch().split(COMMA_MARK);
- else
- propertyValue = ((FeatureModel) object).getOSArch() == null ? null : ((FeatureModel) object).getOSArch().split(COMMA_MARK);
- if (!inclusionMatch(propertyValue, inclusionValueList))
- return false;
- // inclusionMatch is true, do exclusionMatch
- return !exclusionMatch(propertyValue, (List) optionTable.get(IVersionCompare.EXCLUDE_ARCH_OPTION));
- }
-
- /*
- * check the includes/excludes filters based on the language
- */
- private boolean filterNL(Object object) {
- List inclusionValueList = (List) optionTable.get(IVersionCompare.INCLUDE_NL_OPTION);
- String[] propertyValue;
- if (object instanceof IIncludedFeatureReference)
- propertyValue = ((IIncludedFeatureReference) object).getNL() == null ? null : ((IIncludedFeatureReference) object).getNL().split(COMMA_MARK);
- else if (object instanceof PluginEntryModel)
- propertyValue = ((PluginEntryModel) object).getNL() == null ? null : ((PluginEntryModel) object).getNL().split(COMMA_MARK);
- else
- propertyValue = ((FeatureModel) object).getNL() == null ? null : ((FeatureModel) object).getNL().split(COMMA_MARK);
- if (!inclusionMatch(propertyValue, inclusionValueList))
- return false;
- // inclusionMatch is true, do exclusionMatch
- return !exclusionMatch(propertyValue, (List) optionTable.get(IVersionCompare.EXCLUDE_NL_OPTION));
- }
-
- /*
- * check the includes/excludes filters based on feature identifiers
- */
- private boolean filterFeatures(Object object) throws CoreException {
- List inclusionPatternList = (List) optionTable.get(IVersionCompare.INCLUDE_FEATURES_OPTION);
- String id;
- if (object instanceof IIncludedFeatureReference)
- id = ((IIncludedFeatureReference) object).getVersionedIdentifier().getIdentifier();
- else
- id = ((FeatureModel) object).getFeatureIdentifier();
- if (inclusionPatternList != null) {
- if (isMatch(id, inclusionPatternList)) {
- // inclusion match, do exclusion match
- List exclusionPatternList = (List) optionTable.get(IVersionCompare.EXCLUDE_FEATURES_OPTION);
- if (exclusionPatternList != null && isMatch(id, exclusionPatternList))
- return false;
- } else
- return false;
- } else {
- // do exclusion match
- List exclusionPatternList = (List) optionTable.get(IVersionCompare.EXCLUDE_FEATURES_OPTION);
- if (exclusionPatternList != null && isMatch(id, exclusionPatternList))
- return false;
- }
- return true;
- }
-
- /*
- * check the includes/excludes filters based on plugin identifiers
- */
- private boolean filterPlugins(Object object) {
- List inclusionPatternList = (List) optionTable.get(IVersionCompare.INCLUDE_PLUGINS_OPTION);
- String id = ((PluginEntryModel) object).getPluginIdentifier();
- if (inclusionPatternList != null) {
- if (isMatch(id, inclusionPatternList)) {
- // inclusion match, do exclusion match
- List exclusionPatternList = (List) optionTable.get(IVersionCompare.EXCLUDE_PLUGINS_OPTION);
- if (exclusionPatternList != null && isMatch(id, exclusionPatternList))
- return false;
- } else
- return false;
- } else {
- // do exclusion match
- List exclusionPatternList = (List) optionTable.get(IVersionCompare.EXCLUDE_PLUGINS_OPTION);
- if (exclusionPatternList != null && isMatch(id, exclusionPatternList))
- return false;
- }
- return true;
- }
-
- /**
- * Returns a boolean value indicating whether or not the given object should be compared
- * based on the includes and excludes filters.
- * <p>
- * The parameter can be of any of the following types:
- * <ul>
- * <li><code>IIncludedFeatureReference</code></li>
- * <li><code>FeatureModel</code></li>
- * <li><code>PluginEntryModel</code></li>
- * </ul>
- * </p>
- *
- * @param object the object to check
- * @return <code>true</code> if we should compare and <code>false</code> otherwise
- * @throws CoreException <p> if any nested CoreException has been thrown</p>
- */
- public boolean shouldCompare(Object object) throws CoreException {
- if (!((object instanceof IIncludedFeatureReference) || (object instanceof PluginEntryModel) || (object instanceof FeatureModel)))
- return false;
- if (optionTable == null || optionTable.size() == 0)
- // if inclusionTable is null, means everything need to be compared
- return true;
-
- // check the includes/excludes filters based on operating system
- if (!filterOS(object))
- return false;
-
- // check the includes/excludes filters based on windowing system
- if (!filterWS(object))
- return false;
-
- // check the includes/excludes filters based on system architecture
- if (!filterArch(object))
- return false;
-
- // check the includes/excludes filters based on the language
- if (!filterNL(object))
- return false;
-
- // check the includes/excludes filters based on feature or plugin identifiers
- if ((object instanceof IIncludedFeatureReference) || (object instanceof FeatureModel))
- return filterFeatures(object);
- else
- return filterPlugins(object);
- }
-
- /**
- * checks whether <code>list1</code> contains at least one element of <code>list2</code>
- * @param list1 List
- * @param list2 List
- * @return <code>true</code>if <code>list1</code> contains at least one element of <code>list2</code>,
- * <code>false</code> otherwise
- */
- private boolean isIntersecting(List list1, List list2) {
- for (Iterator iterator = list2.iterator(); iterator.hasNext();) {
- Object key = iterator.next();
- if (list1.contains(key))
- return true;
- }
- return false;
- }
-
- /**
- * check whether given <code>values</code> and <code>inclusionValueList</code> has an intersection
- * @param values String array
- * @param inclusionValueList inclusion value list
- * @return <code>true</code> if given <code>values</code> and <code>inclusionValueList</code> has an intersection
- * <code>false</code> otherwise
- */
- private boolean inclusionMatch(String[] values, List inclusionValueList) {
- if (values == null || inclusionValueList == null)
- return true;
- List propertyValue = Arrays.asList(values);
- if (!isIntersecting(inclusionValueList, propertyValue))
- // if propertyValue and inclusionValueList does not an intersection, return false
- return false;
- return true;
- }
-
- /**
- * check whether given <code>values</code> are included the <code>exclusionValueList</code>
- * @param values String array
- * @param exclusionValueList exclusion value list
- * @return <code>true</code> if given <code>values</code> are included the <code>exclusionValueList</code>
- * <code>false</code> otherwise
- */
- private boolean exclusionMatch(String[] values, List exclusionValueList) {
- if (values == null || exclusionValueList == null)
- return false;
- List propertyValue = Arrays.asList(values);
- if (!isIncluded(exclusionValueList, propertyValue))
- // if propertyValue are not included in exclusionValuList, return false
- return false;
- return true;
- }
-
- /**
- * checks whether <code>list1</code> contains all the elements of <code>list2</code>
- * @param list1 List
- * @param list2 List
- * @return <code>true</code>if <code>list1</code> contains all the elements of <code>list2</code>,
- * <code>false</code> otherwise
- */
- private boolean isIncluded(List list1, List list2) {
- for (Iterator iterator = list2.iterator(); iterator.hasNext();) {
- Object key = iterator.next();
- if (!list1.contains(key))
- return false;
- }
- return true;
- }
-
- /**
- * checks whether the <code>string</code> matches the <code>regex</code>
- * @param string String need to be matched
- * @param patternList List contains Patterns
- * @return <code>true</code>if the <code>string</code> matches the <code>regex</code>
- * <code>false</code>otherwise
- */
- private boolean isMatch(String string, List patternList) {
- for (Iterator iterator = patternList.iterator(); iterator.hasNext();) {
- Pattern pattern = (Pattern) iterator.next();
- Matcher matcher = pattern.matcher(string);
- if (matcher.matches())
- return true;
- }
- return false;
- }
-
- /**
- * generates Pattern instances from each String in <code>list</code>
- * @param list List contains Strings
- * @return List contains Pattern instances
- */
- private List generatePatternList(List list) {
- List newList = new ArrayList();
- for (Iterator iterator = list.iterator(); iterator.hasNext();) {
- newList.add(Pattern.compile(generateRegex((String) iterator.next())));
- }
- return newList;
- }
-
- /**
- * generates regular expression from <code>string</code>
- * @param string
- * @return regular expression
- */
- private String generateRegex(String string) {
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < string.length(); i++) {
- char singleChar = string.charAt(i);
- if (singleChar == START_CHAR)
- // convert '*' to ".*"
- buffer.append(WILD_CAST_STRING);
- else if (singleChar == DOT_CHAR)
- // convert '.' to "\."
- buffer.append(DOT_QUOTE_STRING);
- else
- buffer.append(singleChar);
- }
- return buffer.toString();
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CompareResult.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CompareResult.java
deleted file mode 100644
index 8cd7edd..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/CompareResult.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.pde.tools.versioning.ICompareResult;
-
-/**
- * This class represents compare result of a plugin or class
- */
-public class CompareResult implements ICompareResult {
- int change;
- MultiStatus status;
-
- /**
- * constructor
- *
- * @param change change on a feature or plugin
- * @param status contains messages created when verify a plugin or class
- */
- public CompareResult(int change, MultiStatus status) {
- this.change = change;
- this.status = status;
- }
-
- /**
- * gets status which contains messages created when verify a plugin or class
- * @return MultiStatus instance
- */
- public MultiStatus getResultStatus() {
- return this.status;
- }
-
- /**
- * get change on a plugin or class
- * @return change
- */
- public int getChange() {
- return this.change;
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/FeatureModelTable.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/FeatureModelTable.java
deleted file mode 100644
index 2c3232c..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/FeatureModelTable.java
+++ /dev/null
@@ -1,386 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.pde.tools.versioning.IVersionCompare;
-import org.eclipse.update.configurator.ConfiguratorUtils;
-import org.eclipse.update.configurator.IPlatformConfiguration;
-import org.eclipse.update.configurator.IPlatformConfiguration.ISiteEntry;
-import org.eclipse.update.core.model.FeatureModel;
-import org.eclipse.update.core.model.FeatureModelFactory;
-import org.xml.sax.SAXException;
-
-/**
- * FeatureModels use two hashtables to store FeatureModels and
- * feature.xml file locations. It provides methods to access
- * information of FeatureModels
- *
- *
- */
-public class FeatureModelTable implements VersionCompareConstants {
-
- class TableEntry {
- FeatureModel model;
- IPath location;
-
- TableEntry(FeatureModel model, IPath location) {
- super();
- this.model = model;
- this.location = location;
- }
- }
-
- // indicate the FeatureModels is from a configuration file or a directory
- private boolean isConfiguration;
- // table for storing features. key is a string which is the feature identifier. values are instances
- // of the TableEntry inner class as defined by this type.
- private Map featureTable;
- // MultiStatus which stores error or warning message
- private MultiStatus status;
- //
- private CompareOptionFileHelper compareOptionFileHelper;
-
- /**
- * constructor
- *
- * @param object it could be a String, File, or URL which denotes to a eclipse configuration file or a feature directory
- * @param helper CompareOptionFileHelper instance
- * @throws CoreException <p>if any nested CoreException has been thrown
- */
- public FeatureModelTable(Object object, CompareOptionFileHelper helper) throws CoreException {
- if (object instanceof URL)
- initialize((URL) object, helper);
- else if (object instanceof File)
- initialize((File) object, helper);
- else if (object instanceof String)
- initialize(new File((String) object), helper);
- }
-
- /**
- * initialization
- *
- * @param configURL URL instance which denotes an eclipse configuration XML file
- * @throws CoreException
- */
- private void initialize(URL configURL, CompareOptionFileHelper helper) throws CoreException {
- compareOptionFileHelper = helper;
- status = new MultiStatus(PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- featureTable = new HashMap(0);
- IPlatformConfiguration config;
- // get configuration
- try {
- config = ConfiguratorUtils.getPlatformConfiguration(configURL);
- } catch (IOException ioe) {
- throw new CoreException(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.FeatureModelTable_couldNotReadConfigFileMsg, configURL.getFile()), ioe));
- }
- // generate Lists which store URLs of feature entries included in configuration1 and configuration2
- List featureList = generateFeatureEntryList(configURL, config);
- if (featureList == null) {
- status.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.FeatureVersionCompare_noFeaturesFoundInConfigMsg, configURL), null));
- }
- // generate feature model maps and feature address maps
- generateFeatureModelTable(config, featureList);
- // this is a configuration file
- isConfiguration = true;
- }
-
- /**
- * initialization
- *
- * @param file File instance which denotes an directory of FileSystem
- * @param map inclusive map
- * @throws CoreException
- */
- private void initialize(File file, CompareOptionFileHelper helper) throws CoreException {
- // check to see if we are pointing to configuration files
- if (isConfiguration(file)) {
- try {
- initialize(file.toURL(), helper);
- return;
- } catch (MalformedURLException e) {
- throw new CoreException(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.FeatureModelTable_urlConvertErrorMsg, file.getAbsolutePath()), e));
- }
- }
- compareOptionFileHelper = helper;
- status = new MultiStatus(PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- featureTable = new HashMap(0);
- // check to see if we have feature directories
- if (isFeaturesDirectory(file)) {
- // if file are directory, get sub feature directories under it
- File[] subFeatures = file.listFiles(new VersioningDirFilter());
- // check if there is any feature directory under directory1 and directory2
- if (subFeatures == null || subFeatures.length == 0) {
- status.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.FeatureVersionCompare_noFeatureFoundMsg, file), null));
- return;
- }
- // generate feature model maps
- generateFeatureModelTable(subFeatures);
- if (featureTable.size() == 0)
- status.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.FeatureVersionCompare_noFeatureFoundMsg, file), null));
- // this is a directory
- isConfiguration = false;
- return;
- }
- status.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.FeatureModelTable_featureSourceErrorMsg, file), null));
- }
-
- /**
- * check whether or not the given file potentially represents a platform configuration file on the file-system.
- *
- * @return <code>true</code> if <code>file</code> is a configuration file
- * <code>false</code> otherwise
- */
- private boolean isConfiguration(File file) {
- IPath path = new Path(file.getAbsolutePath());
- return file.isFile() && CONFIGURATION_FILE_NAME.equalsIgnoreCase(path.lastSegment());
- }
-
- /**
- * check whether or not the given file represents a features directory.
- *
- * @return <code>true</code> if <code>file</code> is a directory
- * <code>false</code> otherwise
- */
- private boolean isFeaturesDirectory(File file) {
- return file.isDirectory();
- }
-
- /**
- * extracts FeatureModels of features in <code>featureFiles</code>, and
- * put them into hashtable
- * Key is feature id
- * Value is FeatureModel instance of the feature
- *
- * @param featureFiles array of File instances
- * @throws CoreException <p>if any nested CoreException has been thrown</p>
- */
- private void generateFeatureModelTable(File[] featureFiles) throws CoreException {
- File[] featureXMLFile;
- for (int i = 0; i < featureFiles.length; i++) {
- // get "feature.xml" file under the feature directory
- featureXMLFile = featureFiles[i].listFiles(new VersioningFeatureFileFilter(FEATURES_FILE_NAME));
- if (featureXMLFile == null || featureXMLFile.length == 0) {
- // there is no "feature.xml" file found
- continue;
- }
- // parse the "feature.xml" file and get its FeatureModel object
- FeatureModel fm = parseFeature(featureXMLFile[0].getAbsolutePath());
- if (compareOptionFileHelper == null ? true : compareOptionFileHelper.shouldCompare(fm))
- // add the feature and its information to the table
- featureTable.put(fm.getFeatureIdentifier(), new TableEntry(fm, new Path(featureXMLFile[0].getAbsolutePath())));
- }
- }
-
- /**
- * Generates a list which contains locations of feature entries included in <code>config</code>
- * represented by <code>IPath</code> objects.
- *
- * @param config configuration
- * @return List instance contains IPaths of feature entries included in <code>config</code>; return is <code>null</code>
- * if there is no feature entry has been found in <code>config</code>
- */
- private List generateFeatureEntryList(URL configURL, IPlatformConfiguration config) {
- // get site entries from the configuration
- ISiteEntry[] sites = config.getConfiguredSites();
- // create a new List
- ArrayList list = new ArrayList(0);
- for (int i = 0; i < sites.length; i++) {
- IPath sitePath;
- // get URL of site
- URL siteURL = sites[i].getURL();
- if (siteURL.getProtocol().equals(PLATFORM_PROTOCOL)) {
- sitePath = new Path(configURL.getPath());
- // path points to the platform.xml file in the update bundle's
- // location in the configuration area so work our way back
- // to the root of the Eclipse install.
- sitePath = sitePath.removeLastSegments(3);
- } else {
- sitePath = new Path(siteURL.getPath());
- }
- String[] features = sites[i].getFeatures();
- // create a path for each feature entry included in the site
- for (int j = 0; j < features.length; j++)
- list.add(sitePath.append(features[j]).append(FEATURES_FILE_NAME));
- }
- return list.size() == 0 ? null : list;
- }
-
- /**
- * extracts FeatureModels of features in configuration file denoted by <code>config</code>,
- * Key is feature id
- * Value is FeatureModel object
- *
- * @param config configuration
- * @param list list of feature locations (IPath)
- * @throws CoreException <p>if any nested CoreException has been thrown</p>
- */
- private void generateFeatureModelTable(IPlatformConfiguration config, List list) throws CoreException {
- // create a map which contains the feature id and version of the feature entries in the configuration
- for (Iterator features = list.iterator(); features.hasNext();) {
- IPath location = null;
- try {
- // get location of feature
- location = (IPath) features.next();
- // get FeatureModel
- FeatureModel fm = parseFeature(location.toFile().toURL().openStream());
- if (compareOptionFileHelper == null ? true : compareOptionFileHelper.shouldCompare(fm))
- featureTable.put(fm.getFeatureIdentifier(), new TableEntry(fm, location));
- } catch (IOException ioe) {
- status.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.FeatureVersionCompare_featureFileErrorMsg, location.toOSString()), ioe));
- continue;
- }
- }
- }
-
- /**
- * Return a new status object populated with the given information.
- *
- * @param severity severity of status
- * @param code indicates type of this IStatus instance, it could be one of: FEATURE_OVERALL_STATUS,
- * FEATURE_DETAIL_STATUS, PLUGIN_OVERALL_STATUS, PLUGIN_DETAIL_STATUS, PROCESS_ERROR_STATUS,
- * CLASS_OVERALL_STATUS, CLASS_DETAIL_STATUS
- * @param message the status message
- * @param exception exception which has been caught, or <code>null</code>
- * @return the new status object
- */
- private IStatus resultStatusHandler(int severity, int code, String message, Exception exception) {
- if (message == null) {
- if (exception != null)
- message = exception.getMessage();
- // extra check because the exception message can be null
- if (message == null)
- message = EMPTY_STRING;
- }
- return new Status(severity, PLUGIN_ID, code, message, exception);
- }
-
- /**
- * Parses the feature manifest file denoted by the given input stream and returns
- * the resulting feature model object. The stream is closed when this method is returned.
- *
- * @param input the stream pointing to the feature manifest
- * @return resulting feature model object
- * @throws CoreException if there was an error parsing the input stream
- */
- private FeatureModel parseFeature(InputStream input) throws CoreException {
- try {
- FeatureModelFactory factory = new FeatureModelFactory();
- return factory.parseFeature(input);
- } catch (SAXException saxe) {
- throw new CoreException(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS, null, saxe));
- } finally {
- if (input != null) {
- try {
- input.close();
- } catch (IOException e) {
- // ignore
- }
- }
- }
- }
-
- /**
- * Parses the feature manifest file located in the file-system at the given path. Return
- * the resulting feature model object.
- *
- * @param path the location of the feature manifest
- * @return the resulting feature model
- * @throws CoreException if there was an error parsing the feature manifest
- */
- private FeatureModel parseFeature(String path) throws CoreException {
- try {
- InputStream fis = new BufferedInputStream(new FileInputStream(path));
- // return FeatureModel of feature.xml the FielInputStream passed to parseFeature(InputStream)
- // will be closed in parseFeature(InputStream featureInputStream) method.
- return parseFeature(fis);
- } catch (FileNotFoundException fnfe) {
- throw new CoreException(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.FeatureModelTable_featureFileParseErrorMsg, path), fnfe));
- }
- }
-
- /**
- * checks if the FeatureModels included in the current object are from a configuration file
- * @return <code>true</code> if the current object contains FeatureModels from a configuration file
- * <code>false</code> otherwise
- */
- public boolean isConfiguration() {
- return isConfiguration;
- }
-
- /**
- * checks if there is any error occurred when generate the current object
- * @return <code>true</code> if there is no error occurred
- * <code>false</code> otherwise
- */
- public boolean isOK() {
- return status.isOK();
- }
-
- /**
- * gets location of the feature which is denoted by <code>id</code>
- * @param id feature id
- * @return location of feature <code>id</code>
- */
- public IPath getLocation(String id) {
- TableEntry entry = (TableEntry) featureTable.get(id);
- return entry == null ? null : entry.location;
- }
-
- /**
- * gets version of the feature which is denoted by <code>id</code>
- * @param id feature id
- * @return feature version(String)
- */
- public String getVersion(String id) {
- TableEntry entry = (TableEntry) featureTable.get(id);
- return entry == null ? null : entry.model.getFeatureVersion();
- }
-
- /**
- * gets status of the current FeatureModelTable object
- * @return status
- */
- public IStatus getStatus() {
- return status;
- }
-
- /**
- * gets FeatureModel instance of the feature denoted by <code>id</code>
- * @param id feature id
- * @return Object instance which presents a FeatureModel instance
- */
- public Object getFeatureModel(Object id) {
- TableEntry entry = (TableEntry) featureTable.get(id);
- return entry == null ? null : entry.model;
- }
-
- /**
- * gets number of FeatureModel instance included in the current FeatureModelTable instance
- * @return number of FeatureModel instance
- */
- public int size() {
- return featureTable.size();
- }
-
- /**
- * gets a Set view of the keys contained in the current FeatureModelTable instance
- * @return a set view of keys contained in the current FeatureModelTable instance
- */
- public Set getKeySet() {
- return featureTable.keySet();
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/FeatureVersionCompare.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/FeatureVersionCompare.java
deleted file mode 100644
index 0f5701d..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/FeatureVersionCompare.java
+++ /dev/null
@@ -1,808 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.File;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.ManifestElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.pde.tools.versioning.IVersionCompare;
-import org.eclipse.update.core.IIncludedFeatureReference;
-import org.eclipse.update.core.model.FeatureModel;
-import org.eclipse.update.core.model.PluginEntryModel;
-import org.osgi.framework.Version;
-
-/**
- * VersionCompare
- *
- * @see org.eclipse.pde.tools.versioning.IVersionCompare
- */
-public class FeatureVersionCompare implements VersionCompareConstants {
- // MultiStatus instance used to store error or warning messages of features and plugin entries
- private MultiStatus finalResult;
- // Map used to store ICompreResult instances of verified features
- private Map verifiedFeatureTable;
- // Map used to store ICompreResult instances of verified plugins
- private Map verifiedPluginTable;
- // FeatureModelTables used to store FeatureModels
- private FeatureModelTable featureModelTable1;
- private FeatureModelTable featureModelTable2;
- //
- private PluginVersionCompare pluginVersionCompare;
- //
- private CompareOptionFileHelper compareOptionFileHelper;
- // monitor related variables
- private VersioningProgressMonitorWrapper monitorWrapper;
- //
- private boolean needPluginCompare;
- //
- private long startTime;
- private boolean DEBUG = false;
- private static final String DEBUG_OPTION = VersionCompareConstants.PLUGIN_ID + "/debug/features"; //$NON-NLS-1$
-
- /**
- * Constructor
- */
- public FeatureVersionCompare() {
- pluginVersionCompare = new PluginVersionCompare();
- DEBUG = Activator.getBooleanDebugOption(DEBUG_OPTION);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkFeatureVersions(URL, URL, boolean, Map)
- */
- public IStatus checkFeatureVersions(URL configURL1, URL configURL2, boolean comparePlugins, File optionFile, IProgressMonitor monitor) throws CoreException {
- return compareMain(configURL1, configURL2, comparePlugins, optionFile, monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkFeatureVersions(java.lang.String, java.lang.String, boolean, Map)
- */
- public IStatus checkFeatureVersions(String path1, String path2, boolean comparePlugins, File optionFile, IProgressMonitor monitor) throws CoreException {
- return checkFeatureVersions(new File(path1), new File(path2), comparePlugins, optionFile, monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkFeatureVersions(File, File, boolean, Map)
- */
- public IStatus checkFeatureVersions(File file1, File file2, boolean comparePlugins, File optionFile, IProgressMonitor monitor) throws CoreException {
- // check to see if we are pointing to two configuration files or two directories
- if ((isConfiguration(file1) && isConfiguration(file2)) || (isFeaturesDirectory(file1) && isFeaturesDirectory(file2))) {
- return compareMain(file1, file2, comparePlugins, optionFile, monitor);
- }
- return resultStatusHandler(IStatus.WARNING, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.FeatureVersionCompare_inputErrorMsg, file1, file2), null);
- }
-
- /**
- * compare main method
- * @param object1 URL, String, File instance which denotes a directory or a configuration file
- * @param object2 URL, String, File instance which denotes a directory or a configuration file
- * @param comparePlugins <code>true</code>plugins need to be compared as object, <code>false</code> just to flat comparison
- * @param optionFile File instance which denotes a compare option file
- * @param monitor IProgressMonitor instance
- * @return IStatus instance which contains message generated during comparing
- * @throws CoreException <p>if any nested CoreException has been thrown</p>
- */
- private IStatus compareMain(Object object1, Object object2, boolean comparePlugins, File optionFile, IProgressMonitor monitor) throws CoreException {
- try {
- monitor = VersioningProgressMonitorWrapper.monitorFor(monitor);
- monitorWrapper = new VersioningProgressMonitorWrapper(monitor);
- if (optionFile != null)
- // generate CompareOptionFileHelper instance
- compareOptionFileHelper = new CompareOptionFileHelper(optionFile);
- // generate a MultiStatus instance to store compare result
- finalResult = new MultiStatus(PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- // generate verified features and plugins maps
- verifiedFeatureTable = new Hashtable(0);
- verifiedPluginTable = new Hashtable(0);
- this.needPluginCompare = comparePlugins;
- // begin task
- monitorWrapper.beginTask(Messages.FeatureVersionCompare_verifyingFeatureMsg, 100);
- // generate feature model maps
- featureModelTable1 = new FeatureModelTable(object1, compareOptionFileHelper);
- monitorWrapper.worked(comparePlugins ? 5 : 30);
- featureModelTable2 = new FeatureModelTable(object2, compareOptionFileHelper);
- monitorWrapper.worked(comparePlugins ? 5 : 30);
- if (!featureModelTable1.isOK()) {
- finalResult.merge(featureModelTable1.getStatus());
- }
- if (!featureModelTable2.isOK()) {
- finalResult.merge(featureModelTable2.getStatus());
- }
- // if featureModelTable1 or featureModelTable2 is empty, we return here
- if (featureModelTable1.size() == 0 || featureModelTable2.size() == 0) {
- return finalResult;
- }
- compareFeatures();
- monitorWrapper.worked(comparePlugins ? 90 : 40);
- return finalResult;
- } finally {
- monitorWrapper.done();
- }
- }
-
- /**
- * check whether or not the given file potentially represents a platform configuration file on the file-system.
- *
- * @return <code>true</code> if <code>file</code> is a configuration file
- * <code>false</code> otherwise
- */
- private boolean isConfiguration(File file) {
- return file.isFile() && CONFIGURATION_FILE_NAME.equalsIgnoreCase(new Path(file.getAbsolutePath()).lastSegment());
- }
-
- /**
- * check whether or not the given file represents a features directory.
- *
- * @return <code>true</code> if <code>file</code> is a directory
- * <code>false</code> otherwise
- */
- private boolean isFeaturesDirectory(File file) {
- return file.isDirectory();
- }
-
- /**
- * Add the given compare result to the list of already processed features.
- *
- * @param result the compare result
- */
- private void featureProcessed(CheckedItem result) {
- verifiedFeatureTable.put(result.getSourceKey(), result);
- }
-
- /**
- * Add the given compare result to the list of already processed plugins.
- *
- * @param result the compare result
- */
- private void pluginProcessed(CheckedItem result) {
- verifiedPluginTable.put(result.getSourceKey()+KEY_SEPARATOR+ result.getDestinationKey(), result);
- }
-
- /**
- * Verifies every version of feature included in featureModelTable1 based on the feature which has the same feature
- * id in featureModelTable2, and generates an overall result as an VersioningMultiStatus instance
- *
- * @throws CoreException <p>if any nested CoreException has been thrown</p>
- */
- private void compareFeatures() throws CoreException {
- startTime = System.currentTimeMillis();
- // compare features
- for (Iterator keys = featureModelTable1.getKeySet().iterator(); keys.hasNext();) {
- if (monitorWrapper.isCanceled())
- throw new OperationCanceledException();
- // get a key (feature ID) from the new features map
- Object key = keys.next();
- FeatureModel newFeatureModel = (FeatureModel) (featureModelTable1.getFeatureModel(key));
- // check if the feature has been checked or not
- if (searchFeatureResult(newFeatureModel.getFeatureIdentifier() + KEY_SEPARATOR + newFeatureModel.getFeatureVersion()) == null) {
- // if the feature has not been checked, we check it and add the result to status list
- featureProcessed(verifyNewFeatureVersion(newFeatureModel, (FeatureModel) featureModelTable2.getFeatureModel(key), monitorWrapper.getSubMonitor((needPluginCompare ? 90 : 40) / featureModelTable1.size())));
- }
- }
- debug("Feature Compare Time: " + (System.currentTimeMillis() - startTime) + " milliseconds"); //$NON-NLS-1$//$NON-NLS-2$
- debug("Total message number: " + finalResult.getChildren().length); //$NON-NLS-1$
- }
-
- /*
- * Log the given debug message.
- */
- private void debug(String message) {
- if (DEBUG)
- Activator.debug(message);
- }
-
- /**
- * Compares <code>featureModel1</code> to <code>featureModel2</code> to check if the version of <code>featureModel1</code> is correct or not;
- * <code>featureModel1</code> and <code>featureModel2</code> have the same feature ID
- *
- * @param featureModel1 the FeatureModel instance
- * @param featureModel2 the FeatureModel instance
- * @return result of verification encapsulated in an IStatus instance
- * @throws CoreException <p>if any nested CoreException has been thrown</p>
- */
- private CheckedItem verifyNewFeatureVersion(FeatureModel featureModel1, FeatureModel featureModel2, IProgressMonitor monitor) throws CoreException {
- // get feature id
- String id = featureModel1.getFeatureIdentifier();
- // get versions of featureModel1
- Version version1 = new Version(featureModel1.getFeatureVersion());
- // check if featureModel2 is null, if it's null, we consider it as new added
- if (featureModel2 == null) {
- Object[] msg = {id, version1, featureModelTable1.getLocation(id)};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.FEATURE_OVERALL_STATUS, NLS.bind(Messages.FeatureVersionCompare_newIntroducedFeatureMsg, msg), null));
- return new CheckedItem(id + KEY_SEPARATOR + featureModel1.getFeatureVersion(), null, new Version(featureModel1.getFeatureVersion()), IVersionCompare.NEW_ADDED);
- }
- // get versions of featureModel2
- Version version2 = new Version(featureModel2.getFeatureVersion());
- // compare featureModel1 to featureModel2
- int result = checkFeatureChange(featureModel1, featureModel2, monitor);
- // some versions of included features or plugins are wrong
- if (result == IVersionCompare.ERROR_OCCURRED) {
- Object[] msg = {id, version1, featureModelTable1.getLocation(id)};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_OVERALL_STATUS, NLS.bind(Messages.FeatureVersionCompare_nestedErrorOccurredMsg, msg), null));
- return new CheckedItem(id + KEY_SEPARATOR + featureModel1.getFeatureVersion(), null, null, result);
- }
- // get the recommended version
- Version recommendedVersion = recommendVersion(version2, result);
- // check if version1 is correct or not
- if (!isNewVersionValid(version1, recommendedVersion, result)) {
- Object[] msg = new Object[] {id, version1, featureModelTable1.getLocation(id), recommendedVersion};
- if (result == IVersionCompare.QUALIFIER_CHANGE) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_OVERALL_STATUS, NLS.bind(Messages.FeatureVersionCompare_incorrectNewVersionMsg2, msg), null));
- } else {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_OVERALL_STATUS, NLS.bind(Messages.FeatureVersionCompare_incorrectNewVersionMsg, msg), null));
- }
- return new CheckedItem(id + KEY_SEPARATOR + featureModel1.getFeatureVersion(), null, recommendedVersion, result);
- }else{
- // check if version has been increased properly
- int change = checkVersionChange(version1, version2);
- if (change < result){
- Object[] msg = new Object[] {id, version1, featureModelTable1.getLocation(id), getVersionName(result), getVersionName(change)};
- finalResult.merge(resultStatusHandler(IStatus.WARNING, IVersionCompare.FEATURE_OVERALL_STATUS, NLS.bind(Messages.FeatureVersionCompare_versionChangeIncorrectMsg, msg), null));
- return new CheckedItem(id + KEY_SEPARATOR + version1.toString(), null, version1, change);
- }
- return new CheckedItem(id + KEY_SEPARATOR + version1.toString(), null, version1, result);
- }
- }
-
- /**
- * gets String which represent type of version denoted by <code>versionType</code>
- * @param versionType int number
- * @return String
- */
- private String getVersionName(int versionType){
- switch (versionType){
- case IVersionCompare.MAJOR_CHANGE: return "Major"; //$NON-NLS-1$
- case IVersionCompare.MINOR_CHANGE: return "Minor"; //$NON-NLS-1$
- case IVersionCompare.MICRO_CHANGE: return "Micro"; //$NON-NLS-1$
- case IVersionCompare.QUALIFIER_CHANGE: return "Qualify"; //$NON-NLS-1$
- case IVersionCompare.NO_CHANGE: return "NoChange"; //$NON-NLS-1$
- default: return EMPTY_STRING;
- }
- }
-
- /**
- * Compares included features and plugins in <code>featureModel1</code> to those in <code>featureModel2</code>.
- * Check if there is any change from <code>featureModel2</code> to <code>feaureModel1</code>
- *
- * @param featureModel1 FeatureModel instance
- * @param featureModel2 FeatureModel instance
- * @return change with the highest priority from <code>featureModel2</code> to <code>featureModel1</code>
- * @throws CoreException <p>if any nested CoreException has been thrown</p>
- */
- private int checkFeatureChange(FeatureModel featureModel1, FeatureModel featureModel2, IProgressMonitor monitor) throws CoreException {
- int overallChange = IVersionCompare.NO_CHANGE;
- String id = featureModel1.getFeatureIdentifier();
- Version version1 = new Version(featureModel1.getFeatureVersion());
- Version version2 = new Version(featureModel2.getFeatureVersion());
- // compare feature version first
- if (version1.compareTo(version2) < 0) {
- Object[] msg = {id, version1, featureModelTable1.getLocation(id), version2, featureModelTable2.getLocation(id)};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_OVERALL_STATUS, NLS.bind(Messages.FeatureVersionCompare_newVersionLowerThanOldMsg, msg), null));
- }
- // get IncludedFeatureReference, PluginEntries of featureModel1
- IIncludedFeatureReference[] includedFeatures1 = featureModel1.getFeatureIncluded();
- PluginEntryModel[] pluginEntries1 = featureModel1.getPluginEntryModels();
- // get IncludedFeatureReference, PluginEntries of featureModel2
- IIncludedFeatureReference[] includedFeatures2 = featureModel2.getFeatureIncluded();
- PluginEntryModel[] pluginEntries2 = featureModel2.getPluginEntryModels();
- try {
- monitor.beginTask(NLS.bind(Messages.FeatureVersionCompare_comparingFeatureMsg, id + UNDERSCORE_MARK + version1.toString()), 10);
- // compare IncludedFeatureReferences in featureModel1 with those in featureModel2
- overallChange = Math.min(overallChange, compareReferences(id, includedFeatures1, includedFeatures2, monitorWrapper.getSubMonitor(5)));
- // compare PluginEntries in featureModel1 with those in featureModel2
- overallChange = Math.min(overallChange, compareReferences(id, pluginEntries1, pluginEntries2, monitorWrapper.getSubMonitor(5)));
- // return the version change with the highest priority
- return overallChange;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Generates and returns a recommended version based on the given version and change.
- *
- * @param version the current version
- * @param change the degree of change
- * @return the recommended new version or <code>null</code> if the change is IVersionCompare.ERROR_OCCURRED
- * or the change is not an expected value
- */
- private Version recommendVersion(Version version, int change) {
- // get major, minor, service of version
- int major = version.getMajor();
- int minor = version.getMinor();
- int micro = version.getMicro();
- String qualifier = version.getQualifier();
- // update major, minor, service based on the compare result
- switch (change) {
- case IVersionCompare.ERROR_OCCURRED :
- return null;
- case IVersionCompare.MAJOR_CHANGE : {
- major++;
- minor = 0;
- micro = 0;
- qualifier = EMPTY_STRING;
- break;
- }
- // NOT_EXIST, NEW_ADDED are currently treated as minor change
- case IVersionCompare.NO_LONGER_EXIST :
- case IVersionCompare.NEW_ADDED :
- case IVersionCompare.MINOR_CHANGE : {
- minor++;
- micro = 0;
- qualifier = EMPTY_STRING;
- break;
- }
- case IVersionCompare.MICRO_CHANGE : {
- micro++;
- qualifier = EMPTY_STRING;
- break;
- }
- case IVersionCompare.QUALIFIER_CHANGE : {
- // TODO increase qualifier
- break;
- }
- case IVersionCompare.NO_CHANGE : {
- // if there is no change, just return the version
- return version;
- }
- default : {
- return null;
- }
- }
- // generate recommended version
- return new Version(major, minor, micro, qualifier);
- }
-
- /**
- * Checks if the <code>version1</code> is valid, based on <code>version2</code> and <code>change</code>
- * from <code>version2</code> to <code>version1</code>
- *
- * @param version1 feature version
- * @param version2 feature version
- * @param change change from <code>version2</code> to <code>version1</code>
- * @return <code>true</code> if version1 is correct and <code>false</code> otherwise
- */
- private boolean isNewVersionValid(Version version1, Version version2, int change) {
- if (change == IVersionCompare.QUALIFIER_CHANGE) {
- // compare qualifier version. We currently don't increase qualifier version if there is
- // QUALIFIER_CHANGE,we need the version1 be big than version2
- return version1.compareTo(version2) > 0;
- }
- // compare qualifier version
- return version1.compareTo(version2) >= 0;
- }
-
- /**
- * Compares feature version(or plugin entry versions) in <code>references1</code> to those in <code>references2</code>.
- * Check if there is any version change from <code>references2</code> to <code>references1</code>. The change with
- * the highest priority will be returned
- *
- * @param parentID id of the feature which these features(or plugin entries) belong to
- * @param references1 array of included plugins or features
- * @param references2 array of included plugins or features
- * @return change with the highest priority from <code>references2</code> to <code>references1</code>
- * @throws CoreException <p>if any nested CoreException has been thrown</p>
- */
- private int compareReferences(String parentID, Object[] references1, Object[] references2, IProgressMonitor monitor) throws CoreException {
- try {
- // generate Maps for references1 and references2
- Map referenceMap1 = generateTable(references1);
- Map referenceMap2 = generateTable(references2);
- //
- if (referenceMap1 == null && referenceMap2 == null) {
- return IVersionCompare.NO_CHANGE;
- }
- monitor.beginTask(Messages.FeatureVersionCompare_comparingReferenceMsg, referenceMap1 == null? 1 : referenceMap1.size() + 1);
- // initialization before compare
- int overallChange = IVersionCompare.NO_CHANGE;
- if (referenceMap1 != null) {
- // compares features(or plugin entries) in referenceMap1 to those in referenceMap2
- for (Iterator keys = referenceMap1.keySet().iterator(); keys.hasNext();) {
- if (monitorWrapper.isCanceled())
- throw new OperationCanceledException();
- // get the next key (feature id)
- Object id = keys.next();
- // get corresponding version from referenceMap1
- Version version1 = referenceMap1 == null ? null : (Version) (referenceMap1.get(id));
- // get the version of corresponding reference from referenceMap2
- Version version2 = referenceMap2 == null ? null : (Version) referenceMap2.get(id);
- int currentChange = IVersionCompare.NO_CHANGE;
- if (references1[0] instanceof IIncludedFeatureReference) {
- currentChange = compareIncludedFeatureReference(parentID, (String) id, version1, version2, new SubProgressMonitor(monitor, 1));
- } else {
- currentChange = compareIncludedPluginReference(parentID, (String) id, version1, version2, new SubProgressMonitor(monitor, 1));
- }
- // we save the version change with higher priority
- overallChange = Math.min(overallChange, currentChange);
- // delete the reference from referenceMap2
- if (referenceMap2 != null)
- referenceMap2.remove(id);
- }
- }
- // new features or plugins added into the feature
- if (referenceMap2 != null) {
- for (Iterator keys = referenceMap2.keySet().iterator(); keys.hasNext();) {
- Object id = keys.next();
- Version version = (Version) referenceMap2.get(id);
- if (references2[0] instanceof IIncludedFeatureReference) {
- Object[] msg = {FEATURE_TITLE, (String) id + UNDERSCORE_MARK + version.toString(), parentID, featureModelTable1.getVersion(parentID), featureModelTable1.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_deletedFeaturePluginMsg, msg), null));
- } else {
- Object[] msg = {PLUGIN_TITLE, (String) id + UNDERSCORE_MARK + version.toString(), parentID, featureModelTable1.getVersion(parentID), featureModelTable1.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_deletedFeaturePluginMsg, msg), null));
- }
- }
- if (!referenceMap2.isEmpty()) {
- overallChange = Math.min(overallChange, IVersionCompare.NO_LONGER_EXIST);
- }
- }
- monitor.worked(1);
- return overallChange;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * compares two versions of an included plugins
- * @param parentID ID of the feature to which the plugin denoted by <code>pluginID</code> belongs
- * @param pluginID plugin id
- * @param version1 new version of plugin denoted by <code>pluginID</code>
- * @param version2 old version of plugin denoted by <code>pluginID</code>
- * @return change happened on plugin denoted by <code>pluginID</code>
- */
- private int compareIncludedPluginReference(String parentID, String pluginID, Version version1, Version version2, IProgressMonitor monitor) {
- try {
- monitor.beginTask("", 10); //$NON-NLS-1$
- int pluginChange = IVersionCompare.NO_CHANGE;
- if (version2 == null) {
- // if version2 is null, the plugin is a new added one
- Object[] msg = {PLUGIN_TITLE, pluginID + UNDERSCORE_MARK + version1.toString(), parentID, featureModelTable1.getVersion(parentID), featureModelTable1.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_newAddedFeaturePlingMsg, msg), null));
- pluginChange = IVersionCompare.NEW_ADDED;
- } else {
- if (version1.compareTo(version2) < 0) {
- // if version1 is lower than version2, it is wrong
- Object[] msg = new Object[] {version1, PLUGIN_TITLE, pluginID, parentID, featureModelTable1.getVersion(parentID), featureModelTable1.getLocation(parentID), version2, featureModelTable2.getVersion(parentID), featureModelTable1.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_lowerNewVersion, msg), null));
- if (!needPluginCompare)
- return IVersionCompare.ERROR_OCCURRED;
- }
- if (needPluginCompare) {
- // Object level compare
- String pluginKey1 = pluginID + KEY_SEPARATOR + version1.toString();
- String pluginKey2 = pluginID + KEY_SEPARATOR + version2.toString();
- // check if the plugin has been compared
- CheckedItem pluginResult = searchPluginResult(pluginKey1 + pluginKey2);
- monitor.worked(1);
- if (pluginResult != null) {
- pluginChange = pluginResult.getChange();
- } else {
- // compare plugins as objects
- IPath pluginDirPath1 = getPluginDirPath(featureModelTable1.getLocation(parentID));
- IPath pluginDirPath2 = getPluginDirPath(featureModelTable2.getLocation(parentID));
- Map pluginInfo1 = searchPlugin(pluginDirPath1, pluginID, version1.toString());
- Map pluginInfo2 = searchPlugin(pluginDirPath2, pluginID, version2.toString());
- monitor.worked(2);
- // do plugin compare if both pluginPath1 and pluginPath2 are not null
- if (pluginInfo1 != null && pluginInfo2 != null) {
- try {
- // compare two plugins
- pluginChange = Math.min(pluginChange, pluginVersionCompare.checkPluginVersions(finalResult, ((IPath) pluginInfo1.get(BUNDLE_LOCATION)).toFile(), (ManifestElement[]) pluginInfo1.get(BUNDLE_CLASSPATH), ((IPath) pluginInfo2.get(BUNDLE_LOCATION)).toFile(), (ManifestElement[]) pluginInfo2.get(BUNDLE_CLASSPATH), new SubProgressMonitor(monitor, 7)));
- } catch (CoreException ce) {
- pluginChange = IVersionCompare.ERROR_OCCURRED;
- }
- if (pluginChange == IVersionCompare.ERROR_OCCURRED) {
- // put the compare result into table, we don't need to compare it again if it is also included in another feature
- pluginProcessed(new CheckedItem(pluginKey1, pluginKey2, null, pluginChange));
- // set message
- Object[] msg = {pluginID + UNDERSCORE_MARK + version1.toString(), parentID, featureModelTable1.getVersion(parentID), featureModelTable1.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_errorInVerifyPluginMsg, msg), null));
- // if result is error, set overallChange as error and continue to check next plugin
- pluginChange = IVersionCompare.ERROR_OCCURRED;
- } else {
- // get recommended version based on compare result
- Version recommendedVersion = recommendVersion(version2, pluginChange);
- if (!isNewVersionValid(version1, recommendedVersion, pluginChange)) {
- // if version1 is not correct, set message
- Object[] msg = {pluginID, version1.toString(), ((IPath) pluginInfo1.get(BUNDLE_LOCATION)).toOSString(), recommendedVersion};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_incorrectPluginVersionMsg, msg), null));
- }else{
- // check if version has been increased properly
- int actualChange = checkVersionChange(version1, version2);
- if (actualChange < pluginChange){
- Object[] msg = new Object[] {pluginID, version1, getVersionName(pluginChange), getVersionName(actualChange)};
- finalResult.merge(resultStatusHandler(IStatus.WARNING, IVersionCompare.FEATURE_OVERALL_STATUS, NLS.bind(Messages.FeatureVersionCompare_incorrectPluginVersionChange, msg), null));
- pluginChange = actualChange;
- }
- }
- // put the compare result into table, we don't need to compare it again if it is also included in another feature
- pluginProcessed(new CheckedItem(pluginKey1, pluginKey2,recommendedVersion, pluginChange));
- }
- } else {
- // if pluginPath1 or pluginPath2 is null, set messages
- if (pluginInfo1 == null) {
- Object[] msg = {pluginID + UNDERSCORE_MARK + version1.toString(), parentID, featureModelTable1.getVersion(parentID), featureModelTable1.getLocation(parentID), pluginDirPath1};
- finalResult.merge(resultStatusHandler(IStatus.WARNING, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_pluginNotFoundMsg, msg), null));
- }
- if (pluginInfo2 == null) {
- Object[] msg = {pluginID + UNDERSCORE_MARK + version2.toString(), parentID, featureModelTable2.getVersion(parentID), featureModelTable2.getLocation(parentID), pluginDirPath2};
- finalResult.merge(resultStatusHandler(IStatus.WARNING, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_pluginNotFoundMsg, msg), null));
- }
- pluginChange = IVersionCompare.ERROR_OCCURRED;
- // put the compare into table, we don't need to compare it again if it is also included in another feature
- pluginProcessed(new CheckedItem(pluginKey1, pluginKey2, null, pluginChange));
- }
- }
- } else {
- // String level compare
- pluginChange = checkVersionChange(version1, version2);
- }
- }
- return pluginChange;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * compares two versions of an included features
- * @param parentID ID of the feature to which the feature denoted by <code>featureID</code> belongs
- * @param featureID feature id
- * @param version1 new version of feature denoted by <code>featureID</code>
- * @param version2 old version of feature denoted by <code>featureID</code>
- * @return change happened on feature denoted by <code>featureID</code>
- * @throws CoreException <p>if any nested CoreException has been thrown</p>
- */
- private int compareIncludedFeatureReference(String parentID, String featureID, Version version1, Version version2, IProgressMonitor monitor) throws CoreException {
- String key1 = featureID + KEY_SEPARATOR + version1.toString();
- int change = IVersionCompare.NO_CHANGE;
- // if version2 is null, the feature is a new added one
- if (version2 == null) {
- Object[] msg = {FEATURE_TITLE, featureID + UNDERSCORE_MARK + version1.toString(), parentID, featureModelTable1.getVersion(parentID), featureModelTable1.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_newAddedFeaturePlingMsg, msg), null));
- change = IVersionCompare.NEW_ADDED;
- }
- // get the corresponding FeatureModel from featureModelTable1
- FeatureModel featureModel1 = (FeatureModel) featureModelTable1.getFeatureModel(featureID);
- FeatureModel featureModel2 = (FeatureModel) featureModelTable2.getFeatureModel(featureID);
- if (featureModel1 == null) {
- // if the new FeatureModel has not been found, it's an error
- Object[] msg = {featureID + UNDERSCORE_MARK + version1.toString(), parentID, featureModelTable1.getVersion(parentID), featureModelTable1.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_sourceIncludedFeatureNotFoundMsg, msg), null));
- change = IVersionCompare.ERROR_OCCURRED;
- } else if (!featureModel1.getFeatureVersion().equals(version1.toString())) {
- //if the version of the FeatureModel we got does not match the version of the reference, it is an error
- // e.g. feature f1 includes feature f2-1.0.0.v2006, but the corresponding FeatureModel we found is feature f2-1.0.1, it is wrong
- Object[] msg = {featureID + UNDERSCORE_MARK + version1.toString(), parentID, featureModelTable1.getVersion(parentID), featureModelTable1.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_sourceIncludedFeatureNotFoundMsg, msg), null));
- change = IVersionCompare.ERROR_OCCURRED;
- }
- // if the feature is a new added one, we don't do further check
- if (version2 != null) {
- if (featureModel2 == null) {
- // if featureModel2 is null, it is an error
- Object[] msg = {featureID + UNDERSCORE_MARK + version2.toString(), parentID, featureModelTable2.getVersion(parentID), featureModelTable2.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_destIncludedFeatureNotFoundMsg, msg), null));
- change = IVersionCompare.ERROR_OCCURRED;
- } else if (!featureModel2.getFeatureVersion().equals(version2.toString())) {
- //if the version of the FeatureModel we got does not match the version of the reference, it is an error
- // e.g. feature f1 includes feature f2-1.0.0.v2006, but the corresponding FeatureModel we found is feature f2-1.0.1, it is wrong
- Object[] msg = {featureID + UNDERSCORE_MARK + version2.toString(), parentID, featureModelTable2.getVersion(parentID), featureModelTable2.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_destIncludedFeatureNotFoundMsg, msg), null));
- change = IVersionCompare.ERROR_OCCURRED;
- }
- // String level compare
- if (version1.compareTo(version2) < 0) {
- Object[] msg = new Object[] {version1, FEATURE_TITLE, featureID, parentID, featureModelTable1.getVersion(parentID), featureModelTable1.getLocation(parentID), version2, featureModelTable2.getVersion(parentID), featureModelTable1.getLocation(parentID)};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.FEATURE_DETAIL_STATUS, NLS.bind(Messages.FeatureVersionCompare_lowerNewVersion, msg), null));
- }
- if (change == IVersionCompare.ERROR_OCCURRED) {
- featureProcessed(new CheckedItem(key1, null, null, IVersionCompare.ERROR_OCCURRED));
- return IVersionCompare.ERROR_OCCURRED;
- }
- // check if the current feature version has been checked
- CheckedItem compareResult = searchFeatureResult(key1);
- // Object level compare
- if (compareResult == null) {
- // check the included feature models and get result status
- compareResult = verifyNewFeatureVersion(featureModel1, featureModel2, monitorWrapper.getSubMonitor(needPluginCompare ? 90 : 40 / featureModelTable1.size()));
- // add the result status into result list
- featureProcessed(compareResult);
- }
- change = Math.min(change, compareResult.getChange());
- }
- return change;
- }
-
- /*
- * Return a Map contains bundle name, bundle version, bundle classpath, and bundle location
- * if the location of the specific plug-in version that we are looking for. Otherwise return
- * <code>null</code>
- */
- private Map matchesPlugin(File file, String pluginName, String pluginVersion) throws CoreException {
- if (!file.exists())
- return null;
- Map manifest = ManifestHelper.getElementsFromManifest(file, new String[] {BUNDLE_SYMBOLICNAME, BUNDLE_VERSION, BUNDLE_CLASSPATH});
- ManifestElement[] elements = (ManifestElement[]) manifest.get(BUNDLE_SYMBOLICNAME);
- if (elements == null)
- return null;
- String name = elements[0].getValue();
- if (name == null || !name.equals(pluginName))
- return null;
- elements = (ManifestElement[]) manifest.get(BUNDLE_VERSION);
- if (elements == null)
- return null;
- String version = elements[0].getValue();
- if (version == null || !version.equals(pluginVersion))
- return null;
- manifest.put(BUNDLE_LOCATION, new Path(file.getAbsolutePath()));
- return manifest;
- }
-
- /**
- * searches for plugin denoted by <code>pluginName</code> and <code>pluginVersion</code> under
- * plugin directory indicated by <code>plugDir</code>, and return a Map contains bundle name,
- * bundle version, bundle classpath, and bundle location if we find, return <code>null</code>
- * if we don't find
- *
- * @param plugDir plugin directory
- * @param pluginName plugin name
- * @param pluginVersion plugin version
- * @return full path of plugin
- */
- private Map searchPlugin(IPath plugDir, String pluginName, String pluginVersion) {
- // as an optimization first check to see if the plug-in directory name is the Eclipse-format
- try {
- // check to see if we can guess the JAR name
- File jar = plugDir.append(pluginName + UNDERSCORE_MARK + pluginVersion + DOT_MARK + JAR_FILE_EXTENSION).toFile();
- Map manifest = matchesPlugin(jar, pluginName, pluginVersion);
- if (manifest != null)
- return manifest;
- // didn't match the JAR so try and match the directory name
- File dir = plugDir.append(pluginName + UNDERSCORE_MARK + pluginVersion).toFile();
- manifest = matchesPlugin(dir, pluginName, pluginVersion);
- if (manifest != null)
- return manifest;
- } catch (CoreException e) {
- // ignore and catch below if re-thrown
- }
- File[] plugins = plugDir.toFile().listFiles();
- if (plugins == null)
- return null;
- for (int i = 0; i < plugins.length; i++) {
- try {
- Map manifest = matchesPlugin(plugins[i], pluginName, pluginVersion);
- if (manifest != null)
- return manifest;
- } catch (CoreException ce) {
- finalResult.merge(resultStatusHandler(IStatus.WARNING, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.PluginVersionCompare_couldNotReadManifestMsg, plugins[i].getAbsolutePath()), null));
- }
- }
- return null;
- }
-
- /**
- * generates a map which stores the key-value pairs; Feature id(or plugin id) is key and version is value;
- * or <code>null</code> when <code>objects</code> is empty
- *
- * @param objects array of feature or plugin entry objects
- * @return Map instance contains id-version pairs or <code>null</code>
- * @throws CoreException <p>if any nested CoreException has been thrown</p>
- */
- private Map generateTable(Object[] objects) throws CoreException {
- if (objects == null || objects.length == 0) {
- return null;
- }
- Hashtable hashTable = new Hashtable();
- // set the ids and versions of plugins into hashtable, id is key, version is value
- if (objects[0] instanceof IIncludedFeatureReference) {
- for (int i = 0; i < objects.length; i++)
- if (objects[i] != null && (compareOptionFileHelper == null ? true : compareOptionFileHelper.shouldCompare(objects[i])))
- hashTable.put(((IIncludedFeatureReference) objects[i]).getVersionedIdentifier().getIdentifier(), new Version(((IIncludedFeatureReference) objects[i]).getVersionedIdentifier().getVersion().toString()));
- } else if (objects[0] instanceof PluginEntryModel) {
- for (int i = 0; i < objects.length; i++)
- if (objects[i] != null && (compareOptionFileHelper == null ? true : compareOptionFileHelper.shouldCompare(objects[i])))
- hashTable.put(((PluginEntryModel) objects[i]).getPluginIdentifier(), new Version(((PluginEntryModel) objects[i]).getPluginVersion()));
- }
- return hashTable;
- }
-
- /**
- * Checks if there is any change from <version2> to <version1>
- *
- * @param version1 feature version
- * @param version2 feature version
- * @return compare result indicates change in major, minor, micro, qualifier ,no change or error if <code>version1</code> is lower than <code>version2</code>
- */
- private int checkVersionChange(Version version1, Version version2) {
- // overall compare
- if (version1.compareTo(version2) < 0) {
- return IVersionCompare.ERROR_OCCURRED;
- }
- // compare major version
- if (version1.getMajor() > version2.getMajor()) {
- return IVersionCompare.MAJOR_CHANGE;
- }
- // compare minor version
- if (version1.getMinor() > version2.getMinor()) {
- return IVersionCompare.MINOR_CHANGE;
- }
- // compare micro version
- if (version1.getMicro() > version2.getMicro()) {
- return IVersionCompare.MICRO_CHANGE;
- }
- // compare qualifier version
- if (version1.getQualifier().compareTo(version2.getQualifier()) > 0) {
- return IVersionCompare.QUALIFIER_CHANGE;
- }
- // if we got to this point, it means no change
- return IVersionCompare.NO_CHANGE;
- }
-
- /**
- * Returns the compare result for the feature with the specified key. Returns <code>null</code>
- * if it is not found.
- *
- * @param key FeatureKey instance (feature id + "#" + feature version)
- * @return the compare result or <code>null</code>
- */
- private CheckedItem searchFeatureResult(Object key) {
- return (CheckedItem) verifiedFeatureTable.get(key);
- }
-
- /**
- * Returns the compare result for the plugin with the specified key. Returns <code>null</code>
- * if it is not found.
- *
- * @param key compare source plugin key instance (plugin id + "#" + plugin version) + "#" +
- * compare destination plugin key instance (plugin id + "#" + plugin version)
- * @return the compare result or <code>null</code> if not found
- */
- private CheckedItem searchPluginResult(Object key) {
- return (CheckedItem) verifiedPluginTable.get(key);
- }
-
- /**
- * Return a new status object populated with the given information.
- *
- * @param severity severity of status
- * @param code indicates type of this IStatus instance, it could be one of: FEATURE_OVERALL_STATUS,
- * FEATURE_DETAIL_STATUS, PLUGIN_OVERALL_STATUS, PLUGIN_DETAIL_STATUS, PROCESS_ERROR_STATUS,
- * CLASS_OVERALL_STATUS, CLASS_DETAIL_STATUS
- * @param message the status message
- * @param exception exception which has been caught, or <code>null</code>
- * @return the new status object
- */
- private IStatus resultStatusHandler(int severity, int code, String message, Exception exception) {
- if (message == null) {
- if (exception != null)
- message = exception.getMessage();
- // extra check because the exception message can be null
- if (message == null)
- message = EMPTY_STRING;
- }
- return new Status(severity, PLUGIN_ID, code, message, exception);
- }
-
- /**
- * get path of "plugins/" based on the given feature file path
- * @param featurePath path of a "feature.xml" file
- * @return path of "plugins/"
- */
- private IPath getPluginDirPath(IPath featurePath) {
- IPath path = featurePath.removeLastSegments(3);
- return path.append(PLUGIN_DIR_NAME);
- }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/JavaClassVersionCompare.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/JavaClassVersionCompare.java
deleted file mode 100644
index 26a7fd9..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/JavaClassVersionCompare.java
+++ /dev/null
@@ -1,654 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.InputStream;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.Flags;
-import org.eclipse.jdt.core.Signature;
-import org.eclipse.jdt.core.util.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.pde.tools.versioning.IVersionCompare;
-
-/**
- * ClassSourceVersionCompare
- */
-public class JavaClassVersionCompare implements VersionCompareConstants {
- // MultiStatus instance used to store IStatus objects which indicate changes between two java classes
- private MultiStatus finalResult;
- //
- private boolean hasMajorChange;
- private boolean hasMinorChange;
- private boolean hasMicroChange;
- private boolean hasError;
-
- /**
- * Constructor
- */
- public JavaClassVersionCompare() {
- super();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.internal.versioning.VersionCompareDispatcher#checkJavaClassVersions(String, String, IProgressMonitor)
- */
- public int checkJavaClassVersions(MultiStatus status, Object javaClassObj1, Object javaClassObj2, IProgressMonitor monitor) throws CoreException {
- try {
- monitor = VersioningProgressMonitorWrapper.monitorFor(monitor);
- monitor.beginTask(Messages.JavaClassVersionCompare_comparingClassMsg, 100);
- finalResult = status;
- // get IClassFileReader instances of javaClassObj1 and javaClassObj2
- IClassFileReader classFileReader1 = ClassFileHelper.getReader(javaClassObj1);
- if (classFileReader1 == null) {
- if (javaClassObj1 instanceof InputStream)
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, Messages.JavaClassVersionCompare_inputStreamErrMsg, null));
- else
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.JavaClassVersionCompare_classFileNotLoadedMsg, javaClassObj1), null));
- return IVersionCompare.ERROR_OCCURRED;
- }
- IClassFileReader classFileReader2 = ClassFileHelper.getReader(javaClassObj2);
- // worked 5%
- monitor.worked(5);
- if (monitor.isCanceled())
- throw new OperationCanceledException();
- if (classFileReader2 == null) {
- if (javaClassObj2 instanceof InputStream)
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, Messages.JavaClassVersionCompare_inputStreamErrMsg, null));
- else
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.JavaClassVersionCompare_classFileNotLoadedMsg, javaClassObj2), null));
- return IVersionCompare.ERROR_OCCURRED;
- }
- // worked 5%
- monitor.worked(5);
- if (monitor.isCanceled())
- throw new OperationCanceledException();
- // initialize flags
- hasError = false;
- hasMajorChange = false;
- hasMinorChange = false;
- hasMicroChange = false;
- // compare two classes ( 90% workload)
- compareJavaClasses(classFileReader1, classFileReader2, new SubProgressMonitor(monitor, 90));
- // analysis result
- if (hasError) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.CLASS_OVERALL_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.JavaClassVersionCompare_classErrorOccurredMsg, charsToString(classFileReader1.getClassName())), null));
- return IVersionCompare.ERROR_OCCURRED;
- }
- if (hasMajorChange) {
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_OVERALL_STATUS, NLS.bind(Messages.JavaClassVersionCompare_classMajorChangeMsg, charsToString(classFileReader1.getClassName())), null));
- return IVersionCompare.MAJOR_CHANGE;
- }
- if (hasMinorChange) {
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_OVERALL_STATUS, NLS.bind(Messages.JavaClassVersionCompare_classMinorChangeMsg, charsToString(classFileReader1.getClassName())), null));
- return IVersionCompare.MINOR_CHANGE;
- }
- if (hasMicroChange) {
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_OVERALL_STATUS, NLS.bind(Messages.JavaClassVersionCompare_classMicroChange, charsToString(classFileReader1.getClassName())), null));
- return IVersionCompare.MICRO_CHANGE;
- }
- return IVersionCompare.NO_CHANGE;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * compares two java classes denoted by <code>classFileReader1</code> and <code>classFileReader2</code>,
- * and check if there is any change from <code>classFileReader2</code> to <code>classFileReader1</code>.
- *
- * @param classFileReader1
- * @param classFileReader2
- * @param monitor IProgressMonitor instance
- * @return compare result IStatus instance
- */
- private IStatus compareJavaClasses(IClassFileReader classFileReader1, IClassFileReader classFileReader2, IProgressMonitor monitor) {
- try {
- monitor.beginTask("", 100); //$NON-NLS-1$
- // compare class names
- String name1 = charsToString(classFileReader1.getClassName());
- String name2 = charsToString(classFileReader2.getClassName());
- if (!name1.equals(name2)) {
- finalResult.merge(resultStatusHandler(IStatus.WARNING, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.JavaClassVersionCompare_differentClassNameMsg, name1, name2), null));
- return finalResult;
- }
- // worked 5%
- monitor.worked(5);
- // compare super classes
- checkSuperClasses(name1, classFileReader1.getSuperclassName(), classFileReader2.getSuperclassName());
- // worked 5%
- monitor.worked(5);
- // compare interfaces
- checkInterfaces(name1, generateList(classFileReader1.getInterfaceNames()), generateList(classFileReader2.getInterfaceNames()));
- // worked 5%
- monitor.worked(5);
- // compare modifier of classes
- checkClassModifiers(name1, classFileReader1.getAccessFlags(), classFileReader2.getAccessFlags());
- // worked 5%
- monitor.worked(5);
- // compare fields
- checkElements(name1, generateTable(classFileReader1.getFieldInfos()), generateTable(classFileReader2.getFieldInfos()));
- // worked 40%
- monitor.worked(40);
- // compare methods (40%)
- checkElements(name1, generateTable(classFileReader1.getMethodInfos()), generateTable(classFileReader2.getMethodInfos()));
- return finalResult;
- } finally {
- monitor.done();
- }
- }
-
- /**
- * checks if super class has been changed
- *
- * @param className name of the class we are comparing
- * @param superClassName1
- * @param superClassName2
- */
- private void checkSuperClasses(String className, char[] superClassName1, char[] superClassName2) {
- if (!charsToString(superClassName1).equals(charsToString(superClassName2))) {
- Object[] msg = {className, charsToString(superClassName2), charsToString(superClassName1)};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_differentSuperClassMsg, msg), null));
- }
- }
-
- /**
- * checks if there is any change between <code>interfaceList1</code> and <code>interfaceList2</code>
- *
- * @param className name of the class we are comparing
- * @param interfaceList1 List of interface name
- * @param interfaceList2 List of interface name
- */
- private void checkInterfaces(String className, List interfaceList1, List interfaceList2) {
- for (Iterator nameIterator1 = interfaceList1.iterator(); nameIterator1.hasNext();) {
- // get a name of interface from interfaceNames1
- String name1 = (String) nameIterator1.next();
- // check if the interface is in interfaceNames2
- if (!interfaceList2.remove(name1))
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_newAddedInterfaceMsg, name1, className), null));
- }
- // check what does no longer exist
- for (Iterator nameIterator2 = interfaceList2.iterator(); nameIterator2.hasNext();) {
- String name2 = (String) nameIterator2.next();
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_deletedInterfaceMsg, name2, className), null));
- }
- }
-
- /**
- * checks two class modifiers to see if there is any change from <code>accessFlag2</code> to <code>accessFlag1</code>
- * @param accessFlag1
- * @param accessFlag2
- */
- private void checkClassModifiers(String className, int accessFlag1, int accessFlag2) {
- int change = accessFlag1 ^ accessFlag2;
- if (change != 0) {
- // if the visibility of a method has been narrowed, it is a change should be caught
- Object[] msg = {className, createChangedModifierString(accessFlag2, change), createChangedModifierString(accessFlag1, change)};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_classModifierChangedMsg, msg), null));
- }
- }
-
- /**
- * checks corresponding elements(IMethodInfo instances or IFieldInfo instances),
- * to see if there is any change
- * @param className className name of class to which values in <code>elementMap1</code>
- * (and <code>elementMap2</code>) belong
- * @param elementMap1 map contains IMethodInfo instances or IFieldInfo instances
- * @param elementMap2 map contains IMethodInfo instances or IFieldInfo instances
- */
- private void checkElements(String className, Map elementMap1, Map elementMap2) {
- for (Iterator iterator1 = elementMap1.keySet().iterator(); iterator1.hasNext();) {
- // get a key and value from methodMap1
- String key = (String) iterator1.next();
- Object value1 = elementMap1.get(key);
- // try to get the corresponding method from methodMap2
- Object value2 = elementMap2.get(key);
- if (value2 != null) {
- if (value1 instanceof IMethodInfo)
- // compare the corresponding methods
- compareMethodInfos(className, (IMethodInfo) value1, (IMethodInfo) value2);
- else
- // compare the corresponding fields in fieldInfoMap1 and fieldInfoMap2
- compareFieldInfos(className, (IFieldInfo) value1, (IFieldInfo) value2);
- elementMap2.remove(key);
- } else {
- if (value1 instanceof IMethodInfo) {
- if (Flags.isPublic(((IMethodInfo) value1).getAccessFlags()) || Flags.isProtected(((IMethodInfo) value1).getAccessFlags())) {
- Object[] msg = new Object[] {METHOD_TITLE, getSignatureString(value1), className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MINOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_newAddedMsg, msg), null));
- }
- } else {
- if (Flags.isPublic(((IFieldInfo) value1).getAccessFlags()) || Flags.isProtected(((IFieldInfo) value1).getAccessFlags())) {
- Object[] msg = new Object[] {FIELD_TITLE, getSignatureString(value1), className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MINOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_newAddedMsg, msg), null));
- }
- }
- }
- }
- // if there are anythings left in fieldInfoMap1, they no longer exist in the class
- for (Iterator iterator2 = elementMap2.values().iterator(); iterator2.hasNext();) {
- Object object = iterator2.next();
- if (object instanceof IMethodInfo) {
- // we only care which is protected or public
- if (Flags.isPublic(((IMethodInfo) object).getAccessFlags()) || Flags.isProtected(((IMethodInfo) object).getAccessFlags())) {
- Object[] msg = new Object[] {METHOD_TITLE, getSignatureString(object), className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_noLongerExistMsg, msg), null));
- }
- } else {
- if (Flags.isPublic(((IFieldInfo) object).getAccessFlags()) || Flags.isProtected(((IFieldInfo) object).getAccessFlags())) {
- Object[] msg = new Object[] {FIELD_TITLE, getSignatureString(object), className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_noLongerExistMsg, msg), null));
- }
- }
-
- }
- }
-
- /**
- * compares two IMethodInfo instances to find any change from <code>method2</code> to <code>method1</code>
- *
- * @param className name of class to which <code>method1</code>(and <code>method2</code>) belongs
- * @param method1 IMethodInfo instance
- * @param method2 IMethodInfo instance
- */
- private void compareMethodInfos(String className, IMethodInfo method1, IMethodInfo method2) {
- // compare AccessFlags (AccessFlags defines the modifiers of a method (e.g. public static final compareTo())
- int accessFlag1 = method1.getAccessFlags();
- int accessFlag2 = method2.getAccessFlags();
- // we just care about field who was public or protected
- if (!(Flags.isPublic(accessFlag2) || Flags.isProtected(accessFlag2)))
- return;
- if (isModifierNarrowed(accessFlag1, accessFlag2)) {
- // get what modifiers have been changed
- int change = accessFlag1 ^ accessFlag2;
- // if the visibility of a method has been narrowed, it is a change should be caught
- Object[] msg = {METHOD_TITLE, getSignatureString(method1), createChangedModifierString(accessFlag2, change), createChangedModifierString(accessFlag1, change), className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_ModifierChangedMsg, msg), null));
- }
- // compare isDeprecated(if a method has been deprecated)
- if (method1.isDeprecated() && !method2.isDeprecated()) {
- Object[] msg = {METHOD_TITLE, getSignatureString(method1), className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MICRO_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_deprecatedChangedMsg, msg), null));
- }
- // compare exceptions
- IExceptionAttribute exceptionAtrributes1 = method1.getExceptionAttribute();
- IExceptionAttribute exceptionAtrributes2 = method2.getExceptionAttribute();
- checkExceptions(className, getSignatureString(method1), exceptionAtrributes1, exceptionAtrributes2);
- }
-
- /**
- * check two IExceptionAttribute instances to see if there is any change
- * @param className name of the class to which the method denoted by <code>methodName</code> belongs
- * @param methodName name of the method to which exceptionsAttribute1(exceptionsAttribute2) belongs
- * @param exceptionsAttribute1
- * @param exceptionsAttribute2
- */
- private void checkExceptions(String className, String methodName, IExceptionAttribute exceptionsAttribute1, IExceptionAttribute exceptionsAttribute2) {
- List exceptionList1 = null;
- List exceptionList2 = null;
- if (exceptionsAttribute1 != null && exceptionsAttribute2 != null) {
- exceptionList1 = generateList(exceptionsAttribute1.getExceptionNames());
- exceptionList2 = generateList(exceptionsAttribute2.getExceptionNames());
- } else if (exceptionsAttribute1 != null) {
- exceptionList1 = generateList(exceptionsAttribute1.getExceptionNames());
- } else if (exceptionsAttribute2 != null) {
- exceptionList2 = generateList(exceptionsAttribute2.getExceptionNames());
- } else {
- return;
- }
- StringBuffer newAddedExceptions = new StringBuffer();
- if (exceptionList1 != null) {
- // check what is new added
- for (Iterator iterator1 = exceptionList1.iterator(); iterator1.hasNext();) {
- // get a exception from exceptionList1
- String exception1 = (String) iterator1.next();
- if (exceptionList2 != null) {
- // check if the exception is in exceptionList2
- if (!exceptionList2.remove(exception1)) {
- newAddedExceptions.append(exception1);
- newAddedExceptions.append(COMMA_MARK);
- }
- } else {
- // if exceptionList2 is null, it is new added
- newAddedExceptions.append(exception1);
- newAddedExceptions.append(COMMA_MARK);
- }
- }
- if (!newAddedExceptions.toString().trim().equals(EMPTY_STRING)) {
- Object[] msg = {newAddedExceptions.toString(), methodName, className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MINOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_newAddedExceptionMsg, msg), null));
- }
- }
- if (exceptionList2 != null) {
- StringBuffer notExistExceptions = new StringBuffer();
- // check what does no longer exist
- for (Iterator iterator2 = exceptionList2.iterator(); iterator2.hasNext();) {
- String exception2 = (String) iterator2.next();
- notExistExceptions.append(exception2);
- notExistExceptions.append(COMMA_MARK);
- }
- if (!notExistExceptions.toString().trim().equals(EMPTY_STRING)) {
- Object[] msg2 = {notExistExceptions.toString(), methodName, className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MINOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_noLongerExistExceptionMsg, msg2), null));
- }
- }
- }
-
- /**
- * checks if there is any change from <code>accessFlag2</code> to <code>accessFlag1</code>
- * we check changes which narrowed down the visibility of a field or method with protected or public modifier
- *
- * @param accessFlag1 denotes combined modifiers of a field or method
- * @param accessFlag2 denotes combined modifiers of a field or method
- * @return <code>true</code> if visibility has been narrowed down from <code>accessFlag2</code> to <code>accessFlag1</code>,
- * <code>false</code> otherwise
- */
- private boolean isModifierNarrowed(int accessFlag1, int accessFlag2) {
- if (Flags.isProtected(accessFlag2)) {
- // from protected to modifier other than public and protected
- if (!(Flags.isPublic(accessFlag1) || Flags.isProtected(accessFlag1))) {
- return true;
- }
- } else if (Flags.isPublic(accessFlag2)) {
- // from public to modifier other than public
- if (!Flags.isPublic(accessFlag1)) {
- return true;
- }
- } else {
- // only check which was protected or public
- return false;
- }
- // from non-final to final
- if (!Flags.isFinal(accessFlag2) && Flags.isFinal(accessFlag1)) {
- return true;
- }
- // from static to non-static
- if (Flags.isStatic(accessFlag2) && !Flags.isStatic(accessFlag1)) {
- return true;
- }
- // from non-abstract to abstract
- if (!Flags.isAbstract(accessFlag2) && Flags.isAbstract(accessFlag1)) {
- return true;
- }
- // volatile modifier changed
- if (Flags.isVolatile(accessFlag2) != Flags.isVolatile(accessFlag1)) {
- return true;
- }
- return false;
- }
-
- /**
- * check if <code>accessFlag</code> is <code>default</code>
- * @param accessFlag
- * @return <code>true</code> if <code>addessFlag</code> is <code>default</code>,
- * <code>false</code> otherwise
- */
- private boolean isDefault(int accessFlag) {
- return (accessFlag & DEFAULT_MODIFIER_TESTER) == 0 ? true : false;
- }
-
- /**
- * compares two IFieldInfo instances to find any change from <code>field1</code> to <code>field2</code>
- *
- * @param className name of class to which <code>field1</code>(and <code>field2</code>) belongs
- * @param field1 IFieldInfo instance
- * @param field2 IFieldInfo instance
- */
- private void compareFieldInfos(String className, IFieldInfo field1, IFieldInfo field2) {
- // compare AccessFlags (AccessFlags defines the modifiers of a field (e.g. public static final IVersionCompare.PLUGIN_ID = "org.eclipse.pde.tools.versioning")
- int accessFlag1 = field1.getAccessFlags();
- int accessFlag2 = field2.getAccessFlags();
- // we just care about field who was public or protected
- if (!(Flags.isPublic(accessFlag2) || Flags.isProtected(accessFlag2))) {
- return;
- }
- if (isModifierNarrowed(accessFlag1, accessFlag2)) {
- // get what modifiers have been changed
- int change = accessFlag1 ^ accessFlag2;
- // if the visibility of a field which was public or protected has been narrowed, it is a change should be caught
- Object[] msg = {FIELD_TITLE, charsToString(field1.getName()), createChangedModifierString(accessFlag2, change), createChangedModifierString(accessFlag1, change), className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_ModifierChangedMsg, msg), null));
- }
- // compare Descriptor (Descriptor describes the type of a field)
- String descriptor1 = charsToString(field1.getDescriptor());
- String descriptor2 = charsToString(field2.getDescriptor());
- if (!descriptor1.equals(descriptor2)) {
- String[] msg = {charsToString(field1.getName()), Signature.toString(descriptor2), Signature.toString(descriptor1), className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_descriptorChangedMsg, msg), null));
- }
- // compare isDeprecated (if a field has been deprecated)
- if (field1.isDeprecated() && !field2.isDeprecated()) {
- Object[] msg = {FIELD_TITLE, charsToString(field1.getName()), className};
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MICRO_CHANGE, NLS.bind(Messages.JavaClassVersionCompare_deprecatedChangedMsg, msg), null));
- }
- }
-
- /**
- * creates modifier string which includes multiple modifiers(e.g. "public static final")
- *
- * @param accessFlags accessFlags of field or method
- * @param changedFlags indicates change on accessFlags
- * @return modifier string
- */
- private String createChangedModifierString(int accessFlags, int changedFlags) {
- StringBuffer buffer = new StringBuffer();
- if (Flags.isPublic(changedFlags)) {
- if (Flags.isPublic(accessFlags)) {
- buffer.append(PUBLIC_STRING);
- buffer.append(SPACE);
- } else if (isDefault(accessFlags)) {
- buffer.append(DEFAULT_STRING);
- buffer.append(SPACE);
- }
- }
- if (Flags.isProtected(changedFlags)) {
- if (Flags.isProtected(accessFlags)) {
- buffer.append(PROTECTED_STRING);
- buffer.append(SPACE);
- } else if (isDefault(accessFlags)) {
- buffer.append(DEFAULT_STRING);
- buffer.append(SPACE);
- }
- }
- if (Flags.isPrivate(changedFlags)) {
- if (Flags.isPrivate(accessFlags)) {
- buffer.append(PRIVATE_STRING);
- buffer.append(SPACE);
- } else if (isDefault(accessFlags)) {
- buffer.append(DEFAULT_STRING);
- buffer.append(SPACE);
- }
- }
- if (Flags.isStatic(changedFlags)) {
- if (Flags.isStatic(accessFlags)) {
- buffer.append(STATIC_STRING);
- buffer.append(SPACE);
- } else {
- buffer.append(NON_STATIC_STRING);
- buffer.append(SPACE);
- }
- }
- if (Flags.isFinal(changedFlags)) {
- if (Flags.isFinal(accessFlags)) {
- buffer.append(FINAL_STRING);
- buffer.append(SPACE);
- } else {
- buffer.append(NON_FINAL_STRING);
- buffer.append(SPACE);
- }
- }
- if (Flags.isAbstract(changedFlags)) {
- if (Flags.isAbstract(accessFlags)) {
- buffer.append(ABSTRACT_STRING);
- buffer.append(SPACE);
- } else {
- buffer.append(NON_ABSTRACT_STRING);
- buffer.append(SPACE);
- }
- }
- if (Flags.isVolatile(changedFlags)) {
- if (Flags.isVolatile(accessFlags)) {
- buffer.append(VOLATILE_STRING);
- buffer.append(SPACE);
- } else {
- buffer.append(NON_VOLATILE_STRING);
- buffer.append(SPACE);
- }
- }
- return buffer.toString().trim();
- }
-
- /**
- * converts char array to String
- * @param chars array of char
- * @return String which represents the content of <code>chars</code>
- */
- private String charsToString(char[] chars) {
- return new String(chars);
- }
-
- /**
- * generates a List which stores instances in array <code>objects</code>
- *
- * @param objects instance objects
- * @return List
- */
- private List generateList(Object[] objects) {
- ArrayList list = new ArrayList(0);
- if (objects == null || objects.length == 0)
- return list;
- if (objects[0] instanceof char[])
- for (int i = 0; i < objects.length; i++)
- list.add(charsToString((char[]) objects[i]));
- else
- for (int i = 0; i < objects.length; i++)
- list.add(objects[i]);
- return list;
- }
-
- /**
- * converts the given object signature to a readable string
- * @param object IFieldInfo instance of IMethodInfo instance
- * @return String type signature
- */
- private String getSignatureString(Object object) {
- StringBuffer buffer = new StringBuffer();
- if (object instanceof IMethodInfo) {
- IMethodInfo method = (IMethodInfo) object;
- buffer.append(Flags.toString(method.getAccessFlags()));
- buffer.append(SPACE);
- buffer.append(Signature.toString(charsToString(method.getDescriptor()), charsToString(method.getName()), null, false, true));
- } else {
- IFieldInfo field = (IFieldInfo) object;
- buffer.append(Flags.toString(field.getAccessFlags()));
- buffer.append(SPACE);
- buffer.append(Signature.toString(charsToString(field.getDescriptor())));
- buffer.append(SPACE);
- buffer.append(charsToString(field.getName()));
- }
- return buffer.toString();
- }
-
- /**
- * generates a map which stores IField instances or IMethod instances
- *
- * @param objects array of IMethodInfo or IFieldInfo instances
- * @return Map instance contains IField instances or IMethod instances
- */
- private Map generateTable(Object[] objects) {
- Hashtable hashTable = new Hashtable(0);
- if (objects == null || objects.length == 0) {
- return hashTable;
- }
- // set hashtable
- if (objects[0] instanceof IFieldInfo) {
- for (int i = 0; i < objects.length; i++) {
- if (objects[i] != null)
- hashTable.put(charsToString(((IFieldInfo) objects[i]).getName()), objects[i]);
- }
- } else if (objects[0] instanceof IMethodInfo) {
- for (int i = 0; i < objects.length; i++) {
- if (objects[i] != null)
- hashTable.put(getMethodKey((IMethodInfo) objects[i]), objects[i]);
- }
- }
- return hashTable;
- }
-
- /**
- * get key of a method. Key of a method is a String which
- * includes the retype of the method,name of the method and the parameter types of the method
- * (e.g. key of public int foo(int , String) is "int#foo#int#String"
- * @param method
- * @return key of a method
- */
- private String getMethodKey(IMethodInfo method) {
- StringBuffer buffer = new StringBuffer();
- // append return type
- buffer.append(method.getDescriptor());
- // append name of method
- buffer.append(charsToString(method.getName()));
- char[][] parameters = Signature.getParameterTypes(method.getDescriptor());
- // append parameter types
- if (parameters != null) {
- for (int i = 0; i < parameters.length; i++) {
- buffer.append(KEY_SEPARATOR);
- buffer.append(charsToString(parameters[i]));
- }
- }
- return buffer.toString();
- }
-
- /**
- * Return a new status object populated with the given information.
- *
- * @param severity severity of status
- * @param code indicates type of this IStatus instance, it could be one of: FEATURE_OVERALL_STATUS,
- * FEATURE_DETAIL_STATUS, PLUGIN_OVERALL_STATUS, PLUGIN_DETAIL_STATUS, PROCESS_ERROR_STATUS,
- * CLASS_OVERALL_STATUS, CLASS_DETAIL_STATUS
- * @param message the status message
- * @param exception exception which has been caught, or <code>null</code>
- * @return the new status object
- */
- private IStatus resultStatusHandler(int severity, int code, String message, Exception exception) {
- processed(code);
-
- if (message == null) {
- if (exception != null)
- message = exception.getMessage();
- // extra check because the exception message can be null
- if (message == null)
- message = EMPTY_STRING;
- }
- return new Status(severity, PLUGIN_ID, code, message, exception);
- }
-
- /**
- * checks what kind of change does <code>code</code> represent
- * @param code
- */
- private void processed(int code) {
- if ((code & IVersionCompare.ERROR_OCCURRED) != 0){
- hasError = true;
- return;
- }
- if ((code & IVersionCompare.MAJOR_CHANGE) != 0){
- hasMajorChange = true;
- return;
- }
- if ((code & IVersionCompare.MINOR_CHANGE) != 0){
- hasMinorChange = true;
- return;
- }
- if ((code & IVersionCompare.MICRO_CHANGE) != 0)
- hasMicroChange = true;
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/ManifestHelper.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/ManifestHelper.java
deleted file mode 100644
index 7876a57..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/ManifestHelper.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.*;
-import java.util.*;
-import java.util.jar.*;
-import java.util.jar.Attributes.Name;
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.service.pluginconversion.PluginConversionException;
-import org.eclipse.osgi.service.pluginconversion.PluginConverter;
-import org.eclipse.osgi.util.ManifestElement;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.BundleException;
-
-/**
- * Helper class to manipulate manifest files.
- */
-public class ManifestHelper implements VersionCompareConstants {
-
- /**
- * gets attributes from plugin.xml file in a plugin jar or directory denoted by <code>file</code>
- * @param file File instance which denotes a plugin jar or directory
- * @return Map which contains attributes of plugin.xml
- */
- private static Map getAttributesFromPluginManifest(File file) {
- PluginConverter pluginConverter = Activator.getPluginConverter();
- if (pluginConverter == null) {
- // TODO log and return
- // throw new CoreException(new Status(IStatus.WARNING, PLUGIN_ID, IStatus.WARNING, Messages.PluginVersionCompare_noPluginConverterInstanceMsg, null));
- return null;
- }
- Dictionary pluginXML = null;
- try {
- pluginXML = pluginConverter.convertManifest(file, true, null, true, null);
- } catch (PluginConversionException pce) {
- // TODO log return
- // throw new CoreException(new Status(IStatus.WARNING, PLUGIN_ID, IStatus.WARNING, NLS.bind(Messages.PluginVersionCompare_couldNotConvertManifestMsg, file.getAbsoluteFile()), pce));
- return null;
- }
- // we need to convert the dictionary into a map. Too bad.
- Map result = new HashMap();
- for (Enumeration e = pluginXML.keys(); e.hasMoreElements();) {
- String key = (String) e.nextElement();
- result.put(key, pluginXML.get(key));
- }
- return result;
- }
-
- /**
- * get ManifestElement array of element denoted by <code>elementName</code>
- * from manifest file of a jar or a plugin directory
- *
- * @param file File instance which represents a bundle directory(or jar file)
- * @param keys the names of the elements we want to retrieve
- * @return ManifestElement array of element denoted by <code>elementName</code> or <code>null</code> if
- * element has not been found
- * @throws CoreException <p>if {@link BundleException} has been thrown</p>
- */
- public static Map getElementsFromManifest(File file, String[] keys) throws CoreException {
- Map result = new HashMap();
- // try to get attributes from /META-INF/MANIFEST.MF file first
- Attributes attributes = getAttributes(file);
- // if we didn't get information, try to get information from plugin.xml file
- Map map = attributes == null ? getAttributesFromPluginManifest(file) : convertAttributes(attributes);
- // TODO log and return
- if (map == null)
- return result;
- for (int i = 0; i < keys.length; i++) {
- String value = (String) map.get(keys[i]);
- if (value == null) {
- // TODO log? we couldn't find the key we were looking for
- result.put(keys[i], null);
- continue;
- }
- try {
- // get elements of attribute denoted by elementName
- ManifestElement[] elements = ManifestElement.parseHeader(keys[i], value);
- // we got a result so add it to the list and move to the next key
- result.put(keys[i], elements);
- } catch (BundleException be) {
- throw new CoreException(new Status(IStatus.WARNING, PLUGIN_ID, IStatus.WARNING, NLS.bind(Messages.PluginVersionCompare_couldNotParseHeaderMsg, value), be));
- }
- }
- return result;
- }
-
- /*
- * Convert the given Attributes object into a Map so we can use simple Map APIs on
- * it later.
- */
- private static Map convertAttributes(Attributes attributes) {
- Map result = new HashMap();
- for (Iterator iter = attributes.keySet().iterator(); iter.hasNext();) {
- Attributes.Name key = (Name) iter.next();
- result.put(key.toString(), attributes.getValue(key));
- }
- return result;
- }
-
- /**
- * Return the attributes that are in the given manifest file.
- *
- * @param file manifest file
- * @return the attributes of the manifest file, or <code>null</code>
- * @throws IOException <p>if any IOException has been thrown</p>
- */
- private static Attributes getAttributes(File file) {
- // if file is a directory, we try to get /META-INF/MANIFEST.MF file under it
- if (file.isDirectory()) {
- File manifestFile = new File(file, BUNDLE_MANIFEST);
- if (!manifestFile.exists())
- return null;
- InputStream input = null;
- try {
- input = new BufferedInputStream(new FileInputStream(manifestFile));
- return new Manifest(input).getMainAttributes();
- } catch (IOException e) {
- return null;
- } finally {
- if (input != null)
- try {
- input.close();
- } catch (IOException e) {
- // ignore
- }
- }
- }
- // if file is a jar, we try to get /META-INF/MANIFEST.MF file in it
- if (file.getName().endsWith(JAR_FILE_EXTENSION)) {
- try {
- return new JarFile(file).getManifest().getMainAttributes();
- } catch (IOException e) {
- return null;
- }
- }
- // we don't have a directory or JAR file
- return null;
- }
-
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/Messages.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/Messages.java
deleted file mode 100644
index f3cc9c8..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/Messages.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class Messages extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.pde.tools.internal.versioning.messages";//$NON-NLS-1$
-
- public static String FeatureModelTable_couldNotReadConfigFileMsg;
- public static String FeatureModelTable_featureFileParseErrorMsg;
-
- public static String FeatureModelTable_featureSourceErrorMsg;
- public static String FeatureModelTable_urlConvertErrorMsg;
- public static String FeatureVersionCompare_comparingFeatureMsg;
- public static String FeatureVersionCompare_comparingReferenceMsg;
- public static String FeatureVersionCompare_deletedFeaturePluginMsg;
- public static String FeatureVersionCompare_destIncludedFeatureNotFoundMsg;
- public static String FeatureVersionCompare_errorInVerifyPluginMsg;
- public static String FeatureVersionCompare_errorReasonMsg;
- public static String FeatureVersionCompare_featureFileErrorMsg;
- public static String FeatureVersionCompare_incorrectNewVersionMsg;
- public static String FeatureVersionCompare_incorrectNewVersionMsg2;
-
- public static String FeatureVersionCompare_incorrectPluginVersionChange;
- public static String FeatureVersionCompare_incorrectPluginVersionMsg;
- public static String FeatureVersionCompare_inputErrorMsg;
- public static String FeatureVersionCompare_lowerNewVersion;
- public static String FeatureVersionCompare_nestedErrorOccurredMsg;
- public static String FeatureVersionCompare_newAddedFeaturePlingMsg;
- public static String FeatureVersionCompare_newIntroducedFeatureMsg;
- public static String FeatureVersionCompare_newVersionLowerThanOldMsg;
- public static String FeatureVersionCompare_noFeatureFoundMsg;
- public static String FeatureVersionCompare_noFeaturesFoundInConfigMsg;
- public static String FeatureVersionCompare_versionChangeIncorrectMsg;
- public static String FeatureVersionCompare_pluginNotFoundMsg;
- public static String FeatureVersionCompare_sourceIncludedFeatureNotFoundMsg;
- public static String FeatureVersionCompare_verifyingFeatureMsg;
- public static String JavaClassVersionCompare_classErrorOccurredMsg;
- public static String JavaClassVersionCompare_classFileNotLoadedMsg;
- public static String JavaClassVersionCompare_classMajorChangeMsg;
- public static String JavaClassVersionCompare_classMicroChange;
- public static String JavaClassVersionCompare_classMinorChangeMsg;
- public static String JavaClassVersionCompare_classModifierChangedMsg;
- public static String JavaClassVersionCompare_comparingClassMsg;
- public static String JavaClassVersionCompare_deletedInterfaceMsg;
- public static String JavaClassVersionCompare_deprecatedChangedMsg;
- public static String JavaClassVersionCompare_descriptorChangedMsg;
- public static String JavaClassVersionCompare_differentClassNameMsg;
- public static String JavaClassVersionCompare_differentSuperClassMsg;
- public static String JavaClassVersionCompare_inputStreamErrMsg;
- public static String JavaClassVersionCompare_ModifierChangedMsg;
- public static String JavaClassVersionCompare_newAddedExceptionMsg;
- public static String JavaClassVersionCompare_newAddedInterfaceMsg;
- public static String JavaClassVersionCompare_newAddedMsg;
- public static String JavaClassVersionCompare_noLongerExistExceptionMsg;
- public static String JavaClassVersionCompare_noLongerExistMsg;
- public static String JavaClassVersionCompare_unexpectedTypeMsg;
-
- public static String PluginVersionCompare_classPathJarNotFoundMsg;
- public static String PluginVersionCompare_comparingPluginMsg;
- public static String PluginVersionCompare_couldNotConvertManifestMsg;
- public static String PluginVersionCompare_couldNotOpenJarMsg;
- public static String PluginVersionCompare_couldNotParseHeaderMsg;
- public static String PluginVersionCompare_couldNotReadAttributesMsg;
- public static String PluginVersionCompare_couldNotReadClassMsg;
- public static String PluginVersionCompare_couldNotReadClassPathMsg;
- public static String PluginVersionCompare_couldNotReadManifestMsg;
- public static String PluginVersionCompare_destinationClassNotFoundMsg;
- public static String PluginVersionCompare_errorWhenCompareClassesMsg;
- public static String PluginVersionCompare_failCloseJarEntryAfterExtractMsg;
- public static String PluginVersionCompare_failCloseJarMsg;
- public static String PluginVersionCompare_failCloseTmpAfterCreateMsg;
- public static String PluginVersionCompare_failCreatTmpJarMsg;
- public static String PluginVersionCompare_failExtractJarEntryMsg;
- public static String PluginVersionCompare_failOpenJarEntryMsg;
- public static String PluginVersionCompare_failOpenTmpJarMsg;
- public static String PluginVersionCompare_finishedProcessPluginMsg;
- public static String PluginVersionCompare_inputNotExistMsg;
- public static String PluginVersionCompare_inValidClassPathMsg;
- public static String PluginVersionCompare_noPluginConverterInstanceMsg;
- public static String PluginVersionCompare_noValidClassFoundMsg;
-
- public static String PluginVersionCompare_pluginErrorOccurredMsg;
- public static String PluginVersionCompare_pluginMajorChangeMsg;
- public static String PluginVersionCompare_pluginMicroChangeMsg;
- public static String PluginVersionCompare_pluginMinorChangeMsg;
- public static String PluginVersionCompare_sourceClassNotFoundMsg;
-
- public static String VersionCompareDispatcher_closeFileFailedMsg;
-
- public static String VersionCompareDispatcher_failedCreateDocMsg;
-
- public static String VersionCompareDispatcher_failedWriteXMLFileMsg;
- public static String VersionCompareDispatcher_fileNotFoundMsg;
-
- public static String VersionCompareDispatcher_invalidXMLFileNameMsg;
- public static String VersionCompareDispatcher_readPropertyFailedMsg;
- public static String VersionVerifier_compareOKMsg;
- public static String VersionVerifier_coreExceptionMsg;
- public static String VersionVerifier_createFileErrorMsg;
- public static String VersionVerifier_messageNumberMsg;
- public static String VersionVerifier_mixedInputMsg;
- public static String VersionVerifier_pathIsNotFileMsg;
- public static String VersionVerifier_summaryMsg;
- static {
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages() {
- // Do not instantiate
- }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/PluginVersionCompare.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/PluginVersionCompare.java
deleted file mode 100644
index 25d42cf..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/PluginVersionCompare.java
+++ /dev/null
@@ -1,889 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.Flags;
-import org.eclipse.jdt.core.util.IClassFileReader;
-import org.eclipse.osgi.util.ManifestElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.pde.tools.versioning.IVersionCompare;
-
-/**
- * PluginVersionCompare
- */
-public class PluginVersionCompare implements VersionCompareConstants {
- private final static String CLASS_NAME = "PluginVersionCompare"; //$NON-NLS-1$
- private final static int NEW_CLASS = 0;
- private final static int DELETED_CLASS = 1;
- private final static int CREATE_FILE_TIMES = 5;
- // MultiStatus instance used to store error or warning messages
- private MultiStatus finalResult;
- // JavaClassVersionCompare instance
- JavaClassVersionCompare classCompare;
- //
- private boolean hasMajorChange;
- private boolean hasMinorChange;
- private boolean hasMicroChange;
- private boolean hasError;
- // for debug
- private long startTime;
- private boolean DEBUG = false;
- private static final String DEBUG_OPTION = VersionCompareConstants.PLUGIN_ID + "/debug/plugins"; //$NON-NLS-1$
-
- /**
- * constructor
- */
- public PluginVersionCompare() {
- super();
- classCompare = new JavaClassVersionCompare();
- DEBUG = Activator.getBooleanDebugOption(DEBUG_OPTION);
- }
-
- /*
- * Log the given debug message.
- */
- private void debug(String message) {
- if (DEBUG) {
- Activator.debug(message);
- }
- }
-
- /**
- * Compares the two given plug-ins which each other and reports a status object indicating
- * whether or not the version number of the plug-ins have been incremented appropriately
- * based on the relative changes.
- *
- * <p>
- * The plug-in parameters can be instances of any of the following types:
- * <ul>
- * <li>{@link java.lang.String} - which denotes the plug-in's jar file name or directory
- * <li>{@link java.net.URL} - which denotes the plug-in's jar file name or directory
- * <li>{@link ManifestElement}[] - which denotes the manifest elements of Bundle_ClassPath of <code>plugin1</code>
- * <li>{@link java.io.File} - which denotes the plug-in's jar file name or directory
- * <li>{@link ManifestElement}[] - which denotes the manifest elements of Bundle_ClassPath of <code>plugin2</code>
- * </ul>
- * </p>
- *
- * @param plugin1 a plug-in reference
- * @param elements1 Bundle_ClassPath of <code>plugin1</code>
- * @param plugin2 a plug-in reference
- * @param elements2 Bundle_ClassPath of <code>plugin2</code>
- * @param status a MultiStatus instance to carry out compare information
- * @param monitor IProgressMonitor instance which will monitor the progress during plugin comparing
- * @return int number which indicates compare result, it could be MAJOR_CHANGE,MINOR_CHANGE,MICRO_CHANGE,or NO_CHANGE
- * @throws CoreException if the parameters are of an incorrect type or if an error occurred during the comparison
- */
- protected int checkPluginVersions(MultiStatus status, Object plugin1, ManifestElement[] elements1, Object plugin2, ManifestElement[] elements2, IProgressMonitor monitor) throws CoreException {
- try {
- monitor = VersioningProgressMonitorWrapper.monitorFor(monitor);
- monitor.beginTask(Messages.PluginVersionCompare_comparingPluginMsg, 100);
- finalResult = status;
- // convert input objects into Files
- File file1 = convertInputObject(plugin1);
- File file2 = convertInputObject(plugin2);
- startTime = System.currentTimeMillis();
- // initialize flags
- hasError=false;
- hasMajorChange = false;
- hasMinorChange = false;
- hasMicroChange = false;
- // get class URL Tables
- Map classFileURLTable1 = null;
- Map classFileURLTable2 = null;
- classFileURLTable1 = generateClassFileURLTableFromFile(file1, elements1);
- // worked 1%
- monitor.worked(1);
- classFileURLTable2 = generateClassFileURLTableFromFile(file2, elements2);
- // worked 1%
- monitor.worked(1);
- //
- return checkPluginVersions(file1.getName(), classFileURLTable1, classFileURLTable2, new SubProgressMonitor(monitor, 98));
- } finally {
- monitor.done();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkPluginVersions(String, String, IProgressMonitor)
- */
- public int checkPluginVersions(MultiStatus status, Object plugin1, Object plugin2, IProgressMonitor monitor) throws CoreException {
- try {
- monitor = VersioningProgressMonitorWrapper.monitorFor(monitor);
- monitor.beginTask(Messages.PluginVersionCompare_comparingPluginMsg, 100);
- finalResult = status;
- // convert input objects into Files
- File file1 = convertInputObject(plugin1);
- File file2 = convertInputObject(plugin2);
- startTime = System.currentTimeMillis();
- // initialize flags
- hasError=false;
- hasMajorChange = false;
- hasMinorChange = false;
- hasMicroChange = false;
- // get class URL Tables
- Map classFileURLTable1 = null;
- Map classFileURLTable2 = null;
- classFileURLTable1 = generateClassFileURLTable(file1);
- // worked 2%
- monitor.worked(2);
- classFileURLTable2 = generateClassFileURLTable(file2);
- // worked 2%
- monitor.worked(2);
- // check plugin version ( 96% workload)
- return checkPluginVersions(file1.getName(), classFileURLTable1, classFileURLTable2, new SubProgressMonitor(monitor, 96));
- } finally {
- monitor.done();
- }
- }
-
- /**
- * Compares the corresponding classes denoted by URLS in <code>classFileURLTable1</code> to those in <code>classFileURLTable2</code>
- * @param pluginName name of plugin
- * @param classFileURLTable1 contains URL lists
- * @param classFileURLTable2 contains URL lists
- * @param monitor IProgressMonitor instance
- * @return change with the highest priority
- * @throws CoreException <p>if any nested CoreException has been thrown</p>
- */
- private int checkPluginVersions(String pluginName, Map classFileURLTable1, Map classFileURLTable2, IProgressMonitor monitor) {
- // if both tables are empty, we treat it as no change
- if (classFileURLTable1.size() == 0 && classFileURLTable2.size() == 0) {
- debug(NLS.bind(Messages.PluginVersionCompare_finishedProcessPluginMsg, pluginName, String.valueOf(System.currentTimeMillis() - startTime)));
- return IVersionCompare.NO_CHANGE;
- }
- // if size of table1 is 0, size of table2 is not 0, we treat it as major change (same as some class has been deleted)
- if (classFileURLTable1.size() == 0) {
- // check if there is any class no longer exists
- processChangedClasseLists(classFileURLTable1, DELETED_CLASS);
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PLUGIN_OVERALL_STATUS, NLS.bind(Messages.PluginVersionCompare_pluginMajorChangeMsg, pluginName), null));
- debug(NLS.bind(Messages.PluginVersionCompare_finishedProcessPluginMsg, pluginName, String.valueOf(System.currentTimeMillis() - startTime)));
- return IVersionCompare.MAJOR_CHANGE;
- }
- // if size of table2 is 0, size of table1 is not 0, we treat it as minor change (same as some class has been new added)
- if (classFileURLTable2.size() == 0) {
- // check if there is any class new added
- processChangedClasseLists(classFileURLTable1, NEW_CLASS);
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PLUGIN_OVERALL_STATUS, NLS.bind(Messages.PluginVersionCompare_pluginMinorChangeMsg, pluginName), null));
- debug(NLS.bind(Messages.PluginVersionCompare_finishedProcessPluginMsg, pluginName, String.valueOf(System.currentTimeMillis() - startTime)));
- return IVersionCompare.MINOR_CHANGE;
- }
- // compare classes
- compareClasses(classFileURLTable1, classFileURLTable2, monitor);
- // delete temporary directory
- deleteTmpDirectory();
- //
- debug(NLS.bind(Messages.PluginVersionCompare_finishedProcessPluginMsg, pluginName, String.valueOf(System.currentTimeMillis() - startTime)));
- // analysis result
- if (hasError) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PLUGIN_OVERALL_STATUS, NLS.bind(Messages.PluginVersionCompare_pluginErrorOccurredMsg, pluginName), null));
- return IVersionCompare.ERROR_OCCURRED;
- }
- if (hasMajorChange) {
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PLUGIN_OVERALL_STATUS, NLS.bind(Messages.PluginVersionCompare_pluginMajorChangeMsg, pluginName), null));
- return IVersionCompare.MAJOR_CHANGE;
- }
- if (hasMinorChange) {
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PLUGIN_OVERALL_STATUS, NLS.bind(Messages.PluginVersionCompare_pluginMinorChangeMsg, pluginName), null));
- return IVersionCompare.MINOR_CHANGE;
- }
- if (hasMicroChange) {
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PLUGIN_OVERALL_STATUS, NLS.bind(Messages.PluginVersionCompare_pluginMicroChangeMsg, pluginName), null));
- return IVersionCompare.MICRO_CHANGE;
- }
- return IVersionCompare.NO_CHANGE;
- }
-
- /**
- * compares corresponding classes indicated by the URLs in two maps
- * @param classFileURLTable1
- * @param classFileURLTable2
- * @param monitor IProgressMonitor instance
- */
- private void compareClasses(Map classFileURLTable1, Map classFileURLTable2, IProgressMonitor monitor) {
- try {
- monitor.beginTask("", classFileURLTable1.size() + 1); //$NON-NLS-1$
- for (Iterator iterator1 = classFileURLTable1.keySet().iterator(); iterator1.hasNext();) {
- if (monitor.isCanceled())
- throw new OperationCanceledException();
- Object key = iterator1.next();
- // get URL lists of the same class file name
- List value1 = (List) classFileURLTable1.get(key);
- List value2 = (List) classFileURLTable2.get(key);
- if (value2 == null) {
- processChangedClasses(value1.toArray(), NEW_CLASS);
- continue;
- }
- List classFileReaderList1 = generateClassFileReaderList(value1);
- List classFileReaderList2 = generateClassFileReaderList(value2);
- compareClasses(classFileReaderList1, classFileReaderList2, new SubProgressMonitor(monitor, 1));
- // delete the value from classFileURLTable2
- classFileURLTable2.remove(key);
- }
- // check if there is any class no longer exists
- processChangedClasseLists(classFileURLTable2, DELETED_CLASS);
- monitor.worked(1);
- } finally {
- monitor.done();
- }
- }
-
- /**
- * compares IClassFileReader instances in <code>list1</code> to the corresponding one
- * in <code>list2</code>
- * @param list1 contains IClassFileReader instances
- * @param list2 contains IClassFileReader instances
- * @param monitor IProgressMonitor instance
- */
- private void compareClasses(List list1, List list2, IProgressMonitor monitor) {
- try {
- monitor.beginTask("", list1.size() + 1); //$NON-NLS-1$
- for (Iterator classIterator1 = list1.iterator(); classIterator1.hasNext();) {
- if (monitor.isCanceled())
- throw new OperationCanceledException();
- IClassFileReader classFileReader1 = (IClassFileReader) classIterator1.next();
- String className1 = charsToString(classFileReader1.getClassName());
- Iterator classIterator2;
- boolean beCompared = false;
- for (classIterator2 = list2.iterator(); classIterator2.hasNext();) {
- IClassFileReader classFileReader2 = (IClassFileReader) classIterator2.next();
- if (className1.equals(charsToString(classFileReader2.getClassName()))) {
- // compare two IClassFileReader instances and merge the result into finalResult
- try {
- processed(classCompare.checkJavaClassVersions(finalResult, classFileReader1, classFileReader2, new SubProgressMonitor(monitor, 1)));
- } catch (CoreException ce) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_errorWhenCompareClassesMsg, charsToString(classFileReader1.getClassName())), null));
- }
- list2.remove(classFileReader2);
- beCompared = true;
- break;
- }
- }
- if (!beCompared && shouldProcess(classFileReader1)) {
- // new added class
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PLUGIN_DETAIL_STATUS | IVersionCompare.MINOR_CHANGE, NLS.bind(Messages.PluginVersionCompare_destinationClassNotFoundMsg, charsToString(classFileReader1.getClassName())), null));
- }
- }
- // no longer exist classes
- for (Iterator iterator2 = list2.iterator(); iterator2.hasNext();) {
- IClassFileReader classFileReader = (IClassFileReader) iterator2.next();
- if (shouldProcess(classFileReader))
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PLUGIN_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.PluginVersionCompare_sourceClassNotFoundMsg, charsToString(classFileReader.getClassName())), null));
- }
- monitor.worked(1);
- } finally {
- monitor.done();
- }
- }
-
- /**
- * processes no long existed classe lists contained in <code>map</code>
- * @param map Map which contains class name and URL list pairs which no longer exist in the new plugin
- */
- private void processChangedClasseLists(Map map, int flag){
- for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {
- List list = (List) iterator.next();
- processChangedClasses(list.toArray(), flag);
- }
- }
-
- /**
- * process classes indicated by URL instances in <code>classArray</code> depending on <code>flag</code>
- * if <code>flag</code> is NEW_CLASS, all the IClassFileReader instances in <code>classArray</code> are new added classes
- * if <code>flag</code> is DELETED_CLASS, all the IClassFileReader instances in <code>classArray</code> are classes no longer exist
- * @param classArray contains URL instances
- * @param flag could be NEW_CLASS or DELETED_CLASS
- */
- private void processChangedClasses(Object[] classArray, int flag) {
- if (classArray.length == 0)
- return;
- for (int i = 0; i < classArray.length; i++) {
- if (!(classArray[i] instanceof URL))
- continue;
- try {
- IClassFileReader classFileReader = ClassFileHelper.getReader(classArray[i]);
- if (classFileReader == null) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_couldNotReadClassMsg, ((URL) classArray[i]).getFile()), null));
- continue;
- }
- if (shouldProcess(classFileReader) && shouldProcess(charsToString(classFileReader.getClassName())))
- if (flag == NEW_CLASS)
- // new added class
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_OVERALL_STATUS | IVersionCompare.MINOR_CHANGE, NLS.bind(Messages.PluginVersionCompare_destinationClassNotFoundMsg, charsToString(classFileReader.getClassName())), null));
- else if (flag == DELETED_CLASS)
- // deleted class
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.CLASS_OVERALL_STATUS | IVersionCompare.MAJOR_CHANGE, NLS.bind(Messages.PluginVersionCompare_sourceClassNotFoundMsg, charsToString(classFileReader.getClassName())), null));
- } catch (CoreException e) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_couldNotReadClassMsg, ((URL) classArray[i]).getFile()), e));
- }
- }
- }
-
- /**
- * generates a List which stores IClassFileReader instances indicated by URLs in <code>list</code>
- *
- * @param list contains URL instances
- * @return List contains IClassFileReader instances
- */
- private List generateClassFileReaderList(List list) {
- ArrayList newList = new ArrayList(0);
- if (list == null || list.size() == 0)
- return newList;
- for (Iterator iterator = list.iterator(); iterator.hasNext();) {
- try {
- IClassFileReader classFileReader = ClassFileHelper.getReader(iterator.next());
- if (classFileReader == null)
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_couldNotReadClassMsg, ((URL) iterator.next()).getFile()), null));
- else
- newList.add(classFileReader);
- } catch (CoreException e) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_couldNotReadClassMsg, ((URL) iterator.next()).getFile()), null));
- }
- }
- return newList;
- }
-
- /**
- * generates Map containing lists of URL instances indicates java classes
- * which are under a plugin directory or included in a plugin jar file denoted by <code>file</code>.
- * key is simple name of class file e.g. Foo.class
- * value is a List which contains URLs pointing to classes which have the same simple file name
- *
- * @param file File instance which denotes a plugin directory or a plugin jar file
- * @return Map containing URL instances
- * @throws CoreException <p>if any nested CoreException has been caught</p>
- */
- private Map generateClassFileURLTable(File file) throws CoreException {
- // get bundle class path
- ManifestElement[] elements = null;
- try {
- elements = (ManifestElement[]) ManifestHelper.getElementsFromManifest(file, new String[] {BUNDLE_CLASSPATH}).get(BUNDLE_CLASSPATH);
- } catch (CoreException ce) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_couldNotReadClassPathMsg, file.getAbsolutePath()), null));
- }
- return generateClassFileURLTableFromFile(file, elements);
- }
-
- /**
- * converts input Object into File instance
- * @param object input object
- * @return File which represents <code>object</code>
- * @throws CoreException <p>if type of <code>object</code> is unexpected</p>
- * <p>or <code>object</code> does not represent an exist file or directory
- */
- private File convertInputObject(Object object) throws CoreException {
- File file;
- if (object instanceof String) {
- // if object is a String
- file = new File((String) object);
- } else if (object instanceof URL)
- // if object is an URL
- file = new File(((URL) object).getFile());
- else if (object instanceof File)
- // if object is a File
- file = (File) object;
- else
- // otherwise throw CoreException
- throw new CoreException(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.JavaClassVersionCompare_unexpectedTypeMsg, object.getClass().getName()), null));
- if (file.exists())
- return file;
- throw new CoreException(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.PluginVersionCompare_inputNotExistMsg, file.getAbsolutePath()), null));
- }
-
- /**
- * generates Map containing lists of URL instances indicates java classes
- * which are under a plugin directory or included in a plugin jar file denoted by <code>file</code>.
- * key is simple name of class file e.g. Foo.class
- * value is a List which contains URLs pointing to classes which have the same simple file name
- *
- * @param file File instance which denotes a plugin directory or a plugin jar file
- * @param elements ManifestElement array of class path attribute
- * @return Map containing URL instances
- * @throws CoreException <p>if any nested CoreException has been caught</p>
- */
- private Map generateClassFileURLTableFromFile(File file, ManifestElement[] elements) throws CoreException {
- Map table = new Hashtable(0);
- if (file.isFile())
- // if file is a file
- getClassURLsFromJar(table, file, elements);
- else if (file.isDirectory())
- // if file is a directory
- getClassURLsFromDir(table, file, elements);
- if (table.size() == 0)
- finalResult.merge(resultStatusHandler(IStatus.WARNING, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.PluginVersionCompare_noValidClassFoundMsg, file.getAbsolutePath()), null));
- return table;
- }
-
- /**
- * gets URL instances indicates java classes which are included in a plugin jar file denoted by <code>file</code>.
- * and set them into <code>map</code>
- * key is simple name of class file e.g. Foo.class
- * value is a List which contains URLs pointing to classes which have the same simple file name
- *
- * @param map Map used to store URL instances
- * @param file File instance which denotes a jar file
- * @param elements ManifestElement array of class path attribute
- * @throws CoreException <p>if jar file could not be loaded successfully</p>
- * <p>or any nested CoreException has been caught</p>
- *
- */
- private void getClassURLsFromJar(Map map, File file, ManifestElement[] elements) throws CoreException {
- // check if file is a jar file
- if (!isGivenTypeFile(file, JAR_FILE_EXTENSION))
- return;
- JarFile jarFile;
- try {
- jarFile = new JarFile(file);
- } catch (IOException ioe) {
- throw new CoreException(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.PluginVersionCompare_couldNotOpenJarMsg, file.getAbsolutePath()), ioe));
- }
- if (elements == null)
- // if elements is null, we consider the class path as "."
- getAllClassURLsInJar(map, jarFile);
- else {
- // check elements
- for (int i = 0; i < elements.length; i++) {
- if (elements[i].getValue().equals(DOT_MARK))
- getAllClassURLsInJar(map, jarFile);
- else {
- // class path element is supposed to be "." or "*.jar"
- if (!new Path(elements[i].getValue()).getFileExtension().equals(JAR_FILE_EXTENSION)) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PLUGIN_DETAIL_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_inValidClassPathMsg, elements[i].getValue(), file.getAbsolutePath()), null));
- continue;
- }
- // if the jar entry indicates a nested jar file, we get IClassFileReaders of all the classes in it
- JarEntry entry = jarFile.getJarEntry(elements[i].getValue());
- if (entry != null) {
- JarFile tempJarFile = null;
- // get tmp file indicated by entry
- File tmpFile = getTmpFile(jarFile, entry);
- if (tmpFile == null)
- // if failed to get tmp file, continue to check next element
- continue;
- try {
- // generate a JarFile of the tmp file
- tempJarFile = new JarFile(tmpFile);
- } catch (IOException ioe) {
- Object[] msg = {tmpFile.getAbsoluteFile(), entry.getName(), file.getAbsolutePath()};
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_failOpenTmpJarMsg, msg), ioe));
- // continue to check next element
- continue;
- }
- // get URLs of all classes in the jar
- getAllClassURLsInJar(map, tempJarFile);
- } else
- finalResult.merge(resultStatusHandler(IStatus.WARNING, IVersionCompare.PLUGIN_DETAIL_STATUS, NLS.bind(Messages.PluginVersionCompare_classPathJarNotFoundMsg, elements[i].getValue(), file.getAbsolutePath()), null));
- }
- }
- }
- // close jar file
- try {
- jarFile.close();
- } catch (IOException ioe) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_failCloseJarMsg, jarFile.getName()), ioe));
- }
- }
-
- /**
- * delete temporary directory used by this class
- *
- */
- private void deleteTmpDirectory() {
- // get java tmp directory
- IPath tmpPath = getJavaTmpPath();
- // find the directory for this plugin
- tmpPath = tmpPath.append(PLUGIN_ID);
- // find the directory for this class
- tmpPath = tmpPath.append(CLASS_NAME);
- // delete all the files and directories
- File tmpDir = tmpPath.toFile();
- deleteTmpFile(tmpDir);
- }
-
- /**
- * delete all the files and directories under <code>dir</code>
- * @param file
- */
- private void deleteTmpFile(File dir) {
- if (!dir.exists())
- return;
- if (dir.isFile())
- dir.delete();
- File[] files = dir.listFiles();
- for (int i = 0; i < files.length; i++) {
- if (files[i].isFile()) {
- files[i].delete();
- } else
- deleteTmpFile(files[i]);
- }
- dir.delete();
- }
-
- /**
- * get URLs of all the classes which is in <code>jar</code>, and
- * put them into <code>map</code>
- * @param map map used to store URLs of all the classes
- * @param jar jar file
- */
- private void getAllClassURLsInJar(Map map, JarFile jar) {
- // get JarEntrys
- Enumeration enumeration = jar.entries();
- String jarURLString = jar.getName() + JAR_URL_SEPARATOR;
- String classURLString;
- for (; enumeration.hasMoreElements();) {
- JarEntry jarEntry = (JarEntry) enumeration.nextElement();
- // get URL for JarEntry which represents a java class file
- if (!isValidClassJarEntry(jarEntry))
- continue;
- if (!shouldProcess(jarEntry.getName()))
- continue;
- classURLString = jarURLString + jarEntry.getName();
- URL classFileURL = null;
- try {
- classFileURL = new URL(JAR_URL_HEAD + classURLString);
- } catch (MalformedURLException e) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.FeatureModelTable_urlConvertErrorMsg, classURLString), e));
- // do next
- continue;
- }
- // try to get URL list
- IPath entryPath = new Path(jarEntry.getName());
- List urls = (List) map.get(entryPath.lastSegment());
- if (urls == null) {
- urls = new ArrayList(0);
- urls.add(classFileURL);
- } else
- urls.add(classFileURL);
- // put file name and list into map
- map.put(entryPath.lastSegment(), urls);
- }
- }
-
- /**
- * get File instance which indicates the full path of the temporary jar file
- * which is denoted by <code>jarEntry</code>.
- * jar file denoted by <code>jarEntry</code> will be extracted to the java
- * tmp directory and then be returned as a File instance
- *
- * @param jarFile
- * @param jarEntry
- * @return File indicates the full path of the temporary jar file or <code>null</code>
- * if could not get the tmp file successfully
- */
- private File getTmpFile(JarFile jarFile, JarEntry jarEntry) {
- // get java tmp directory
- IPath tmpPath = getJavaTmpPath();
- // create a directory for this plugin
- tmpPath = tmpPath.append(PLUGIN_ID);
- // create a directory for this plugin
- tmpPath = tmpPath.append(CLASS_NAME);
- // get path represented by jarEntry
- IPath entryPath = new Path(jarEntry.getName());
- // generate tmp directory
- tmpPath = tmpPath.append(entryPath.removeLastSegments(1));
- File tmpDir = tmpPath.toFile();
- // if the tmp directory does not exist, make it
- if (!tmpDir.exists())
- tmpDir.mkdirs();
- // get OutputStream of the tmp file
- IPath tmpFile = null;
- OutputStream out = null;
- int i = 0;
- while (out == null) {
- // generate the full path of the tmp file(directory/file name)
- tmpFile = tmpPath.append(generateTmpFileName(entryPath.lastSegment()));
- try {
- out = new BufferedOutputStream(new FileOutputStream(tmpFile.toFile()));
- } catch (IOException ioe) {
- i++;
- //we try to create the tmp file for 5 times if any IOException has been caught
- if (i == CREATE_FILE_TIMES) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_failCreatTmpJarMsg, tmpFile.toOSString()), ioe));
- return null;
- }
- }
- }
- InputStream in = null;
- try {
- try {
- // get InputStream of jarEntry
- in = new BufferedInputStream(jarFile.getInputStream(jarEntry));
- } catch (IOException ioe) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_failOpenJarEntryMsg, jarEntry.getName()), ioe));
- return null;
- }
- // extract the file from jar to the tmp file
- int readResult;
- try {
- while ((readResult = in.read()) != -1)
- out.write(readResult);
- } catch (IOException ioe) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_failExtractJarEntryMsg, jarEntry.getName()), ioe));
- return null;
- } finally {
- try {
- // ensure the input stream is closed
- if (in != null) {
- in.close();
- in = null;
- }
- } catch (IOException ioe) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_failCloseJarEntryAfterExtractMsg, jarEntry.getName()), ioe));
- }
- }
- } finally {
- try {
- // ensure the output stream is closed
- if (out != null) {
- out.close();
- out = null;
- }
- } catch (IOException ioe) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.PluginVersionCompare_failCloseTmpAfterCreateMsg, tmpFile.toOSString()), ioe));
- }
- }
- return tmpFile == null ? null : tmpFile.toFile();
- }
-
- /**
- * generates file name with current time stamp in the front
- * e.g.: file.jar --> 1152797697531.jar
- * @param fileName
- * @return generated file name
- */
- private String generateTmpFileName(String fileName) {
- StringBuffer buffer = new StringBuffer();
- buffer.append(System.currentTimeMillis());
- int index = fileName.lastIndexOf(DOT_MARK);
- if (index == -1)
- return buffer.toString();
- buffer.append(fileName.substring(index));
- return buffer.toString();
- }
-
- /**
- * gets URL instances indicates java classes which are under in a plugin directory denoted by <code>dir</code>.
- * and set them into <code>map</code>
- * key is simple name of class file e.g. Foo.class
- * value is a List which contains URLs pointing to classes which have the same simple file name
- *
- * @param map Map used to store URL instances
- * @param dir File instance which denotes a directory on file-system
- * @param elements ManifestElement array of class path attribute
- * @throws CoreException <p>if nested CoreException has been caught</p>
- */
- private void getClassURLsFromDir(Map map, File dir, ManifestElement[] elements) throws CoreException {
- if (elements == null)
- // if elements is null, we consider the class path as "."
- getAllClassURLsUnderDir(map, dir);
- else {
- for (int i = 0; i < elements.length; i++) {
- if (elements[i].getValue().equals(DOT_MARK))
- getAllClassURLsUnderDir(map, dir);
- else {
- IPath path = new Path(dir.getAbsolutePath());
- path = path.append(elements[i].getValue());
- // class path element is supposed to be "." or "*.jar"
- if (!path.getFileExtension().equals(JAR_FILE_EXTENSION))
- finalResult.merge(resultStatusHandler(IStatus.WARNING, IVersionCompare.PROCESS_ERROR_STATUS, NLS.bind(Messages.PluginVersionCompare_inValidClassPathMsg, elements[i].getValue(), dir.getAbsolutePath()), null));
- File jarFile = path.toFile();
- if (jarFile.exists())
- getClassURLsFromJar(map, jarFile, null);
- else
- finalResult.merge(resultStatusHandler(IStatus.INFO, IVersionCompare.PLUGIN_DETAIL_STATUS, NLS.bind(Messages.PluginVersionCompare_classPathJarNotFoundMsg, elements[i].getValue(), dir.getAbsolutePath()), null));
- }
- }
- }
- }
-
- /**
- * checks if the class denoted by <code>className</code> need to be processed.
- * @param className class name or class file name
- * @return <code>true</code> if className does not include "/internal/", "\internal\", and ".internal."
- * <code>false</code> otherwise
- */
- private boolean shouldProcess(String className) {
- return className.indexOf("/internal/") == -1 && className.indexOf("\\internal\\") == -1 && className.indexOf("\\.internal\\.") == -1; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-
- /**
- * checks if the class denoted by <code>classFileReader</code> need to be processed.
- * @param classFileReader IClassFileReader instance
- * @return <code>true</code> if access flag of the class is public or protected
- * <code>false</code> otherwise
- */
- private boolean shouldProcess(IClassFileReader classFileReader) {
- return Flags.isPublic(classFileReader.getAccessFlags()) || Flags.isProtected(classFileReader.getAccessFlags());
- }
-
- /**
- * gets URLs of all "*.class" file under directory <code>dir</code> and its sub-directories
- * and put them into <code>map</code>
- * @param map Map used to store IClassFileReader instance
- * @param dir directory
- */
- private void getAllClassURLsUnderDir(Map map, File dir) {
- // if file is a directory, get URLs of "*.class" files under the directory and its sub-directories
- File[] classFiles = dir.listFiles(new VersionClassDirFilter(CLASS_FILE_EXTENSION));
- if (classFiles == null) {
- return;
- }
- for (int i = 0; i < classFiles.length; i++) {
- File file = classFiles[i];
- if (classFiles[i].isDirectory())
- // get URLs of class files under sub directory
- getAllClassURLsUnderDir(map, classFiles[i]);
- else if (isGivenTypeFile(file, CLASS_FILE_EXTENSION)) {
- if (!shouldProcess(file.getAbsolutePath()))
- continue;
- // get URL of class file
- URL classFileURL = null;
- try {
- classFileURL = classFiles[i].toURL();
- } catch (MalformedURLException e) {
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.FeatureModelTable_urlConvertErrorMsg, classFiles[i].getAbsolutePath()), e));
- // do next
- continue;
- }
- if (classFileURL == null)
- finalResult.merge(resultStatusHandler(IStatus.ERROR, IVersionCompare.PROCESS_ERROR_STATUS | IVersionCompare.ERROR_OCCURRED, NLS.bind(Messages.FeatureModelTable_urlConvertErrorMsg, classFiles[i].getAbsolutePath()), null));
- else {
- // try to get URL list
- List urls = (List) map.get(file.getName());
- if (urls == null) {
- urls = new ArrayList(0);
- urls.add(classFileURL);
- } else
- urls.add(classFileURL);
- // put file name and list into map
- map.put(file.getName(), urls);
- }
- }
- }
- }
-
- /**
- * converts char array to String
- * @param chars array of char
- * @return String which represents the content of <code>chars</code>
- */
- private String charsToString(char[] chars) {
- return new String(chars);
- }
-
- /**
- * Checks whether or not the given file potentially represents a given type file on the file-system.
- *
- * @param file File instance which denotes to file on the file-system
- * @param type file type(e.g. "java","class", "jar")
- * @return <code>true</code> <code>file</code> exists and is a given type file,
- * <code>false</code> otherwise
- */
- private boolean isGivenTypeFile(File file, String type) {
- IPath path = new Path(file.getAbsolutePath());
- return file.isFile() && path.getFileExtension().equals(type);
- }
-
- /**
- * Checks whether or not the given JarEntry potentially represents a valid java class file,
- * we filter out class file like "Foo$0.class".
- *
- * @param entry JarEntry instance
- * @param type JarEntry type(e.g. "class")
- * @return <code>true</code> <code>entry</code> exists and is a valid java class JarEntry,
- * <code>false</code> otherwise
- */
- private boolean isValidClassJarEntry(JarEntry entry) {
- IPath path = new Path(entry.toString());
- // get file extension
- String extension = path.getFileExtension();
- if (extension == null)
- return false;
- if (!extension.equals(CLASS_FILE_EXTENSION))
- return false;
- int extensionIndex = path.lastSegment().lastIndexOf(extension);
- if (extensionIndex == -1)
- return false;
- // get name of the file (without ".class")
- String fileName = path.lastSegment().substring(0, extensionIndex - 1);
- try {
- int dollarIndex = fileName.lastIndexOf(DOLLAR_MARK);
- // if no "$" in the file name, it is what we want
- if (dollarIndex == -1)
- return true;
- // if the sub-String after "$" is all number, it is not what we want
- Long.parseLong(fileName.substring(dollarIndex + 1));
- return false;
- } catch (NumberFormatException nfe) {
- // if the sub-String after "$" is not all number, it is what we want
- return true;
- }
- }
-
- /**
- * get java tmp directory IPath from system properties
- * @return IPath instance which indicates java tmp directory
- */
- private IPath getJavaTmpPath() {
- Properties properties = System.getProperties();
- return new Path(properties.getProperty(JAVA_TMP_DIR_PROPERTY));
- }
-
- /**
- * Return a new status object populated with the given information.
- *
- * @param severity severity of status
- * @param code indicates type of this IStatus instance, it could be one of: FEATURE_OVERALL_STATUS,
- * FEATURE_DETAIL_STATUS, PLUGIN_OVERALL_STATUS, PLUGIN_DETAIL_STATUS, PROCESS_ERROR_STATUS,
- * CLASS_OVERALL_STATUS, CLASS_DETAIL_STATUS
- * @param message the status message
- * @param exception exception which has been caught, or <code>null</code>
- * @return the new status object
- */
- private IStatus resultStatusHandler(int severity, int code, String message, Exception exception) {
- processed(code);
- if (message == null) {
- if (exception != null)
- message = exception.getMessage();
- // extra check because the exception message can be null
- if (message == null)
- message = EMPTY_STRING;
- }
- return new Status(severity, PLUGIN_ID, code, message, exception);
- }
-
- /**
- * checks what kind of change does <code>result</code> represent
- * @param result compare result
- */
- private void processed(int result) {
- if ((result & IVersionCompare.ERROR_OCCURRED) != 0){
- hasError = true;
- return;
- }
- if ((result & IVersionCompare.MAJOR_CHANGE) != 0){
- hasMajorChange = true;
- return;
- }
- if ((result & IVersionCompare.MINOR_CHANGE) != 0){
- hasMinorChange = true;
- return;
- }
- if ((result & IVersionCompare.MICRO_CHANGE) != 0)
- hasMicroChange = true;
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionClassDirFilter.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionClassDirFilter.java
deleted file mode 100644
index 0f9663c..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionClassDirFilter.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.File;
-import java.io.FileFilter;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-/**
- * This class implements the FileFilter interface. Instance of this class may be
- * passed to the listFiles(FileFilter) method of the File class
- *
- */
-public class VersionClassDirFilter implements FileFilter {
- private String fileExtension;
-
- /**
- * Constructor
- *
- * @param fileExtension the file extension to filter on
- */
- public VersionClassDirFilter(String fileExtension) {
- super();
- this.fileExtension = fileExtension;
- }
-
- /**
- * Returns <code>true</code> if the given file is a directory or its extension matches the file extension for this
- * filter and <code>false</code> otherwise.
- *
- * @param file the abstract pathname to be tested
- * @return <code>true</code> if the file is a directory , or its extension matches this filter's file extension
- * <code>false</code> otherwise
- */
- public boolean accept(File file) {
- if (file.isDirectory()) {
- return true;
- }
-
- IPath path = new Path(file.getAbsolutePath());
- String extension = path.getFileExtension();
- if (extension == null) {
- if (fileExtension == null || fileExtension.trim().equals("")) //$NON-NLS-1$
- return true;
- else
- return false;
- } else {
- if (path.getFileExtension().equals(fileExtension))
- return true;
- else
- return false;
- }
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionCompareConstants.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionCompareConstants.java
deleted file mode 100644
index de1f88c..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionCompareConstants.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-public interface VersionCompareConstants {
- public static final String PLUGIN_ID = "org.eclipse.pde.tools.versioning"; //$NON-NLS-1$
- public final static String BUNDLE_MANIFEST = "META-INF/MANIFEST.MF"; //$NON-NLS-1$
- public final static String BUNDLE_CLASSPATH = "Bundle-ClassPath"; //$NON-NLS-1$
- public final static String BUNDLE_SYMBOLICNAME = "Bundle-SymbolicName"; //$NON-NLS-1$
- public final static String BUNDLE_VERSION = "Bundle-Version"; //$NON-NLS-1$
- public final static String BUNDLE_LOCATION = "Bundle-Location"; //$NON-NLS-1$
- public final static String JAVA_TMP_DIR_PROPERTY = "java.io.tmpdir";//$NON-NLS-1$
- public final static String PLUGIN_DIR_NAME = "plugins"; //$NON-NLS-1$
- public static final String FEATURES_FILE_NAME = "feature.xml"; //$NON-NLS-1$
- public static final String CONFIGURATION_FILE_NAME = "platform.xml"; //$NON-NLS-1$
- public static final String JAVA_FILE_EXTENSION = "java"; //$NON-NLS-1$
- public static final String CLASS_FILE_EXTENSION = "class"; //$NON-NLS-1$
- public static final String JAR_FILE_EXTENSION = "jar"; //$NON-NLS-1$
- public static final String PLATFORM_PROTOCOL = "platform"; //$NON-NLS-1$
- public static final String FEATURE_TITLE = "feature"; //$NON-NLS-1$
- public static final String PLUGIN_TITLE = "plugin"; //$NON-NLS-1$
- public static final String FIELD_TITLE = "field"; //$NON-NLS-1$
- public static final String METHOD_TITLE = "method"; //$NON-NLS-1$
- public static final String JAR_URL_HEAD = "jar:file:"; //$NON-NLS-1$
- public static final String JAR_URL_SEPARATOR = "!/"; //$NON-NLS-1$
- public static final String WILD_CAST_STRING = ".*"; //$NON-NLS-1$
- public static final String DOT_QUOTE_STRING = "\\."; //$NON-NLS-1$
- public static final int DEFAULT_MODIFIER_TESTER = 0x0007;
- public static final char START_CHAR = '*';
- public static final char DOT_CHAR = '.';
- public static final String ENCODING_TYPE = "UTF-8"; //$NON-NLS-1$
- public static final String ROOT_ELEMENT_NAME = "CompareResult"; //$NON-NLS-1$
- public static final String SEVERITY_ELEMENT_NAME = "Category"; //$NON-NLS-1$
- public static final String CHILDREN_ELEMENT_NAME = "Info"; //$NON-NLS-1$
- public static final String CODE_ATTRIBUTE_NAME = "Code"; //$NON-NLS-1$
- public static final String MESSAGE_ATTRIBUTE_NAME = "Message"; //$NON-NLS-1$
- public static final String XML_FILE_EXTENSION = "xml"; //$NON-NLS-1$
- // marks
- public static final String EMPTY_STRING = ""; //$NON-NLS-1$
- public final static String DOLLAR_MARK = "$";//$NON-NLS-1$
- public final static String DOT_MARK = ".";//$NON-NLS-1$
- public static final String COMMA_MARK = ","; //$NON-NLS-1$
- public static final String UNDERSCORE_MARK = "_"; //$NON-NLS-1$
- public static final String KEY_SEPARATOR = "#"; //$NON-NLS-1$
- public static final String SPACE = " "; //$NON-NLS-1$
- public static final String START_MARK = "*"; //$NON-NLS-1$
- // modifier String
- public static final String ABSTRACT_STRING = "abstract"; //$NON-NLS-1$
- public static final String PUBLIC_STRING = "public"; //$NON-NLS-1$
- public static final String PRIVATE_STRING = "private"; //$NON-NLS-1$
- public static final String FINAL_STRING = "final"; //$NON-NLS-1$
- public static final String DEFAULT_STRING = "default"; //$NON-NLS-1$
- public static final String STATIC_STRING = "static"; //$NON-NLS-1$
- public static final String PROTECTED_STRING = "protected"; //$NON-NLS-1$
- public static final String VOLATILE_STRING = "volatile"; //$NON-NLS-1$
- public static final String NON_ABSTRACT_STRING = "non-abstract"; //$NON-NLS-1$
- public static final String NON_STATIC_STRING = "non-static"; //$NON-NLS-1$
- public static final String NON_FINAL_STRING = "non-final"; //$NON-NLS-1$
- public static final String NON_VOLATILE_STRING = "non-volatile"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionCompareDispatcher.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionCompareDispatcher.java
deleted file mode 100644
index 0e3fff3..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionCompareDispatcher.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-import javax.xml.parsers.*;
-import javax.xml.transform.*;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.util.IClassFileReader;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.pde.tools.versioning.ICompareResult;
-import org.eclipse.pde.tools.versioning.IVersionCompare;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class VersionCompareDispatcher implements IVersionCompare {
- private static final String NAME_STRING = "Name"; //$NON-NLS-1$
- private static final String ERROR_STRING = "Error"; //$NON-NLS-1$
- private static final String WARNING_STRING = "Warning"; //$NON-NLS-1$
- private static final String INFO_STRING = "Information"; //$NON-NLS-1$
- private static final String SEVERITY_CODE_STRING = "SeverityCode"; //$NON-NLS-1$
- private static final String VERSION_STRING = "Version"; //$NON-NLS-1$
- private static final String XML_VERSION = "1.0"; //$NON-NLS-1$
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkFeatureVersions(java.lang.String, java.lang.String, boolean, File, IProgressMonitor)
- */
- public IStatus checkFeatureVersions(String path1, String path2, boolean needPluginCompare, File versionOptionFile, IProgressMonitor monitor) throws CoreException {
- return new FeatureVersionCompare().checkFeatureVersions(path1, path2, needPluginCompare, versionOptionFile, monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkFeatureVersions(java.net.URL, java.net.URL, boolean, File, IProgressMonitor)
- */
- public IStatus checkFeatureVersions(URL configURL1, URL configURL2, boolean needPluginCompare, File compareOptionFile, IProgressMonitor monitor) throws CoreException {
- return new FeatureVersionCompare().checkFeatureVersions(configURL1, configURL2, needPluginCompare, compareOptionFile, monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkFeatureVersions(java.io.File, java.io.File, boolean, File, IProgressMonitor)
- */
- public IStatus checkFeatureVersions(File file1, File file2, boolean needPluginCompare, File compareOptionFile, IProgressMonitor monitor) throws CoreException {
- return new FeatureVersionCompare().checkFeatureVersions(file1, file2, needPluginCompare, compareOptionFile, monitor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkPluginVersions(String, String, IProgressMonitor)
- */
- public ICompareResult checkPluginVersions(String plugin1, String plugin2, IProgressMonitor monitor) throws CoreException {
- MultiStatus finalResult = new MultiStatus(VersionCompareConstants.PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- return new CompareResult(new PluginVersionCompare().checkPluginVersions(finalResult, plugin1, plugin2, monitor), finalResult);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkPluginVersions(URL, URL, IProgressMonitor)
- */
- public ICompareResult checkPluginVersions(URL pluginURL1, URL pluginURL2, IProgressMonitor monitor) throws CoreException {
- MultiStatus finalResult = new MultiStatus(VersionCompareConstants.PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- return new CompareResult(new PluginVersionCompare().checkPluginVersions(finalResult, pluginURL1, pluginURL2, monitor), finalResult);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkPluginVersions(File, File, IProgressMonitor)
- */
- public ICompareResult checkPluginVersions(File pluginFile1, File pluginFile2, IProgressMonitor monitor) throws CoreException {
- MultiStatus finalResult = new MultiStatus(VersionCompareConstants.PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- return new CompareResult(new PluginVersionCompare().checkPluginVersions(finalResult, pluginFile1, pluginFile2, monitor), finalResult);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkJavaClassVersions(String, String, IProgressMonitor)
- */
- public ICompareResult checkJavaClassVersions(String javaClass1, String javaClass2, IProgressMonitor monitor) throws CoreException {
- MultiStatus finalResult = new MultiStatus(VersionCompareConstants.PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- return new CompareResult(new JavaClassVersionCompare().checkJavaClassVersions(finalResult, javaClass1, javaClass2, monitor), finalResult);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkJavaClassVersions(URL, URL, IProgressMonitor)
- */
- public ICompareResult checkJavaClassVersions(URL javaClassURL1, URL javaClassURL2, IProgressMonitor monitor) throws CoreException {
- MultiStatus finalResult = new MultiStatus(VersionCompareConstants.PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- return new CompareResult(new JavaClassVersionCompare().checkJavaClassVersions(finalResult, javaClassURL1, javaClassURL2, monitor), finalResult);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkJavaClassVersions(File, File, IProgressMonitor)
- */
- public ICompareResult checkJavaClassVersions(File javaClassFile1, File javaClassFile2, IProgressMonitor monitor) throws CoreException {
- MultiStatus finalResult = new MultiStatus(VersionCompareConstants.PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- return new CompareResult(new JavaClassVersionCompare().checkJavaClassVersions(finalResult, javaClassFile1, javaClassFile1, monitor), finalResult);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkJavaClassVersions(InputStream, InputStream, IProgressMonitor)
- */
- public ICompareResult checkJavaClassVersions(InputStream javaClassInputStream1, InputStream javaClassInputStream2, IProgressMonitor monitor) throws CoreException {
- MultiStatus finalResult = new MultiStatus(VersionCompareConstants.PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- return new CompareResult(new JavaClassVersionCompare().checkJavaClassVersions(finalResult, javaClassInputStream1, javaClassInputStream2, monitor), finalResult);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#checkJavaClassVersions(IClassFileReader, IClassFileReader, IProgressMonitor)
- */
- public ICompareResult checkJavaClassVersions(IClassFileReader classFileReader1, IClassFileReader classFileReader2, IProgressMonitor monitor) throws CoreException {
- MultiStatus finalResult = new MultiStatus(VersionCompareConstants.PLUGIN_ID, IStatus.OK, Messages.FeatureVersionCompare_errorReasonMsg, null);
- return new CompareResult(new JavaClassVersionCompare().checkJavaClassVersions(finalResult, classFileReader1, classFileReader2, monitor), finalResult);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#processCompareResult(IStatus status, int infoChoice)
- */
- public IStatus processCompareResult(IStatus status, int infoChoice) {
- if (!status.isMultiStatus())
- return status;
- // create a new multi-status
- MultiStatus multiStatus = new MultiStatus(VersionCompareConstants.PLUGIN_ID, IStatus.OK, status.getMessage(), null);
- // get children status from result status
- IStatus[] childStatus = status.getChildren();
- for (int i = 0; i < childStatus.length; i++) {
- if ((childStatus[i].getCode() & infoChoice) != 0) {
- multiStatus.merge(childStatus[i]);
- }
- }
- return multiStatus;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.pde.tools.versioning.IVersionCompare#processExclusionListFile(File file)
- */
- public Map processInclusionListFile(File file) throws CoreException {
- Map table = new Hashtable();
- FileInputStream fileInputStream = null;
- try {
- //create a properties instance
- Properties ppt = new Properties();
- // get InputStream of exclusion-list-file
- fileInputStream = new FileInputStream(file);
- // load property file
- ppt.load(fileInputStream);
- for (Iterator iterator = ppt.keySet().iterator(); iterator.hasNext();) {
- Object key = iterator.next();
- String property = ppt.getProperty((String) key);
- if (property == null || property.trim().equals(VersionCompareConstants.EMPTY_STRING))
- continue;
- List propertyValueList = generateList(property.split(VersionCompareConstants.COMMA_MARK));
- table.put(key, propertyValueList);
- }
- } catch (FileNotFoundException fnfe) {
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.VersionCompareDispatcher_fileNotFoundMsg, file.getAbsolutePath()), fnfe));
- } catch (IOException ioe) {
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.VersionCompareDispatcher_readPropertyFailedMsg, file.getAbsolutePath()), ioe));
- } finally {
- if (fileInputStream != null) {
- // close FileInputStream
- try {
- fileInputStream.close();
- } catch (IOException ioe) {
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.VersionCompareDispatcher_closeFileFailedMsg, file.getAbsolutePath()), ioe));
- }
- fileInputStream = null;
- }
- }
- return table;
- }
-
- /**
- * generates a List which stores instances in array <code>objects</code>
- *
- * @param objects instance objects
- * @return List
- */
- private List generateList(Object[] objects) {
- ArrayList list = new ArrayList(0);
- if (objects == null || objects.length == 0)
- return list;
- for (int i = 0; i < objects.length; i++)
- list.add(objects[i]);
- return list;
- }
-
- /**
- * writes out children statuses of <code>status</code> to XML file denoted by <code>fileName</code>
- * @param status IStatus instance
- * @param fileName String name of a XML file
- * @throws CoreException <p>if any nested CoreException has been caught</p>
- */
- public void writeToXML(IStatus status, String fileName) throws CoreException {
- Document doc = createXMLDoc(status);
- writeToXML(doc, fileName);
- }
-
- /**
- * creates a Document instance containing elements each of which represent a child status
- * of <code>status</code>
- * @param status IStatus instance
- * @throws CoreException <p>if any ParserConfigurationException, or FactoryConfigurationError has been caught</p>
- */
- private Document createXMLDoc(IStatus status) throws CoreException {
- DocumentBuilder docBuilder = null;
- // create a DocumentBuilder instance
- try {
- docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- } catch (ParserConfigurationException pce) {
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, Messages.VersionCompareDispatcher_failedCreateDocMsg, pce));
- } catch (FactoryConfigurationError fce) {
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, Messages.VersionCompareDispatcher_failedCreateDocMsg, fce));
- }
- // create a Document instance
- Document doc = docBuilder.newDocument();
- // create the root element
- Element rootElement = doc.createElement(VersionCompareConstants.ROOT_ELEMENT_NAME);
- rootElement.setAttribute(VERSION_STRING, XML_VERSION);
- doc.appendChild(rootElement);
- // create sub elements to contain different type of status
- Element errorElement = doc.createElement(VersionCompareConstants.SEVERITY_ELEMENT_NAME);
- errorElement.setAttribute(NAME_STRING, ERROR_STRING);
- errorElement.setAttribute(SEVERITY_CODE_STRING, String.valueOf(IStatus.ERROR));
- rootElement.appendChild(errorElement);
- Element warningElement = doc.createElement(VersionCompareConstants.SEVERITY_ELEMENT_NAME);
- warningElement.setAttribute(NAME_STRING, WARNING_STRING);
- warningElement.setAttribute(SEVERITY_CODE_STRING, String.valueOf(IStatus.WARNING));
- rootElement.appendChild(warningElement);
- Element infoElement = doc.createElement(VersionCompareConstants.SEVERITY_ELEMENT_NAME);
- infoElement.setAttribute(NAME_STRING, INFO_STRING);
- infoElement.setAttribute(SEVERITY_CODE_STRING, String.valueOf(IStatus.INFO));
- rootElement.appendChild(infoElement);
- // get children statuses
- IStatus[] children = status.getChildren();
- if (children.length == 0)
- return doc;
- // create element for each children status
- for (int i = 0; i < children.length; i++) {
- switch (children[i].getSeverity()) {
- case IStatus.ERROR : {
- Element childElement = doc.createElement(VersionCompareConstants.CHILDREN_ELEMENT_NAME);
- childElement.setAttribute(VersionCompareConstants.CODE_ATTRIBUTE_NAME, String.valueOf(children[i].getCode()));
- childElement.setAttribute(VersionCompareConstants.MESSAGE_ATTRIBUTE_NAME, String.valueOf(children[i].getMessage()));
- errorElement.appendChild(childElement);
- break;
- }
- case IStatus.WARNING : {
- Element childElement = doc.createElement(VersionCompareConstants.CHILDREN_ELEMENT_NAME);
- childElement.setAttribute(VersionCompareConstants.CODE_ATTRIBUTE_NAME, String.valueOf(children[i].getCode()));
- childElement.setAttribute(VersionCompareConstants.MESSAGE_ATTRIBUTE_NAME, String.valueOf(children[i].getMessage()));
- warningElement.appendChild(childElement);
- break;
- }
- case IStatus.INFO : {
- Element childElement = doc.createElement(VersionCompareConstants.CHILDREN_ELEMENT_NAME);
- childElement.setAttribute(VersionCompareConstants.CODE_ATTRIBUTE_NAME, String.valueOf(children[i].getCode()));
- childElement.setAttribute(VersionCompareConstants.MESSAGE_ATTRIBUTE_NAME, String.valueOf(children[i].getMessage()));
- infoElement.appendChild(childElement);
- break;
- }
- }
- }
- return doc;
- }
-
- /**
- * writes out <code>doc</code> to the xml file denoted by <code>fileName</code>
- * @param doc Document instance
- * @param fileName String which denotes a xml file
- * @throws CoreException <p>if any TransformerConfigurationException, or TransformerException has been caught</p>
- */
- private void writeToXML(Document doc, String fileName) throws CoreException {
- if (!isXMLfile(fileName))
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.VersionCompareDispatcher_invalidXMLFileNameMsg, fileName), null));
- // create a DOMSource instance
- DOMSource doms = new DOMSource(doc);
- // create a File instance
- File file = new File(fileName);
- // create a StreamResult instance of file
- StreamResult streamResult = new StreamResult(file);
- try {
- // set output properties
- TransformerFactory factory = TransformerFactory.newInstance();
- Transformer transformer = factory.newTransformer();
- Properties properties = transformer.getOutputProperties();
- properties.setProperty(OutputKeys.ENCODING, VersionCompareConstants.ENCODING_TYPE);
- transformer.setOutputProperties(properties);
- // write out doc
- transformer.transform(doms, streamResult);
- } catch (TransformerConfigurationException tce) {
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.VersionCompareDispatcher_failedWriteXMLFileMsg, fileName), tce));
- } catch (TransformerException te) {
- throw new CoreException(new Status(IStatus.ERROR, VersionCompareConstants.PLUGIN_ID, IStatus.ERROR, NLS.bind(Messages.VersionCompareDispatcher_failedWriteXMLFileMsg, fileName), te));
- }
- }
-
- /**
- * checks whether <code>file</code> represents a XML file
- * @param fileName String name of a file
- * @return <code>true</code> if <code>file</code> represents a XML file,
- * <code>false</coc
- */
- private boolean isXMLfile(String fileName) {
- IPath path = new Path(fileName);
- if (path.isValidPath(fileName)) {
- String extension = path.getFileExtension();
- if (extension == null)
- return false;
- if (!extension.equals(VersionCompareConstants.XML_FILE_EXTENSION))
- return false;
- return true;
- }
- return false;
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionVerifier.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionVerifier.java
deleted file mode 100644
index 1e08b8d..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersionVerifier.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.pde.tools.versioning.IVersionCompare;
-import org.eclipse.pde.tools.versioning.VersionCompareFactory;
-
-/**
- * This is the headless version compare application.
- */
-public class VersionVerifier implements IPlatformRunnable {
- // path of new configuration file or feature directory
- File newPath;
- // path of old configuration file or feature directory
- File oldPath;
- // if need to compare plugins as objects
- boolean needPluginCompare = false;
- // path of the option file
- String optionFilePath;
- // path of the result file
- String resultPath;
- boolean isConfiguration = false;
- boolean isDir = false;
- boolean consoleOutput = false;
-
- /*
- * Prints the results using the given print writer. Closes the writer
- * after processing.
- */
- private void printResult(IStatus status, PrintWriter writer) {
- try {
- // write out compare results to result file and also display them on screen
- writer.println(Messages.VersionVerifier_summaryMsg);
- if (status.isOK()) {
- writer.println(Messages.VersionVerifier_compareOKMsg);
- } else {
- IStatus[] childStatus = status.getChildren();
- writer.println();
- if (childStatus.length == 0) {
- writer.println(status.getMessage());
- } else {
- for (int i = 0; i < childStatus.length; i++) {
- if (childStatus[i].isOK()) {
- continue;
- }
- if (childStatus[i].getException() != null) {
- String msg = childStatus[i].getMessage();
- if (!msg.equals("")) { //$NON-NLS-1$
- writer.println(msg);
- }
- writer.println(childStatus[i].getException().getMessage());
- } else {
- writer.println(childStatus[i].getMessage());
- }
- }
- writer.println();
- writer.println(NLS.bind(Messages.VersionVerifier_messageNumberMsg, String.valueOf(childStatus.length)));
- }
- }
- } finally {
- if (writer != null) {
- writer.close();
- writer = null;
- }
- }
- }
-
- /*
- * Print out the given status object.
- */
- private void printResult(IStatus status, IVersionCompare versionCompare) {
- // create a File instance for the result file
- File resultFilePath = new File(resultPath);
- File parentFilePath = null;
- try {
- if (!resultFilePath.exists()) {
- // if the result file is not exist, we need to check its parent file
- parentFilePath = resultFilePath.getParentFile();
- if (parentFilePath.exists()) {
- // if the parent file exists, we create the result file directly
- resultFilePath.createNewFile();
- } else {
- // if the parent file does not exist, we create the parent file(directory) first
- parentFilePath.mkdirs();
- // and then create the result file
- resultFilePath.createNewFile();
- }
- } else {
- if (!resultFilePath.isFile()) {
- System.out.println(NLS.bind(Messages.VersionVerifier_createFileErrorMsg, Messages.VersionVerifier_pathIsNotFileMsg));
- return;
- }
- }
- } catch (IOException ioe) {
- System.out.println(NLS.bind(Messages.VersionVerifier_createFileErrorMsg, resultFilePath));
- return;
- }
- // write the results to a XML file
- try {
- versionCompare.writeToXML(status, resultFilePath.getAbsolutePath());
- } catch (CoreException ce) {
- ce.printStackTrace();
- }
- // check to see if the user requested console output as well
- if (consoleOutput)
- printResult(status, new PrintWriter(System.out));
- }
-
- /*
- * Print out a message describing how to run the application.
- */
- private void printUsage() {
- StringBuffer buffer = new StringBuffer();
- buffer.append("Usage: java -cp startup.jar org.eclipse.core.launcher.Main -application org.eclipse.pde.tools.versioning.application -clean -new [path] -old [path] -option [path] -output [path] [-pluginCompare] [-consoleOutput]"); //$NON-NLS-1$
- buffer.append("\n-new: path of new configuration file or features directory"); //$NON-NLS-1$
- buffer.append("\n-old: path of old configuration file or features directory"); //$NON-NLS-1$
- buffer.append("\n-option: path of compare option file (optional)"); //$NON-NLS-1$
- buffer.append("\n-output: path of result XML file"); //$NON-NLS-1$
- buffer.append("\n-pluginCompare: if need to compare plugins as objects (optional)"); //$NON-NLS-1$
- buffer.append("\n-consoleOutput: print results to the system console (optional)"); //$NON-NLS-1$
- System.out.println(buffer.toString());
- }
-
- /*
- * Look at the given file path and determine if it is a configuration file
- * or a features directory. Return the associated File object.
- */
- private File processPath(String pathString) {
- IPath path = new Path(pathString);
- File file = path.toFile();
- // check to see if we are pointing to a configuration file
- if ("platform.xml".equalsIgnoreCase(path.lastSegment())) //$NON-NLS-1$
- isConfiguration = true;
- // check if its a directory
- isDir = file.isDirectory();
- return file;
- }
-
- /*
- * Process the command-line arguments and set up the local variables
- * for the application.
- */
- private boolean processCommandLine(String[] parameters) {
- // get parameters
- for (int i = 0; i < parameters.length; i++) {
- if (parameters[i].equalsIgnoreCase("-new")) { //$NON-NLS-1$
- if ((i + 1 < parameters.length) && !parameters[i + 1].startsWith("-")) { //$NON-NLS-1$
- i++;
- newPath = processPath(parameters[i]);
- if (isConfiguration && isDir) {
- System.out.println(Messages.VersionVerifier_mixedInputMsg);
- return false;
- }
- }
- } else if (parameters[i].equalsIgnoreCase("-old")) { //$NON-NLS-1$
- if ((i + 1 < parameters.length) && !parameters[i + 1].startsWith("-")) { //$NON-NLS-1$
- i++;
- oldPath = processPath(parameters[i]);
- if (isConfiguration && isDir) {
- System.out.println(Messages.VersionVerifier_mixedInputMsg);
- return false;
- }
- }
- } else if (parameters[i].equalsIgnoreCase("-option")) { //$NON-NLS-1$
- if ((i + 1 < parameters.length) && !parameters[i + 1].startsWith("-")) { //$NON-NLS-1$
- i++;
- optionFilePath = parameters[i];
- }
- } else if (parameters[i].equalsIgnoreCase("-output")) { //$NON-NLS-1$
- if ((i + 1 < parameters.length) && !parameters[i + 1].startsWith("-")) { //$NON-NLS-1$
- i++;
- resultPath = parameters[i];
- }
- } else if (parameters[i].equalsIgnoreCase("-pluginCompare")) { //$NON-NLS-1$
- needPluginCompare = true;
- } else if (parameters[i].equalsIgnoreCase("-consoleOutput")) { //$NON-NLS-1$
- consoleOutput = true;
- }
- }
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IPlatformRunnable#run(java.lang.Object)
- */
- public Object run(Object args) {
- // cast the args object into String array
- boolean ok = processCommandLine((String[]) args);
- // if any necessary parameter is missed, we display help message to tell
- // user how to run this application in command line
- if (!ok || newPath == null || oldPath == null || resultPath == null) {
- printUsage();
- return null;
- }
- // do the work, compare features included in new configuration(or feature directory)
- // with those included in old configuration(or feature directory)
- IVersionCompare ivc = new VersionCompareFactory().getVersionCompare();
- IStatus status = null;
- try {
- status = ivc.checkFeatureVersions(newPath, oldPath, needPluginCompare, optionFilePath == null || optionFilePath.trim().equals("") ? null : new File(optionFilePath), null); //$NON-NLS-1$
- } catch (CoreException ce) {
- System.out.print(Messages.VersionVerifier_coreExceptionMsg);
- System.out.println(ce.getMessage());
- return null;
- } catch (Exception e){
- e.printStackTrace();
- }
- // print out the results
- printResult(status, ivc);
- return null;
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningDirFilter.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningDirFilter.java
deleted file mode 100644
index 32428a4..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningDirFilter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.File;
-import java.io.FileFilter;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-/**
- * This class implements the FileFilter interface. Instance of this class may be
- * passed to the listFiles(FileFilter) method of the File class
- *
- */
-public class VersioningDirFilter implements FileFilter {
- private String dirName;
-
- /**
- * Constructor for the class.
- */
- public VersioningDirFilter(String dirName) {
- super();
- this.dirName = dirName;
- }
-
- /**
- * Constructor for the class.
- */
- public VersioningDirFilter() {
- super();
- this.dirName = null;
- }
-
- /**
- * Returns <code>true</code> if the given file is a directory and <code>false</code> otherwise.
- *
- * @param file the abstract pathname to be tested
- * @return <code>true</code> if the file is a directory and <code>false</code> otherwise
- */
- public boolean accept(File file) {
- if (file.isDirectory()) {
- if (dirName != null) {
- IPath path = new Path(file.getAbsolutePath());
- if (path.lastSegment().equals(dirName))
- return true;
- return false;
- }
- return true;
- }
- return false;
- }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningFeatureFileFilter.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningFeatureFileFilter.java
deleted file mode 100644
index 217abc9..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningFeatureFileFilter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.File;
-import java.io.FileFilter;
-
-/**
- * This class implements the FileFilter interface. Instance of this class may be
- * passed to the listFiles(FileFilter) method of the File class
- *
- */
-public class VersioningFeatureFileFilter implements FileFilter {
- private String fileName;
-
- /**
- * Constructor for the class.
- *
- * @param fileName the filename to filter on
- */
- public VersioningFeatureFileFilter(String fileName) {
- super();
- this.fileName = fileName;
- }
-
- /**
- * Returns <code>true</code> if the given file matches the name for this
- * filter and <code>false</code> otherwise.
- *
- * @param file the abstract pathname to be tested
- * @return <code>true</code> if the file matches this filter's name and<code>false</code> otherwise
- */
- public boolean accept(File file) {
- if (file.isDirectory()) {
- return false;
- }
-
- String name = file.getName();
- if (name.equals(fileName)) {
- return true;
- } else {
- return false;
- }
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningFilenameFilter.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningFilenameFilter.java
deleted file mode 100644
index 7578982..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningFilenameFilter.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.util.regex.Pattern;
-
-/**
- * This class implements the FilenameFilter interface. Instance of this class
- * may be passed to the listFiles(FilenameFilter) method of the File class
- *
- */
-public class VersioningFilenameFilter implements FilenameFilter {
- private Pattern pattern;
-
- /**
- * Constructor for this class. Initialize it with the given regular expression.
- *
- * @param featureRegex the regular expression to use for this filter
- */
- public VersioningFilenameFilter(String featureRegex) {
- pattern = Pattern.compile(featureRegex);
- }
-
- /**
- * Returns <code>true</code> if the given filename matches the regular
- * expression for this filter, and <code>false</code> otherwise.
- *
- * @param dir the directory in which the file was found
- * @param name the name of the file to be tested
- * @return <code>true</code> if the name should be included in the file list and<code>false</code> otherwise
- */
- public boolean accept(File dir, String name) {
- // Creates a matcher and matches the given input against the pattern.
- return pattern.matcher(new File(name).getName()).matches();
- }
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningProgressMonitorWrapper.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningProgressMonitorWrapper.java
deleted file mode 100644
index 6a6c417..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/VersioningProgressMonitorWrapper.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.internal.versioning;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * a wrapper class of IProgressMonitor which provides methods to
- * get access to the wrapped IProgressMonitor instance
- */
-public class VersioningProgressMonitorWrapper extends ProgressMonitorWrapper {
- // the wrapped monitor is not supposed to be used more than once,
- // this flag will be set as true when the first time it is started, and
- // will not be set as false when the monitor's task is done.
- private boolean monitorStarted;
-
- /**
- * constructor
- * @param monitor
- */
- public VersioningProgressMonitorWrapper(IProgressMonitor monitor) {
- super(monitor);
- monitorStarted = false;
- }
-
- /**
- * get a new sub monitor of wrapped progress monitor
- *
- * @return IProgressMonitor instance
- */
- public IProgressMonitor getSubMonitor(int ticks) {
- return new SubProgressMonitor(this.getWrappedProgressMonitor(), ticks);
- }
-
- /**
- * starts the wrapped monitor
- * @see IProgressMonitor#beginTask(String, int)
- */
- public void beginTask(String name, int totalWork) {
- if (!monitorStarted) {
- this.getWrappedProgressMonitor().beginTask(name, totalWork);
- monitorStarted = true;
- }
- }
-
- /**
- * if <code>monitor</code> is <code>null</code> return a new NullProgressMonitor instance,
- * otherwise return <code>monitor</code>
- * @param monitor IProgressMonitor instance
- * @return IProgressMonitor instance
- */
- public static IProgressMonitor monitorFor(IProgressMonitor monitor) {
- return monitor == null ? new NullProgressMonitor() : monitor;
- }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/messages.properties b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/messages.properties
deleted file mode 100644
index 92ebcec..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/internal/versioning/messages.properties
+++ /dev/null
@@ -1,102 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-FeatureVersionCompare_errorInVerifyPluginMsg=Error occurred while verifying plugin "{0}" in feature (id "{1}"; version: "{2}"; location: "{3}").
-FeatureVersionCompare_errorReasonMsg=Errors occurred during feature verification.
-FeatureModelTable_urlConvertErrorMsg=Could not convert "{0}" into a valid URL.
-FeatureVersionCompare_featureFileErrorMsg=Feature manifest (feature.xml) file could not be successfully loaded from location "{0}".
-FeatureVersionCompare_verifyingFeatureMsg=Comparing Features......
-FeatureVersionCompare_comparingFeatureMsg=Comparing Feature {0}
-FeatureVersionCompare_comparingReferenceMsg=Comparing references......
-FeatureModelTable_featureFileParseErrorMsg=Could not parse feature file "{0}", it may not exist.
-FeatureModelTable_featureSourceErrorMsg="{0}" is neither a configuration file nor a feature directory.
-FeatureVersionCompare_incorrectNewVersionMsg=The version of the feature (id: "{0}"; version: "{1}"; location: "{2}") should be at least "{3}".
-FeatureVersionCompare_incorrectNewVersionMsg2=The version of the feature (id: "{0}"; version: "{1}"; location: "{2}") should be higher than "{3}".
-FeatureVersionCompare_incorrectPluginVersionMsg=The version of the plugin (id: "{0}"; version: "{1}"; location: "{2}") should be at least "{3}".
-FeatureVersionCompare_incorrectPluginVersionChange=Plugin (id: "{0}"; version: "{1}") got "{2}" change, but its "{3}" version has been increased.
-FeatureVersionCompare_inputErrorMsg=Inputs "{0}" or "{1}" could not be resolved correctly. They should be either both paths of configurations or both paths of feature directories.
-FeatureVersionCompare_sourceIncludedFeatureNotFoundMsg=Compare source feature "{0}" is included in feature (id: "{1}"; version: "{2}", location: "{3}"), but its feature model has not been found.
-FeatureVersionCompare_destIncludedFeatureNotFoundMsg=Compare destination feature "{0}" is included in feature (id: "{1}"; version: "{2}", location: "{3}"), but its feature model has not been found.
-FeatureVersionCompare_lowerNewVersion=The version "{0}" of {1} "{2}" in feature (id: "{3}";version: "{4}"; location: "{5}") is lower than its version "{6}" in feature (id: "{3}";version: "{7}"; location: "{8}").
-FeatureVersionCompare_nestedErrorOccurredMsg=Feature (id: "{0}";version: "{1}"; location: "{2}") could not be verified since errors occurred while verifying its included features or plugins.
-FeatureModelTable_couldNotReadConfigFileMsg=Could not read configuration file "{0}".
-FeatureVersionCompare_newVersionLowerThanOldMsg=The Version of feature (id: "{0}"; version: "{1}", location: "{2}") is lower than the version of feature(id: "{0}"; version: "{3}", location: "{4}").
-FeatureVersionCompare_noFeaturesFoundInConfigMsg=No feature has been found in configuration: "{0}".
-FeatureVersionCompare_noFeatureFoundMsg=No feature has been found under directory: "{0}".
-FeatureVersionCompare_versionChangeIncorrectMsg=Feature (id: "{0}"; version: "{1}", location: "{2}") got "{3}" change, but its "{4}" version has been increased.
-FeatureVersionCompare_pluginNotFoundMsg=Plugin "{0}" is included in feature (id: "{1}"; version: "{2}"; location: "{3}"), but it has not been found under "{4}".
-FeatureVersionCompare_newAddedFeaturePlingMsg= {0} "{1}" is new added into feature (id: "{2}"; version: "{3}", location: "{4}").
-FeatureVersionCompare_newIntroducedFeatureMsg=Feature (id: "{0}"; version: "{1}"; location: "{2}") is a new introduced feature.
-FeatureVersionCompare_deletedFeaturePluginMsg= {0} "{1}" no longer exists in feature (id: "{2}"; version: "{3}", location: "{4}").
-
-VersionVerifier_compareOKMsg=All of the versions are correct.
-VersionVerifier_coreExceptionMsg=CoreException occurred:
-VersionVerifier_createFileErrorMsg=Exception occurred while creating the output file "{0}".
-VersionVerifier_mixedInputMsg=Inputs should be either two paths of configurations or two paths of feature directories, but not mix of them.
-VersionVerifier_pathIsNotFileMsg=The specified output file path is not a file.
-VersionVerifier_messageNumberMsg=Number of message: {0}
-VersionVerifier_summaryMsg=Comparison result Summary:
-
-VersionCompareDispatcher_fileNotFoundMsg=Could not find exclusion list file "{0}".
-VersionCompareDispatcher_readPropertyFailedMsg=Could not read property from file "{0}".
-VersionCompareDispatcher_invalidXMLFileNameMsg="{0}" is not a valid XML file.
-VersionCompareDispatcher_failedWriteXMLFileMsg=Failed to write out the compare result to "{0}".
-VersionCompareDispatcher_closeFileFailedMsg=Failed to close file "{0}".
-VersionCompareDispatcher_failedCreateDocMsg=Failed to create XML file for the compare result.
-
-JavaClassVersionCompare_classFileNotLoadedMsg=Could not read class file from: "{0}".
-JavaClassVersionCompare_classErrorOccurredMsg=Error occurred while comparing class "{0}".
-JavaClassVersionCompare_classMajorChangeMsg=Class "{0}" has a major change.
-JavaClassVersionCompare_classMinorChangeMsg=Class "{0}" has a minor change.
-JavaClassVersionCompare_classModifierChangedMsg=Modifier of "{0}" has been changed from "{1}" to "{2}".
-JavaClassVersionCompare_differentClassNameMsg=Selected two classes(or java sources) do not have the same class name. One is "{0}", another is "{1}".
-JavaClassVersionCompare_differentSuperClassMsg=Super class of "{0}" has been changed from "{1}" to "{2}".
-JavaClassVersionCompare_deletedInterfaceMsg=Interface "{0}" has no longer been implemented in class "{1}".
-JavaClassVersionCompare_deprecatedChangedMsg={0} "{1}" has been deprecated in class "{2}".
-JavaClassVersionCompare_descriptorChangedMsg=Type of field "{0}" has been changed from "{1}" to "{2}" in class "{3}".
-JavaClassVersionCompare_inputStreamErrMsg=Could not read class file from provided InputSteam.
-JavaClassVersionCompare_ModifierChangedMsg=Modifier of {0} "{1}" has been changed from "{2}" to "{3}".
-JavaClassVersionCompare_newAddedInterfaceMsg=Interface "{0}" has been new implemented in class "{1}".
-JavaClassVersionCompare_newAddedMsg={0} "{1}" is new added into class "{2}".
-JavaClassVersionCompare_noLongerExistMsg={0} "{1}" no longer exists in class "{2}".
-JavaClassVersionCompare_classMicroChange=Class "{0}" has a micro change.
-JavaClassVersionCompare_newAddedExceptionMsg=Exceptions "{0}" have been new added to method "{1}" in class "{2}".
-JavaClassVersionCompare_noLongerExistExceptionMsg= Exceptions "{0}" are no longer thrown from method "{1}" in class "{2}".
-JavaClassVersionCompare_unexpectedTypeMsg= "{0}" is not an expected input type.
-JavaClassVersionCompare_comparingClassMsg=Comparing class......
-
-PluginVersionCompare_classPathJarNotFoundMsg=Corresponding jar file has not been found for class path element "{0}" in plugin "{1}".
-PluginVersionCompare_couldNotReadManifestMsg=Could not read manifest file of plugin "{0}" correctly.
-PluginVersionCompare_couldNotOpenJarMsg=Could not open jar file "{0}".
-PluginVersionCompare_comparingPluginMsg=Comparing Plugin
-PluginVersionCompare_couldNotReadAttributesMsg=Could not read attributes from manifest file of bundle "{0}".
-PluginVersionCompare_couldNotReadClassPathMsg=Could not read Bundle-ClassPath attributes from manifest file of plugin "{0}".
-PluginVersionCompare_couldNotReadClassMsg=Could not read class file "{0}".
-PluginVersionCompare_couldNotParseHeaderMsg=Could not parse manifest header "{0}".
-PluginVersionCompare_couldNotConvertManifestMsg=Could not convert "{0}" into manifest file.
-PluginVersionCompare_destinationClassNotFoundMsg=Class "{0}" is a new added class.
-PluginVersionCompare_noPluginConverterInstanceMsg=Could not get PluginConverter instance from OSGi framework.
-PluginVersionCompare_failCloseJarMsg=Failed to close jar file "{0}".
-PluginVersionCompare_failCloseJarEntryAfterExtractMsg=Failed to close jar entry "{0}".
-PluginVersionCompare_failExtractJarEntryMsg=Failed to extract jar entry "{0}" to temporary file.
-PluginVersionCompare_finishedProcessPluginMsg=Finished process plugin "{0}", used {1} milliseconds.
-PluginVersionCompare_failOpenJarEntryMsg=Failed to open jar entry "{0}".
-PluginVersionCompare_failOpenTmpJarMsg=Failed to open temporary jar file "{0}" of jar entry "{1}" of "{2}".
-PluginVersionCompare_failCloseTmpAfterCreateMsg=Failed to close temporary file "{0}" after creating.
-PluginVersionCompare_errorWhenCompareClassesMsg=Error occurred while comparing {0}.
-PluginVersionCompare_failCreatTmpJarMsg=Failed to create temporary file "{0}".
-PluginVersionCompare_inValidClassPathMsg="{0}" is not a valid class path element in manifest file of "{1}".
-PluginVersionCompare_inputNotExistMsg="{0}" does not represent an exist file or directory.
-PluginVersionCompare_noValidClassFoundMsg=No class in "{0}" is need to be compared.
-PluginVersionCompare_pluginMajorChangeMsg=Plugin "{0}" has a major change.
-PluginVersionCompare_pluginMinorChangeMsg=Plugin "{0}" has a minor change.
-PluginVersionCompare_pluginMicroChangeMsg=Plugin "{0}" has a micro change.
-PluginVersionCompare_pluginErrorOccurredMsg=Error occurred while comparing plugin "{0}".
-PluginVersionCompare_sourceClassNotFoundMsg=Class "{0}" is no longer existed.
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/ICompareResult.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/ICompareResult.java
deleted file mode 100644
index 0263956..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/ICompareResult.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.versioning;
-
-import org.eclipse.core.runtime.MultiStatus;
-
-/**
- * This interface provides methods to access to compare result information of a plugin or class
- * <p>
- * <b>Note:</b> This interface should not be implemented by clients.
- * </p><p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public interface ICompareResult {
- /**
- * gets MuliStatus instance which contains messages created when verify a plugin or class
- * @return MultiStatus instance
- */
- public MultiStatus getResultStatus();
-
- /**
- * gets overall change happened on a plugin or class
- * <p>
- * The value of change is an int number of the following:
- * <ul>
- * <li>{@link IVersionCompare#ERROR_OCCURRED}</li>
- * <li>{@link IVersionCompare#MAJOR_CHANGE}</li>
- * <li>{@link IVersionCompare#MINOR_CHANGE}</li>
- * <li>{@link IVersionCompare#NEW_ADDED}</li>
- * <li>{@link IVersionCompare#NO_LONGER_EXIST}</li>
- * <li>{@link IVersionCompare#MICRO_CHANGE}</li>
- * <li>{@link IVersionCompare#QUALIFIER_CHANGE}</li>
- * <li>{@link IVersionCompare#NO_CHANGE}</li>
- * </ul>
- * </p>
- * @return change int number which indicates the overall change happened on a plugin or class
- * @see IVersionCompare#ERROR_OCCURRED
- * @see IVersionCompare#MAJOR_CHANGE
- * @see IVersionCompare#MINOR_CHANGE
- * @see IVersionCompare#NEW_ADDED
- * @see IVersionCompare#NO_LONGER_EXIST
- * @see IVersionCompare#MICRO_CHANGE
- * @see IVersionCompare#QUALIFIER_CHANGE
- * @see IVersionCompare#NO_CHANGE
- */
- public int getChange();
-}
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/IVersionCompare.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/IVersionCompare.java
deleted file mode 100644
index faf0eeb..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/IVersionCompare.java
+++ /dev/null
@@ -1,547 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.versioning;
-
-import java.io.File;
-import java.io.InputStream;
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.util.IClassFileReader;
-
-/**
- * This interface provides methods to clients for verification of version numbers
- * for features and plug-ins contained within an Eclipse configuration or under a directory.
- * <p>
- * Clients may implement this interface. However, in most cases clients will use the provided
- * factory to acquire an implementation for use.
- * </p><p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public interface IVersionCompare {
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates exclusive feature ids.
- */
- public static final String EXCLUDE_FEATURES_OPTION = "exclude.features"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates inclusive feature ids.
- */
- public static final String INCLUDE_FEATURES_OPTION = "include.features"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates exclusive plugin ids.
- */
- public static final String EXCLUDE_PLUGINS_OPTION = "exclude.plugins"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates inclusive plugin ids.
- */
- public static final String INCLUDE_PLUGINS_OPTION = "include.plugins"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates exclusive operation systems.
- */
- public static final String EXCLUDE_OS_OPTION = "exclude.os"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates inclusive operation systems.
- */
- public static final String INCLUDE_OS_OPTION = "include.os"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates exclusive windows systems.
- */
- public static final String EXCLUDE_WS_OPTION = "exclude.ws"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates inclusive windows systems.
- */
- public static final String INCLUDE_WS_OPTION = "include.ws"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates exclusive system architecture specifications.
- */
- public static final String EXCLUDE_ARCH_OPTION = "exclude.arc"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates inclusive system architecture specifications.
- */
- public static final String INCLUDE_ARCH_OPTION = "include.arc"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates exclusive locale language specifications.
- */
- public static final String EXCLUDE_NL_OPTION = "exclude.nl"; //$NON-NLS-1$
-
- /**
- * This String type constant is a property name in compare option file;
- * It's value indicates inclusive locale language specifications
- */
- public static final String INCLUDE_NL_OPTION = "include.nl"; //$NON-NLS-1$
-
- /**
- * This int type constant indicates overall compare result of a feature
- */
- public static final int FEATURE_OVERALL_STATUS = 0x0001;
-
- /**
- * This int type constant indicates detail compare messages of a feature
- */
- public static final int FEATURE_DETAIL_STATUS = 0x0002;
-
- /**
- * This int type constant indicates overall compare result of a plugin
- */
- public static final int PLUGIN_OVERALL_STATUS = 0x0004;
-
- /**
- * This int type constant indicates detail compare messages of a plugin
- */
- public static final int PLUGIN_DETAIL_STATUS = 0x0008;
-
- /**
- * This int type constant indicates overall compare result of a class
- */
- public static final int CLASS_OVERALL_STATUS = 0x0010;
-
- /**
- * This int type constant indicates detail compare messages of a class
- */
- public static final int CLASS_DETAIL_STATUS = 0x0020;
-
- /**
- * This int type constant indicates process error messages (e.g. IO error)
- */
- public static final int PROCESS_ERROR_STATUS = 0x0040;
-
- /**
- * This int type constant is a compare result of feature, plugin, class;
- * It indicates some error occurred during comparing
- */
- public final static int ERROR_OCCURRED = 0x0080;
-
- /**
- * This int type constant is a compare result of feature, plugin, class;
- * It indicates a major change of a feature, plugin, or class
- */
- public final static int MAJOR_CHANGE = 0x0100;
-
- /**
- * This int type constant is a compare result of feature, plugin, class;
- * It indicates a minor change of a feature, plugin, or class
- */
- public final static int MINOR_CHANGE = 0x0200;
-
- /**
- * This int type constant is a compare result of feature, plugin, class;
- * It indicates there is one or more new added attribute in a feature, plugin, or class
- */
- public final static int NEW_ADDED = 0x0400;
-
- /**
- * This int type constant is a compare result of feature, plugin, class;
- * It indicates there is one or more attribute have been deleted from a feature, plugin, or class
- */
- public final static int NO_LONGER_EXIST = 0x0800;
-
- /**
- * This int type constant is a compare result of feature, plugin, class;
- * It indicates a minor change of a feature, plugin, or class
- */
- public final static int MICRO_CHANGE = 0x1000;
-
- /**
- * This int type constant is a compare result of feature, plugin, class;
- * It indicates a qualifier change of a feature, plugin, or class
- */
- public final static int QUALIFIER_CHANGE = 0x2000;
-
- /**
- * This int type constant is a compare result of feature, plugin, class;
- * It indicates no change in a feature, plugin, or class
- */
- public final static int NO_CHANGE = 0x4000;
-
- /**
- * Verify two sets of features and return a status object indicating whether or not the version numbers
- * of the features (an optionally of their included plug-ins) have been incremented appropriated based
- * on the changes between the two sets.
- * <p>
- * Feature Version update priority:
- * Versions have four parts: major, minor, micro, and qualifier.
- * There are four corresponding kinds of version update: major update,
- * minor update, micro update, qualifier update. Besides, there are two
- * other kinds of update: new_added update(if some features or plugins
- * have been new added to the feature), and no_longer_exist update(if
- * some features or plugins have been deleted from the feature). Consequently,
- * major update has the highest priority, then minor update (currently
- * new_added and no_longer_exist are considered as minor updates), then
- * micro update, and qualifier update has the lowest priority. If we talk
- * about version update of a feature or a plugin, we mean the update with
- * the highest priority.
- * </p><p>
- * Feature Version update rule:
- * Usually, a feature includes other features and plug-ins,
- * e.g. :
- * old version of "f1":
- * <pre>
- * <?xml version="1.0" encoding="UTF-8"?>
- * <feature id="f1" label="aaa" version="1.0.0.v2005">
- * <includes id="f2" version="1.0.0.v2005" name="bbb"/>
- * <includes id="f3" version="1.0.0.v2005" name="ccc"/>
- * <plugin id="p1" version="1.0.0.v2005"/>
- * <plugin id="p2" version="1.0.0.v2005"/>
- * <plugin id="p3" version="1.0.0.v2005"/>
- * </feature>
- * </pre>
- * new version of "f1":
- * <pre>
- * <?xml version="1.0" encoding="UTF-8"?>
- * <feature id="f1" label="aaa" version="3.0.0">
- * <includes id="f2" version="2.0.0.v2005" name="bbb"/>
- * <includes id="f3" version="1.1.0.v2005" name="ccc"/>
- * <plugin id="p1" version="1.0.1.v2005"/>
- * <plugin id="p2" version="1.0.0.v2006"/>
- * <plugin id="p4" version="1.0.0.v2006"/>
- * </feature>
- * </pre></p><p>
- * The basic rule of version update is that if we have updated versions of
- * any include features(f2,f3) or plugins(p1,p2), we need to update the version
- * of f1. Update of f1 should be at least the highest update of its included
- * features and plug-ins. For instance, "f2" has a major update, "f3" has a minor
- * update, "p1" has a micro update, and "p2" has a qualifier update, "p3" no
- * longer exists in "f1", "p4" has been new added to "f1". In conclusion, "f1"
- * should at least have a major change(it's ok if "f1" also has a minor, micro,
- * or qualifier update).
- * </p><p>
- * Feature Verification process:
- * To verify the new version of "f1", we need to compare its included features
- * and plug-ins with those included in its old version and find out the update
- * with the highest priority. For included features, such as "f2" and "f3", before
- * comparing them with their corresponding ones in old "f1", we need to verify
- * their new versions first through recursion, and then,
- * <ul>
- * <li>if the new versions of "f2" is correct, we use the new version of "f2" to
- * compare with the version of "f2" in old "f1".
- * <li>if the new versions of "f2" is wrong, we try to generate a recommended new
- * version for "f2", and then,
- *<li>if we can generate a recommended new version for "f2", we use the recommended
- * new version to compare with the version of "f2" in old "f1".
- * <li>if we can not generate a recommended new version for "f2", there must be
- * some error occurred. We will create a warning message for that error and
- * we will also create a message to tell user that "f1" can not be verified
- * correctly, since we can't verify some of its included features. (The process
- * will not stop if we find an error. It will continually to compare and try
- * to find problems as more as possible, and warning messages will be collected,
- * and displayed at last.)
- * </ul>
- * </p><p>
- * We must increment the major part if:
- * <ul>
- * <li>an included feature has incremented the major part of its version
- * <li>an included plug-in has incremented the major part of its version
- * </ul>
- * </p><p>
- * We must increment the minor part if:
- * <ul>
- * <li>an included feature has incremented the minor part of its version
- * <li>an included plug-in has incremented the minor part of its version
- * <li>if a new plug-in was added to the feature
- * <li>if a plug-in was removed from the feature
- * <li>if a new included feature was added to the feature
- * <li>if an included feature was removed from the feature
- * </ul>
- * </p><p>
- * We must increment the micro part if:
- * <ul>
- * <li>an included feature has incremented the micro part of its version
- * <li>an included plug-in has incremented the micro part of its version
- * </ul>
- * </p><p>
- * We must increment the qualifier if:
- * <ul>
- * <li>an included feature has incremented the qualifier part of its version
- * <li>an included plug-in has incremented the qualifier part of its version
- * </ul>
- * </p>
- *
- * @param file1 File instance which denotes a configuration file or a feature directory
- * @param file2 File instance which denotes a configuration file or a feature directory
- * @param needPluginCompare if <code>true</code>, the method will compare plugin objects; if <code>false</code>
- * it just compares plugin names and versions.
- * @return IStatus instance which contains child status. Each child status indicates
- * an error or warning of one included feature or plug-in
- * @param compareOptionFile a property file which indicates exclusion and inclusion for feature compare
- * @param monitor IProgressMonitor instance which will monitor the progress during feature comparing
- * @throws CoreException
- * @see #checkFeatureVersions(String, String, boolean, File, IProgressMonitor)
- * @see #checkFeatureVersions(URL, URL, boolean, File, IProgressMonitor)
- */
- public IStatus checkFeatureVersions(File file1, File file2, boolean needPluginCompare, File compareOptionFile, IProgressMonitor monitor) throws CoreException;
-
- /**
- * As per {@link #checkFeatureVersions(File, File, boolean, File, IProgressMonitor)} except the given parameters are strings
- * pointing to the configuration file or features directory.
- *
- * @param path1 path which denotes an eclipse configuration XML file or a feature directory
- * @param path2 path which denotes an eclipse configuration XML file or a feature directory
- * @param needPluginCompare if <code>true</code>, the method will compare plugin objects; if <code>false</code>
- * it just compares plugin names and versions.
- * @param compareOptionFile a property file which indicates exclusion and inclusion for feature compare
- * @param monitor IProgressMonitor instance which will monitor the progress during feature comparing
- * @return a status containing the comparison result
- * @throws CoreException
- * @see #checkFeatureVersions(File, File, boolean, File, IProgressMonitor)
- * @see #checkFeatureVersions(URL, URL, boolean, File, IProgressMonitor)
- */
- public IStatus checkFeatureVersions(String path1, String path2, boolean needPluginCompare, File compareOptionFile, IProgressMonitor monitor) throws CoreException;
-
- /**
- * As per {@link #checkFeatureVersions(File, File, boolean, File, IProgressMonitor)} except the given parameters are urls
- * pointing to configuration files.
- *
- * @param configURL1 reference to an eclipse configuration XML file
- * @param configURL2 reference to an eclipse configuration XML file
- * @param needPluginCompare if <code>true</code>, the method will compare plugin objects; if <code>false</code>
- * it just compares plugin names and versions.
- * @param compareOptionFile a property file which indicates exclusion and inclusion for feature compare
- * @param monitor IProgressMonitor instance which will monitor the progress during feature comparing
- * @return a status containing the comparison result
- * @throws CoreException
- * @see #checkFeatureVersions(File, File, boolean, File, IProgressMonitor)
- * @see #checkFeatureVersions(String, String, boolean, File, IProgressMonitor)
- */
- public IStatus checkFeatureVersions(URL configURL1, URL configURL2, boolean needPluginCompare, File compareOptionFile, IProgressMonitor monitor) throws CoreException;
-
- /**
- * <p>
- * Compares the two given Java class files and returns a ICompareResult object containing a summary
- * of the changes between the two files.
- * </P><p>
- * Steps to compare two classes:
- * <ul>
- * <li>1. compares class names. If two classes do not have the same class name, we don't do
- * further compare.</li>
- * <li>2. compares class modifiers.
- * <ul>
- * <li>A. If the modifier of a class has been changed from public to non-public</li>
- * or from protected to modifier other than public and protected, it is a major change.</li>
- * <li>B. If the modifier of a class has been changed from non-abstract to abstract, it is a major change.</li>
- * <li>C. If the modifier of a class has been changed from non-final to final, it is a major change.</li></ul>
- * </li>
- * <li>3. compares super classes. If the super class has been changed, it is a major change.</li>
- * <li>4. compares implemented interfaces. If implemented interfaces have been changed, it is a major change.</li>
- * <li>5. compares fields.
- * <ul>
- * <li>A. If the modifier of a field has been changed from public to non-public
- * or from protected to modifier other than public and protected, it is a major change.</li>
- * <li>B. If the modifier of a field has been changed from non-final to final, it is a major change.</li>
- * <li>C. If the modifier of a field has been changed from static to non-static, it is a major change.</li>
- * <li>D. If the modifier of a field has been changed from volatile to non-volatile or vis-verser, it is a major change.</li>
- * <li>E. If a public or protected field has been deprecated, it is a micro change.</li>
- * <li>F. If a public or protected field has been new added into the class, it is a minor change.</li>
- * <li>G. If a public or protected field has been deleted from the class, it is a major change.</li>
- * <li>H. If the type of a field has been changed, it is a major change.</li>
- * </ul>
- * <li>6. compares methods.
- * <ul>
- * <li>A. If the modifier of a method has been changed from public to non-public
- * or from protected to modifier other than public and protected, it is a major change.</li>
- * <li>B. If the modifier of a method has been changed from non-abstract to abstract, it is a major change.</li>
- * <li>C. If the modifier of a method has been changed from non-final to final, it is a major change.</li>
- * <li>D. If the modifier of a method has been changed from static to non-static, it is a major change.</li>
- * <li>E. If the modifier of a method has been changed from volatile to non-volatile or vis-verser, it is a major change.</li>
- * <li>F. If a public or protected method has been deprecated, it is a micro change.</li>
- * <li>G. If a public or protected method has been new added into the class, it is a minor change.</li>
- * <li>H. If a public or protected method has been deleted from the class, it is a major change.</li>
- * <li>I. If return type, number of args, or any type of args has been changed, it is considered
- * as the combination of a method has been deleted and a new method has been added(major change).</li>
- * <li>J. If thrown exceptions of a method have been changed, it is a minor change.</li>
- * </ul>
- * </li>
- * </ul></p>
- *
- * @param javaClass1 Sting which denotes the full path of a java class file
- * @param javaClass2 Sting which denotes the full path of a java class file
- * @param monitor IProgressMonitor instance which will monitor the progress during class comparing
- * @return ICompareResult instance which contains change on the class and messages generated when class is compared
- * @throws CoreException if there was an exception during the comparison
- */
- public ICompareResult checkJavaClassVersions(String javaClass1, String javaClass2, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Compares the two given Java class files and returns a ICompareResult object containing a summary
- * of the changes between the two files.{@link #checkJavaClassVersions(String, String, IProgressMonitor)}
- *
- * @param javaClassURL1 URL which denotes a java class file
- * @param javaClassURL2 URL which denotes a java class file
- * @param monitor IProgressMonitor instance which will monitor the progress during class comparing
- * @return ICompareResult instance which contains change on the class and messages generated when class is compared
- * @throws CoreException if there was an exception during the comparison
- */
- public ICompareResult checkJavaClassVersions(URL javaClassURL1, URL javaClassURL2, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Compares the two given Java class files and returns a ICompareResult object containing a summary
- * of the changes between the two files.{@link #checkJavaClassVersions(String, String, IProgressMonitor)}
- *
- * @param javaClassFile1 File which denotes a java class file
- * @param javaClassFile2 File which denotes a java class file
- * @param monitor IProgressMonitor instance which will monitor the progress during class comparing
- * @return ICompareResult instance which contains change on the class and messages generated when class is compared
- * @throws CoreException if there was an exception during the comparison
- */
- public ICompareResult checkJavaClassVersions(File javaClassFile1, File javaClassFile2, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Compares the two given Java class files and returns a ICompareResult object containing a summary
- * of the changes between the two files.{@link #checkJavaClassVersions(String, String, IProgressMonitor)}
- * <p>
- * This method does <em>not</em> close the InputStreams and users should handle stream closure in the calling code.
- * </p>
- *
- * @param javaClassInputStream1 InputStream which denotes a java class file
- * @param javaClassInputStream2 InputStream which denotes a java class file
- * @param monitor IProgressMonitor instance which will monitor the progress during class comparing
- * @return ICompareResult instance which contains change on the class and messages generated when class is compared
- * @throws CoreException if there was an exception during the comparison
- */
- public ICompareResult checkJavaClassVersions(InputStream javaClassInputStream1, InputStream javaClassInputStream2, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Compares the two given Java class files and returns a ICompareResult object containing a summary
- * of the changes between the two files.{@link #checkJavaClassVersions(String, String, IProgressMonitor)}
- *
- * @param classFileReader1 IClassFileReader instance which denotes a java class file
- * @param classFileReader2 IClassFileReader instance which denotes a java class file
- * @param monitor IProgressMonitor instance which will monitor the progress during class comparing
- * @return ICompareResult instance which contains change on the class and messages generated when class is compared
- * @throws CoreException if there was an exception during the comparison
- */
- public ICompareResult checkJavaClassVersions(IClassFileReader classFileReader1, IClassFileReader classFileReader2, IProgressMonitor monitor) throws CoreException;
-
- /**
- * <p>
- * Compares the two given plug-ins which each other and reports a ICompareResult object indicating
- * whether or not the version number of the plug-ins have been incremented appropriately
- * based on the relative changes.<p>
- * <p>
- * Steps to compare two plugins:
- * <ul>
- * <li>1. compares all classes in the class path of the plugin to check if they have any change.</li>
- * <li>2. if a new class has been added into the plugin, it is a minor change.</li>
- * <li>3. if a class has been deleted from the plugin, it is a major change.</li>
- * </ul>
- * </p>
- * @param plugin1 String which denotes the plug-in's jar file name or directory
- * @param plugin2 String which denotes the plug-in's jar file name or directory
- * @param monitor IProgressMonitor instance which will monitor the progress during plugin comparing
- * @return ICompareResult instance which contains change on the plugin and messages generated when plugin is compared
- * @throws CoreException if an error occurred during the comparison
- */
- public ICompareResult checkPluginVersions(String plugin1, String plugin2, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Compares the two given plug-ins which each other and reports a ICompareResult object indicating
- * whether or not the version number of the plug-ins have been incremented appropriately
- * based on the relative changes.{@link #checkPluginVersions(String, String, IProgressMonitor)}
- *
- * @param pluginURL1 URL which denotes a plug-in's jar file name or directory
- * @param pluginURL2 URL which denotes a plug-in's jar file name or directory
- * @param monitor IProgressMonitor instance which will monitor the progress during plugin comparing
- * @return ICompareResult instance which contains change on the plugin and messages generated when plugin is compared
- * @throws CoreException if an error occurred during the comparison
- */
- public ICompareResult checkPluginVersions(URL pluginURL1, URL pluginURL2, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Compares the two given plug-ins which each other and reports a ICompareResult object indicating
- * whether or not the version number of the plug-ins have been incremented appropriately
- * based on the relative changes.{@link #checkPluginVersions(String, String, IProgressMonitor)}
- *
- * @param pluginFile1 File which denotes a plug-in's jar file name or directory
- * @param pluginFile2 File which denotes a plug-in's jar file name or directory
- * @param monitor IProgressMonitor instance which will monitor the progress during plugin comparing
- * @return ICompareResult instance which contains change on the plugin and messages generated when plugin is compared
- * @throws CoreException if an error occurred during the comparison
- */
- public ICompareResult checkPluginVersions(File pluginFile1, File pluginFile2, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Return a status object whose contents are filtered based on the given bit masks.
- * <p>
- * The value for <code>infoChoice</code> is an integer constructor from any combination
- * of the following bit masks:
- * <ul>
- * <li>{@link #FEATURE_OVERALL_STATUS}</li>
- * <li>{@link #FEATURE_DETAIL_STATUS}</li>
- * <li>{@link #PLUGIN_OVERALL_STATUS}</li>
- * <li>{@link #PLUGIN_DETAIL_STATUS}</li>
- * <li>{@link #CLASS_OVERALL_STATUS}</li>
- * <li>{@link #CLASS_DETAIL_STATUS}</li>
- * <li>{@link #PROCESS_ERROR_STATUS}</li>
- * </ul>
- * </p>
- *
- * @param status IStatus instance of compare result
- * @param infoChoice integer specifying the filter to use
- * @see #FEATURE_OVERALL_STATUS
- * @see #FEATURE_DETAIL_STATUS
- * @see #PLUGIN_OVERALL_STATUS
- * @see #PLUGIN_DETAIL_STATUS
- * @see #CLASS_OVERALL_STATUS
- * @see #CLASS_DETAIL_STATUS
- * @see #PROCESS_ERROR_STATUS
- * @return the filtered status object
- */
- public IStatus processCompareResult(IStatus status, int infoChoice);
-
- /**
- * writes out children statuses of <code>status</code> to XML file denoted by <code>fileName</code>
- * <p>
- * The format of the XML file is as following:
- * <pre>
- * <CompareResult Version="1.0">
- * <Category Name="Error" SeverityCode="4">
- * <Info Code="1" Message="The version of the feature "org.eclipse.rcp" should be at least "3.3.0"." />
- * ...
- * </Category>
- * <Category Name="Warning" SeverityCode="2">
- * ...
- * </Category>
- * <Category Name="Information" SeverityCode="1">
- * ...
- * </Category>
- * </CompareResult>
- * </pre>
- * </p>
- * @param status IStatus instance
- * @param fileName String name of a XML file
- * @throws CoreException <p>if any nested CoreException has been caught</p>
- */
- public void writeToXML(IStatus status, String fileName) throws CoreException;
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/VersionCompareFactory.java b/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/VersionCompareFactory.java
deleted file mode 100644
index 181e009..0000000
--- a/bundles/org.eclipse.pde.tools.versioning/src/org/eclipse/pde/tools/versioning/VersionCompareFactory.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.tools.versioning;
-
-import org.eclipse.pde.tools.internal.versioning.VersionCompareDispatcher;
-
-/**
- * Factory class to create objects used for comparing versions.
- * <p>
- * This class is not intended to be sub-classed by clients.
- * </p>
- */
-public final class VersionCompareFactory {
-
- /**
- * Constructor
- */
- public VersionCompareFactory() {
- super();
- }
-
- /**
- * Return an instance of a class which can be used for version comparison.
- *
- * @return version compare class
- */
- public IVersionCompare getVersionCompare() {
- return new VersionCompareDispatcher();
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tests/.classpath b/bundles/org.eclipse.releng.tests/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/bundles/org.eclipse.releng.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/bundles/org.eclipse.releng.tests/.cvsignore b/bundles/org.eclipse.releng.tests/.cvsignore
deleted file mode 100644
index c91f213..0000000
--- a/bundles/org.eclipse.releng.tests/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-temp.folder
-org.eclipse.releng.tests_3.0.0.zip
-relengtestssrc.zip
-build.xml
-relengtests.jar
diff --git a/bundles/org.eclipse.releng.tests/.project b/bundles/org.eclipse.releng.tests/.project
deleted file mode 100644
index d536dee..0000000
--- a/bundles/org.eclipse.releng.tests/.project
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.releng.tests</name>
- <comment></comment>
- <projects>
- <project>org.eclipse.core.runtime</project>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.releng.tests/META-INF/MANIFEST.MF b/bundles/org.eclipse.releng.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index dbcfaf6..0000000
--- a/bundles/org.eclipse.releng.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Eclipse Releng Tests
-Bundle-SymbolicName: org.eclipse.releng.tests
-Bundle-Version: 3.1.0
-Bundle-ClassPath: relengtests.jar
-Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActivator
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.runtime.compatibility,
- org.eclipse.core.resources,
- org.eclipse.ui,
- org.eclipse.test.performance,
- org.apache.ant,
- org.eclipse.pde.tools.versioning,
- org.junit
diff --git a/bundles/org.eclipse.releng.tests/about.html b/bundles/org.eclipse.releng.tests/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.releng.tests/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.releng.tests/build.properties b/bundles/org.eclipse.releng.tests/build.properties
deleted file mode 100644
index 83eb0e2..0000000
--- a/bundles/org.eclipse.releng.tests/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.properties,\
- compare.properties,\
- plugin.xml,\
- *.xml,\
- *.txt,\
- *.exe,\
- *.jar,\
- META-INF/
-
-source.relengtests.jar = src/
diff --git a/bundles/org.eclipse.releng.tests/compare.properties b/bundles/org.eclipse.releng.tests/compare.properties
deleted file mode 100644
index 4706d1d..0000000
--- a/bundles/org.eclipse.releng.tests/compare.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-compare.new=@new@
-compare.old=@old@
-compare.output=@output@
-#compare.options=d:\\temp\\compare.options
diff --git a/bundles/org.eclipse.releng.tests/ignoreErrorsUnix.txt b/bundles/org.eclipse.releng.tests/ignoreErrorsUnix.txt
deleted file mode 100644
index e69de29..0000000
--- a/bundles/org.eclipse.releng.tests/ignoreErrorsUnix.txt
+++ /dev/null
diff --git a/bundles/org.eclipse.releng.tests/ignoreErrorsWindows.txt b/bundles/org.eclipse.releng.tests/ignoreErrorsWindows.txt
deleted file mode 100644
index 3a88561..0000000
--- a/bundles/org.eclipse.releng.tests/ignoreErrorsWindows.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-127
-128
diff --git a/bundles/org.eclipse.releng.tests/ignoreFiles.txt b/bundles/org.eclipse.releng.tests/ignoreFiles.txt
deleted file mode 100644
index da6d435..0000000
--- a/bundles/org.eclipse.releng.tests/ignoreFiles.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-feature.properties
-feature.xml
-cpl*.html
-epl*.html
-license.html
-notice.html
-about.html
-about_cairo.html
-*/about_files/copyright-software-19980720.htm
-*/.metadata/.cache.properties
-*/reference/api/*
-*/reference/apt/*
-*/reference/osgi/*
-*/org.apache.ant_*
-*/org.junit*
-*/xercesImpl_jar/*
-*/xercessrc_zip/*
-*/plugins/org.eclipse.ant.ui_*/lib/remoteAnt_jar/org/eclipse/ant/internal/ui/antsupport/RemoteAntMessages.properties
-*/plugins/org.eclipse.ui_*/plugin.xml
-*/plugins/org.eclipse.tomcat_*/conf/*
-*/plugins/org.eclipse.tomcat_*/catalina_jar/*
-*/plugins/org.eclipse.tomcat_*/jasper-runtime_jar/*
-*/plugins/org.eclipse.tomcat_*/tomcat-util_jar/*
-*/plugins/org.eclipse.tomcat_*/commons-digester_jar/*
-*/plugins/org.eclipse.tomcat_*/naming-common_jar/*
-*/plugins/org.eclipse.tomcat_*/naming-resources_jar/*
-*/plugins/org.eclipse.tomcat_*/servlets-common_jar/*
-*/plugins/org.eclipse.tomcat_*/tomcat-coyote_jar/*
-*/plugins/org.eclipse.tomcat_*/tomcat-http11_jar/*
-*/plugins/org.eclipse.tomcat_*/commons-beanutils_jar/*
-*/plugins/org.eclipse.tomcat_*/commons-modeler_jar/*
-*/plugins/org.eclipse.tomcat_*/jasper-runtime_jar/*
-*/plugins/org.eclipse.tomcat_*/tomcat-util_jar/*
-*/plugins/org.eclipse.tomcat_*/commons-logging_jar/*
-*/plugins/org.eclipse.tomcat_*/servlet_jar/*
-*/plugins/org.apache.lucene_*/lucene-*-src_zip/lucene-*-src/*
-*/plugins/org.apache.lucene.analysis_*/lucene-analysis-*-src_zip/*
-*/plugins/org.apache.lucene.source_*/src/*
-*/plugins/org.apache.lucene.analysis_*/source-bundle/src/*
-*/plugins/org.apache.lucene.analysis.source_*/src/*
-*/plugins/org.apache.lucene.analysis_*/source-bundle/*
-*/plugins/org.apache.lucene.analysis_*/build.xml
-*/plugins/*.source_*/plugin.xml
-*/plugins/javax.servlet.source_*/src/*
-*/plugins/javax.servlet.jsp.source_/src/*
-*/plugins/org.apache.ant.source_*/about_files/*
-*/plugins/org.apache.jasper.source_*/src/org.apache.jasper_*/src_zip/*
-*/plugins/org.eclipse.platform.source_*/src/org.apache.lucene_*/lucene-*-src_zip/lucene-*/*
-*/plugins/*source_*/src/*
-*/plugins/org.eclipse.jdt.ui_*/jdt_jar/org/eclipse/jdt/internal/corext/template/default-codetemplates.xml
-*/plugins/org.eclipse.ant.ui_*/antui_jar/anttasks_*.xml
-*/plugins/org.eclipse.ant.ui_*/antui_jar/XDOCtasks.xml
-*/plugins/org.eclipse.pde.build_*/scripts/*
-*/plugins/org.eclipse.pde.build_*/feature/*
-*/plugins/org.eclipse.pde.build_*/notes/*
-*/plugins/org.eclipse.pde.build_*/templates/*
-*/plugins/org.eclipse.pde.build_*/data/*
-*/plugins/org.eclipse.pde.ui.templates_*/templates*/help/toc.xml
-*/plugins/org.eclipse.pde.ui.templates_*/templates_*
-*/plugins/org.eclipse.pde_*/intro/*
-*/plugins/org.eclipse.help.webapp_*/WEB-INF/web.xml
-*/plugins/org.eclipse.ui.workbench_*/workbench-new_jar/scripts/exportplugin.xml
-*/plugins/org.eclipse.ui.workbench_*/texteditor-new_jar/scripts/exportplugin.xml
-*/plugins/org.eclipse.jface_*/jface-new_jar/scripts/exportplugin.xml
-*/plugins/org.eclipse.jdt_*/overviewExtensionContent.xml
-*/plugins/org.eclipse.jdt_*/samplesExtensionContent.xml
-*/plugins/org.eclipse.jdt_*/tutorialsExtensionContent.xml
-*/plugins/org.eclipse.jdt_*/cheatsheets/HelloWorld.xml
-*/plugins/org.eclipse.jdt_*/cheatsheets/HelloWorldSWT.xml
-*/plugins/org.eclipse.pde_*/overviewExtensionContent.xml
-*/plugins/org.eclipse.pde_*/tutorialsExtensionContent.xml
-*/plugins/org.eclipse.pde_*/cheatsheets/*
-*/plugins/org.eclipse.platform_*/introContent.xml
-*/plugins/org.eclipse.platform_*/cheatsheets/CVS_1.xml
-*/plugins/org.eclipse.jdt_*/newsExtensionContent.xml
-*/plugins/org.eclipse.pde_*/newsExtensionContent.xml
-*/plugins/org.eclipse.intro_*/newsExtensionContent.xml
-*/plugins/org.eclipse.platform.source_*/src/org.eclipse.*/component.xml
-*/plugins/org.eclipse.jdt.source_3.1.0/src/org.eclipse.*/component.xml
-*/plugins/org.eclipse.ui.intro_*/about_files/copyright-software-19980720.htm
-*/plugins/org.eclipse.jdt.debug.ui_*/plugin.xml
-
-
diff --git a/bundles/org.eclipse.releng.tests/notes.txt b/bundles/org.eclipse.releng.tests/notes.txt
deleted file mode 100644
index d8fcb37..0000000
--- a/bundles/org.eclipse.releng.tests/notes.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-In order for the testChkpii automated test to run you must have
-the correct version of the internal IBM chkpii tools on your
-path and the file must be called chkpw906.exe
-
-Also, in Unix system chkpii chokes if you have errors 127 and 128
-in your ignoreErrors.txt file
-
-Also, you must use the correct platform file seperator in the
-ignoreFiles.txt.
\ No newline at end of file
diff --git a/bundles/org.eclipse.releng.tests/plugin.xml b/bundles/org.eclipse.releng.tests/plugin.xml
deleted file mode 100644
index dd7606a..0000000
--- a/bundles/org.eclipse.releng.tests/plugin.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-
-
-</plugin>
diff --git a/bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/BuildTests.java b/bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/BuildTests.java
deleted file mode 100644
index 2235090..0000000
--- a/bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/BuildTests.java
+++ /dev/null
@@ -1,969 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tests;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Platform;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-public class BuildTests extends TestCase {
-
- private String logFileName;
- private static final int HTML = 0;
- private static final int PROPERTIES = 1;
- private static final int XML = 2;
- URL[] javadocLogs = null;
-
- private static FileTool.IZipFilter getTrueFilter() {
- return new FileTool.IZipFilter() {
- public boolean shouldExtract(String fullEntryName,
- String entryName, int depth) {
- return true;
- }
-
- public boolean shouldUnzip(String fullEntryName, String entryName,
- int depth) {
- return true;
- }
- };
- }
-
- /**
- * Method hasErrors.
- *
- * @param string
- * @return boolean
- */
- private boolean hasErrors(String string) {
-
- boolean result = false;
- BufferedReader aReader = null;
-
- try {
- aReader = new BufferedReader(new InputStreamReader(
- new FileInputStream(string)));
- String aLine = aReader.readLine();
- while (aLine != null) {
- int aNumber = parseLine(aLine);
- if (aNumber > 0) {
- result = true;
- }
- aLine = aReader.readLine();
- }
- } catch (FileNotFoundException e) {
- System.out.println("Could not open log file: " + string);
- result = true;
- } catch (IOException e) {
- System.out.println("Error reading log file: " + string);
- result = true;
- } finally {
- if (aReader != null) {
- try {
- aReader.close();
- } catch (IOException e) {
- result = true;
- }
- }
- }
-
- return result;
- }
-
- public void testChkpii() {
-
- try {
- // test that chkpii is on path by printing chkpii help information
- Runtime aRuntime = Runtime.getRuntime();
- Process aProcess = aRuntime.exec(getExec() + " /?");
- BufferedReader aBufferedReader = new BufferedReader(
- new InputStreamReader(aProcess.getInputStream()));
- while (aBufferedReader.readLine() != null) {
- }
- aProcess.waitFor();
- } catch (IOException e) {
- // skip chkpii test if chkpii cannot be run.
- System.out.println(e.getMessage());
- System.out.println("Skipping chkpii test.");
- assertTrue(true);
- return;
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- String zipFile = locateEclipseZip();
-
- // String sniffFolder = BootLoader.getInstallURL().getPath() +
- // "releng_sniff_folder";
- // String sniffFolder = "d:\\builds\\t";
- String sniffFolder = Platform.getLocation().toOSString();
-
- try {
- if (zipFile.equals("")) {
- FileTool.unzip(getTrueFilter(), new File(sniffFolder));
- } else {
- FileTool.unzip(getTrueFilter(), new ZipFile(zipFile), new File(
- sniffFolder));
- }
- } catch (IOException e) {
- fail(zipFile + ": " + sniffFolder + ": "
- + "IOException unzipping Eclipse for chkpii");
- }
-
- boolean result1 = testChkpii(HTML);
- boolean result2 = testChkpii(XML);
- boolean result3 = testChkpii(PROPERTIES);
- assertTrue(
- "Translation errors in files. See the chkpii logs linked from the test results page for details.",
- (result1 && result2 && result3));
- }
-
- private boolean testChkpii(int type) {
- Runtime aRuntime = Runtime.getRuntime();
- String chkpiiString = getChkpiiString(type);
- try {
- Process aProcess = aRuntime.exec(chkpiiString);
- BufferedReader aBufferedReader = new BufferedReader(
- new InputStreamReader(aProcess.getInputStream()));
- while (aBufferedReader.readLine() != null) {
- }
- aProcess.waitFor();
- } catch (IOException e) {
- e.printStackTrace();
- return false;
- } catch (InterruptedException e) {
- return false;
- }
- return !hasErrors(getOutputFile(type));
- }
-
- /**
- * Method getChkpiiString.
- *
- * @param HTML
- * @return String
- */
- private String getChkpiiString(int type) {
- return getExec() + " " + getFilesToTest(type) + " -E -O "
- + getOutputFile(type) + " -XM @" + getExcludeErrors() + " -X "
- + getExcludeFile() + " -S /jsq /tex";
- }
-
- /**
- * Method locateEclipseZip.
- *
- * @return String
- */
- private String locateEclipseZip() {
-
- // String to use when running as an automated test.
- String installDir = Platform.getInstallLocation().getURL().getPath()
- + ".." + File.separator + "..";
-
- // String to use when running in Eclipse
- // String installDir = BootLoader.getInstallURL().getPath() + "..";
- File aFile = new File(installDir);
- if (aFile == null) {
- System.out.println("File is null");
- }
-
- File[] files = aFile.listFiles();
- for (int i = 0; i < files.length; i++) {
- File file = files[i];
- String fileName = file.getName();
- if (fileName.startsWith("eclipse-SDK-")
- && fileName.endsWith(".zip")) {
- return file.getPath();
- }
- }
-
- return "";
- }
-
- /**
- * Method getExcludeFiles.
- *
- * @return String
- */
- private String getExcludeFile() {
- String aString = System.getProperty("PLUGIN_PATH");
- return aString + File.separator + "ignoreFiles.txt";
- }
-
- /**
- * Method getOutputFile.
- *
- * @param HTML
- * @return String
- */
-
- private String getOutputFile(int type) {
-
- new File(logFileName).mkdirs();
-
- String aString = logFileName + File.separator + "org.eclipse.nls.";
- aString = new File(aString).getPath();
-
- switch (type) {
- case HTML:
- return aString + "html.txt";
- case PROPERTIES:
- return aString + "properties.txt";
-
- case XML:
- return aString + "xml.txt";
-
- default:
- return aString + "other.txt";
- }
- }
-
- /**
- * Method getFilesToTest.
- *
- * @param HTML
- * @return String
- */
-
- private String getFilesToTest(int type) {
-
- String sniffFolder = Platform.getLocation().toOSString();
-
- String aString = new File(sniffFolder).getPath() + File.separator;
-
- switch (type) {
- case HTML:
- return aString + "*.htm*";
- case PROPERTIES:
- return aString + "*.properties";
-
- case XML:
- return aString + "*.xml";
-
- default:
- return aString + "*.*";
- }
- }
-
- /**
- * Method getExec.
- *
- * @return String
- */
-
- private String getExec() {
-
- return new File("chkpw906.exe").getPath();
- }
-
- /**
- * Method getExcludeErrors.
- */
- private String getExcludeErrors() {
-
- String os = Platform.getOS();
- String fileName;
-
- if (os.equals("win32")) {
- fileName = "ignoreErrorsWindows.txt";
- } else {
- fileName = "ignoreErrorsUnix.txt";
- }
-
- String aString = System.getProperty("PLUGIN_PATH");
- return aString + File.separator + fileName;
- }
-
- /**
- * Method parseLine.
- *
- * @param aLine
- * @return -1 if not an error or warning line or the number of errors or
- * warnings.
- */
- private int parseLine(String aLine) {
- int index = aLine.indexOf("Files Could Not Be Processed: ");
-
- if (index == -1) {
- index = aLine.indexOf("Files Contain Error");
- }
-
- if (index == -1) {
- return -1;
- } else {
- String aString = aLine.substring(0, index).trim();
- return Integer.parseInt(aString);
- }
- }
-
- public class FileSuffixFilter implements FilenameFilter {
-
- private String suffix;
-
- public FileSuffixFilter(String suffix) {
- this.suffix = suffix;
- }
-
- /**
- * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
- */
- public boolean accept(File dir, String name) {
- int lastDot = name.lastIndexOf('.');
- if (lastDot == -1) {
- return false;
- }
- return name.substring(lastDot).equals(suffix);
- }
-
- }
-
- public static final String[] REQUIRED_FEATURE_FILES = { "epl-v10.html",
- "feature.properties", "feature.xml", "license.html" };
- public static final String REQUIRED_FEATURE_SUFFIX = ".jpg";
-
- public static final String[] REQUIRED_PLUGIN_FILES = { "about.html",
- "plugin.properties", "plugin.xml" };
- public static final String REQUIRED_PLUGIN_SUFFIX = ".jar";
-
- public static final String[] REQUIRED_FEATURE_PLUGIN_FILES = {
- "about.html", "about.ini", "about.mappings", "about.properties",
- "plugin.properties", "plugin.xml" };
- public static final String REQUIRED_FEATURE_PLUGIN_SUFFIX = ".gif";
-
- public static final String[] REQUIRED_FRAGMENT_FILES = { "fragment.xml" };
- public static final String REQUIRED_FRAGMENT_SUFFIX = "";
-
- public static final String[] REQUIRED_SWT_FRAGMENT_FILES = { "fragment.properties" };
- public static final String REQUIRED_SWT_FRAGMENT_SUFFIX = "";
-
- public static final String[] REQUIRED_SOURCE_FILES = { "about.html" };
- public static final String REQUIRED_SOURCE_SUFFIX = ".zip";
-
- public static final String[] REQUIRED_BUNDLE_FILES = { "about.html" };
- public static final String REQUIRED_BUNDLE_MANIFEST = "MANIFEST.MF";
- public static final String REQUIRED_BUNDLE_SUFFIX = ".jar";
-
- public static final String[] SUFFIX_EXEMPT_LIST = { "org.eclipse.swt",
- "org.apache.ant" };
-
- public static final int PLUGIN_COUNT = 84; // - 20; // Note this number
- // must include non-shipping
- // test plugins
- public static final int FEATURE_COUNT = 9; // - 1; // Note this number must
-
- // include non-shipping test
- // feature
-
- /**
- * Constructor for EmptyDirectoriesTest.
- *
- * @param arg0
- */
- public BuildTests(String arg0) {
- super(arg0);
- }
-
- /**
- * @see TestCase#setUp()
- */
- protected void setUp() throws Exception {
-
- // Autoamted Test
- logFileName = Platform.getInstallLocation().getURL().getPath() + ".."
- + File.separator + ".." + File.separator + "results"
- + File.separator + "chkpii"; // A tad bogus but this is where
- // the build wants to copy the
- // results from!
-
- String javadocUrls = System.getProperty("RELENGTEST.JAVADOC.URLS");
- if (javadocUrls != null) {
- String[] urls = javadocUrls.split(",");
- javadocLogs = new URL[urls.length];
- for (int i = 0; i < urls.length; i++) {
- javadocLogs[i] = new URL(urls[i]);
- }
- }
-
- // Runtime Workbench - TODI Put me back to Automated status
- // logFileName = "d:\\results";
- // sourceDirectoryName = "d:\\sourceFetch";
- }
-
- /**
- * @see TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- public void testFeatureFiles() {
- List result = new ArrayList();
- String installDir = Platform.getInstallLocation().getURL().getPath();
-
- File featureDir = new File(installDir, "features");
- File[] features = featureDir.listFiles();
- for (int i = 0; i < features.length; i++) {
- File aFeature = features[i];
- if (!testDirectory(aFeature, REQUIRED_FEATURE_FILES,
- REQUIRED_FEATURE_SUFFIX)) {
- result.add(aFeature.getPath());
- }
-
- }
-
- String aString = "";
- if (result.size() > 0) {
-
- Iterator iter = result.iterator();
- while (iter.hasNext()) {
- String element = (String) iter.next();
- aString = aString + element + "; ";
- }
- }
- assertTrue("Feature directory missing required files: " + aString,
- result.size() == 0);
- }
-
- public void testPluginFiles() {
- List result = new ArrayList();
- String installDir = Platform.getInstallLocation().getURL().getPath();
- File pluginDir = new File(installDir, "plugins");
- File[] plugins = pluginDir.listFiles();
- for (int i = 0; i < plugins.length; i++) {
- File aPlugin = plugins[i];
- if (aPlugin.getName().indexOf("test") == -1) {
- if (!testPluginFile(aPlugin)) {
- result.add(aPlugin.getPath());
- }
- }
- }
-
- String aString = "";
- if (result.size() > 0) {
-
- Iterator iter = result.iterator();
- while (iter.hasNext()) {
- String element = (String) iter.next();
- aString = aString + element + "; ";
- }
- }
- assertTrue("Plugin directory missing required files: " + aString,
- result.size() == 0);
- }
-
- private boolean testPluginFile(File aPlugin) {
-
- // Are we a doc plugin?
- if (testDirectory(aPlugin, REQUIRED_PLUGIN_FILES, ".zip")) {
- return true;
- }
-
- // Are we a feature plugin?
- if (testDirectory(aPlugin, REQUIRED_FEATURE_PLUGIN_FILES,
- REQUIRED_FEATURE_PLUGIN_SUFFIX)) {
- return true;
- }
-
- // Are we a regular plugin
- if (testDirectory(aPlugin, REQUIRED_PLUGIN_FILES,
- REQUIRED_PLUGIN_SUFFIX)) {
- return true;
- }
-
- // Are we a source plugin
- if (testSourcePlugin(aPlugin)) {
- return true;
- }
-
- // Are we a fragment
- if ((testDirectory(aPlugin, REQUIRED_FRAGMENT_FILES,
- REQUIRED_FRAGMENT_SUFFIX))
- || (testBundleDirectory(aPlugin, REQUIRED_BUNDLE_FILES,
- REQUIRED_BUNDLE_MANIFEST, REQUIRED_FRAGMENT_SUFFIX))) {
- return true;
- }
-
- // Are we an swt fragment
- if (testDirectory(aPlugin, REQUIRED_SWT_FRAGMENT_FILES,
- REQUIRED_SWT_FRAGMENT_SUFFIX)) {
- return true;
- }
-
- // Are we a bundle?
- if (testBundleDirectory(aPlugin, REQUIRED_BUNDLE_FILES,
- REQUIRED_BUNDLE_MANIFEST, REQUIRED_BUNDLE_SUFFIX)) {
- return true;
- }
-
- // No then we are bad
- return false;
- }
-
- private boolean testPluginJar(File aDirectory, String[] requiredFiles) {
- ArrayList list = new ArrayList();
- try {
- ZipFile jarredPlugin = new ZipFile(aDirectory);
- Enumeration _enum = jarredPlugin.entries();
- while (_enum.hasMoreElements()) {
- list.add(_enum.nextElement().toString());
- }
- } catch (ZipException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- if (!list.containsAll(Arrays.asList(requiredFiles))) {
- return false;
- }
- return true;
- }
-
- private boolean testDirectory(File aDirectory, String[] requiredFiles,
- String requiredSuffix) {
- if (aDirectory.getName().endsWith(".jar")) {
- return testPluginJar(aDirectory, requiredFiles);
- } else {
- if (!Arrays.asList(aDirectory.list()).containsAll(
- Arrays.asList(requiredFiles))) {
- return false;
- }
-
- int index = aDirectory.getName().indexOf('_');
- if (index == -1) {
- index = aDirectory.getName().length();
- }
-
- String plainName = aDirectory.getName().substring(0, index);
-
- if (requiredSuffix.equals("")
- || Arrays.asList(SUFFIX_EXEMPT_LIST).contains(plainName)) {
- return true;
- } else if (aDirectory
- .listFiles(new FileSuffixFilter(requiredSuffix)).length == 0) {
- return false;
- }
- }
- return true;
- }
-
- private boolean testBundleDirectory(File aDirectory,
- String[] requiredFiles, String manifestFile, String requiredSuffix) {
- if (aDirectory.getName().endsWith(".jar")) {
- return testPluginJar(aDirectory, requiredFiles);
- } else {
- if (!Arrays.asList(aDirectory.list()).containsAll(
- Arrays.asList(requiredFiles))) {
- return false;
- }
-
- int index = aDirectory.getName().indexOf('_');
- if (index == -1) {
- index = aDirectory.getName().length();
- }
-
- String plainName = aDirectory.getName().substring(0, index);
-
- File metaDir = new File(aDirectory, "META-INF");
-
- String[] metaFiles = metaDir.list();
- if (metaFiles == null) {
- return (false);
- } else {
- for (int i = 0; i < metaFiles.length; i++) {
- String filename = metaFiles[i];
- if (filename == manifestFile) {
- return true;
- }
- }
- }
-
- if (!metaDir.exists()) {
- return false;
- }
-
- if (requiredSuffix.equals("")
- || Arrays.asList(SUFFIX_EXEMPT_LIST).contains(plainName)) {
- return true;
- } else if (aDirectory
- .listFiles(new FileSuffixFilter(requiredSuffix)).length == 0) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Return true if the receiver is a source plugin, false otherwise A
- * separate method because this is a little tricky.
- *
- * @param aPlugin
- * @return boolean
- */
- private boolean testSourcePlugin(File aPlugin) {
- if (!testDirectory(aPlugin, REQUIRED_PLUGIN_FILES, "")) {
- return false;
- }
-
- File sourceDir = new File(aPlugin, "src");
- File[] sourceDirs = sourceDir.listFiles();
- if (sourceDirs == null) {
- return false;
- }
-
- for (int i = 0; i < sourceDirs.length; i++) {
- File aSourceDir = sourceDirs[i];
- if (!testDirectory(aSourceDir, REQUIRED_SOURCE_FILES,
- REQUIRED_SOURCE_SUFFIX)) {
- return false;
- }
- }
- return true;
- }
-
- public void testJavadocLogs() {
- // skip this test if there are no logs to check
- if (javadocLogs == null)
- assertTrue("", true);
- else {
- JavadocLog javadocLog = new JavadocLog(javadocLogs);
- String message = "javadoc errors and/or warnings in: \n";
- boolean problemLogsExist = javadocLog.logs.size() > 0;
- if (problemLogsExist) {
- for (int i = 0; i < javadocLog.logs.size(); i++)
- message = message.concat(javadocLog.logs.get(i).toString()
- + "\n");
- }
- message = message
- .concat("See the javadoc logs linked from the test results page for details");
- assertTrue(message, !problemLogsExist);
- }
- }
-
- private class JavadocLog {
- private ArrayList logs = new ArrayList();
-
- private JavadocLog(URL[] logs) {
- findProblems(logs);
- }
-
- private void findProblems(URL[] javadocLogs) {
- String JAVADOC_WARNING = ": warning";
- String JAVADOC_ERROR = ": error";
- String JAVADOC_JAVA = ".java:";
-
- BufferedReader in = null;
- for (int i = 0; i < javadocLogs.length; i++) {
- try {
- in = new BufferedReader(new InputStreamReader(
- javadocLogs[i].openStream()));
- String tmp;
- while ((tmp = in.readLine()) != null) {
- tmp = tmp.toLowerCase();
- if (tmp.indexOf(JAVADOC_ERROR) != -1
- || tmp.indexOf(JAVADOC_WARNING) != -1
- || tmp.indexOf(JAVADOC_JAVA) != -1) {
- String fileName = new File(javadocLogs[i].getFile())
- .getName();
- if (!logs.contains(fileName))
- logs.add(fileName);
- }
- }
- in.close();
-
- } catch (FileNotFoundException e) {
- logs.add("Unable to find "
- + new File(javadocLogs[i].getFile()).getName()
- + " to read.");
- e.printStackTrace();
- } catch (IOException e) {
- logs.add("Unable to read "
- + new File(javadocLogs[i].getFile()).getName());
- e.printStackTrace();
- }
- }
- }
- }
-
- /*
- * Load the configuration file which should be included in this bundle
- */
- private Properties loadCompareConfiguration() {
-
- String aString = System.getProperty("PLUGIN_PATH");
- final String CONFIG_FILENAME = aString + File.separator
- + "compare.properties";
-
- Properties properties = new Properties();
- try {
- properties.load(new BufferedInputStream(new FileInputStream(
- CONFIG_FILENAME)));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- return null;
- } catch (IOException e) {
- e.printStackTrace();
- return null;
- }
-
- return properties;
- }
-
- // private String buildCommandLine(String source, String destination, String
- // options, String output) {
- private String buildCommandLine(String source, String destination,
- String output) {
-
- String javadir = System.getProperty("java.home");
- javadir += File.separator + "bin" + File.separator + "java";
-
- String command = javadir
- + " -cp org.eclipse.equinox.launcher.jar org.eclipse.core.launcher.Main -application org.eclipse.pde.tools.versioning.application -clean";
-
- command += " -new " + source;
- command += " -old " + destination;
- command += " -output " + output;
-
- return command;
- }
-
- private void verifyCompareResults(String source, String destination,
- String output) {
- Document doc = parseResultXML(new File(output));
- if (doc == null) {
- String msg = "output file is null";
- assertTrue(msg, msg == null);
- return;
- }
- NodeList list = doc.getElementsByTagName("Category");
- int errorNumber = getSubElementNumber("Error", list);
- int warningNumber = getSubElementNumber("Warning", list);
- if (errorNumber != 0 || warningNumber != 0) {
- String msg = "Features included in \"" + source
- + "\" has been compared to those included in \""
- + destination + "\".\n";
- msg += "There are " + errorNumber + " error messages and "
- + warningNumber + " warning messages.\n";
- msg += "See the version compare logs linked from the test results page for details";
- assertTrue(msg, msg == null);
- }
- }
-
- /*
- * Helper method to perform some action when we are unable to run the
- * version compare mechanism.
- *
- * For now just print out a message to the console and return.
- */
- private void unableToRunCompare(String message) {
- System.out.println(message);
- }
-
- /**
- * Compares the feature and plug-in versions contained in this Eclipse
- * configuration, against a known previous Eclipse configuration.
- */
- public void testVersionCompare() {
-
- String os = System.getProperty("os.name");
-
- /* Only run compare tool on Linux to save time during tests */
- if (!os.equalsIgnoreCase("Linux")) {
- return;
- }
- String msg = null;
-
- Bundle bundle = Platform.getBundle("org.eclipse.pde.tools.versioning");
- if (bundle == null) {
- msg = "Version comparison bundle (org.eclipse.pde.tools.versioning) not installed.";
- unableToRunCompare(msg);
- assertTrue(msg, msg == null);
- return;
- }
- // load the configuration and ensure the mandatory parameters were
- // specified
- Properties properties = loadCompareConfiguration();
- // assume that #load printed out error message and just return
- if (properties == null) {
- msg = "Properties file is null";
- assertTrue(msg, msg == null);
- return;
- }
-
- String compareOldPath = properties.getProperty("compare.old");
- File compareOldFile = compareOldPath == null ? null : new File(
- compareOldPath);
- if (compareOldFile == null) {
- msg = "Old directory not specified.";
- unableToRunCompare(msg);
- assertTrue(msg, msg == null);
- return;
- }
-
- /*
- * Determine if the build is a nightly Nightly builds have qualifiers
- * identical the buildId - for instance N200612080010 which means that
- * they are lower than v20060921-1945 from an promoted integration build
- * and thus cannot be compared
- */
-
- //disable temporarily
- if ((compareOldPath.indexOf("I2") > 0 ) || (compareOldPath.indexOf("N2") > 0 )) { //if nightly build, skip test
- return;
- }
-
-
- String compareNewPath = properties.getProperty("compare.new");
- File compareNewFile = compareNewPath == null ? null : new File(
- compareNewPath);
- if (compareNewFile == null) {
- msg = "New directory not specified.";
- unableToRunCompare(msg);
- assertTrue(msg, msg == null);
- return;
- }
-
- String outputFileName = properties.getProperty("compare.output");
- File compareOutputFile = outputFileName == null ? null : new File(
- outputFileName);
- if (compareOutputFile == null) {
- msg = "Output directory not specified.";
- unableToRunCompare(msg);
- assertTrue(msg, msg == null);
- return;
- }
-
- /*
- * String outputFileName =
- * Platform.getInstallLocation().getURL().getPath() + ".." +
- * File.separator + ".." + File.separator + "results" + File.separator +
- * "results.xml"; // A tad bogus but this is where the build wants to
- * copy the results from!
- *
- * //create the output file try { File outputfile = new
- * File(outputFileName); boolean created = outputfile.createNewFile();
- * if (created) { } else { msg = "Output dir could not be created.";
- * assertTrue(msg, msg == null); } } catch (IOException e) {
- * e.printStackTrace(); }
- */
-
- String command = buildCommandLine(compareNewPath, compareOldPath,
- outputFileName);
-
- // System.out.println("command "+ command);
-
- try {
- Process aProcess = Runtime.getRuntime().exec(command);
- try {
- // wait until the comparison finishes
- aProcess.waitFor();
- } catch (InterruptedException e) {
- // ignore
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- // analyze compare result
- verifyCompareResults(compareNewPath, compareOldPath, outputFileName);
-
- }
-
- /**
- * parses the given XML file denoted by <code>file</code> and return
- * Document instance of it
- *
- * @param file
- * File instance which denoted an XML file
- * @return Document instance
- */
- private Document parseResultXML(File file) {
- try {
- DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance()
- .newDocumentBuilder();
- return docBuilder.parse(file);
- } catch (ParserConfigurationException e) {
- System.out.println("Unable to parse comparison result file.");
- e.printStackTrace();
- } catch (FactoryConfigurationError e) {
- System.out.println("Unable to create XML parser.");
- e.printStackTrace();
- } catch (SAXException e) {
- System.out.println("Unable to parse comparison result file.");
- e.printStackTrace();
- } catch (IOException e) {
- System.out
- .println("Exception trying to parse comparison result file.");
- e.printStackTrace();
- }
- return null;
- }
-
- /**
- * searches for element whose name attribute equals <code>elementName</code>,
- * and return the number of its child nodes if it has been found
- *
- * @param elementName
- * value of <code>name</code> attribute
- * @param nodeList
- * NodeList instance
- * @return number of child nodes of the element whose <code>name</code>
- * attribute equals <code>elementName</code>
- */
- private int getSubElementNumber(String elementName, NodeList nodeList) {
- for (int i = 0; i < nodeList.getLength(); i++) {
- Element element = ((Element) nodeList.item(i));
- if (element.getAttribute("Name").equals(elementName))
- return element.getChildNodes().getLength();
- }
- return 0;
- }
-
- /**
- * check whether or not the given file potentially represents a platform
- * configuration file on the file-system.
- *
- * @return <code>true</code> if <code>file</code> is a configuration
- * file <code>false</code> otherwise
- *
- * private boolean isConfiguration(File file) { IPath path = new
- * Path(file.getAbsolutePath()); return file.isFile() &&
- * "platform.xml".equalsIgnoreCase(path.lastSegment()); }
- */
-}
diff --git a/bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/FileTool.java b/bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/FileTool.java
deleted file mode 100644
index 68e91f8..0000000
--- a/bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/FileTool.java
+++ /dev/null
@@ -1,558 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tests;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.StringTokenizer;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipOutputStream;
-
-
-/**
- * A tool for performing operations on files.
- */
-public class FileTool {
- /**
- * A zip filter which is used to filter out unwanted entries
- * while extracting a zip file.
- *
- * @see FileTool#unzip(IZipFilter, ZipFile, File, Log)
- */
- public interface IZipFilter {
- /**
- * Returns a boolean indicating whether the entry with the
- * specified name should be extracted from the zip file.
- *
- * @param fullEntryName the full entry name; includes full
- * path segments for nested zip entries
- * @param entryName the partial entry name; only includes
- * path segments from the currect zip entry
- * @param depth a number greater than or equal to zero
- * which specifies the depth of the current nested zip
- * entry
- * @return a boolean indicating whether the entry with the
- * specified name should be extracted from the zip file
- */
- public boolean shouldExtract(String fullEntryName, String entryName, int depth);
- /**
- * Returns a boolean indicating whether the entry (which
- * is a zip/jar file) with the specified name should be
- * extracted from the zip file and then unzipped.
- *
- * @param fullEntryName the full entry name; includes full
- * path segments for nested zip entries
- * @param entryName the partial entry name; only includes
- * path segments from the currect zip entry
- * @param depth a number greater than or equal to zero
- * which specifies the depth of the current nested zip
- * entry
- * @return a boolean indicating whether the entry (which
- * is a zip/jar file) with the specified name should be
- * extracted from the zip file and then unzipped
- */
- public boolean shouldUnzip(String fullEntryName, String entryName, int depth);
- }
- /**
- * A buffer.
- */
- private static byte[] buffer = new byte[8192];
- /**
- * 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);
- }
- /**
- * Returns a boolean indicating whether the given files
- * have the same content.
- *
- * @param file1 the first file
- * @param file2 the second file
- * @return a boolean indicating whether the given files
- * have the same content
- */
- public static boolean compare(File file1, File file2) throws IOException {
- if(file1.length() != file2.length()){
- return false;
- }
- InputStream is1 = null;
- InputStream is2 = null;
- try {
- is1 = new BufferedInputStream(new FileInputStream(file1));
- is2 = new BufferedInputStream(new FileInputStream(file2));
- int a = 0;
- int b = 0;
- boolean same = true;
- while(same && a != -1 && b != -1){
- a = is1.read();
- b = is2.read();
- same = a == b;
- }
- return same;
- } finally {
- if(is2 != null){
- try {
- is2.close();
- } catch(IOException e){
- }
- }
- if(is1 != null){
- try {
- is1.close();
- } catch(IOException e){
- }
- }
- }
- }
- /**
- * Copies the given source file to the given destination file.
- *
- * @param src the given source file
- * @param dst the given destination file
- */
- public static void copy(File src, File dst) throws IOException {
- copy(src.getParentFile(), src, dst);
- }
- /**
- * Copies the given source file to the given destination file.
- *
- * @param root
- * @param src the given source file
- * @param dst the given destination file
- */
- public static void copy(File root, File src, File dst) throws IOException {
- if(src.isDirectory()){
- String[] children = src.list();
- for(int i = 0; i < children.length; ++i){
- File child = new File(src, children[i]);
- copy(root, child, dst);
- }
- } else {
- String rootString = root.toString();
- String srcString = src.toString();
- File dstFile = new File(dst, srcString.substring(rootString.length() + 1));
- transferData(src, dstFile);
- }
- }
- /**
- * Delete the given file or directory. Directories are
- * deleted recursively. If the file or directory can
- * not be deleted, a warning message is written to
- * stdout.
- *
- * @param file a file or directory
- */
- public static void delete(File file) {
- if(file.exists()){
- if(file.isDirectory()){
- String[] children = file.list();
- for(int i = 0; i < children.length; ++i) {
- File child = new File(file, children[i]);
- delete(child);
- }
- }
- if(!file.delete()){
- System.out.println("WARNING: could not delete " + file);
- }
-
- }
- }
- /**
- * Returns a new <code>File</code> from the given path
- * name segments.
- *
- * @param segments the given path name segments
- * @return a new <code>File</code> from the given path
- * name segments
- */
- public static File getFile(String[] segments) {
- File result = new File(segments[0]);
- for(int i = 1; i < segments.length; ++i){
- result = new File(result, segments[i]);
- }
- return result;
- }
- /**
- * Returns a list of all files below the given directory
- * that end with a string in the given include list and
- * do not end with a string in the given exclude list.
- * If include is <code>null</code> all files are included
- * except those that are explicitly excluded. If exclude
- * is <code>null</code> no files are excluded except those
- * that are not included.
- *
- * @param dir the given directory
- * @param include a list of filenames to include
- * @param exclude a list of filenames to exclude
- * @return a list of all files below the given directory
- * that are included and not explicitly excluded
- */
- public static File[] getFiles(File dir, String[] include, String[] exclude) {
- List list = new ArrayList();
- String[] children = dir.list();
- if(children == null){
- return new File[0];
- }
- for(int i = 0; i < children.length; ++i){
- File child = new File(dir, children[i]);
- String name = child.getName();
- if(child.isDirectory()){
- File[] result = getFiles(child, include, exclude);
- for(int j = 0; j < result.length; ++j){
- list.add(result[j]);
- }
- } else {
- boolean includeFile = include == null;
- if(include != null){
- for(int j = 0; j < include.length; ++j){
- if(name.endsWith(include[j])){
- includeFile = true;
- break;
- }
- }
- }
- boolean excludeFile = exclude != null;
- if(exclude != null){
- for(int j = 0; j < exclude.length; ++j){
- if(name.endsWith(exclude[j])){
- excludeFile = true;
- break;
- }
- }
- }
- if(includeFile && !excludeFile){
- list.add(child);
- }
- }
- }
- return (File[])list.toArray(new File[0]);
- }
- /**
- * Breaks the given file into its path name segments
- * and returns the result.
- *
- * @param file a file or directory
- * @return the path name segments of the given file
- */
- public static String[] getSegments(File file) {
- return getSegments(file.toString(), File.separatorChar);
- }
- /**
- * Breaks the given string into segments and returns the
- * result.
- *
- * @param s a string
- * @param separator the segment separator
- * @return the segments of the given string
- */
- public static String[] getSegments(String s, char separator){
- List result = new ArrayList();
- StringTokenizer tokenizer = new StringTokenizer(s, "" + separator);
- while(tokenizer.hasMoreTokens()){
- result.add(tokenizer.nextToken());
- }
- return (String[])result.toArray(new String[0]);
- }
- /**
- * Returns a vector of <code>File</code> paths parsed from
- * the given paths string.
- *
- * @param paths a paths string
- * @return a vector of <code>File</code> paths parsed from
- * the given paths string
- */
- public static File[] parsePaths(String paths){
- List result = new ArrayList();
- StringTokenizer tokenizer = new StringTokenizer(paths, ";");
- while(tokenizer.hasMoreTokens()){
- result.add(new File(tokenizer.nextToken()));
- }
- return (File[])result.toArray(new File[0]);
- }
- /**
- * 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
- */
- public static void transferData(File source, File destination) throws IOException {
- destination.getParentFile().mkdirs();
- InputStream is = null;
- OutputStream os = null;
- try {
- is = new BufferedInputStream(new FileInputStream(source));
- os = new BufferedOutputStream(new FileOutputStream(destination));
- transferData(is, os);
- } finally {
- if(os != null){
- try {
- os.close();
- } catch(IOException e){
- }
- }
- if(is != null){
- try {
- is.close();
- } catch(IOException e){
- }
- }
- }
- }
- /**
- * 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
- */
- 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);
- }
- }
- }
- /**
- * Unzips the given zip file to the given destination directory
- * extracting only those entries the pass through the given
- * filter.
- *
- * @param filter filters out unwanted zip entries
- * @param zipFile the zip file to unzip
- * @param dstDir the destination directory
- */
- public static void unzip(IZipFilter filter, ZipFile zipFile, File dstDir) throws IOException {
- unzip(filter, zipFile, dstDir, dstDir, 0);
- }
-
- private static void unzip(IZipFilter filter, ZipFile zipFile, File rootDstDir, File dstDir, int depth) throws IOException {
-
- Enumeration entries = zipFile.entries();
-
- try {
- while(entries.hasMoreElements()){
- ZipEntry entry = (ZipEntry)entries.nextElement();
- if(entry.isDirectory()){
- continue;
- }
- String entryName = entry.getName();
- File file = new File(dstDir, FileTool.changeSeparator(entryName, '/', File.separatorChar));
- String fullEntryName = FileTool.changeSeparator(file.toString().substring(rootDstDir.toString().length() + 1), File.separatorChar, '/');
- if(!(filter == null || filter.shouldExtract(fullEntryName, entryName, depth))){
- continue;
- }
- 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){
- }
- }
- if(src != null){
- try {
- src.close();
- } catch(IOException e){
- }
- }
- }
- if((entryName.endsWith(".zip") || entryName.endsWith(".jar")) && (filter == null || filter.shouldUnzip(fullEntryName, entryName, depth))) {
- String fileName = file.getName();
- String dirName = fileName.substring(0, fileName.length() - 4) + "_" + fileName.substring(fileName.length() - 3);
- ZipFile innerZipFile = null;
- try {
- innerZipFile = new ZipFile(file);
- File innerDstDir = new File(file.getParentFile(), dirName);
- unzip(filter, innerZipFile, rootDstDir, innerDstDir, depth + 1);
- file.delete();
- } catch (IOException e) {
- if(innerZipFile != null){
- try {
- innerZipFile.close();
- } catch(IOException e2){
- }
- }
- System.out.println("Could not unzip: " + fileName + ". InnerZip = " + innerZipFile.getName() + ". Lenght: " + innerZipFile.getName().length());
- e.printStackTrace();
- }
-
- }
- }
- } finally {
- try {
- zipFile.close();
- } catch(IOException e){
- }
- }
- }
- /**
- * Unzips the inner zip files in the given destination directory
- * extracting only those entries the pass through the given
- * filter.
- *
- * @param filter filters out unwanted zip entries
- * @param dstDir the destination directory
- */
- public static void unzip(IZipFilter filter, File dstDir) throws IOException {
- unzip(filter, dstDir, dstDir, 0);
- }
-
- private static void unzip(IZipFilter filter, File rootDstDir, File dstDir, int depth) throws IOException {
-
- File [] entries = rootDstDir.listFiles();
-
- try {
- for(int i=0;i<entries.length;i++){
- if(entries[i].isDirectory()){
- unzip (filter,entries[i],dstDir,depth);
- }
- File entry = entries[i];
-
- String entryName = entry.getName();
- File file = new File(dstDir, FileTool.changeSeparator(entryName, '/', File.separatorChar));
- if (entryName.endsWith(".zip") || entryName.endsWith(".jar")) {
- String fileName = file.getName();
- String dirName = fileName.substring(0, fileName.length() - 4) + "_" + fileName.substring(fileName.length() - 3);
- ZipFile innerZipFile = null;
- try {
- innerZipFile = new ZipFile(entry);
- File innerDstDir = new File(entry.getParentFile(), dirName);
- unzip(filter, innerZipFile, rootDstDir, innerDstDir, depth + 1);
- //entry.delete();
- } catch (IOException e) {
- if(innerZipFile != null){
- try {
- innerZipFile.close();
- } catch(IOException e2){
- }
- }
- System.out.println("Could not unzip: " + fileName + ". InnerZip = " + innerZipFile.getName() + ". Lenght: " + innerZipFile.getName().length());
- e.printStackTrace();
- }
-
- }
- }
- } catch(IOException e){
- e.printStackTrace();
- }
- }
- /**
- * Zips the given directory to the given zip file.
- * Directories are zipped recursively. Inner zip files are
- * created for directories that end with "_zip" or "_jar".
- * If verbose is true, progress information is logged.
- *
- * @param dir the directory to zip
- * @param zipFile the resulting zip file
- * @param verbose a boolean indicating whether progress
- * information is logged
- */
- public static void zip(File dir, File zipFile) throws IOException {
- BufferedOutputStream bos = null;
- ZipOutputStream zos = null;
- try {
- bos = new BufferedOutputStream(new FileOutputStream(zipFile));
- zos = new ZipOutputStream(bos);
- zip(dir, dir, zos);
- } finally {
- if(zos == null){
- if(bos != null){
- try {
- bos.close();
- } catch(IOException e){
- }
- }
- } else {
- try {
- zos.close();
- } catch(IOException e){
- }
- }
- }
- }
- private static void zip(File root, File file, ZipOutputStream zos) throws IOException {
- if(file.isDirectory()){
- String name = file.getName();
- if(name.endsWith("_zip") || name.endsWith("_jar")){
- String rootString = root.toString();
- String fileString = file.toString();
- String zipEntryName = fileString.substring(rootString.length() + 1);
- int underscoreIndex = zipEntryName.lastIndexOf("_");
- zipEntryName = zipEntryName.substring(0, underscoreIndex) + "." + zipEntryName.substring(underscoreIndex + 1);
- ZipEntry zipEntry = new ZipEntry(changeSeparator(zipEntryName, File.separatorChar, '/'));
- zos.putNextEntry(zipEntry);
- ZipOutputStream zos2 = new ZipOutputStream(zos);
- String[] list = file.list();
- for(int i = 0; i < list.length; ++i){
- File item = new File(file, list[i]);
- zip(file, item, zos2);
- }
- zos2.finish();
- zos.closeEntry();
- } else {
- String[] list = file.list();
- for(int i = 0; i < list.length; ++i){
- File item = new File(file, list[i]);
- zip(root, item, zos);
- }
- }
- } else {
- String rootString = root.toString();
- String fileString = file.toString();
- String zipEntryName = fileString.substring(rootString.length() + 1);
- ZipEntry zipEntry = new ZipEntry(changeSeparator(zipEntryName, File.separatorChar, '/'));
- zos.putNextEntry(zipEntry);
- FileInputStream fos = null;
- try {
- fos = new FileInputStream(file);
- transferData(fos, zos);
- } finally {
- if(fos != null){
- try {
- fos.close();
- } catch(IOException e){
- }
- }
- }
- zos.closeEntry();
- }
- }
-}
diff --git a/bundles/org.eclipse.releng.tests/test.xml b/bundles/org.eclipse.releng.tests/test.xml
deleted file mode 100644
index 7b0751e..0000000
--- a/bundles/org.eclipse.releng.tests/test.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0"?>
-<project name="RelEng Automated Tests" default="run" basedir=".">
-
- <!-- The property ${eclipse-home} should be passed into this script -->
- <!-- sets the properties eclipse-home, and library-file -->
- <property name="eclipse-home" value="${basedir}/../../"/>
- <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
- <property name="org.eclipse.releng.tests" value="org.eclipse.releng.tests_3.1.0" />
-
- <!-- This target holds all initialization code that needs to be done for -->
- <!-- all tests that are to be run. Initialization for individual tests -->
- <!-- should be done within the body of the suite target. -->
- <target name="init">
- <tstamp/>
- <condition property="tar.gz">
- <contains string="${runtimeArchive}" substring=".tar.gz" />
- </condition>
- <condition property="location" value="/builds/t">
- <equals arg1="${os}" arg2="win32" />
- </condition>
- <property name="location" value="${basedir}/releng"/>
- <property name="locationcompare" value="${basedir}/relengcompare"/>
- </target>
-
- <!-- This target holds code to cleanup the testing environment after the tests -->
- <!-- have been run. You can use this to delete temporary files that are created. -->
- <target name="cleanup">
- <delete dir="${location}" quiet="true"/>
- <delete dir="${locationcompare}"/>
- </target>
-
-<!--if file is a tar.gz file and not a zip, extract the SDK on which to execute chkpii before starting tests-->
- <target name="setup" if="tar.gz">
- <property name="archiveDir" value="${eclipse-home}/../.."/>
- <delete dir="${location}"/>
- <mkdir dir="${location}"/>
- <exec dir="${location}" executable="tar">
- <arg line="-xzf ${archiveDir}/${runtimeArchive}"/>
- </exec>
- <!-- only run compare test on Linux machine since it is the fastest machine.
- Also, the compare tool only parses feature.xmls so it only needs to be run on one machine -->
- <delete dir="${locationcompare}"/>
- <mkdir dir="${locationcompare}" />
- <exec executable="/usr/bin/wget" dir="${locationcompare}" output="${locationcompare}/error.txt" failonerror="false" os="Linux">
- <arg line="-q -O ${locationcompare}/eclipse-SDK-3.2.2-linux-gtk.tar.gz http://fullmoon.ottawa.ibm.com/downloads/drops/R-3.2.2-200702121330/eclipse-SDK-3.2.2-linux-gtk.tar.gz"/>
- </exec>
- <exec dir="${locationcompare}" executable="tar" failonerror="false" os="Linux">
- <arg line="-xzf ${locationcompare}/eclipse-SDK-3.2.2-linux-gtk.tar.gz"/>
- </exec>
- <replace file="${basedir}/plugins/${org.eclipse.releng.tests}/compare.properties" token="@new@" value="${location}/eclipse/features"/>
- <replace file="${basedir}/plugins/${org.eclipse.releng.tests}/compare.properties" token="@old@" value="${locationcompare}/eclipse/features"/>
- <property name="versionOutputDir" value="${locationcompare}/../../../results/versiontool"/>
- <mkdir dir="${versionOutputDir}"/>
- <exec dir="${versionOutputDir}" executable="/bin/touch" failonerror="false" os="Linux">
- <arg line="results.xml"/>
- </exec>
- <property name="versionOutputFile" value="${versionOutputDir}/results.xml"/>
- <echo message = "locationcompare ${locationcompare} versionOutputDir ${versionOutputDir} versionOutputFile ${versionOutputFile}"/>
- <replace file="${basedir}/plugins/${org.eclipse.releng.tests}/compare.properties" token="@output@" value="${versionOutputFile}"/>
- </target>
-
- <!-- This target runs the test suite. Any actions that need to happen after all -->
- <!-- the tests have been run should go here. -->
- <target name="run" depends="init,BuildTests">
- <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
- <property name="includes" value="org*.xml"/>
- <property name="output-file" value="org.eclipse.releng.tests.xml"/>
- </ant>
- </target>
-
- <target name="BuildTests" depends="init,cleanup,setup">
- <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
- <property name="data-dir" value="${location}"/>
- <property name="plugin-name" value="org.eclipse.releng.tests"/>
- <property name="classname" value="org.eclipse.releng.tests.BuildTests"/>
- <property name="plugin-path" value="${eclipse-home}/plugins/${org.eclipse.releng.tests}"/>
- <property name="vmargs"
- value="-DRELENGTEST.JAVADOC.URLS=file:///${eclipse-home}/../../org.eclipse.platform.doc.isv.javadoc.txt,file:///${eclipse-home}/../../org.eclipse.jdt.doc.isv.javadoc.txt,file:///${eclipse-home}/../../org.eclipse.jdt.apt.javadoc.txt,file:///${eclipse-home}/../../org.eclipse.pde.doc.user.javadoc.txt"/>
- </ant>
- </target>
-
- </project>
diff --git a/bundles/org.eclipse.releng.tools/.classpath b/bundles/org.eclipse.releng.tools/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.releng.tools/.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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.releng.tools/.cvsignore b/bundles/org.eclipse.releng.tools/.cvsignore
deleted file mode 100644
index ba22c92..0000000
--- a/bundles/org.eclipse.releng.tools/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-temp.folder
-build.xml
-tools.jar
-bin
-org.eclipse.releng.tools_*.zip
-toolssrc.zip
diff --git a/bundles/org.eclipse.releng.tools/.project b/bundles/org.eclipse.releng.tools/.project
deleted file mode 100644
index 263fdd6..0000000
--- a/bundles/org.eclipse.releng.tools/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.releng.tools</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/bundles/org.eclipse.releng.tools/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.releng.tools/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8e4f576..0000000
--- a/bundles/org.eclipse.releng.tools/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Wed Apr 04 08:57:47 GMT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/org.eclipse.releng.tools/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.releng.tools/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 50481e9..0000000
--- a/bundles/org.eclipse.releng.tools/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,50 +0,0 @@
-#Fri Apr 13 11:54:38 CEST 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.releng.tools/META-INF/MANIFEST.MF b/bundles/org.eclipse.releng.tools/META-INF/MANIFEST.MF
deleted file mode 100644
index e83704d..0000000
--- a/bundles/org.eclipse.releng.tools/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %PluginName
-Bundle-SymbolicName: org.eclipse.releng.tools; singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-ClassPath: tools.jar
-Bundle-Activator: org.eclipse.releng.tools.RelEngPlugin
-Bundle-Vendor: %PluginProvider
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui.ide;resolution:=optional,
- org.eclipse.ui.views;resolution:=optional,
- org.eclipse.jface.text;resolution:=optional,
- org.eclipse.ui.workbench.texteditor;resolution:=optional,
- org.eclipse.ui.editors;resolution:=optional,
- org.eclipse.core.resources,
- org.eclipse.ui,
- org.eclipse.team.cvs.core,
- org.eclipse.team.core,
- org.eclipse.team.cvs.ui;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.core.runtime,
- org.eclipse.team.core,
- org.eclipse.team.ui,
- org.eclipse.compare
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.releng.tools/TestCases.doc b/bundles/org.eclipse.releng.tools/TestCases.doc
deleted file mode 100644
index de6cc64..0000000
--- a/bundles/org.eclipse.releng.tools/TestCases.doc
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.releng.tools/about.html b/bundles/org.eclipse.releng.tools/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.releng.tools/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.releng.tools/book.css b/bundles/org.eclipse.releng.tools/book.css
deleted file mode 100644
index 1ca0593..0000000
--- a/bundles/org.eclipse.releng.tools/book.css
+++ /dev/null
@@ -1,106 +0,0 @@
-P.Code {
- display: block;
- text-align: left;
- text-indent: 0.00pt;
- margin-top: 0.000000pt;
- margin-bottom: 0.000000pt;
- margin-right: 0.000000pt;
- margin-left: 15pt;
- font-size: 10.000000pt;
- font-weight: medium;
- font-style: Regular;
- color: #4444CC;
- text-decoration: none;
- vertical-align: baseline;
- text-transform: none;
- font-family: "Courier New";
-}
-H6.CaptionFigColumn {
- display: block;
- text-align: left;
- text-indent: 0.000000pt;
- margin-top: 3.000000pt;
- margin-bottom: 11.000000pt;
- margin-right: 0.000000pt;
- margin-left: 0.000000pt;
- font-size: 9.000000pt;
- font-weight: medium;
- font-style: Italic;
- color: #000000;
- text-decoration: none;
- vertical-align: baseline;
- text-transform: none;
- font-family: "Arial";
-}
-P.Note {
- display: block;
- text-align: left;
- text-indent: 0pt;
- margin-top: 19.500000pt;
- margin-bottom: 19.500000pt;
- margin-right: 0.000000pt;
- margin-left: 30pt;
- font-size: 11.000000pt;
- font-weight: medium;
- font-style: Italic;
- color: #000000;
- text-decoration: none;
- vertical-align: baseline;
- text-transform: none;
- font-family: "Arial";
-}
-EM.UILabel {
- font-weight: Bold;
- font-style: Regular;
- text-decoration: none;
- vertical-align: baseline;
- text-transform: none;
-}
-EM.CodeName {
- font-weight: Bold;
- font-style: Regular;
- text-decoration: none;
- vertical-align: baseline;
- text-transform: none;
- font-family:"Courier New";
-}
-
-
-
-
-/* following font face declarations need to be removed for DBCS */
-
-body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-family: Arial, Helvetica, sans-serif; color: #000000}
-pre { font-family: Courier, monospace}
-
-/* end font face declarations */
-
-/* following font size declarations should be OK for DBCS */
-body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-size: 10pt; }
-pre { font-size: 10pt}
-
-/* end font size declarations */
-
-body { background: #FFFFFF}
-h1 { font-size: 18pt; margin-top: 5; margin-bottom: 1 }
-h2 { font-size: 14pt; margin-top: 25; margin-bottom: 3 }
-h3 { font-size: 11pt; margin-top: 20; margin-bottom: 3 }
-h4 { font-size: 10pt; margin-top: 20; margin-bottom: 3; font-style: italic }
-p { margin-top: 10px; margin-bottom: 10px }
-pre { margin-left: 6; font-size: 9pt }
-a:link { color: #0000FF }
-a:hover { color: #000080 }
-a:visited { text-decoration: underline }
-ul { margin-top: 0; margin-bottom: 10 }
-li { margin-top: 0; margin-bottom: 0 }
-li p { margin-top: 0; margin-bottom: 0 }
-ol { margin-top: 0; margin-bottom: 10 }
-dl { margin-top: 0; margin-bottom: 10 }
-dt { margin-top: 0; margin-bottom: 0; font-weight: bold }
-dd { margin-top: 0; margin-bottom: 0 }
-strong { font-weight: bold}
-em { font-style: italic}
-var { font-style: italic}
-div.revision { border-left-style: solid; border-left-width: thin;
- border-left-color: #7B68EE; padding-left:5 }
-th { font-weight: bold }
diff --git a/bundles/org.eclipse.releng.tools/build.properties b/bundles/org.eclipse.releng.tools/build.properties
deleted file mode 100644
index 8738065..0000000
--- a/bundles/org.eclipse.releng.tools/build.properties
+++ /dev/null
@@ -1,17 +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
-###############################################################################
-source.tools.jar = src/
-bin.includes = plugin.xml,\
- *.jar,\
- about.html,\
- icons/,\
- plugin.properties,\
- META-INF/
diff --git a/bundles/org.eclipse.releng.tools/html/00001.html b/bundles/org.eclipse.releng.tools/html/00001.html
deleted file mode 100644
index 759af90..0000000
--- a/bundles/org.eclipse.releng.tools/html/00001.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html><head><title>No Map Project Exists</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head>
-<body>
-<h2>No Map Project Exists</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p>
-<h3>Precondition:</h3>
-<ol>
- <li>There is no project1 in current workspace</li>
- <li>There is "no org.eclipse.org" in current workspace</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Create project "project1"</li>
- <li>Commit project1 to a CVS server</li>
- <li>Select project1 and release. </li>
-</ol>
-<h3>Expected Result:</h3>
-Error occurs indicating there is no map project
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00002.html b/bundles/org.eclipse.releng.tools/html/00002.html
deleted file mode 100644
index 9f657b3..0000000
--- a/bundles/org.eclipse.releng.tools/html/00002.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Integrated Tests for Default Settings</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Integrated Tests for Default Settings</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00003.html b/bundles/org.eclipse.releng.tools/html/00003.html
deleted file mode 100644
index 9b613ac..0000000
--- a/bundles/org.eclipse.releng.tools/html/00003.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Integrated Tests for Variations</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Integrated Tests for Variations</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00004.html b/bundles/org.eclipse.releng.tools/html/00004.html
deleted file mode 100644
index 6b5ee96..0000000
--- a/bundles/org.eclipse.releng.tools/html/00004.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html><head><title>No Map File Exists</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>No Map File Exists</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>project1 exists and is committed</li>
- <li>"org.eclipse.org" exists</li>
- <li>No folder of "maps" under "org.eclipse.org"</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Create a "maps" folder under the map project</li>
- <li>Selected project1 and release</li>
-</ol>
-<h3>Expected Result: </h3>
-Error occurs indicating there is no valid map file or map entry
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00005.html b/bundles/org.eclipse.releng.tools/html/00005.html
deleted file mode 100644
index b84b95d..0000000
--- a/bundles/org.eclipse.releng.tools/html/00005.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<html><head><title>Empty Map Files</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Empty Map Files</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>project1 exists and is committed</li>
- <li>"org.eclipse.org/maps" exists but empty</li>
-</ol>
-<h3>Test Steps:</h3>
- <li>Add map1.map under folder maps.</li>
- <li>Make sure the file is empty</li>
- <li>Selected project1 and release</li>
-<h3>Expected Result: </h3>
-Error occurs indicating there is no valid map file or map entry
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00006.html b/bundles/org.eclipse.releng.tools/html/00006.html
deleted file mode 100644
index f2c4d6f..0000000
--- a/bundles/org.eclipse.releng.tools/html/00006.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html><head><title>Unshared Map Project</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Unshared Map Project</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>project1 exists and is committed
- <li>map1.map file exists in "org.eclipse.org" but is empty
- <li>"org.eclipse.org" is not shared
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Add plugin@project1=v404,:pserver:zliu@127.0.0.1:c:/cvsnt, to map1.map
- <li>Save map1.map
- <li>Selected project1 and release
-</ol>
-<h3>Expected Result:</h3>
- Error message of uncommitted map project appears.
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00007.html b/bundles/org.eclipse.releng.tools/html/00007.html
deleted file mode 100644
index 76ba6aa..0000000
--- a/bundles/org.eclipse.releng.tools/html/00007.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<html><head><title>Map Entries and CVS Module Name</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Map Entries and CVS Module Name</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>project1, project2 exist in workspace</li>
- <li>project1 is committed as "project1"</li>
- <li>project2 is committed with a different CVS module name "p2"</li>
- <li>"org.eclipse.org" exists and shared</li>
- <li>map1.map exist under "org.eclipse.org/maps"</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Add map entries in map1.map "plugin@project1=v1,:pserver:zliu@127.0.0.1:c:/cvsnt," and "plugin@hahaha=v1,:pserver:zliu@127.0.0.1:c:/cvsnt,,p2"</li>
- <li>Select project1 and project 2 and release </li>
-</ol>
-<h3>Expected Result: </h3>
-<ol>
- <li>Release wizard starts up
- <li>project1 and project2 are shown and become selectable in Project Selection Page
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00008.html b/bundles/org.eclipse.releng.tools/html/00008.html
deleted file mode 100644
index e7eafdd..0000000
--- a/bundles/org.eclipse.releng.tools/html/00008.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<html><head><title>Map Entries Contain No-existing Projects</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Map Entries Contain No-existing Projects</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Precondition:</h3>
-<ol>
- <li>project1, project2 exist in workspace and committed</li>
- <li>"org.eclipse.org/maps" exists and committed</li>
- <li>map1.map exist under "org.eclipse.org/maps"</li>
- <li>project1 and project2 have valid entries in map1.map</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Add map entry in map1.map "plugin@project11=v1,:pserver:zliu@127.0.0.1:c:/cvsnt,"</li>
- <li>Add project9 and project 11 in workspace but don't share them</li>
- <li>Start release wizard</li>
-</ol>
-<h3>Expected Result: </h3>
-<ol>
- <li>Only project1 and project2 are shown in wizard page</li>
- <li>project9 and project11 are not shown</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00009.html b/bundles/org.eclipse.releng.tools/html/00009.html
deleted file mode 100644
index f882c5a..0000000
--- a/bundles/org.eclipse.releng.tools/html/00009.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<html><head><title>Add/delete Map File</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Add/delete Map File</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Precondition:</h3>
-<ol>
- <li>project1 exist in workspace and committed</li>
- <li>"org.eclipse.org/maps" exists and committed</li>
- <li>map1.map exist under "org.eclipse.org/maps"</li>
- <li>project1 has valid entry in map1.map</li>
-</ol>
-<h3>Test Steps:</h3><ol>
- <li>Add map2.map in "org.eclipse.org/maps"</li>
- <li>Add map entry in map2.map "plugin@project3=v1,:pserver:zliu@127.0.0.1:c:/cvsnt," </li>
- <li>Save map2.map</li>
- <li>Commit map2.map</li>
- <li>Add project3 in workspace and commit it</li>
- <li>Start release wizard</li>
- <li>Cancel the wizard</li>
- <li>Delete map3.map</li>
- <li>Restart the wizard</li></ol>
-<h3>Expected Result: </h3><ol>
- <li>Step 6: map1.map and map2.map will show up. Project1 is showing under map1.map, project3 is showing under map2.map;</li>
- <li>Step 9: only map1.map and project1 are on the project selection page</li></ol>
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00010.html b/bundles/org.eclipse.releng.tools/html/00010.html
deleted file mode 100644
index b810d71..0000000
--- a/bundles/org.eclipse.releng.tools/html/00010.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<html><head><title>Tag Validation</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Tag Validation</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Precondition:</h3>
- Enter Tag page appears
-<h3>Test Steps:</h3>
-<ol>
- <li>Enter tag "1" in Enter Tag Page</li>
- <li>Check the error message on the page</li>
- <li>Re-enter tag "V2"</li>
-</ol>
-<h3>Expected Result:</h3>
-<ol>
- <li>Step1-2: Invalid tag error message appears. "Next" and "Finish" are disabled</li>
- <li>Step 4: Error message is gone. "Next" and "Finish" are enabled.</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00011.html b/bundles/org.eclipse.releng.tools/html/00011.html
deleted file mode 100644
index 1c82a7c..0000000
--- a/bundles/org.eclipse.releng.tools/html/00011.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<html><head><title>Checkbox on Project Selection Page</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Checkbox on Project Selection Page</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>Project 1 and project2 were release at once</li>
- <li>Project 1 and project 2 are synchronized with head</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Start wizard</li>
- <li>Check "Release only changed projects" </li>
- <li>Select project 1 and project 2 and release</li>
- <li>Click next</li>
- <li>Click back</li>
- <li>Uncheck "Release only changed projects"</li>
- <li>Click next</li>
- <li>Cancel the wizard</li>
- <li>Edit project1 and commit the change</li>
- <li>Start the wizard</li>
- <li>Check "Release only changed projects”</li>
- <li>Click next</li>
-</ol>
-<h3>Expected Result:</h3>
-<ol>
- <li>Step 4: Project Compare page will show no changed projects information. And "Next" and "Finish" buttons of Project Compare page are disabled</li>
- <li>Step 7: Enter Tag page appears</li>
- <li>Step 12: project1 is shown on the compare editor</li>
-</ol>
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00012.html b/bundles/org.eclipse.releng.tools/html/00012.html
deleted file mode 100644
index 8d5f94e..0000000
--- a/bundles/org.eclipse.releng.tools/html/00012.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<html><head><title>Outgoing Change Prompting Dialog</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Outgoing Change Prompting Dialog</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-project1 and project2 are committed
-<h3>Test Steps:</h3>
-<ol>
- <li>Edit project1 and save, but don't commit the change</li>
- <li>Edit projet2 and save, but don't commit the change</li>
- <li>Select project 1 and project 2 and release</li>
- <li>Check "Release only changed projects"</li>
- <li>Answer "Yes" to project1</li>
- <li>Answer "No" to project2</li>
- <li>Click back</li>
- <li>Check project2 again</li>
- <li>Answer "Yes To All"</li>
- <li>Click finish</li>
-</ol>
-<h3>Expected Result:</h3>
-<ol>
- <li>Step 6: project1 will be shown on Project Compare page</li>
- <li>Step 7: project1 is checked, project2 is unchecked</li>
- <li>Step 9: project1 and project2 will be shown</li>
- <li>Step 10: Project Validation dialog will show that project1 and project2 have difference</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00013.html b/bundles/org.eclipse.releng.tools/html/00013.html
deleted file mode 100644
index 18c21d3..0000000
--- a/bundles/org.eclipse.releng.tools/html/00013.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<html><head><title>Project Compare Page</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Project Compare Page</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>project1 has outgoing changes</li>
- <li>project1 has valid entry in map file</li>
- <li>"org.eclipse.org" is committed</li>
- <li>"Release only changed projects" is checked on Project Selection Page</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Start wizard</li>
- <li>Select project1 to release</li>
- <li>Click next</li>
- <li>Answer "yes" </li>
- <li>Double click project1 to open a compare editor</li>
-</ol>
-<h3>Expected Result:</h3>
-<ol>
- <li>Project1 appears on Project Compare page</li>
- <li>The compare editor shows the comparison same as project1 pop-up menuàCompare WithàReleased</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00014.html b/bundles/org.eclipse.releng.tools/html/00014.html
deleted file mode 100644
index 6d69d70..0000000
--- a/bundles/org.eclipse.releng.tools/html/00014.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<html><head><title>Move Tag Option on Tag Page</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Move Tag Option on Tag Page</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Precondition:</h3>
-<ol>
- <li>project1 exists and is committed</li>
- <li>Project1 was released with tag "V2"</li>
- <li>project1 has valid entries in map1.map</li>
- <li>"org.eclipse.org" is committed</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Edit project1</li>
- <li>Commit the change</li>
- <li>Start Wizard</li>
- <li>Select project1</li>
- <li>Uncheck "Release only changed projects" on Project Selection page</li>
- <li>Enter "V2" on Tag page</li>
- <li>Uncheck "Move Tag if it already exists" on Tag page</li>
- <li>Click Finish</li>
- <li>Click back</li>
- <li>Check "Move Tag if it already exists" on Tag page</li>
- <li>Click finish</li>
-</ol>
-<h3>Expected Result:</h3>
-<ol>
- <li>Step 8: Error message says v1 already exists and cannot move</li>
- <li>Step 9: Release succeeds </li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00015.html b/bundles/org.eclipse.releng.tools/html/00015.html
deleted file mode 100644
index c7a69c3..0000000
--- a/bundles/org.eclipse.releng.tools/html/00015.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<html><head><title>Validate Option on Tag Page</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Validate Option on Tag Page</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>project1 was released with tag v1 last time</li>
- <li>project1 is committed</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Edit project1 and save, donÂ’t commit</li>
- <li>Start wizard</li>
- <li>Select project 1 to release</li>
- <li>Enter v2 on tag page</li>
- <li>Check "validate release"</li>
- <li>Click finish</li>
-</ol>
-<h3>Expected Result:</h3>
-project1 will show up indicating it has difference
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00016.html b/bundles/org.eclipse.releng.tools/html/00016.html
deleted file mode 100644
index d44b288..0000000
--- a/bundles/org.eclipse.releng.tools/html/00016.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<html><head><title>Show Map File Change Option on Tag page</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Show Map File Change Option on Tag page</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Precondition:</h3>
-<ol>
- <li>Project1 was released as v2 last time</li>
- <li>Project2 was released as v1 last time</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Start wizard</li>
- <li>Uncheck "Release only changed projects"</li>
- <li>Select project1 and project2</li>
- <li>Enter "v2" on Tag Page</li>
- <li>Check "Move tag if it already exists"</li>
- <li>Select "Show the map file change before committing"</li>
- <li>Click next</li>
- <li>Click back</li>
- <li>Modify the tag as "v3"</li>
- <li>Click finish</li>
-</ol>
-<h3>Expected Result:</h3>
-<ol>
- <li>Step 7: Map compare page will show the difference of entry associated with project2</li>
- <li>Step 9: Map compare page will show the difference of entries associated with both project1 and project2</li>
- <li>Step 10: Local tags of project1 and project2 are changed to v3, map project is committed and project1 and project2 are released sucessfully</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00017.html b/bundles/org.eclipse.releng.tools/html/00017.html
deleted file mode 100644
index d9e9926..0000000
--- a/bundles/org.eclipse.releng.tools/html/00017.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<html><head><title>Commit Directly Option on Tag Page </title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Commit Directly Option on Tag Page </h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Precondition:</h3>
-Proejct1 was released as v2 last time
-<h3>Test Steps:</h3>
-<ol>
- <li>Start wizard</li>
- <li>Uncheck "Release only changed projects"</li>
- <li>Select project1</li>
- <li>Enter "v4" on Tag Page</li>
- <li>Check "Move tag if it already exists"</li>
- <li>Select "Commit the map files without showing changes"</li>
- <li>Click finish</li>
-</ol>
-<h3>Expected Result:</h3>
-<ol>
- <li>No map compare page shows up</li>
- <li>Local tag for project1 is changed to v3</li>
- <li>Map project is committed</li>
- <li>Project1 is released as v3 </li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00018.html b/bundles/org.eclipse.releng.tools/html/00018.html
deleted file mode 100644
index a635bc3..0000000
--- a/bundles/org.eclipse.releng.tools/html/00018.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html><head><title>Commit Comment Page</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Commit Comment Page</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Precondition:</h3>
-Proejct1 was released as v2 last time
-<h3>Test Steps:</h3>
-<ol>
- <li>Start wizard</li>
- <li>Uncheck "Release only changed projects"</li>
- <li>Select project1</li>
- <li>Enter "v4" on Tag Page</li>
- <li>Check "Move tag if it already exists"</li>
- <li>Click Next</li>
- <li>Enter comment "test comment"</li>
- <li>Click finish</li>
-</ol>
-<h3>Expected Result:</h3>
-From map1.map pop-up menu->Team->Show In resource History, you will see the latest version of map1.map has comment “test comment”
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00019.html b/bundles/org.eclipse.releng.tools/html/00019.html
deleted file mode 100644
index cba007e..0000000
--- a/bundles/org.eclipse.releng.tools/html/00019.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html><head><title>Map project has other type of files</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Map project has other type of files</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Precondition:</h3>
-<ol>
- <li>MapProject exists and map1.map exists</li>
- <li>Map project is committed</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Add a file "aaa.txt" in map folder</li>
- <li>Commit "aaa.txt"</li>
- <li>Add a file "bbb" in map folder</li>
- <li>Start Wizard</li>
-</ol>
-<h3>Expected Results:</h3>
-<ol>
- <li>map1.map, map2.map and map3.map are shown on wizard</li>
- <li>aaa.txt and bbb do not show up</li>
-</ol>
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00020.html b/bundles/org.eclipse.releng.tools/html/00020.html
deleted file mode 100644
index a63227d..0000000
--- a/bundles/org.eclipse.releng.tools/html/00020.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html><head><title>About Default Settings</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>About Default Settings</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-The default setting means:
-<ol>
-<li>Uncheck “Release only the projects changed since last release” on project selection page</li>
-<li>Uncheck “Moving tag if it exists” on enter tag page</li>
-<li>Check “Validate release” on enter tag page, and </li>
-<li>Select Compare map files on enter tag page </li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00021.html b/bundles/org.eclipse.releng.tools/html/00021.html
deleted file mode 100644
index 5416164..0000000
--- a/bundles/org.eclipse.releng.tools/html/00021.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<html><head><title>All Projects Have No Outgoing Change </title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>All Projects Have No Outgoing Change </h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>Project1, project2 and project3 are committed</li>
- <li>Project1, project2 and project3 do not have outgoing changes</li>
- <li>Project1, project2 and project3 were released with tag “V2”</li>
- <li>Map project has map1.map, map2.map and map3.map</li>
- <li>Map project is committed</li>
- <li>The projects and entries have the mapping relation shown in table below</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Start wizard</li>
- <li>Select project1, project2 and project3</li>
- <li>Check "Release only the changed projects"</li>
- <li>Click next</li>
- <li>Click back</li>
- <li>Uncheck “Release only the changed projects”</li>
- <li>Click next</li>
- <li>Enter tag "v3"</li>
- <li>Make sure "Move tag if it already exists" unchecked</li>
- <li>Make sure "Validate release" checked</li>
- <li>Make sure "Show the map file change before committing"</li>
- <li>Click next</li>
- <li>Click next</li>
- <li>Comment as "Release unchanged projects—release anyway" </li>
- <li>Click finish</li>
-</ol>
-<h3>Expected Results:</h3>
-<ol>
- <li>Step 4: Project Compare dialog shows no-changed projects</li>
- <li>Step 5: Project Selection Page appears</li>
- <li>Step 7: Enter Tag page shows up</li>
- <li>Step 12: Compare Map Files page shows map1.map and map2.map have proposed changes. Double click map1.map, you will find the tag of project1 and project2 is v2 and the tag is proposed to become v3. Double click map2.map, you will see the tag of project3 is also proposed to become v3 from v2.</li>
- <li>Step 13: Commit Comment page shows up.</li>
- <li>Step 15: Wizard finishes. And (a) project1, project2 and project3 are tagged as v3 in local map files; (b) map project is committed; (c) No difference will be found by comparing local and repository map project; (d) No validation comparison dialog shows up; (e) Compare local and v3 in repository version, there should be no difference for all 3 projects</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00022.html b/bundles/org.eclipse.releng.tools/html/00022.html
deleted file mode 100644
index 3dacfe7..0000000
--- a/bundles/org.eclipse.releng.tools/html/00022.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<html><head><title>All Projects Have Outgoing Changes</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>All Projects Have Outgoing Changes</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>Project1, project2 and project3 are committed</li>
- <li>Project1, project2 and project3 were released with tag "V3"</li>
- <li>Map project has map1.map, map2.map and map3.map</li>
- <li>Map project is committed</ol>
-<h3>Test Steps:</h3><ol>
- <li>Start wizard</li>
- <li>Check project1, project2 and project3</li>
- <li>Make sure "Release only the changed projects' unchecked</li>
- <li>Click next</li>
- <li>Answer yesToAll</li>
- <li>Enter tag "v4"</li>
- <li>Make sure "Move tag if it already exists" unchecked</li>
- <li>Make sure "Validate release" checked</li>
- <li>Make sure "Show me the proposed change then commit map file"</li>
- <li>Click next</li>
- <li>Click next</li>
- <li>Comment as "all have outgoing change —release anyway" </li>
- <li>Click finish</li>
- <li>Click ok</ol></li>
-<h3>Expected Results:</h3><ol>
- <li>Step 4: Message dialog appear to let user filter the projects to be released
- <li>Step 5: Enter tag page shows up
- <li>Step 9: Compare Tag Files page shows map1.map and map2.map have proposed changes
- <li>Step 13: Validation dialog shows project1, project2 and project3 all have changes between local and new released version.
- <li>Step 14: Wizard finishes. And (a) project1, project2 and project3 are tagged as v4 in local map files; (b) map project is committed; (c) No difference will be found by comparing local and repository map project; (d) Project1, project2 and project3 have differences when comparing local and v4 in repository version
-</ol>
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00023.html b/bundles/org.eclipse.releng.tools/html/00023.html
deleted file mode 100644
index 7ca9009..0000000
--- a/bundles/org.eclipse.releng.tools/html/00023.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<html><head><title>Some Projects Have Outgoing Changes</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Some Projects Have Outgoing Changes</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3><ol>
-<li>Project1, project2 and project3 were released with tag "V4"</li>
-<li>Project1 and project2 have outgoing changes</li>
-<li>Project3 doesn't have outgoing changes</li>
-<li>Map project is committed</li>
-</ol>
-<h3>Test Steps:</h3><ol>
-<li>Start wizard</li>
-<li>Check project1, project2 and project3</li>
-<li>Make sure "Release only the changed projects" unchecked</li>
-<li>Click next</li>
-<li>Answer yes to project1</li>
-<li>Answer no to project2</li>
-<li>Enter tag "v5"</li>
-<li>Make sure "Move tag if it already exists" unchecked</li>
-<li>Make sure "Validate release" checked</li>
-<li>Make sure "Show me the proposed change then commit map file"</li>
-<li>Click next</li>
-<li>Click next</li>
-<li>Comment as "all have outgoing change —release some" </li>
-<li>Click finish</li>
-<li>Click ok</li>
-</ol>
-<h3>Expected Results:</h3><ol>
-<li>Step 4: Message dialog appear </li>
-<li>Step6: Enter Tag page shows up</li>
-<li>Step 11: Compare Tag Files page shows that map1.map and map2.map have proposed changes</li>
-<li>Step 14: Validation dialog shows that project1 has changes between local and new released version</li>
-<li>Step 16: Wizard finishes. And (a) project1 and project3 are tagged as v5 in local map files, project2 is still tagged as v4; (b) map project is committed; (c) No difference will be found by comparing local and repository map project; (d) Project1has differences when comparing local and v5 in repository version</li>
-</ol>
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00024.html b/bundles/org.eclipse.releng.tools/html/00024.html
deleted file mode 100644
index 4dff789..0000000
--- a/bundles/org.eclipse.releng.tools/html/00024.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<html><head><title>About Configuration Variations</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>About Configuration Variations</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-This section will capture some variations based on the default case. Three test cases are provided. And they will covers
-<ol>
-<li>"Release only the changed projects since last release" option is checked on project selection page</li>
-<li>"Move tag if exists" checked on enter tag page</li>
-<li>"Move tag if exists" unchecked</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00025.html b/bundles/org.eclipse.releng.tools/html/00025.html
deleted file mode 100644
index 45aff24..0000000
--- a/bundles/org.eclipse.releng.tools/html/00025.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<html><head><title>All Projects Have Changes Since Last Release </title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>All Projects Have Changes Since Last Release </h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
-<li>Project1, project2 and project3 were released with tag "V5"</li>
-<li>Project1, project2 and project3 were modified and committed after V5 release</li>
-<li>Project1, project2 and project3 have no outgoing changes</li>
-<li>Map project is committed</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
-<li>Start wizard</li>
-<li>Checked the three projects from release wizard</li>
-<li>Check "Release only the changed projects"</li>
-<li>Click next</li>
-<li>Click next</li>
-<li>Enter tag "v6"</li>
-<li>Make sure "Move tag if it already exists" unchecked</li>
-<li>Make sure "Validate change after release" checked</li>
-<li>Make sure "Show me the proposed change then commit map file"</li>
-<li>Click next</li>
-<li>Click next</li>
-<li>Comment as "release unchanged projects—release all" </li>
-<li>Click finish</li>
-</ol>
-<h3>Expected Results:</h3>
-<ol>
-<li>Step 4: Project Compare dialog shows project1, project2 and project3 all have been changed since last release
-<li>Step 5: Enter Tag page shows up
-<li>Step 10: Compare Map Files page shows map1.map and map2.map have proposed changes. Double click map1.map, you will find the tag of project1 and project2 is v5 and the tag is proposed to become v6. Double click map2.map, you will see the tag of project3 is also proposed to become v6 from v5.
-<li>Step 11: Commit Comment page shows up.
-<li>Step 13: Wizard finishes. And (a) project1, project2 and project3 are tagged as v6 in local map files; (b) map project is committed; (c) No difference will be found by comparing local and repository map project; (d) Compare local and v6 in repository version, there should be no difference for all 3 projects
-</ol>
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00026.html b/bundles/org.eclipse.releng.tools/html/00026.html
deleted file mode 100644
index 5d2475b..0000000
--- a/bundles/org.eclipse.releng.tools/html/00026.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<html><head><title>Some Projects Have Changes Since Last Release </title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Some Projects Have Changes Since Last Release </h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>Project1, project2 and project3 were released with tag "V6"</li>
- <li>Project1 and project2 were modified after V6 release</li>
- <li>Project1 and project2 were committed and no outgoing changes</li>
- <li>Project3 has no change since release v6</li>
- <li>Map project is committed</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Start wizard</li>
- <li>Checked the three projects from release wizard</li>
- <li>Check "Tag and release only the changed projects"</li>
- <li>Click next</li>
- <li>Click next</li>
- <li>Enter tag "v7"</li>
- <li>Make sure "Move tag if it already exists" unchecked</li>
- <li>Make sure "Validate change after release" checked</li>
- <li>Make sure "Show me the proposed change then commit map file"</li>
- <li>Click next</li>
- <li>Click next</li>
- <li>Comment as "release unchanged projects—release all" </li>
- <li>Click finish</li>
-</ol>
-<h3>Expected Results:</h3>
-<ol>
- <li>Step 4: Project Compare dialog shows project1, project2 but not project 3
- <li>Step 5: Enter Tag page shows up
- <li>Step 10: Compare Map Files page shows map1.map has proposed changes. Double click map1.map, you will find the tag of project1 and project2 is v7 and the tag is proposed to become v6.
- <li>Step 11: Commit Comment page shows up.
- <li>Step 13: Wizard finishes. And (a) project1, project2 are tagged as v7 in local map files; project3 is still v6; (b) map project is committed; (c) No difference will be found by comparing local and repository map project; (d) Compare local and v7 in repository version, there should be no difference for project1 and project2
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00027.html b/bundles/org.eclipse.releng.tools/html/00027.html
deleted file mode 100644
index c52f16b..0000000
--- a/bundles/org.eclipse.releng.tools/html/00027.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<html><head><title>Move Tag Option Deselected / Selected</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Move Tag Option Deselected / Selected</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Precondition:</h3>
-<ol>
- <li>Project1, project2 and project3 were released with tag "v7"</li>
- <li>Project1 is modified and committed after been tagged as v7</li>
- <li>Project2 and project3 have no any change since been tagged as v7</li>
-</ol>
-<h3>Test Steps:</h3>
-<ol>
- <li>Start wizard</li>
- <li>Checked the three projects from release wizard</li>
- <li>Uncheck "Release only the changed projects"</li>
- <li>Click next</li>
- <li>Enter tag "v7"</li>
- <li>Make sure "Move tag if it already exists" unchecked</li>
- <li>Make sure "Validate change after release" checked</li>
- <li>Make sure "Show me the proposed change then commit map file"</li>
- <li>Click next</li>
- <li>Click next</li>
- <li>Comment as "release projects—move tag" </li>
- <li>Click finish</li>
- <li>Click back</li>
- <li>Check "Move tag if it already exists'</li>
- <li>Click finish</li>
-</ol>
-<h3>Expected Results:</h3>
-<ol>
- <li>Step4: Enter Tag page appears;</li>
- <li>Step9: Compare Map Files page no map file with difference</li>
- <li>Step10: Commit Comment page shows up</li>
- <li>Step12: Error message shows 2 projects successfully tagged and 1 fails </li>
- <li>Step 13: Go back to tag page</li>
- <li>Release successfully</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00028.html b/bundles/org.eclipse.releng.tools/html/00028.html
deleted file mode 100644
index bb5ad11..0000000
--- a/bundles/org.eclipse.releng.tools/html/00028.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Release Wizard</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Release Wizard</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00029.html b/bundles/org.eclipse.releng.tools/html/00029.html
deleted file mode 100644
index a48b2a4..0000000
--- a/bundles/org.eclipse.releng.tools/html/00029.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>A</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>A</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00030.html b/bundles/org.eclipse.releng.tools/html/00030.html
deleted file mode 100644
index 364f135..0000000
--- a/bundles/org.eclipse.releng.tools/html/00030.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Compare With Released</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Compare With Released</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00031.html b/bundles/org.eclipse.releng.tools/html/00031.html
deleted file mode 100644
index c591945..0000000
--- a/bundles/org.eclipse.releng.tools/html/00031.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Replace With Released</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Replace With Released</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00032.html b/bundles/org.eclipse.releng.tools/html/00032.html
deleted file mode 100644
index 5c06008..0000000
--- a/bundles/org.eclipse.releng.tools/html/00032.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html><head><title>One Project Without Change</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>One Project Without Change</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Commit a project</li>
- <li>Release the project</li>
- <li>Make sure map file is updated and committed
- <li>Right click the project</li>
- <li>Click Compare With->Released</li>
-</ol>
-
-<h3>Expected Results:</h3>
-Team Refresh Complete dialog will show there is no change for this project
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00033.html b/bundles/org.eclipse.releng.tools/html/00033.html
deleted file mode 100644
index 4f2150e..0000000
--- a/bundles/org.eclipse.releng.tools/html/00033.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<html><head><title>One Project With Changes</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>One Project With Changes</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Create a project</li>
- <li>Add a file to the project</li>
- <li>Commit a project</li>
- <li>Add a map entry in a map file for the project</li>
- <li>Release the project</li>
- <li>Make sure map file is updated and committed
- <li>Right click the project</li>
- <li>Click Compare With->Released</li>
- <li>Ensure there isno change</li>
- <li>Edit the file in the project and save the change</li>
- <li>Add a new file to the project</li>
- <li>Add a new folder to the project</li>
- <li>Optionally commit the changes</li>
- <li>Right click the project</li>
- <li>Click Compare With->Released</li>
- <li>Ensure there are 3 changes</li>
- <li>Release the project again</li>
- <li>Delete a file</li>
- <li>Delete the folder</li>
- <li>Optionally commit the changes</li>
- <li>Right click the project</li>
- <li>Click Compare With->Released</li>
- <li>Ensure there are two chagnes</li>
-</ol>
-<h3>Bug Found</h3>
-The new added empty folder is not found by the compare.
-Note that the change will be found if the new added folder is not empty.
-Also noticed that I tried to commit the change after a new empty folder was
-added, but the commit failed to check in this folder. Because of this above,
-deleteion of a released empty folder can not be tested so far.
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00034.html b/bundles/org.eclipse.releng.tools/html/00034.html
deleted file mode 100644
index fcd30d8..0000000
--- a/bundles/org.eclipse.releng.tools/html/00034.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<html><head><title>One Project With Outgoing Addition</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>One Project With Outgoing Addition</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Test Steps:</h3>
-<ol>
- <li>Commit a project</li>
- <li>Release the project</li>
- <li>Make sure map file is updated and committed
- <li>Add a file to the project
- <li>Right click the project</li>
- <li>Click Compare With->Released</li>
-</ol>
-
-<h3>Expected Results:</h3>
-Team Refresh Complete dialog will show there is a new change for this project
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00035.html b/bundles/org.eclipse.releng.tools/html/00035.html
deleted file mode 100644
index 5ada208..0000000
--- a/bundles/org.eclipse.releng.tools/html/00035.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<html><head><title>Multiple Projects Without Change</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Multiple Projects Without Change</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Commit two project</li>
- <li>Release the two projects</li>
- <li>Make sure map file is updated and committed
- <li>Selected the two projects</li>
- <li>Click Compare With->Released</li>
-</ol>
-
-<h3>Expected Results:</h3>
-Team Refresh Complete dialog will show there is no change for the two projects
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00036.html b/bundles/org.eclipse.releng.tools/html/00036.html
deleted file mode 100644
index 7dd4421..0000000
--- a/bundles/org.eclipse.releng.tools/html/00036.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<html><head><title>Multiple Projects With Outgoing Changes</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Multiple Projects With Outgoing Changes</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Add one file to each of two projects</li>
- <li>Commit these two project</li>
- <li>Release the two projects</li>
- <li>Make sure map file is updated and committed</li>
- <li>Selected the two projects</li>
- <li>Click Compare With->Released</li>
- <li>Ensure there is no change</li>
- <li>Edit the two files and save</li>
- <li>Add a file to 1st project</li>
- <li>Add a folder to 2nd project</li>
- <li>Add a file to the folder</li>
- <li>Optionally, commit the two projects
- <li>Selected the two projects</li>
- <li>Click Compare With->Released</li>
- <li>Ensure there are two changs for each of the projects</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00037.html b/bundles/org.eclipse.releng.tools/html/00037.html
deleted file mode 100644
index 1f40964..0000000
--- a/bundles/org.eclipse.releng.tools/html/00037.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<html><head><title>Compare a File</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Compare a File</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Select one released project</li>
- <li>Right click one of its file</li>
- <li>Click Compare With</li>
- <li>Ensure there is no change</li>
- <li>Edit the file and save</li>
- <li>Right click and compare the file again</li>
- <li>Ensure there is a change</li>
-</ol>
-
-<h3>Bug Found:</h3>
-Released menu bar is disabled and cannot perform compare with released
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00038.html b/bundles/org.eclipse.releng.tools/html/00038.html
deleted file mode 100644
index 68b27cb..0000000
--- a/bundles/org.eclipse.releng.tools/html/00038.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<html><head><title>Compare A Folder</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Compare A Folder</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Test Steps:</h3>
-<ol>
- <li>Select one released project</li>
- <li>Right click one of its folder</li>
- <li>Click Compare With</li>
- <li>Ensure there is no change</li>
- <li>Add a file to the folder</li>
- <li>Right click and compare the folder again</li>
- <li>Ensure there is a change</li>
-</ol>
-
-<h3>Bug Found:</h3>
-Released menu bar is disabled and cannot perform compare with released
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00039.html b/bundles/org.eclipse.releng.tools/html/00039.html
deleted file mode 100644
index b3a7069..0000000
--- a/bundles/org.eclipse.releng.tools/html/00039.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html><head><title>One project With Outgoing Change</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>One project With Outgoing Change</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Test Steps:</h3>
-<ol>
- <li>Commit a project</li>
- <li>Release the project</li>
- <li>Make sure map file is updated and committed
- <li>Eidt a file in the project and save it</li>
- <li>Right click the project</li>
- <li>Click Repleace With->Released</li>
-</ol>
-
-<h3>Expected Results:</h3>
-<ol>
-<li>Confirm Overwrite message dialog shows up</li>
-<li>Local project is replaced with the released one if answer "Yes"</li>
-</ol>
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00040.html b/bundles/org.eclipse.releng.tools/html/00040.html
deleted file mode 100644
index b18d9da..0000000
--- a/bundles/org.eclipse.releng.tools/html/00040.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<html><head><title>One Project With Outgoing Deletion</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>One Project With Outgoing Deletion</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Test Steps:</h3>
-<ol>
- <li>Add a file a project</li>
- <li>Commit the project</li>
- <li>Release the project</li>
- <li>Make sure map file is updated and committed
- <li>Delete the file from the project
- <li>Right click the project</li>
- <li>Click Compare With->Released</li>
-</ol>
-
-<h3>Expected Results:</h3>
-Team Refresh Complete dialog will show there is a new change for this project
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00041.html b/bundles/org.eclipse.releng.tools/html/00041.html
deleted file mode 100644
index 4b44800..0000000
--- a/bundles/org.eclipse.releng.tools/html/00041.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html><head><title>One Project With Outgoing Addtion</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>One Project With Outgoing Addtion</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Test Steps:</h3>
-<ol>
- <li>Commit a project</li>
- <li>Release the project</li>
- <li>Make sure map file is updated and committed
- <li>Add a file to the project
- <li>Right click the project</li>
- <li>Click Replace With->Released</li>
-</ol>
-
-<h3>Expected Results:</h3>
-<ol>
-<li>Confirm Overwrite message dialog shows up</li>
-<li>Local project is replaced with the released one if answer "Yes"</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00042.html b/bundles/org.eclipse.releng.tools/html/00042.html
deleted file mode 100644
index b964607..0000000
--- a/bundles/org.eclipse.releng.tools/html/00042.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html><head><title>One Project With Outgoing Deletion</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>One Project With Outgoing Deletion</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Test Steps:</h3>
-<ol>
- <li>Add a file a project</li>
- <li>Commit the project</li>
- <li>Release the project</li>
- <li>Make sure map file is updated and committed
- <li>Delete the file from the project
- <li>Right click the project</li>
- <li>Click Replace With->Released</li>
-</ol>
-
-<h3>Expected Results:</h3>
-<ol>
-<li>Confirm Overwrite message dialog shows up</li>
-<li>Local project is replaced with the released one if answer "Yes"</li>
-</ol>
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00043.html b/bundles/org.eclipse.releng.tools/html/00043.html
deleted file mode 100644
index 523f44a..0000000
--- a/bundles/org.eclipse.releng.tools/html/00043.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<html><head><title>One Project Without Change</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>One Project Without Change</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Commit a project</li>
- <li>Release the project</li>
- <li>Make sure map file is updated and committed
- <li>Right click the project</li>
- <li>Click Replace With->Released</li>
-</ol>
-
-<h3>Expected Results:</h3>
-Nothing of the project changed locally
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00044.html b/bundles/org.eclipse.releng.tools/html/00044.html
deleted file mode 100644
index 88031c9..0000000
--- a/bundles/org.eclipse.releng.tools/html/00044.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<html><head><title>Multiple Projects</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Multiple Projects</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Commit four projects</li>
- <li>Release all the projects</li>
- <li>Make sure map file is updated and committed</li>
- <li>Editting the first project and save</li>
- <li>Add a file to the 2nd project</li>
- <li>Delete a file from the 3rd project</li>
- <li>Selecte the four projects</li>
- <li>Click Replace With->Released</li>
-</ol>
-
-<h3>Expected Results:</h3>
-<ol>
-<li>confirm Overwrite dialog will show up</li>
-<li>The 1st, 2nd and 3rd projects are replaced if answer "Yes"</li>
-<li>The 4th project has not been changed</li>
-</ol>
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00045.html b/bundles/org.eclipse.releng.tools/html/00045.html
deleted file mode 100644
index 4cf6e5d..0000000
--- a/bundles/org.eclipse.releng.tools/html/00045.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<html><head><title>Replace A File</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Replace A File</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Select one released project</li>
- <li>Edit one of its file and save</li>
- <li>Right click the file</li>
- <li>Click Replace With</li>
- <li>Ensure replaced</li>
-</ol>
-
-<h3>Bug Found:</h3>
-Released menu bar is disabled and cannot perform replace with released
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00046.html b/bundles/org.eclipse.releng.tools/html/00046.html
deleted file mode 100644
index fe59999..0000000
--- a/bundles/org.eclipse.releng.tools/html/00046.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<html><head><title>Replace A Folder</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Replace A Folder</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Select one released project</li>
- <li>Add a file to one of its folder</li>
- <li>Right click the folder</li>
- <li>Click Replace With</li>
- <li>Ensure the folder is replaced</li>
-</ol>
-
-<h3>Bug Found:</h3>
-Released menu bar is disabled and cannot perform replace with released
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00047.html b/bundles/org.eclipse.releng.tools/html/00047.html
deleted file mode 100644
index 1f13295..0000000
--- a/bundles/org.eclipse.releng.tools/html/00047.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Load Map Projects</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Load Map Projects</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00048.html b/bundles/org.eclipse.releng.tools/html/00048.html
deleted file mode 100644
index efe8a60..0000000
--- a/bundles/org.eclipse.releng.tools/html/00048.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Local Has The Latest Map</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Local Has The Latest Map</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00049.html b/bundles/org.eclipse.releng.tools/html/00049.html
deleted file mode 100644
index 155a870..0000000
--- a/bundles/org.eclipse.releng.tools/html/00049.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Local Has An Old Map</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Local Has An Old Map</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00050.html b/bundles/org.eclipse.releng.tools/html/00050.html
deleted file mode 100644
index 96b48ab..0000000
--- a/bundles/org.eclipse.releng.tools/html/00050.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Project Has A Module Name</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Project Has A Module Name</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00051.html b/bundles/org.eclipse.releng.tools/html/00051.html
deleted file mode 100644
index d0a2009..0000000
--- a/bundles/org.eclipse.releng.tools/html/00051.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title></title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2></h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00052.html b/bundles/org.eclipse.releng.tools/html/00052.html
deleted file mode 100644
index 85f9441..0000000
--- a/bundles/org.eclipse.releng.tools/html/00052.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Project Exist Locally</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Project Exist Locally</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00053.html b/bundles/org.eclipse.releng.tools/html/00053.html
deleted file mode 100644
index 1217f51..0000000
--- a/bundles/org.eclipse.releng.tools/html/00053.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html><head><title>Project Does Not Exist Locally</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Project Does Not Exist Locally</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Select one released project</li>
- <li>Make sure there is a corresponding map entry for this project</li>
- <li>Delete the project locally</li>
- <li>Right the map file having the entry</li>
- <li>Click Team->Load Map Projects</li>
-</ol>
-
-<h3>Expected Results:</h3>
-<ol>
-<li>The project is added to the workspace</li>
-<li>A tag name appears to the right side of the project name</li>
-<li>The tag is same as the tag for this project in the map file</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00054.html b/bundles/org.eclipse.releng.tools/html/00054.html
deleted file mode 100644
index 6bb6bec..0000000
--- a/bundles/org.eclipse.releng.tools/html/00054.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<html><head><title>Map File Contains Unexisting Project</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Map File Contains Unexisting Project</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Select a map file</li>
- <li>Add an entry line which refers to an unexisting project</li>
- <li>Save the map file</li>
- <li>Right click the map file having the entry</li>
- <li>Click Team->Load Map Projects</li>
-</ol>
-
-<h3>Expected Results:</h3>
-<ol>
-<li>Error occured for the unexisting project and the project is ignored</li>
-<li>Only valid project is loaded</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00055.html b/bundles/org.eclipse.releng.tools/html/00055.html
deleted file mode 100644
index 3397e75..0000000
--- a/bundles/org.eclipse.releng.tools/html/00055.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html><head><title>Select Multiple Map Files to Load</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Select Multiple Map Files to Load</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Test Steps:</h3>
-<ol>
- <li>Select two map files</li>
- <li>Right click the map file having the entry</li>
- <li>Click Team->Load Map Projects</li>
-</ol>
-
-<h3>Expected Results:</h3>
-All projects are loaded
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00056.html b/bundles/org.eclipse.releng.tools/html/00056.html
deleted file mode 100644
index e3254f6..0000000
--- a/bundles/org.eclipse.releng.tools/html/00056.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<html><head><title>Map File Cotains Unexisting Tag</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Map File Cotains Unexisting Tag</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-<h3>Test Steps:</h3>
-<ol>
- <li>Select a map file</li>
- <li>Add an entry line which refers to an existing project but change its tag to a never used one</li>
- <li>Save the map file</li>
- <li>Right click the map file having the entry</li>
- <li>Click Team->Load Map Projects</li>
-</ol>
-
-<h3>Expected Results:</h3>
-Error occured: No such tag
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00057.html b/bundles/org.eclipse.releng.tools/html/00057.html
deleted file mode 100644
index e3368be..0000000
--- a/bundles/org.eclipse.releng.tools/html/00057.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html><head><title>Project Does Not Exist In Local WorkSpace</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Project Does Not Exist In Local WorkSpace</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Select one released project</li>
- <li>Make sure there is a corresponding map entry for this project</li>
- <li>Delete the project locally</li>
- <li>Right click the map file having the entry</li>
- <li>Click Team->Load Map Projects</li>
-</ol>
-
-<h3>Expected Results:</h3>
-<ol>
-<li>The project is added to the workspace</li>
-<li>A tag name appears to the right side of the project name</li>
-<li>The tag is same as the tag for this project in the map file</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00058.html b/bundles/org.eclipse.releng.tools/html/00058.html
deleted file mode 100644
index 3c1e96e..0000000
--- a/bundles/org.eclipse.releng.tools/html/00058.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<html><head><title>Project Exists in Local WorkSpace</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Project Exists in Local WorkSpace</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Select one released project</li>
- <li>Make sure there is a corresponding map entry for this project</li>
- <li>Right click the map file having the entry</li>
- <li>Click Team->Load Map Projects</li>
-</ol>
-
-<h3>Expected Results:</h3>
-<ol>
-<li>A dialog popped out to remind that the project exists locally</li>
-<li>The local project will be overwritten if answer "Yes"</li>
-<li>The local project will have no change if answer "No" file</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00059.html b/bundles/org.eclipse.releng.tools/html/00059.html
deleted file mode 100644
index 720388e..0000000
--- a/bundles/org.eclipse.releng.tools/html/00059.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html><head><title>Map Contains A Older Tag Name</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Map Contains A Older Tag Name</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Select one project release it as tag1</li>
- <li>Release it again with tag2</li>
- <li>Change the project's local tag in the map file to tag1</li>
- <li>Save the map file</li>
- <li>Right click the map file having the entry</li>
- <li>Click Team->Load Map Projects</li>
-</ol>
-
-<h3>Expected Results:</h3>
-<ol>
-<li>A dialog popped out to remind that the project exists locally</li>
-<li>The local project will be overwritten by the version tagged with tag1 if answer "Yes"</li>
-<li>The local project will have no change if answer "No" file</li>
-</ol>
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00060.html b/bundles/org.eclipse.releng.tools/html/00060.html
deleted file mode 100644
index 9ca9d07..0000000
--- a/bundles/org.eclipse.releng.tools/html/00060.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html><head><title>Project Using CVS Module Name</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Project Using CVS Module Name</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-<h3>Test Steps:</h3>
-<ol>
- <li>Create a project</li>
- <li>Commit it with CVS Module name different than local project name</li>
- <li>Add an entry line which refers to the project</li>
- <li>Save the map file</li>
- <li>Release the project</li>
- <li>Delete the project from local</li>
- <li>Right click the map file having the entry</li>
- <li>Click Team->Load Map Projects</li>
-</ol>
-
-<h3>Expected Results:</h3>
-The project is loaded as its CVS module name
-
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00061.html b/bundles/org.eclipse.releng.tools/html/00061.html
deleted file mode 100644
index 72bf7cc..0000000
--- a/bundles/org.eclipse.releng.tools/html/00061.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>One Project Case</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>One Project Case</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00062.html b/bundles/org.eclipse.releng.tools/html/00062.html
deleted file mode 100644
index e4e76ef..0000000
--- a/bundles/org.eclipse.releng.tools/html/00062.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Multiple Projects Case</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Multiple Projects Case</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00063.html b/bundles/org.eclipse.releng.tools/html/00063.html
deleted file mode 100644
index d1846e7..0000000
--- a/bundles/org.eclipse.releng.tools/html/00063.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Compare File Or Folder</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Compare File Or Folder</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00064.html b/bundles/org.eclipse.releng.tools/html/00064.html
deleted file mode 100644
index 817ee4a..0000000
--- a/bundles/org.eclipse.releng.tools/html/00064.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Replace One Project</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Replace One Project</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00065.html b/bundles/org.eclipse.releng.tools/html/00065.html
deleted file mode 100644
index 4f360e9..0000000
--- a/bundles/org.eclipse.releng.tools/html/00065.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Replace Multiple Projects</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Replace Multiple Projects</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00066.html b/bundles/org.eclipse.releng.tools/html/00066.html
deleted file mode 100644
index d7cca5f..0000000
--- a/bundles/org.eclipse.releng.tools/html/00066.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Replace A File Or A Folder</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Replace A File Or A Folder</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00067.html b/bundles/org.eclipse.releng.tools/html/00067.html
deleted file mode 100644
index 7c75d4e..0000000
--- a/bundles/org.eclipse.releng.tools/html/00067.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Single Map File And Valid Entries</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Single Map File And Valid Entries</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00068.html b/bundles/org.eclipse.releng.tools/html/00068.html
deleted file mode 100644
index febf127..0000000
--- a/bundles/org.eclipse.releng.tools/html/00068.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Single Map File And Invalid Entries</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Single Map File And Invalid Entries</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00069.html b/bundles/org.eclipse.releng.tools/html/00069.html
deleted file mode 100644
index aa5d92a..0000000
--- a/bundles/org.eclipse.releng.tools/html/00069.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Multiple Map Files</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Multiple Map Files</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00070.html b/bundles/org.eclipse.releng.tools/html/00070.html
deleted file mode 100644
index d809676..0000000
--- a/bundles/org.eclipse.releng.tools/html/00070.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>PreCondition Test</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>PreCondition Test</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00071.html b/bundles/org.eclipse.releng.tools/html/00071.html
deleted file mode 100644
index d482eb5..0000000
--- a/bundles/org.eclipse.releng.tools/html/00071.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Individual Wizard Page And Options Test</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Individual Wizard Page And Options Test</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00072.html b/bundles/org.eclipse.releng.tools/html/00072.html
deleted file mode 100644
index 24efedd..0000000
--- a/bundles/org.eclipse.releng.tools/html/00072.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Map Files And Map Entries</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Map Files And Map Entries</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/html/00073.html b/bundles/org.eclipse.releng.tools/html/00073.html
deleted file mode 100644
index 828b160..0000000
--- a/bundles/org.eclipse.releng.tools/html/00073.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html><head><title>Tag Validation</title>
-<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
-<meta NAME="keywords" content="">
-<meta NAME="since" content="">
-</head><h2>Tag Validation</h2>
-<p>Since: <br>
-Last Modified: $Date: 2004/03/23 19:11:08 $</p><body>
-
-Answer comes here.
-
-</body></html>
diff --git a/bundles/org.eclipse.releng.tools/icons/full/clcl16/release_action.gif b/bundles/org.eclipse.releng.tools/icons/full/clcl16/release_action.gif
deleted file mode 100644
index 665c4e7..0000000
--- a/bundles/org.eclipse.releng.tools/icons/full/clcl16/release_action.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.releng.tools/plugin.properties b/bundles/org.eclipse.releng.tools/plugin.properties
deleted file mode 100644
index b1d30a5..0000000
--- a/bundles/org.eclipse.releng.tools/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-PluginName=RelEng Plug-in
-PluginProvider=Eclipse.org
-
-RelEng=RelEng Tools
-RelEngActionSet.description=RelEng Tool Action Set
-RelEngActionSet.Release=Releasing...
-RelEngActionSet.tooltip=Release Projects
diff --git a/bundles/org.eclipse.releng.tools/plugin.xml b/bundles/org.eclipse.releng.tools/plugin.xml
deleted file mode 100644
index 00c5933..0000000
--- a/bundles/org.eclipse.releng.tools/plugin.xml
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
- <extension
- point="org.eclipse.ui.popupMenus">
- <objectContribution
- adaptable="true"
- objectClass="org.eclipse.core.resources.IResource"
- id="org.eclipse.releng.tools.ResourceContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
- label="Release..."
- class="org.eclipse.releng.tools.TagAndReleaseAction"
- menubarPath="team.main/group2"
- id="org.eclipse.releng.tools.tagAndRelease">
- </action>
- <action
- label="Released"
- tooltip="Compare the selected project(s) with the released versions"
- class="org.eclipse.releng.tools.CompareLocalToMap"
- menubarPath="compareWithMenu/compareWithGroup"
- id="org.eclipse.releng.tools.compareWithReleased">
- </action>
- <action
- label="Released"
- class="org.eclipse.releng.tools.ReplaceLocalFromMap"
- tooltip="Replace the selcted project(s) with the released versions"
- menubarPath="replaceWithMenu/replaceWithGroup"
- id="org.eclipse.releng.tools.replaceWithReleased">
- </action>
- </objectContribution>
- <objectContribution
- adaptable="true"
- objectClass="org.eclipse.ui.IWorkingSet"
- id="org.eclipse.releng.tools.WorkingSetContributions">
- <action
- label="Release..."
- class="org.eclipse.releng.tools.TagAndReleaseAction"
- menubarPath="team.main/group2"
- id="org.eclipse.releng.tools.tagAndRelease">
- </action>
- <action
- label="Released"
- tooltip="Compare the selected project(s) with the released versions"
- class="org.eclipse.releng.tools.CompareLocalToMap"
- menubarPath="compareWithMenu/compareWithGroup"
- id="org.eclipse.releng.tools.compareWithReleased">
- </action>
- <action
- label="Released"
- class="org.eclipse.releng.tools.ReplaceLocalFromMap"
- tooltip="Replace the selcted project(s) with the released versions"
- menubarPath="replaceWithMenu/replaceWithGroup"
- id="org.eclipse.releng.tools.replaceWithReleased">
- </action>
- </objectContribution>
- <objectContribution
- adaptable="true"
- objectClass="org.eclipse.core.resources.IFile"
- nameFilter="*.map"
- id="org.eclipse.releng.cvs.mapActions">
- <action
- label="Load Map Projects"
- class="org.eclipse.releng.tools.LoadMap"
- menubarPath="team.main/group1"
- id="org.eclipse.releng.cvs.LoadMap">
- </action>
- <action
- label="Tag Map Projects"
- class="org.eclipse.releng.tools.TagMap"
- menubarPath="team.main/group1"
- id="org.eclipse.releng.cvs.TagMap">
- </action>
- </objectContribution>
- <objectContribution
- adaptable="true"
- objectClass="org.eclipse.core.resources.IProject"
- id="org.eclipse.releng.internal.tools.CopyrightContribution">
- <action
- label="Fix Copyrights..."
- class="org.eclipse.releng.tools.FixCopyrightAction"
- menubarPath="additions"
- enablesFor="+"
- id="org.eclipse.releng.tools.fixCopyrights">
- </action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.core.resources.IResource"
- id="org.eclipse.releng.internal.tools.AdvancedCopyrightContribution">
- <action
- label="Advanced Fix Copyrights"
- class="org.eclipse.releng.tools.AdvancedFixCopyrightAction"
- menubarPath="additions"
- enablesFor="+"
- id="org.eclipse.releng.tools.advancedFixCopyrights">
- </action>
- </objectContribution>
- </extension>
-
- <!-- ********** Action Sets ************** -->
- <extension point="org.eclipse.ui.actionSets">
- <actionSet
- label="%RelEng"
- visible="false"
- id="org.eclipse.releng.tools.RelEngActionSet"
- description="%RelEngActionSet.description">
- <action
- toolbarPath="Normal/RelEng Tools"
- label="%RelEngActionSet.Release"
- tooltip="%RelEngActionSet.tooltip"
- icon="icons/full/clcl16/release_action.gif"
- class="org.eclipse.releng.tools.TagAndReleaseAction"
- id="org.eclipse.eclipse.releng.tools.ReleaseAction">
- </action>
- </actionSet>
- </extension>
-
- <!-- ********** Preference Pages ************** -->
- <extension point="org.eclipse.ui.preferencePages">
- <page
- name="Copyright Tool"
- class="org.eclipse.releng.tools.preferences.CopyrightPreferencePage"
- id="org.eclipse.releng.tools.preferences.CopyrightPreferencePage">
- </page>
- </extension>
-
- <!-- ********** Preference Initializing ************** -->
- <extension point="org.eclipse.core.runtime.preferences">
- <initializer class="org.eclipse.releng.tools.preferences.RelEngPreferenceInitializer"/>
- </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/AdvancedCopyrightComment.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/AdvancedCopyrightComment.java
deleted file mode 100644
index 0b82c91..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/AdvancedCopyrightComment.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.releng.tools.preferences.RelEngCopyrightConstants;
-
-public class AdvancedCopyrightComment {
- private static final String DATE_VAR = "${date}"; //$NON-NLS-1$
- private static final String NEW_LINE = "\n"; //$NON-NLS-1$
-
- public static final int UNKNOWN_COMMENT = -1;
- public static final int JAVA_COMMENT = 1;
- public static final int PROPERTIES_COMMENT = 2;
-
- private int commentStyle = 0;
- private int creationYear = -1;
- private int revisionYear = -1;
- private String preYearComment = null;
- private String postYearComment = null;
-
- private AdvancedCopyrightComment(int commentStyle, int creationYear, int revisionYear, List contributors, String preYearComment, String postYearComment) {
- this.commentStyle = commentStyle;
- this.creationYear = creationYear == -1 ? getPreferenceStore().getInt(RelEngCopyrightConstants.CREATION_YEAR_KEY) : creationYear;
- this.revisionYear = revisionYear;
- this.preYearComment = preYearComment;
- this.postYearComment = postYearComment;
- }
-
- private AdvancedCopyrightComment(int commentStyle, int creationYear, int revisionYear, List contributors) {
- this(commentStyle, creationYear, revisionYear, contributors, null, null);
- }
-
- public static AdvancedCopyrightComment defaultComment(int commentStyle) {
- return new AdvancedCopyrightComment(commentStyle, -1, -1, null);
- }
-
- public int getRevisionYear() {
- return revisionYear == -1 ? creationYear : revisionYear;
- }
-
- public void setRevisionYear(int year) {
- if (revisionYear != -1 || creationYear != year)
- revisionYear = year;
- }
-
- private static String getLinePrefix(int commentStyle) {
- switch(commentStyle) {
- case JAVA_COMMENT:
- return " * "; //$NON-NLS-1$
- case PROPERTIES_COMMENT:
- return "# "; //$NON-NLS-1$
- default:
- return null;
- }
- }
-
- private void writeCommentStart(PrintWriter writer) {
- switch(commentStyle) {
- case JAVA_COMMENT:
- writer.println("/*******************************************************************************"); //$NON-NLS-1$
- break;
- case PROPERTIES_COMMENT:
- writer.println("###############################################################################"); //$NON-NLS-1$
- break;
- }
- }
-
- private void writeCommentEnd(PrintWriter writer) {
- switch(commentStyle) {
- case JAVA_COMMENT:
- writer.println(" *******************************************************************************/"); //$NON-NLS-1$
- break;
- case PROPERTIES_COMMENT:
- writer.println("###############################################################################"); //$NON-NLS-1$
- break;
- }
- }
-
- /**
- * Get the copyright tool preference store
- * @return
- */
- private static IPreferenceStore getPreferenceStore() {
- return RelEngPlugin.getDefault().getPreferenceStore();
- }
-
- /**
- * Get the copyright statement in form of an array of Strings where
- * each item is a line of the copyright statement.
- * @return String[]
- */
- private static String[] getLegalLines() {
- StringTokenizer st = new StringTokenizer(getPreferenceStore().getString(RelEngCopyrightConstants.COPYRIGHT_TEMPLATE_KEY), NEW_LINE, true);
- ArrayList lines = new ArrayList();
- String previous = NEW_LINE;
- while (st.hasMoreTokens()) {
- String current = st.nextToken();
- // add empty lines to array as well
- if (NEW_LINE.equals(previous)) {
- lines.add(current);
- }
- previous = current;
- }
- String[] stringLines = new String[lines.size()];
- stringLines = (String[])lines.toArray(stringLines);
- return stringLines;
- }
-
- /**
- * Return the body of this copyright comment or null if it cannot be built.
- */
- public String getCopyrightComment() {
- // instead of overwriting an existing comment, just try to insert the new year
- // disable fix up existing copyright till it works better
-// if ((preYearComment != null || postYearComment != null) && (!getPreferenceStore().getBoolean(RelEngCopyrightConstants.FIX_UP_EXISTING_KEY))) {
- if ((preYearComment != null || postYearComment != null)) {
- String copyrightString = preYearComment == null ? "" : preYearComment; //$NON-NLS-1$
- copyrightString = copyrightString + creationYear;
-
- if (revisionYear != -1 && revisionYear != creationYear)
- copyrightString = copyrightString + ", " + revisionYear; //$NON-NLS-1$
-
- String endString = postYearComment == null ? "" : postYearComment; //$NON-NLS-1$
- copyrightString = copyrightString + endString;
- return copyrightString;
- }
-
- String linePrefix = getLinePrefix(commentStyle);
- if (linePrefix == null)
- return null;
-
- StringWriter out = new StringWriter();
- PrintWriter writer = new PrintWriter(out);
- try {
- writeCommentStart(writer);
- writeLegal(writer, linePrefix);
- // dont do anything special with contributors right now
-// writeContributions(writer, linePrefix);
- writeCommentEnd(writer);
-
- return out.toString();
- } finally {
- writer.close();
- }
- }
-
- /**
- * Write out the copyright statement, line by line, adding in the created/revision
- * year as well as comment line prefixes.
- *
- * @param writer
- * @param linePrefix
- */
- private void writeLegal(PrintWriter writer, String linePrefix) {
- String[] legalLines = getLegalLines();
- for (int i=0; i < legalLines.length; ++i) {
- String currentLine = legalLines[i];
- int offset = currentLine.indexOf(DATE_VAR);
- // if this is the line, containing the ${date}, add in the year
- if (offset > -1) {
- writer.print(linePrefix + currentLine.substring(0, offset)+creationYear);
- if (revisionYear != -1 && revisionYear != creationYear)
- writer.print(", " + revisionYear); //$NON-NLS-1$
- writer.println(currentLine.substring(offset+DATE_VAR.length(), currentLine.length()));
- } else {
- // just write out the line
- if (NEW_LINE.equals(currentLine)) {
- // handle empty lines
- writer.print(linePrefix + currentLine);
- } else {
- writer.println(linePrefix + currentLine);
- }
- }
- }
- }
-
- /**
- * Create an instance the same as the argument comment but with the revision year
- * updated if needed. Return the default comment if the argument comment is null
- * or an empty string. Return null if the argument comment is not recognized as
- * an IBM copyright comment.
- */
- public static AdvancedCopyrightComment parse(BlockComment comment, int commentStyle) {
- AdvancedCopyrightComment copyright = null;
-
- if (comment == null) {
- copyright = defaultComment(commentStyle);
- } else {
- // To make the comment search a little more flexible, the parse algorithm will
- // only parse the line containing the ${date}
- String body = comment.getContents();
-
- // find the line with ${date}
- String[] legalLines = getLegalLines();
- int i = 0;
- int yearOffset = -1;
- while (i < legalLines.length && yearOffset == -1) {
- String line = legalLines[i];
- yearOffset = line.indexOf(DATE_VAR);
- ++i;
- }
- // ${date} found
- if (yearOffset != -1) {
- String yearLine = legalLines[i-1];
- // split that line up and just search for the contents before and after
- // NOTE: this won't really work well if the text surrounding the year is
- // generic, or if the year is at the beginning or end of the line
- String preYear = yearLine.substring(0, yearOffset);
- String postYear = yearLine.substring(yearOffset+DATE_VAR.length(), yearLine.length());
-
- int preYearOffset = body.indexOf(preYear);
- if (preYearOffset != -1) {
- int postYearOffset = body.indexOf(postYear, preYearOffset);
- if (postYearOffset != -1) {
- // then you know between that is the year
- String yearRange = body.substring(preYearOffset+preYear.length(), postYearOffset);
- int comma = yearRange.indexOf(","); //$NON-NLS-1$
-
- String startStr = comma == -1 ? yearRange : yearRange.substring(0, comma);
- String endStr = comma == -1 ? null : yearRange.substring(comma + 1);
-
- int startYear = -1;
- if (startStr != null)
- try {
- startYear = Integer.parseInt(startStr.trim());
- } catch(NumberFormatException e) {
- // do nothing
- }
-
- int endYear = -1;
- if (endStr != null) {
- try {
- endYear = Integer.parseInt(endStr.trim());
- } catch(NumberFormatException e) {
- // do nothing
- }
- }
- // save the copyright comment's contents before and after the year so that
- // the comment will remain untouched rather than overwritten if the template is
- // almost the same
- String pre = body.substring(0, preYearOffset+preYear.length());
- String post = body.substring(postYearOffset);
-
- copyright = new AdvancedCopyrightComment(commentStyle, startYear, endYear, null, pre, post);
- }
- }
- }
- }
-
- // don't do anything special with contributors right now
-// int contrib = body.indexOf("Contributors:", start); //$NON-NLS-1$
-// String contribComment = body.substring(contrib);
-// StringTokenizer tokens = new StringTokenizer(contribComment, "\r\n"); //$NON-NLS-1$
-// tokens.nextToken();
-// ArrayList contributors = new ArrayList();
-// String linePrefix = getLinePrefix(commentStyle);
-// while(tokens.hasMoreTokens()) {
-// String contributor = tokens.nextToken();
-// if (contributor.indexOf("***********************************") == -1 //$NON-NLS-1$
-// && contributor.indexOf("###################################") == -1) { //$NON-NLS-1$
-// int c = contributor.indexOf(linePrefix);
-// if (c != -1)
-// contributor = contributor.substring(c + linePrefix.length());
-// contributors.add(contributor.trim());
-// }
-// }
-//
-// return new IBMCopyrightComment(commentStyle, startYear, endYear, contributors);
- return copyright;
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/AdvancedFixCopyrightAction.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/AdvancedFixCopyrightAction.java
deleted file mode 100644
index b314100..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/AdvancedFixCopyrightAction.java
+++ /dev/null
@@ -1,389 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.releng.tools.preferences.RelEngCopyrightConstants;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class AdvancedFixCopyrightAction implements IObjectActionDelegate {
-
- public class MyInnerClass implements IResourceVisitor {
- public IProgressMonitor monitor;
- public boolean visit(IResource resource) throws CoreException {
- if (!monitor.isCanceled()) {
- if (resource.getType() == IResource.FILE) {
- processFile((IFile) resource, monitor);
- }
- }
- return true;
- }
- }
-
- private String newLine = System.getProperty("line.separator"); //$NON-NLS-1$
- private Map log = new HashMap();
-
- // The current selection
- protected IStructuredSelection selection;
-
- private static final int currentYear = new GregorianCalendar().get(Calendar.YEAR);
-
- /**
- * Constructor for Action1.
- */
- public AdvancedFixCopyrightAction() {
- super();
- }
-
- /**
- * Returns the selected resources.
- *
- * @return the selected resources
- */
- protected IResource[] getSelectedResources() {
- ArrayList resources = null;
- if (!selection.isEmpty()) {
- resources = new ArrayList();
- Iterator elements = selection.iterator();
- while (elements.hasNext()) {
- Object next = elements.next();
- if (next instanceof IResource) {
- resources.add(next);
- continue;
- }
- if (next instanceof IAdaptable) {
- IAdaptable a = (IAdaptable) next;
- Object adapter = a.getAdapter(IResource.class);
- if (adapter instanceof IResource) {
- resources.add(adapter);
- continue;
- }
- }
- }
- }
- if (resources != null && !resources.isEmpty()) {
- IResource[] result = new IResource[resources.size()];
- resources.toArray(result);
- return result;
- }
- return new IResource[0];
- }
-
- /**
- * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
- */
- public void setActivePart(IAction action, IWorkbenchPart targetPart) {
- }
-
- /**
- * @see IActionDelegate#run(IAction)
- */
- public void run(IAction action) {
- log = new HashMap();
- WorkspaceJob wJob = new WorkspaceJob("Fixing copyrights") { //$NON-NLS-1$
- public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
- try {
- long start = System.currentTimeMillis();
- System.out.println("Start Fixing Copyrights"); //$NON-NLS-1$
- IResource[] results = getSelectedResources();
- System.out.println("Resources selected: " //$NON-NLS-1$
- + results.length);
- monitor.beginTask("Fixing copyrights...", //$NON-NLS-1$
- results.length);
-
- for (int i = 0; i < results.length; i++) {
- IResource resource = results[i];
- System.out.println(resource.getName());
- try {
- MyInnerClass myInnerClass = new MyInnerClass();
- myInnerClass.monitor = monitor;
- resource.accept(myInnerClass);
-
- monitor.worked(1);
- } catch (CoreException e1) {
- e1.printStackTrace();
- }
- }
-
- writeLogs();
- displayLogs();
- System.out.println("Done Fixing Copyrights"); //$NON-NLS-1$
- long end = System.currentTimeMillis();
- System.out.println("Total time: "+(end-start)+"ms"); //$NON-NLS-1$ //$NON-NLS-2$
-
- } finally {
- monitor.done();
- }
- return Status.OK_STATUS;
- }
- };
-
- wJob.setRule(ResourcesPlugin.getWorkspace().getRoot());
- wJob.setUser(true);
- wJob.schedule();
-// try {
-// PlatformUI.getWorkbench().getProgressService().run(true, /* fork */
-// true, /* cancellable */
-// new IRunnableWithProgress() {
-//
-// public void run(IProgressMonitor monitor)
-// throws InvocationTargetException, InterruptedException {
-// try {
-// long start = System.currentTimeMillis();
-// monitor.beginTask("Fixing copyrights...", //$NON-NLS-1$
-// IProgressMonitor.UNKNOWN);
-//
-// System.out.println("Start Fixing Copyrights"); //$NON-NLS-1$
-// IResource[] results = getSelectedResources();
-// System.out.println("Resources selected: " //$NON-NLS-1$
-// + results.length);
-// for (int i = 0; i < results.length; i++) {
-// IResource resource = results[i];
-// System.out.println(resource.getName());
-// try {
-// MyInnerClass myInnerClass = new MyInnerClass();
-// myInnerClass.monitor = monitor;
-// resource.accept(myInnerClass);
-// } catch (CoreException e1) {
-// e1.printStackTrace();
-// }
-// }
-//
-// writeLogs();
-// displayLogs();
-// System.out.println("Done Fixing Copyrights"); //$NON-NLS-1$
-// long end = System.currentTimeMillis();
-// System.out.println("Total time: "+(end-start)+"ms"); //$NON-NLS-1$ //$NON-NLS-2$
-//
-// } finally {
-// monitor.done();
-// }
-// }
-// });
-// } catch (InvocationTargetException e) {
-// // TODO Auto-generated catch block
-// e.printStackTrace();
-// } catch (InterruptedException e) {
-// // TODO Auto-generated catch block
-// e.printStackTrace();
-// }
- }
-
- /**
- * Lookup and return the year in which the argument file was revised. Return -1 if
- * the revision year cannot be found.
- */
- private int getCVSModificationYear(IFile file, IProgressMonitor monitor) {
- try {
- monitor.beginTask("Fetching logs from CVS", 100); //$NON-NLS-1$
-
- try {
- ICVSRemoteResource cvsFile = CVSWorkspaceRoot.getRemoteResourceFor(file);
- if (cvsFile != null) {
- // get the log entry for the revision loaded in the workspace
- ILogEntry entry = ((ICVSRemoteFile)cvsFile)
- .getLogEntry(new SubProgressMonitor(monitor, 100));
- return entry.getDate().getYear() + 1900;
- }
- } catch (TeamException e) {
- // do nothing
- }
- } finally {
- monitor.done();
- }
-
- return -1;
- }
-
- /**
- *
- */
- private void writeLogs() {
-
- FileOutputStream aStream;
- try {
- File aFile = new File(Platform.getLocation().toFile(),
- "copyrightLog.txt"); //$NON-NLS-1$
- aStream = new FileOutputStream(aFile);
- Set aSet = log.entrySet();
- Iterator errorIterator = aSet.iterator();
- while (errorIterator.hasNext()) {
- Map.Entry anEntry = (Map.Entry) errorIterator.next();
- String errorDescription = (String) anEntry.getKey();
- aStream.write(errorDescription.getBytes());
- aStream.write(newLine.getBytes());
- List fileList = (List) anEntry.getValue();
- Iterator listIterator = fileList.iterator();
- while (listIterator.hasNext()) {
- String fileName = (String) listIterator.next();
- aStream.write(" ".getBytes()); //$NON-NLS-1$
- aStream.write(fileName.getBytes());
- aStream.write(newLine.getBytes());
- }
- }
- aStream.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- private void displayLogs() {
-
- Set aSet = log.entrySet();
- Iterator errorIterator = aSet.iterator();
- while (errorIterator.hasNext()) {
- Map.Entry anEntry = (Map.Entry) errorIterator.next();
- String errorDescription = (String) anEntry.getKey();
- System.out.println(errorDescription);
- List fileList = (List) anEntry.getValue();
- Iterator listIterator = fileList.iterator();
- while (listIterator.hasNext()) {
- String fileName = (String) listIterator.next();
- System.out.println(" " + fileName); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * @param file
- */
- private void processFile(IFile file, IProgressMonitor monitor) {
- SourceFile aSourceFile;
-
- String extension = file.getFileExtension();
- if (extension == null)
- return;
- monitor.subTask(file.getFullPath().toOSString());
- int fileType = AdvancedCopyrightComment.UNKNOWN_COMMENT;
- extension = extension.toLowerCase();
- if (extension.equals("java")) { //$NON-NLS-1$
- fileType = AdvancedCopyrightComment.JAVA_COMMENT;
- aSourceFile = new JavaFile(file);
- } else if (extension.equals("properties")) { //$NON-NLS-1$
- // if stop processing if ignoring properties files
- if (RelEngPlugin.getDefault().getPreferenceStore().getBoolean(RelEngCopyrightConstants.IGNORE_PROPERTIES_KEY)) {
- return;
- }
- fileType = AdvancedCopyrightComment.PROPERTIES_COMMENT;
- aSourceFile = new PropertiesFile(file);
- } else
- return;
-
- if (aSourceFile.hasMultipleCopyrights()) {
- warn(file, null, "Multiple copyrights found. File UNCHANGED."); //$NON-NLS-1$//$NON-NLS-2$
- return;
- }
-
- IPreferenceStore prefStore = RelEngPlugin.getDefault().getPreferenceStore();
- BlockComment copyrightComment = aSourceFile.firstCopyrightComment();
- AdvancedCopyrightComment ibmCopyright = null;
- // if replacing all comments, dont even parse, just use default copyright comment
- if (prefStore.getBoolean(RelEngCopyrightConstants.REPLACE_ALL_EXISTING_KEY)) {
- ibmCopyright = AdvancedCopyrightComment.defaultComment(fileType);
- } else {
- ibmCopyright = AdvancedCopyrightComment.parse(copyrightComment, fileType);
- }
-
- if (ibmCopyright == null) {
- warn(file, copyrightComment, "Could not interpret copyright comment"); //$NON-NLS-1$
- return;
- }
-
- // figure out revision year
- int revised = ibmCopyright.getRevisionYear();
- int lastMod = revised;
- if (prefStore.getBoolean(RelEngCopyrightConstants.USE_DEFAULT_REVISION_YEAR_KEY))
- lastMod = prefStore.getInt(RelEngCopyrightConstants.REVISION_YEAR_KEY);
- else {
- // figure out if the comment should be updated by comparing the date range
- // in the comment to the last modification time provided by CVS
- if (lastMod < currentYear) {
- lastMod = getCVSModificationYear(file, new NullProgressMonitor());
- // use default revision year
- if (lastMod == -1)
- lastMod = prefStore.getInt(RelEngCopyrightConstants.REVISION_YEAR_KEY);
- }
- }
-
- // only exit if existing copyright comment already contains the year
- // of last modification and not overwriting all comments
- if (lastMod <= revised && (copyrightComment != null) && (!prefStore.getBoolean(RelEngCopyrightConstants.REPLACE_ALL_EXISTING_KEY)))
- return;
-
- // either replace old copyright or put the new one at the top of the file
- ibmCopyright.setRevisionYear(lastMod);
- if (copyrightComment == null)
- aSourceFile.insert(ibmCopyright.getCopyrightComment());
- else {
- if (!copyrightComment.atTop())
- warn(file, copyrightComment, "Old copyright not at start of file, new copyright replaces old in same location"); //$NON-NLS-1$
- aSourceFile.replace(copyrightComment, ibmCopyright.getCopyrightComment());
- }
- }
-
- private void warn(IFile file, BlockComment firstBlockComment,
- String errorDescription) {
- List aList = (List) log.get(errorDescription);
- if (aList == null) {
- aList = new ArrayList();
- log.put(errorDescription, aList);
- }
- aList.add(file.getName());
- }
-
- /**
- * @see IActionDelegate#selectionChanged(IAction, ISelection)
- */
- public void selectionChanged(IAction action, ISelection selection) {
- if (selection instanceof IStructuredSelection) {
- this.selection = (IStructuredSelection) selection;
- }
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BatFile.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BatFile.java
deleted file mode 100644
index b946d2d..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BatFile.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import org.eclipse.core.resources.IFile;
-
-public class BatFile extends SourceFile {
-
- public BatFile(IFile file) {
- super(file);
- }
-
- public String getCommentStart() {
- return "rem **";
- }
-
- public String getCommentEnd() {
- return "**";
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BlockComment.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BlockComment.java
deleted file mode 100644
index 2b3eff8..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BlockComment.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author droberts
- */
-public class BlockComment {
-
- int start;
- int end;
- private String contents;
- private static String newLine = System.getProperty("line.separator");
- private String copyrightHolder;
- private List nonIBMContributors = new ArrayList();
- private String commentEnd;
-
-
- /**
- * @param commentStart
- * @param commentEnd
- * @param comment
- */
- public BlockComment(int commentStartLine, int commentEndLine, String comment, String commentStartString, String commentEndString) {
- start = commentStartLine;
- end = commentEndLine;
- commentEnd = commentEndString;
- contents = comment;
- }
-
- public String getContents() {
- return contents;
- }
-
- /**
- * @return boolean
- */
- public boolean isCopyright() {
- return contents.toLowerCase().indexOf("copyright") != -1;
- }
-
- /**
- * @return boolean
- */
- public boolean atTop() {
- return start == 0;
- }
-
- /**
- * @return boolean
- */
- public boolean notIBM() {
-
- String lowerCaseContents = contents.toLowerCase();
- if (copyrightHolder == null) {
- int start = lowerCaseContents.indexOf("copyright");
- if (start == -1) {
- return false;
- }
-
- int end = lowerCaseContents.indexOf(newLine, start);
-
- copyrightHolder = contents.substring(start + "copyright".length(), end);
- }
-
- String lowercaseCopyrightHolder = copyrightHolder.toLowerCase();
-
- int result = lowercaseCopyrightHolder.indexOf("ibm");
- if (result != -1) {
- return false;
- }
-
- result = lowercaseCopyrightHolder.indexOf("international business machine");
- if (result != -1) {
- return false;
- }
-
- return true;
- }
-
- /**
- * @return String
- */
- public String getCopyrightHolder() {
- return copyrightHolder;
- }
-
- /**
- *
- */
- public List nonIBMContributors() {
-
- String lowerCaseContents = contents.toLowerCase();
- int start = lowerCaseContents.indexOf("contributors");
- if (start == -1) {
- return nonIBMContributors;
- }
-
- start = lowerCaseContents.indexOf(newLine, start);
- if (start == -1) {
- return nonIBMContributors;
- }
-
- start = start + newLine.length();
- BufferedReader aReader = new BufferedReader(new StringReader(lowerCaseContents.substring(start)));
-
- String aLine;
- try {
- aLine = aReader.readLine();
- while (aLine != null) {
- aLine = aLine.trim();
- if ((aLine.length() > 0) && (aLine.indexOf(commentEnd) == -1)) {
- if ((aLine.indexOf("ibm") == -1) && (aLine.indexOf("international business machine") == -1)) {
- nonIBMContributors.add(aLine);
- }
- }
- aLine = aReader.readLine();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- return nonIBMContributors;
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BuildNotesPage.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BuildNotesPage.java
deleted file mode 100644
index 8c80142..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/BuildNotesPage.java
+++ /dev/null
@@ -1,490 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.internal.resources.WorkspaceRoot;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.core.synchronize.SyncInfoSet;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-public class BuildNotesPage extends WizardPage {
-
- private static final String FOLDER_BIN = "bin";
-
- private static final String EXT_HTML = "html";
-
- private static final String BUILD_NOTES_HTML = "/build_notes.html";
-
- private String FILE_PATH_KEY = "BuildNotesPage.filePath";
-
- private String UPDATE_FILE_KEY = "BuildNotesPage.updateNotesButton";
-
- private Button updateNotesButton;
-
- private boolean updateNotesButtonChecked;
-
- private SyncInfoSet syncInfoSet;
-
- private IDialogSettings settings;
-
- private Text reportText;
-
- private Map bugSummaryMap;
-
- private boolean validPath;
-
- private Text filePath;
-
- private Button browse;
-
- private IFile iFile;
-
- protected BuildNotesPage(String pageName, String title,
- IDialogSettings settings, ImageDescriptor image) {
- super(pageName, title, image);
- this.settings = settings;
- }
-
- public void createControl(Composite parent) {
- GridData data = new GridData(GridData.FILL_BOTH);
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout(3, false));
- composite.setLayoutData(data);
-
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 3;
- updateNotesButton = new Button(composite, SWT.CHECK);
- updateNotesButton.setText(Messages.getString("BuildNotesPage.2")); //$NON-NLS-1$
- updateNotesButton.setLayoutData(data);
- updateNotesButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- updateNotesButtonChecked = updateNotesButton.getSelection();
- if (updateNotesButtonChecked) {
- filePath.setEnabled(true);
- filePath.setText(filePath.getText());
- browse.setEnabled(true);
- } else {
- filePath.setEnabled(false);
- setErrorMessage(null);
- browse.setEnabled(false);
- }
- updateButtons();
- }
- });
-
- Label label = new Label(composite, SWT.LEFT);
- label.setText(Messages.getString("BuildNotesPage.3")); //$NON-NLS-1$
-
- data = new GridData(GridData.FILL_HORIZONTAL);
- filePath = new Text(composite, SWT.BORDER);
- filePath.setLayoutData(data);
- filePath.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- Path path = new Path(filePath.getText());
- validPath = false;
- if (!path.isEmpty()) {
- IFile file = ((WorkspaceRoot) ResourcesPlugin
- .getWorkspace().getRoot()).getFile(path);
- if (path.isValidPath(filePath.getText())
- && file.getParent().exists()) {
- if (path.getFileExtension().equals(EXT_HTML)) {
- setErrorMessage(null);
- validPath = true;
- iFile = file;
- } else {
- setErrorMessage(Messages
- .getString("BuildNotesPage.5")); //$NON-NLS-1$
- }
- } else {
- setErrorMessage(Messages.getString("BuildNotesPage.6")); //$NON-NLS-1$
- }
- } else {
- // path is empty
- setErrorMessage(Messages.getString("BuildNotesPage.7")); //$NON-NLS-1$
- }
- updateButtons();
- }
- });
-
- browse = new Button(composite, SWT.PUSH);
- browse.setText(Messages.getString("BuildNotesPage.8")); //$NON-NLS-1$
- browse.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- IResource iResource = buildNotesFileDialog();
- if (iResource instanceof IFile) {
- IFile iFile = (IFile) iResource;
- filePath.setText(iFile.getFullPath().toString());
- } else if (iResource instanceof IFolder) {
- IFolder iFolder = (IFolder) iResource;
- filePath.setText(iFolder.getFullPath().toString()
- + BUILD_NOTES_HTML);
- } else if (iResource instanceof IProject) {
- IProject iProject = (IProject) iResource;
- filePath.setText(iProject.getFullPath().toString()
- + BUILD_NOTES_HTML);
- }
- }
- });
-
- data = new GridData(GridData.FILL_BOTH);
- data.horizontalSpan = 3;
- reportText = new Text(composite, SWT.READ_ONLY | SWT.MULTI | SWT.BORDER
- | SWT.WRAP | SWT.V_SCROLL);
- reportText.setLayoutData(data);
-
- initialize();
- setControl(composite);
- }
-
- private void initialize() {
- initSelections();
- }
-
- /*
- * initialize the controls on the page
- */
- private void initSelections() {
- if (settings == null || settings.get(UPDATE_FILE_KEY) == null
- || settings.get(FILE_PATH_KEY) == null) {
- updateNotesButton.setSelection(false);
- updateNotesButtonChecked = false;
- browse.setEnabled(false);
- filePath.setEnabled(false);
- return;
- } else {
- boolean b = settings.getBoolean(UPDATE_FILE_KEY);
- updateNotesButton.setSelection(b);
- updateNotesButtonChecked = b;
- filePath.setText(settings.get(FILE_PATH_KEY));
- browse.setEnabled(true);
- filePath.setEnabled(true);
- }
- }
-
- /*
- * enable or disable wizard buttons
- */
- public void updateButtons() {
- if (isUpdateNotesButtonChecked() && !getValidPath()) {
- setPageComplete(false);
- } else {
- setPageComplete(true);
- }
- }
-
- /*
- * if file doesn't already exist, prepare new one otherwise call method to
- * write to existing file
- */
- public void updateNotesFile() {
- if (!filePath.isDisposed()) {
- Path path = new Path(filePath.getText());
- WorkspaceRoot root = (WorkspaceRoot) ResourcesPlugin.getWorkspace()
- .getRoot();
- final IFile file = root.getFile(path);
- if (file.exists()) {
- writeUpdate(file);
- } else {
- if (file.getParent().exists()) {
- try {
- getContainer().run(true, true,
- new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor)
- throws InvocationTargetException,
- InterruptedException {
- monitor
- .beginTask(
- Messages
- .getString("BuildNotesPage.11"), //$NON-NLS-1$
- 100);
- StringBuffer buffer = new StringBuffer();
- buffer
- .append("<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\">\n");
- buffer.append("<html>\n\n");
- buffer.append("<head>\n");
- buffer
- .append(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n");
- buffer
- .append(" <meta name=\"Build\" content=\"Build\">\n");
- buffer
- .append(" <title>Eclipse Platform Release Notes (3.3) - JFace and Workbench</title>\n");
- buffer.append("</head>\n\n");
- buffer.append("<body>\n\n");
- buffer
- .append("<h1>Eclipse Platform Build Notes (3.3)<br>\n");
- buffer
- .append("JFace and Workbench</h1>");
-
- ByteArrayInputStream c = new ByteArrayInputStream(
- buffer.toString().getBytes());
- try {
- file.create(c, true, monitor);
- } catch (CoreException e) {
- CVSUIPlugin.openError(getShell(),
- null, null, e);
- }
-
- try {
- c.close();
- } catch (IOException e) {
- CVSUIPlugin.openError(getShell(),
- null, null, e);
- }
- monitor.done();
- }
- });
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- } catch (InterruptedException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- }
- writeUpdate(file);
- }
- }
- }
- }
-
- /*
- * write update to build notes file
- */
- public void writeUpdate(final IFile file) {
- BufferedInputStream originalContents = null;
- try {
- originalContents = new BufferedInputStream(file.getContents());
- final StringBuffer buffer = new StringBuffer();
-
- int character;
- while ((character = originalContents.read()) != -1) {
- buffer.append((char) character);
- }
-
- String marker = "</h1>";
- SimpleDateFormat formatter = new SimpleDateFormat(
- "MMMM dd, yyyy, h:mm a");
- Date currentTime = new Date();
- String dateString = formatter.format(currentTime);
- dateString = dateString.replaceAll("AM", "a.m.");
- dateString = dateString.replaceAll("PM", "p.m.");
-
- int index = buffer.indexOf(marker) + marker.length();
- if (index != -1) {
- StringBuffer insertBuffer = new StringBuffer();
- insertBuffer.append("\n<p>Integration Build (" + dateString
- + ")</p>\n");
- insertBuffer.append(" <p>Problem reports updated</p>\n");
- insertBuffer.append(" <p>\n");
-
- Iterator i = bugSummaryMap.entrySet().iterator();
- while (i.hasNext()) {
- Map.Entry entry = (Map.Entry) i.next();
- Integer bug = (Integer) entry.getKey();
- String summary = (String) entry.getValue();
- insertBuffer
- .append("<a href=\"https://bugs.eclipse.org/bugs/show_bug.cgi?id=");
- insertBuffer.append(bug);
- insertBuffer.append("\">Bug ");
- insertBuffer.append(bug);
- insertBuffer.append("</a>. ");
- insertBuffer.append(summary + "<br>\n");
- }
- insertBuffer.append(" </p>");
- buffer.insert(index, "\n" + insertBuffer.toString());
-
- try {
- getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor)
- throws InvocationTargetException,
- InterruptedException {
- monitor.beginTask(Messages
- .getString("BuildNotesPage.38"), 100); //$NON-NLS-1$
- ByteArrayInputStream c = new ByteArrayInputStream(
- buffer.toString().getBytes());
- try {
- file.setContents(c, true, true, monitor);
- c.close();
- } catch (CoreException e) {
- CVSUIPlugin
- .openError(getShell(), null, null, e);
- } catch (IOException e) {
- CVSUIPlugin
- .openError(getShell(), null, null, e);
- }
- monitor.done();
- }
- });
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- } catch (InterruptedException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- }
- }
- } catch (IOException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- } catch (CoreException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- }
- }
-
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- reportText.setText("");
- GetBugsOperation getBugsOperation = new GetBugsOperation(
- (ReleaseWizard) getWizard(), syncInfoSet);
- getBugsOperation.run(this);
- String tempText = outputReport();
- if (tempText != null) {
- reportText.setText(tempText);
- }
- }
- }
-
- public IResource buildNotesFileDialog() {
- ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(
- getShell(), new WorkbenchLabelProvider(),
- new WorkbenchContentProvider());
-
- // filter for .html files only and exclude bin folders
- dialog.addFilter(new ViewerFilter() {
- public boolean select(Viewer viewer, Object parentElement,
- Object element) {
- if (element instanceof IFile) {
- IFile file = (IFile) element;
- IPath path = file.getFullPath();
- if (path.getFileExtension().equals(EXT_HTML)) {
- return true;
- }
- } else if (element instanceof IFolder) {
- IFolder folder = (IFolder) element;
- if (folder.getName().equals(FOLDER_BIN)) {
- return false;
- }
- return true;
- } else if (element instanceof IProject) {
- return true;
- }
- return false;
- }
- });
-
- dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
- dialog.setAllowMultiple(false);
- dialog.setTitle(Messages.getString("BuildNotesPage.42")); //$NON-NLS-1$
- dialog.setMessage(Messages.getString("BuildNotesPage.43")); //$NON-NLS-1$
- if (dialog.open() == Window.OK) {
- Object[] elements = dialog.getResult();
- if (elements != null && elements.length > 0) {
- if (elements[0] instanceof IFile) {
- IFile iFile = (IFile) elements[0];
- return iFile;
- } else if (elements[0] instanceof IFolder) {
- IFolder iFolder = (IFolder) elements[0];
- return iFolder;
- } else if (elements[0] instanceof IProject) {
- IProject iProject = (IProject) elements[0];
- return iProject;
- }
- }
- }
- return null;
- }
-
- public boolean isUpdateNotesButtonChecked() {
- return updateNotesButtonChecked;
- }
-
- public void setSyncInfoSet(SyncInfoSet syncInfoSet) {
- this.syncInfoSet = syncInfoSet;
- }
-
- /**
- * return string of report
- */
- public String outputReport() {
- StringBuffer buffer = new StringBuffer();
- if (bugSummaryMap.size() < 1) {
- buffer.append("The map file has been updated.\n");
- } else {
- buffer
- .append("The map file has been updated for the following Bug changes:\n");
- Iterator i = bugSummaryMap.entrySet().iterator();
-
- while (i.hasNext()) {
- Map.Entry entry = (Map.Entry) i.next();
- Integer bug = (Integer) entry.getKey();
- String summary = (String) entry.getValue();
- buffer.append("+ Bug " + bug + ". " + summary + "\n");
- }
- }
- buffer.append("\nThe following projects have changed:\n");
- IProject[] iProjects = ((ReleaseWizard) getWizard())
- .getSelectedProjects();
- for (int j = 0; j < iProjects.length; j++) {
- buffer.append(iProjects[j].getName() + "\n");
- }
- return buffer.toString();
- }
-
- public void setMap(Map map) {
- this.bugSummaryMap = map;
- }
-
- public boolean getValidPath() {
- return validPath;
- }
-
- public IFile getIFile() {
- return iFile;
- }
-
- public void saveSettings() {
- settings.put(UPDATE_FILE_KEY, updateNotesButtonChecked);
- settings.put(FILE_PATH_KEY, filePath.getText());
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CFile.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CFile.java
deleted file mode 100644
index 5f150d4..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CFile.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import org.eclipse.core.resources.IFile;
-
-public class CFile extends SourceFile {
-
- public CFile(IFile file) {
- super(file);
- }
-
- public String getCommentStart() {
- return "/*";
- }
-
- public String getCommentEnd() {
- return "*/";
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CommitCommentPage.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CommitCommentPage.java
deleted file mode 100644
index dce67d3..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CommitCommentPage.java
+++ /dev/null
@@ -1,59 +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.releng.tools;
-
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.internal.ccvs.ui.CommitCommentArea;
-import org.eclipse.team.internal.ccvs.ui.wizards.CVSWizardPage;
-
-public class CommitCommentPage extends CVSWizardPage {
-
- private CommitCommentArea commitCommentArea;
-
- public CommitCommentPage(
- Dialog parentDialog,
- String pageName,
- String title,
- ImageDescriptor image,
- String description) {
-
- super(pageName, title, image, description);
- commitCommentArea = new CommitCommentArea();
- }
-
- public void createControl(Composite parent) {
- Composite top = new Composite(parent, SWT.NONE);
- top.setLayout(new GridLayout());
- setControl(top);
- commitCommentArea.createArea(top);
- Dialog.applyDialogFont(parent);
- }
-
- public String getComment() {
- return commitCommentArea.getComment(true);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
- */
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- commitCommentArea.setFocus();
- }
- }
-}
-
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CompareLocalToMap.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CompareLocalToMap.java
deleted file mode 100644
index 1f8bd0e..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/CompareLocalToMap.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.internal.ccvs.core.CVSCompareSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction;
-import org.eclipse.team.internal.ccvs.ui.subscriber.CompareParticipant;
-import org.eclipse.team.ui.TeamUI;
-import org.eclipse.team.ui.synchronize.ISynchronizeParticipant;
-
-/**
- * This class compares the locally selected projects againsts the versions
- * found in the releng map files. The releng map files are searched for in the
- * org.eclipse.releng project in the folder named maps
- */
-public class CompareLocalToMap extends WorkspaceAction {
-
- /*
- * Get the tag from the map files in the org.eclipse.releng project
- *
- * @param resource
- * @return
- * @throws CVSException
- */
- protected CVSTag getTag(IResource resource) {
- MapEntry entry = getMapProject().getMapEntry(resource.getProject());
- if (entry == null) return CVSTag.DEFAULT;
- return entry.getTag();
- }
-
- /**
- * Returns true if the super would enable the option *and*
- * only projects are selected. There is no concept of "releasing"
- * anything but a project.
- *
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- public boolean isEnabled() {
-
- boolean result = super.isEnabled();
- if (!result) {
- return false;
- }
- return (getMapProject() != null && getMapProject().mapsAreLoaded());
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#execute(org.eclipse.jface.action.IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
- IResource[] resources = getSelectedResources();
- if (resources.length == 0) return;
- CVSTag[] tags = new CVSTag[resources.length];
- for (int i = 0; i < resources.length; i++) {
- tags[i] = getTag(resources[i]);
- }
-
- // Create the synchronize view participant
- CVSCompareSubscriber s = new CVSCompareSubscriber(resources, tags, "RelEng Map"); //$NON-NLS-1$
- try {
- s.primeRemoteTree();
- } catch (CVSException e) {
- // Log and ignore
- RelEngPlugin.log(e);
- }
- CompareParticipant participant = new CompareParticipant(s);
- TeamUI.getSynchronizeManager().addSynchronizeParticipants(new ISynchronizeParticipant[]{participant});
- participant.refresh(resources, "Refreshing", "Refreshing", getTargetPart().getSite());
- }
- private MapProject getMapProject(){
- return MapProject.getDefaultMapProject();
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/FixCopyrightAction.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/FixCopyrightAction.java
deleted file mode 100644
index 58d4866..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/FixCopyrightAction.java
+++ /dev/null
@@ -1,431 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class FixCopyrightAction implements IObjectActionDelegate {
-
- public class MyInnerClass implements IResourceVisitor {
- public IProgressMonitor monitor;
-
- public boolean visit(IResource resource) throws CoreException {
- if (resource.getType() == IResource.FILE) {
- processFile((IFile) resource, monitor);
- }
- return true;
- }
- }
-
- private String newLine = System.getProperty("line.separator");
- private Map log = new HashMap();
- private boolean swt = false;
- private String filterString;
-
- // The current selection
- protected IStructuredSelection selection;
-
- private static final int currentYear = new GregorianCalendar().get(Calendar.YEAR);
-
- /**
- * Constructor for Action1.
- */
- public FixCopyrightAction() {
- super();
- }
-
- /**
- * Returns the selected resources.
- *
- * @return the selected resources
- */
- protected IFile[] getSelectedResources() {
- ArrayList resources = null;
- if (!selection.isEmpty()) {
- resources = new ArrayList();
- Iterator elements = selection.iterator();
- while (elements.hasNext()) {
- Object next = elements.next();
- IResource resource = (IResource) next;
- switch(resource.getType()) {
- case IResource.FILE :
- resources.add((IFile) resource);
- break;
- case IResource.FOLDER :
- case IResource.PROJECT :
- addMembers((IContainer) resource, resources);
- break;
- }
- }
- }
- if (resources != null && !resources.isEmpty()) {
- IFile[] result = new IFile[resources.size()];
- resources.toArray(result);
- return result;
- }
- return new IFile[0];
- }
-
- private void addMembers(IContainer container, List list) {
- try {
- IResource[] resources = container.members();
- for (int i = 0, max = resources.length; i < max; i++) {
- IResource resource = resources[i];
- switch(resource.getType()) {
- case IResource.FOLDER :
- case IResource.PROJECT :
- addMembers((IContainer) resource, list);
- break;
- case IResource.FILE :
- list.add((IFile) resource);
- }
- }
- } catch (CoreException e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
- */
- public void setActivePart(IAction action, IWorkbenchPart targetPart) {
- }
-
- /**
- * @see IActionDelegate#run(IAction)
- */
- public void run(IAction action) {
- log = new HashMap();
- try {
- final String[] filterArray = new String[1];
- Dialog filterCriteria = new Dialog(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()) {
- Text text;
-
- protected Control createDialogArea(Composite parent) {
- Composite parentComposite = (Composite) super
- .createDialogArea(parent);
- Composite composite = new Composite(parentComposite,
- SWT.NONE);
- composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
- true, true));
- composite.setLayout(new GridLayout(2, false));
- Label header = new Label(composite, SWT.WRAP);
- header.setText(Messages.getString("CopyrightDialog.1"));
- GridData gridData = new GridData(SWT.FILL, SWT.FILL, true,
- false);
- gridData.horizontalSpan = 2;
- header.setLayoutData(gridData);
- Label label = new Label(composite, SWT.NONE);
- label.setText(Messages.getString("CopyrightDialog.2"));
- text = new Text(composite, SWT.NONE);
- text.setText("copyright");
- text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
- false));
- return parentComposite;
- }
-
- protected void okPressed() {
- filterArray[0] = text.getText();
- super.okPressed();
- }
-
- };
- filterCriteria.setBlockOnOpen(true);
- int result = filterCriteria.open();
- if (result == Dialog.CANCEL)
- return;
-
- if (!filterArray[0].trim().equals("")) {
- filterString = filterArray[0];
- }
-
- final IResource[] results = getSelectedResources();
- PlatformUI.getWorkbench().getProgressService().run(true, /* fork */
- true, /* cancellable */
- new WorkspaceModifyOperation() {
- protected void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException, InterruptedException {
- try {
- monitor.beginTask("Fixing copyrights...", results.length);
- System.out.println("Start Fixing Copyrights");
- System.out.println("Resources selected: " + results.length);
- if (results.length > 0) {
- IProject project = results[0].getProject();
- if (project.getName().equals("org.eclipse.swt")) swt = true;
- }
- for (int i = 0; i < results.length; i++) {
- IResource resource = results[i];
- System.out.println("Resource selected: " + resource.getFullPath());
- processFile((IFile) resource, monitor);
- monitor.worked(1);
- if (monitor.isCanceled()) {
- monitor.setCanceled(true);
- break;
- }
- }
-
- writeLogs();
- if (swt) displayLogs();
- System.out.println("Done Fixing Copyrights");
-
- } finally {
- monitor.done();
- }
- }
- });
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
-
- /**
- * Lookup and return the year in which the argument file was revised. Return -1 if
- * the revision year cannot be found.
- */
- private int getCVSModificationYear(IFile file, IProgressMonitor monitor) {
- try {
- monitor.beginTask("Fetching logs from CVS", 100);
-
- try {
- ICVSRemoteResource cvsFile = CVSWorkspaceRoot.getRemoteResourceFor(file);
- if (cvsFile != null) {
- // get the log entry for the revision loaded in the workspace
- ILogEntry entry = ((ICVSRemoteFile) cvsFile)
- .getLogEntry(new SubProgressMonitor(monitor, 100));
-
- String logComment = entry.getComment();
- if (swt && logComment.indexOf("CPL") != -1
- && logComment.indexOf("EPL") != -1) {
- // the last modification was the copyright comment
- // update for the transition from CPL to EPL, so
- // ignore
- return 0;
-
- }
- else if (filterString != null && logComment.indexOf(filterString) != -1) {
- //the last update was a copyright checkin - ignore
- return 0;
- }
-
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(entry.getDate());
- return calendar.get(Calendar.YEAR);
- }
- } catch (TeamException e) {
- // do nothing
- }
- } finally {
- monitor.done();
- }
-
- return -1;
- }
-
- /**
- *
- */
- private void writeLogs() {
-
- FileOutputStream aStream;
- try {
- File aFile = new File(Platform.getLocation().toFile(), "copyrightLog.txt");
- aStream = new FileOutputStream(aFile);
- Set aSet = log.entrySet();
- Iterator errorIterator = aSet.iterator();
- while (errorIterator.hasNext()) {
- Map.Entry anEntry = (Map.Entry) errorIterator.next();
- String errorDescription = (String) anEntry.getKey();
- aStream.write(errorDescription.getBytes());
- aStream.write(newLine.getBytes());
- List fileList = (List) anEntry.getValue();
- Iterator listIterator = fileList.iterator();
- while (listIterator.hasNext()) {
- String fileName = (String) listIterator.next();
- aStream.write(" ".getBytes());
- aStream.write(fileName.getBytes());
- aStream.write(newLine.getBytes());
- }
- }
- aStream.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- private void displayLogs() {
-
- Set aSet = log.entrySet();
- Iterator errorIterator = aSet.iterator();
- while (errorIterator.hasNext()) {
- Map.Entry anEntry = (Map.Entry) errorIterator.next();
- String errorDescription = (String) anEntry.getKey();
- System.out.println(errorDescription);
- List fileList = (List) anEntry.getValue();
- Iterator listIterator = fileList.iterator();
- while (listIterator.hasNext()) {
- String fileName = (String) listIterator.next();
- System.out.println(" " + fileName);
- }
- }
- }
-
- /**
- * @param file
- */
- private void processFile(IFile file, IProgressMonitor monitor) {
- SourceFile aSourceFile;
-
- String extension = file.getFileExtension();
- if (extension == null) {
- warn(file, null, "File has no extension. File UNCHANGED."); //$NON-NLS-1$
- return;
- }
- monitor.subTask(file.getFullPath().toOSString());
- int fileType = IBMCopyrightComment.UNKNOWN_COMMENT;
- extension = extension.toLowerCase();
- if (extension.equals("java")) { //$NON-NLS-1$
- fileType = IBMCopyrightComment.JAVA_COMMENT;
- aSourceFile = new JavaFile(file);
- } else if (extension.equals("c") || extension.equals("h") || extension.equals("rc") || extension.equals("cc") || extension.equals("cpp")) { //$NON-NLS-1$
- fileType = IBMCopyrightComment.C_COMMENT;
- aSourceFile = new CFile(file);
- } else if (extension.equals("properties")) { //$NON-NLS-1$
- fileType = IBMCopyrightComment.PROPERTIES_COMMENT;
- aSourceFile = new PropertiesFile(file);
- } else if (extension.equals("sh") || extension.equals("csh") || extension.equals("mak")) { //$NON-NLS-1$
- fileType = IBMCopyrightComment.SHELL_MAKE_COMMENT;
- aSourceFile = new ShellMakeFile(file);
- } else if (extension.equals("bat")) { //$NON-NLS-1$
- fileType = IBMCopyrightComment.BAT_COMMENT;
- aSourceFile = new BatFile(file);
- } else
- return;
-
- if (aSourceFile.hasMultipleCopyrights()) {
- warn(file, null, "Multiple copyrights found. File UNCHANGED."); //$NON-NLS-1$//$NON-NLS-2$
- return;
- }
-
- boolean hasCPL = false, hasGPL = false, hasMPL = false, hasApple = false;
-
- BlockComment copyrightComment = aSourceFile.firstCopyrightComment();
- if (copyrightComment != null) {
- String copyrightString = copyrightComment.getContents();
- if (copyrightString.indexOf("Common Public License") != -1) hasCPL = true;
- if (swt) {
- if (copyrightString.indexOf("GPL") != -1) hasGPL = true;
- if (copyrightString.indexOf("MPL") != -1) hasMPL = true;
- if (copyrightString.indexOf("Apple Computer") != -1) hasApple = true;
- }
- }
-
- IBMCopyrightComment ibmCopyright = IBMCopyrightComment.parse(copyrightComment, fileType);
- if (ibmCopyright == null) {
- warn(file, copyrightComment, "Could not interpret copyright comment. File UNCHANGED."); //$NON-NLS-1$
- return;
- }
-
- // figure out if the comment should be updated by comparing the date range
- // in the comment to the last modification time provided by CVS
-
- int revised = ibmCopyright.getRevisionYear();
- int lastMod = revised;
- if (lastMod < currentYear)
- lastMod = getCVSModificationYear(file, new NullProgressMonitor());
-
- if (lastMod <= revised && !hasCPL) {
- return; // no update necessary
- }
-
- // either replace old copyright or put the new one at the top of the file
- ibmCopyright.setRevisionYear(lastMod);
- if (copyrightComment == null) {
- aSourceFile.insert(ibmCopyright.getCopyrightComment());
- } else {
- if (!copyrightComment.atTop()) {
- warn(file, copyrightComment, "Old copyright not at start of file, new copyright replaces old in same location."); //$NON-NLS-1$
- }
- if (hasGPL || hasMPL || hasApple) {
- warn(file, copyrightComment, "Old copyright contains GPL, MPL, or Apple. Copyright unchanged. Date updated if necessary."); //$NON-NLS-1$
- aSourceFile.replace(copyrightComment, ibmCopyright.getOriginalCopyrightComment());
- } else {
- aSourceFile.replace(copyrightComment, ibmCopyright.getCopyrightComment());
- }
- }
- }
-
- private void warn(IFile file, BlockComment firstBlockComment, String errorDescription) {
- List aList = (List) log.get(errorDescription);
- if (aList == null) {
- aList = new ArrayList();
- log.put(errorDescription, aList);
- }
- aList.add(file.getFullPath().toOSString());
- }
-
- /**
- * @see IActionDelegate#selectionChanged(IAction, ISelection)
- */
- public void selectionChanged(IAction action, ISelection selection) {
- if (selection instanceof IStructuredSelection) {
- this.selection = (IStructuredSelection) selection;
- }
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/GetBugsOperation.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/GetBugsOperation.java
deleted file mode 100644
index a4711c9..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/GetBugsOperation.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.io.DataInputStream;
-import java.io.EOFException;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.synchronize.SyncInfo;
-import org.eclipse.team.core.synchronize.SyncInfoSet;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.operations.RemoteLogOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.RemoteLogOperation.LogEntryCache;
-
-public class GetBugsOperation {
- private static final CVSTag TAG_1_1 = new CVSTag("1.1", CVSTag.VERSION);
- private static final String BUG_DATABASE_PREFIX = "https://bugs.eclipse.org/bugs/show_bug.cgi?id=";
- private static final String BUG_DATABASE_POSTFIX = "&ctype=xml";
- private static final String SUM_OPEN_TAG = "<short_desc>";
- private static final String SUM_CLOSE_TAG = "</short_desc>";
- private static final String STATUS_OPEN_TAG = "<bug_status>";
- private static final String STATUS_CLOSE_TAG = "</bug_status";
- private static final String RES_OPEN_TAG = "<resolution>";
- private static final String RES_CLOSE_TAG = "</resolution>";
- private static final String RESOLVED = "RESOLVED";
- private static final String VERIFIED = "VERIFIED";
- private ReleaseWizard wizard;
-
- private SyncInfoSet syncInfoSet;
-
- private SyncInfo[] syncInfos;
-
- private Pattern bugPattern;
-
- protected GetBugsOperation(ReleaseWizard wizard, SyncInfoSet syncInfoSet) {
- this.wizard = wizard;
- this.syncInfoSet = syncInfoSet;
- bugPattern = Pattern.compile("bug (\\d+)", Pattern.CASE_INSENSITIVE
- | Pattern.UNICODE_CASE);
- }
-
- protected void run(final BuildNotesPage page) {
- try {
- wizard.getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) {
- final int totalWork = 101;
- monitor
- .beginTask(
- Messages.getString("GetBugsOperation.0"), totalWork); //$NON-NLS-1$
-
- // task 1 -- get bug number from comments
- syncInfos = syncInfoSet.getSyncInfos();
- Set bugTree = getBugNumbersFromComments(syncInfos,
- new SubProgressMonitor(monitor, 85,
- SubProgressMonitor.SUPPRESS_SUBTASK_LABEL));
-
- // task 2 -- create map of bugs and summaries
- Integer[] bugs = (Integer[]) bugTree
- .toArray(new Integer[0]);
- final TreeMap map = (TreeMap) getBugzillaSummaries(bugs,
- new SubProgressMonitor(monitor, 15,
- SubProgressMonitor.SUPPRESS_SUBTASK_LABEL));
- page.getShell().getDisplay().asyncExec(new Runnable() {
- public void run() {
- page.setMap(map);
- }
- });
- monitor.done();
- }
- });
- } catch (InterruptedException e) {
- CVSUIPlugin.openError(wizard.getShell(), null, null, e);
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(wizard.getShell(), null, null, e);
- }
- }
-
- protected Set getBugNumbersFromComments(SyncInfo[] syncInfos,
- IProgressMonitor monitor) {
- monitor.beginTask("Scanning comments for bug numbers", syncInfos.length);
- TreeSet set = new TreeSet();
- for (int i = 0; i < syncInfos.length; i++) {
- SyncInfo info = syncInfos[i];
- getBugNumbersForSyncInfo(info, monitor, set);
- monitor.worked(1);
- }
- monitor.done();
- return set;
- }
-
- private void getBugNumbersForSyncInfo(SyncInfo info,
- IProgressMonitor monitor, Set set) {
- try {
- CVSTag remoteTag = null;
- CVSTag localTag = null;
- IResource localResource = info.getLocal();
- if (localResource.exists()) {
- ICVSResource cvsLocal = CVSWorkspaceRoot
- .getCVSResourceFor(localResource);
- ResourceSyncInfo rsync = cvsLocal.getSyncInfo();
- if (rsync != null) {
- localTag = new CVSTag(rsync.getRevision(), CVSTag.VERSION);
- }
- }
- if (localTag == null) {
- localTag = getProjectTag(localResource.getProject());
- }
-
- ICVSRemoteResource cvsRemoteResource = (ICVSRemoteResource) info
- .getRemote();
- if (cvsRemoteResource == null) {
- cvsRemoteResource = CVSWorkspaceRoot
- .getRemoteResourceFor(localResource);
- remoteTag = TAG_1_1;
- } else {
- ResourceSyncInfo rsync = cvsRemoteResource.getSyncInfo();
- if (rsync != null) {
- remoteTag = new CVSTag(rsync.getRevision(), CVSTag.VERSION);
- }
- }
- if (remoteTag == null) {
- remoteTag = TAG_1_1;
- }
-
- LogEntryCache cache = new RemoteLogOperation.LogEntryCache();
-
- RemoteLogOperation logOp = new RemoteLogOperation(null,
- new ICVSRemoteResource[] { cvsRemoteResource }, localTag,
- remoteTag, cache);
- logOp.run(monitor);
- ILogEntry[] logEntries = cache.getLogEntries(cvsRemoteResource);
- for (int i = 0; i < logEntries.length; i++) {
- ILogEntry entry = logEntries[i];
- if (!entry.getRevision().equals(remoteTag.getName())
- || remoteTag == TAG_1_1) {
- findBugNumber(entry.getComment(), set);
- }
- }
- } catch (CVSException e) {
- CVSUIPlugin.openError(wizard.getShell(), null, null, e);
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(wizard.getShell(), null, null, e);
- } catch (InterruptedException e) {
- CVSUIPlugin.openError(wizard.getShell(), null, null, e);
- }
- }
-
- private CVSTag getProjectTag(IProject project) {
- IFile dotProject = project.getFile(".project");
- if (dotProject.exists()) {
- ICVSResource cvsResource = CVSWorkspaceRoot
- .getCVSResourceFor(dotProject);
- try {
- if (cvsResource != null && cvsResource.getSyncInfo() != null) {
- CVSTag tag = cvsResource.getSyncInfo().getTag();
- if (tag != null) {
- return tag;
- }
- }
- } catch (CVSException e) {
- CVSUIPlugin.openError(wizard.getShell(), null, null, e);
- }
- }
- return new CVSTag();
- }
-
- protected void findBugNumber(String comment, Set set) {
- if (comment == null) {
- return;
- }
- Matcher matcher = bugPattern.matcher(comment);
- while (matcher.find()) {
- Integer bugNumber = new Integer(matcher.group(1));
- set.add(bugNumber);
- }
- }
-
- /*
- * Method uses set of bug numbers to query bugzilla and get summary of each
- * bug
- */
- protected Map getBugzillaSummaries(Integer[] bugs, IProgressMonitor monitor) {
- monitor.beginTask(
- Messages.getString("GetBugsOperation.1"), bugs.length + 1); //$NON-NLS-1$
- HttpURLConnection hURL;
- DataInputStream in;
- URLConnection url;
- StringBuffer buffer;
- TreeMap map = new TreeMap();
- for (int i = 0; i < bugs.length; i++) {
- try {
- url = (new URL(BUG_DATABASE_PREFIX + bugs[i]
- + BUG_DATABASE_POSTFIX).openConnection());
- if (url instanceof HttpURLConnection) {
- hURL = (HttpURLConnection) url;
- hURL.setAllowUserInteraction(true);
- hURL.connect();
- in = new DataInputStream(hURL.getInputStream());
- buffer = new StringBuffer();
- try {
- if (hURL.getResponseCode() != HttpURLConnection.HTTP_OK) {
- throw new IOException("Bad response code");
- }
- while (true) {
- buffer.append((char) in.readUnsignedByte());
- }
- } catch (EOFException e) {
- hURL.disconnect();
- }
- String webPage = buffer.toString();
- int summaryStartIndex = webPage.indexOf(SUM_OPEN_TAG);
- int summaryEndIndex = webPage.indexOf(SUM_CLOSE_TAG,
- summaryStartIndex);
- if (summaryStartIndex != -1 & summaryEndIndex != -1) {
- String summary = webPage.substring(summaryStartIndex + SUM_OPEN_TAG.length(),
- summaryEndIndex);
- summary = summary.replaceAll(""", "\"");
- summary = summary.replaceAll("<", "<");
- summary = summary.replaceAll(">", ">");
- summary = summary.replaceAll("&", "&");
- summary = summary.replaceAll("'", "'");
- int statusStartIndex = webPage.indexOf(STATUS_OPEN_TAG);
- int statusEndIndex = webPage.indexOf(STATUS_CLOSE_TAG);
- if(statusStartIndex != -1 && statusEndIndex != -1) {
- String bugStatus = webPage.substring(statusStartIndex + STATUS_OPEN_TAG.length(), statusEndIndex);
- if(bugStatus.equalsIgnoreCase(RESOLVED) || bugStatus.equalsIgnoreCase(VERIFIED)) {
- int resStartIndex = webPage.indexOf(RES_OPEN_TAG);
- int resEndIndex = webPage.indexOf(RES_CLOSE_TAG);
- if(resStartIndex != -1 && resEndIndex != -1) {
- String resolution = webPage.substring(resStartIndex + RES_OPEN_TAG.length(), resEndIndex);
- if(resolution != null && !resolution.equals("")) {
- summary = summary + " (" + resolution + ")";
- }
- }
- }
- else {
- summary = summary + " (" + bugStatus + ")";
- }
- }
- map.put(bugs[i], summary);
- }
- }
- } catch (IOException e) {
- CVSUIPlugin.openError(wizard.getShell(), null, null, e);
- }
- monitor.worked(1);
- }
- monitor.done();
- return map;
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/IBMCopyrightComment.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/IBMCopyrightComment.java
deleted file mode 100644
index 164074c..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/IBMCopyrightComment.java
+++ /dev/null
@@ -1,262 +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.releng.tools;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-public class IBMCopyrightComment {
-
- public static final int UNKNOWN_COMMENT = -1;
- public static final int JAVA_COMMENT = 1;
- public static final int PROPERTIES_COMMENT = 2;
- public static final int C_COMMENT = 3;
- public static final int SHELL_MAKE_COMMENT = 4;
- public static final int BAT_COMMENT = 5;
-
- private static final int DEFAULT_CREATION_YEAR = 2005;
-
- private int commentStyle = 0;
- private int creationYear = -1;
- private int revisionYear = -1;
- private List contributors;
- private int yearRangeStart, yearRangeEnd;
- private String originalText;
-
- private IBMCopyrightComment(int commentStyle, int creationYear, int revisionYear, List contributors, int yearRangeStart, int yearRangeEnd, String originalText) {
- this.commentStyle = commentStyle;
- this.creationYear = creationYear == -1 ? DEFAULT_CREATION_YEAR : creationYear;
- this.revisionYear = revisionYear;
- this.contributors = contributors;
- this.yearRangeStart = yearRangeStart;
- this.yearRangeEnd = yearRangeEnd;
- this.originalText = originalText;
- }
-
- public static IBMCopyrightComment defaultComment(int commentStyle) {
- return new IBMCopyrightComment(commentStyle, DEFAULT_CREATION_YEAR, -1, null, 0, 0, null);
- }
-
- /**
- * Create an instance the same as the argument comment but with the revision year
- * updated if needed. Return the default comment if the argument comment is null
- * or an empty string. Return null if the argument comment is not recognized as
- * an IBM copyright comment.
- */
- public static IBMCopyrightComment parse(BlockComment comment, int commentStyle) {
- if (comment == null)
- return defaultComment(commentStyle);
-
- String body = comment.getContents();
-
- final String copyrightLabel = "Copyright (c) "; //$NON-NLS-1$
- int start = body.indexOf(copyrightLabel); //$NON-NLS-1$
- if (start == -1) return null;
- int contrib = body.indexOf("Contributors:", start); //$NON-NLS-1$
- int rangeEnd = body.indexOf(" IBM Corp", start); //$NON-NLS-1$ // catch both IBM Corporation and IBM Corp.
-
- if (rangeEnd == -1 || rangeEnd > contrib) // IBM must be on the copyright line, not the contributor line
- return null;
-
- int rangeStart = start + copyrightLabel.length();
- String yearRange = body.substring(rangeStart, rangeEnd);
-
- int comma = yearRange.indexOf(","); //$NON-NLS-1$
- if (comma == -1) {
- comma = yearRange.indexOf("-"); //$NON-NLS-1$
- }
-
- String startStr = comma == -1 ? yearRange : yearRange.substring(0, comma);
- if (comma != -1 && Character.isWhitespace(yearRange.charAt(comma))) comma++;
- String endStr = comma == -1 ? null : yearRange.substring(comma + 1);
-
- int startYear = -1;
- if (startStr != null) {
- try {
- startYear = Integer.parseInt(startStr.trim());
- } catch(NumberFormatException e) {
- // do nothing
- }
- }
-
- int endYear = -1;
- if (endStr != null) {
- try {
- endYear = Integer.parseInt(endStr.trim());
- } catch(NumberFormatException e) {
- // do nothing
- }
- }
-
- String contribComment = body.substring(contrib);
- StringTokenizer tokens = new StringTokenizer(contribComment, "\r\n"); //$NON-NLS-1$
- tokens.nextToken();
- ArrayList contributors = new ArrayList();
- String linePrefix = getLinePrefix(commentStyle);
- while(tokens.hasMoreTokens()) {
- String contributor = tokens.nextToken();
- if (contributor.indexOf("***********************************") == -1 //$NON-NLS-1$
- && contributor.indexOf("###################################") == -1) { //$NON-NLS-1$
- int c = contributor.indexOf(linePrefix);
- if (c == -1 && linePrefix.equals(" *")) {
- // special case: old prefix was "*" and new prefix is " *"
- c = contributor.indexOf("*");
- }
- if (c == 0) {
- // prefix has to be at the beginning of the line
- contributor = contributor.substring(c + linePrefix.length());
- }
- contributors.add(contributor);
- }
- }
-
- return new IBMCopyrightComment(commentStyle, startYear, endYear, contributors, rangeStart, rangeEnd, body);
- }
-
- public int getRevisionYear() {
- return revisionYear == -1 ? creationYear : revisionYear;
- }
-
- public void setRevisionYear(int year) {
- if (revisionYear != -1 || creationYear != year)
- revisionYear = year;
- }
-
- private static String getLinePrefix(int commentStyle) {
- switch(commentStyle) {
- case JAVA_COMMENT:
- case C_COMMENT:
- return " *"; //$NON-NLS-1$
- case PROPERTIES_COMMENT:
- return "#"; //$NON-NLS-1$
- case SHELL_MAKE_COMMENT:
- return "#"; //$NON-NLS-1$
- case BAT_COMMENT:
- return "rem "; //$NON-NLS-1$
- default:
- return null;
- }
- }
-
- /**
- * Return the body of this copyright comment or null if it cannot be built.
- */
- public String getCopyrightComment() {
- String linePrefix = getLinePrefix(commentStyle);
- if (linePrefix == null)
- return null;
-
- StringWriter out = new StringWriter();
- PrintWriter writer = new PrintWriter(out);
- try {
- writeCommentStart(writer);
- writeLegal(writer, linePrefix);
- writeContributions(writer, linePrefix);
- writeCommentEnd(writer);
- return out.toString();
- } finally {
- writer.close();
- }
- }
-
- /**
- * Return the body of the original copyright comment with new dates.
- */
- public String getOriginalCopyrightComment() {
- StringWriter out = new StringWriter();
- PrintWriter writer = new PrintWriter(out);
- try {
- writer.print(originalText.substring(0, yearRangeStart));
- writer.print(creationYear);
- if (revisionYear != -1 && revisionYear != creationYear)
- writer.print(", " + revisionYear); //$NON-NLS-1$
- writer.print(originalText.substring(yearRangeEnd));
- return out.toString();
- } finally {
- writer.close();
- }
- }
-
- private void writeCommentStart(PrintWriter writer) {
- switch(commentStyle) {
- case JAVA_COMMENT:
- case C_COMMENT:
- writer.println("/*******************************************************************************"); //$NON-NLS-1$
- break;
- case PROPERTIES_COMMENT:
- writer.println("###############################################################################"); //$NON-NLS-1$
- break;
- case SHELL_MAKE_COMMENT:
- writer.println("#*******************************************************************************"); //$NON-NLS-1$
- break;
- case BAT_COMMENT:
- writer.println("rem *******************************************************************************"); //$NON-NLS-1$
- break;
- }
- }
-
- private void writeLegal(PrintWriter writer, String linePrefix) {
- writer.print(linePrefix + " Copyright (c) " + creationYear); //$NON-NLS-1$
- if (revisionYear != -1 && revisionYear != creationYear)
- writer.print(", " + revisionYear); //$NON-NLS-1$
- writer.println(" IBM Corporation and others."); //$NON-NLS-1$
-
- writer.println(linePrefix + " All rights reserved. This program and the accompanying materials"); //$NON-NLS-1$
- writer.println(linePrefix + " are made available under the terms of the Eclipse Public License v1.0"); //$NON-NLS-1$
- writer.println(linePrefix + " which accompanies this distribution, and is available at"); //$NON-NLS-1$
- writer.println(linePrefix + " http://www.eclipse.org/legal/epl-v10.html"); //$NON-NLS-1$
- }
-
- private void writeContributions(PrintWriter writer, String linePrefix) {
- writer.println(linePrefix);
- writer.println(linePrefix + " Contributors:"); //$NON-NLS-1$
-
- if (contributors == null || contributors.size() <= 0)
- writer.println(linePrefix + " IBM Corporation - initial API and implementation"); //$NON-NLS-1$
- else {
- Iterator i = contributors.iterator();
- while (i.hasNext()) {
- String contributor = (String) i.next();
- if (contributor.length() > 0) {
- if (Character.isWhitespace(contributor.charAt(0))) {
- writer.println(linePrefix + contributor); //$NON-NLS-1$
- } else {
- writer.println(linePrefix + " " + contributor); //$NON-NLS-1$
- }
- } else {
- writer.println(linePrefix); //$NON-NLS-1$
- }
- }
- }
- }
-
- private void writeCommentEnd(PrintWriter writer) {
- switch(commentStyle) {
- case JAVA_COMMENT:
- case C_COMMENT:
- writer.println(" *******************************************************************************/"); //$NON-NLS-1$
- break;
- case PROPERTIES_COMMENT:
- writer.println("###############################################################################"); //$NON-NLS-1$
- break;
- case SHELL_MAKE_COMMENT:
- writer.println("#*******************************************************************************"); //$NON-NLS-1$
- break;
- case BAT_COMMENT:
- writer.println("rem *******************************************************************************"); //$NON-NLS-1$
- break;
- }
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/JavaFile.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/JavaFile.java
deleted file mode 100644
index d08552f..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/JavaFile.java
+++ /dev/null
@@ -1,41 +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.releng.tools;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * @author droberts
- */
-public class JavaFile extends SourceFile {
-
- /**
- * @param file
- */
- public JavaFile(IFile file) {
- super(file);
- }
-
- /* (non-Javadoc)
- * @see Test.popup.actions.SourceFile#getCommentStart()
- */
- public String getCommentStart() {
- return "/*";
- }
-
- /* (non-Javadoc)
- * @see Test.popup.actions.SourceFile#getCommentEnd()
- */
- public String getCommentEnd() {
- return "*/";
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/LoadMap.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/LoadMap.java
deleted file mode 100644
index c9fe549..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/LoadMap.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-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.jface.action.IAction;
-import org.eclipse.team.core.ProjectSetCapability;
-import org.eclipse.team.core.RepositoryProviderType;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.ui.actions.CVSAction;
-import org.eclipse.team.internal.ui.UIProjectSetSerializationContext;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-public class LoadMap extends CVSAction {
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#execute(org.eclipse.jface.action.IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
- run(new WorkspaceModifyOperation(null) {
- public void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- IResource[] resources = getSelectedResources();
- String[] referenceStrings = getReferenceStrings(resources);
- RepositoryProviderType type = RepositoryProviderType.getProviderType(CVSProviderPlugin.getTypeId());
- ProjectSetCapability c = type.getProjectSetCapability();
- c.addToWorkspace(referenceStrings, new UIProjectSetSerializationContext(getShell(), null), monitor);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } catch (CoreException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
-
- }, true, PROGRESS_DIALOG);
- }
-
- /**
- * Get the project set reference strings from the provider map files
- *
- * @param mapFiles
- * @return
- * @throws CoreException
- */
- protected String[] getReferenceStrings(IResource[] mapFiles) throws CoreException {
- List allStrings = new ArrayList();
- for (int i = 0; i < mapFiles.length; i++) {
- IResource resource = mapFiles[i];
- String[] referenceStrings = readReferenceStrings((IFile)resource);
- allStrings.addAll(Arrays.asList(referenceStrings));
- }
- return (String[]) allStrings.toArray(new String[allStrings.size()]);
- }
-
- /**
- * Method readReferenceStrings.
- * @param file
- * @return String[]
- */
-
- protected static String[] readReferenceStrings(IFile file) throws CoreException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(file.getContents()));
- try {
- try {
- String line = reader.readLine();
- List references = new ArrayList();
- while (line != null) {
- String referenceString = new MapEntry(line).getReferenceString();
- if (referenceString != null) {
- references.add(referenceString);
- }
- line = reader.readLine();
- }
- return (String[]) references.toArray(new String[references.size()]);
- } finally {
- reader.close();
- }
- } catch (IOException e) {
- throw new CoreException(new Status(IStatus.ERROR, RelEngPlugin.ID, 0, "An I/O error occured", e));
- }
- }
-
-
- /**
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- public boolean isEnabled() {
- IResource[] resources = getSelectedResources();
- if (resources.length == 0) return false;
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (resource.getType() != IResource.FILE) return false;
- if (!resource.getFileExtension().equals("map")) return false;
- }
- return true;
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapContentDocument.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapContentDocument.java
deleted file mode 100644
index 5a1a079..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapContentDocument.java
+++ /dev/null
@@ -1,153 +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.releng.tools;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-import org.eclipse.compare.IStreamContentAccessor;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-
-
-public class MapContentDocument implements ITypedElement, IStreamContentAccessor{
- private MapFile mapFile;
- private String oldContents = "";
- private String newContents = "";
-
- public MapContentDocument(MapFile aMapFile) {
- mapFile = aMapFile;
- initialize();
- }
-
- /**
- * Update the tag associated with the given project in the new contents.
- */
- public void updateTag(IProject project, String tag) throws CVSException {
- InputStream inputStream = new BufferedInputStream(
- new ByteArrayInputStream(newContents.getBytes()));
- boolean match = false;
- StringBuffer buffer = new StringBuffer();
- try {
- BufferedReader aReader = new BufferedReader(new InputStreamReader(
- inputStream));
- String aLine = aReader.readLine();
- while (aLine != null) {
- if (aLine.trim().length() != 0 && !aLine.startsWith("!")) {
- // Found a possible match
- MapEntry entry = new MapEntry(aLine);
- if (!entry.isValid()) {
- throw new CVSException("Malformed map file line: "
- + aLine);
- }
- if (entry.isMappedTo(project)) {
- // Now for sure we have a match. Replace the line.
- entry.setTagName(tag);
- aLine = entry.getMapString();
- match = true;
- }
- }
- buffer.append(aLine);
- aLine = aReader.readLine();
- if (aLine != null) {
- buffer.append(System.getProperty("line.separator")); //$NON-NLS-1$
- }
- }
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- } catch (IOException e) {
- throw CVSException.wrapException(e);
- } finally {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (IOException e) {
- }
- }
- }
- if (match) {
- newContents = buffer.toString();
- }
- }
- public boolean isChanged() {
- return !(oldContents.equals(newContents));
- }
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.compare.ITypedElement#getName()
- */
- public String getName() {
- return mapFile.getFile().getName();
- }
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.compare.ITypedElement#getImage()
- */
- public Image getImage() {
- return null;
- }
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.compare.ITypedElement#getType()
- */
- public String getType() {
- return mapFile.getFile().getFileExtension();
- }
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.compare.IStreamContentAccessor#getContents()
- */
- public InputStream getContents() throws CoreException {
- return new ByteArrayInputStream(getNewContent().getBytes());
- }
- public MapFile getMapFile() {
- return mapFile;
- }
-
- private String getNewContent() {
- return newContents;
- }
- private void initialize() {
- InputStream inputStream;
- StringBuffer buffer = new StringBuffer();
- try {
- inputStream = mapFile.getFile().getContents();
- BufferedReader aReader = new BufferedReader(new InputStreamReader(
- inputStream));
- String aLine = aReader.readLine();
- while (aLine != null) {
- buffer.append(aLine);
- aLine = aReader.readLine();
- if (aLine != null) {
- buffer.append(System.getProperty("line.separator")); //$NON-NLS-1$
- }
- }
- oldContents = buffer.toString();
- newContents = new String(oldContents);
- } catch (CoreException e) {
- CVSUIPlugin.openError(null, null, null, e);
- } catch (IOException e) {
- CVSUIPlugin.openError(null, null, null, e);
- }
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapEntry.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapEntry.java
deleted file mode 100644
index 9ee788b..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapEntry.java
+++ /dev/null
@@ -1,384 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.util.*;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-
-/**
- * This class provides access to information stored in RelEng map files
- */
-public class MapEntry {
-
- private static final String KEY_TAG = "tag"; //$NON-NLS-1$
- private static final String KEY_PATH = "path"; //$NON-NLS-1$
- private static final String KEY_CVSROOT = "cvsRoot"; //$NON-NLS-1$
- private static final String KEY_PASSWORD = "password"; //$NON-NLS-1$
- private static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
- private boolean valid = false;
- private String type = EMPTY_STRING;
- private String id = EMPTY_STRING;
- private OrderedMap arguments = new OrderedMap();
- private boolean legacy = false;
- private String version;
-
- public static void main (String[] args) {
- // For testing only
-
- String[] strings = {
- "",
- " ",
- "type",
- "type@",
- "type@id",
- "type@id=",
- "type@id=tag,",
- "type@id=tag, connectString",
- "type@id=tag, connectString,",
- "type@id=tag, connectString,password",
- "type@id=tag, connectString,password,",
- "type@id=tag, connectString,password,moduleName",
- "type@id=tag, connectString,,moduleName",
- "!*************** FEATURE CONTRIBUTION ******************************************************",
- "@",
- "=",
- ",,,",
- "@=,,,,",
- "type@id,version=CVS,tag=myTag,cvsRoot=myCvsRoot,password=password,path=myPath",
- };
-
- for (int i = 0; i < strings.length; i++) {
- String string = strings[i];
- MapEntry anEntry = new MapEntry(string);
-
- System.out.println("-----------------------------------------------");
- System.out.println("input: " + string);
- System.out.println("map string: " + anEntry.getMapString());
-// System.out.println(anEntry.getReferenceString());
- anEntry.display();
- }
-
- }
-
- /**
- *
- */
- private void display() {
- // For testing only
- System.out.println("Is Valid: " + isValid());
- System.out.println("Type: " + getType());
- System.out.println("Project Name: " + getId());
- System.out.println("Tag: " + getTagName());
- if (version != null)
- System.out.println("Version: " + version);
- System.out.println("Connect: " + getRepo());
- System.out.println("Password: " + getPassword());
- System.out.println("CVS Module: " + getCVSModule());
- }
-
- public MapEntry(String entryLine) {
- init(entryLine);
- }
-
- /**
- * Parse a map file entry line
- * @param entryLine
- */
- private void init(String entryLine) {
- valid = false;
-
- // Type
- int start = 0;
- int end = entryLine.indexOf('@');
- if (end == -1) return;
- type = entryLine.substring(start, end).trim();
-
- // Project Name
- start = end + 1;
- end = entryLine.indexOf('=', start);
- if (end == -1) return;
- id = entryLine.substring(start, end).trim();
- // we have a version that we have to strip off
- int comma = id.indexOf(',');
- if (comma != -1) {
- version = id.substring(comma + 1);
- id = id.substring(0, comma);
- }
-
- String[] args = getArrayFromStringWithBlank(entryLine.substring(end + 1), ",");
- this.arguments = populate(args);
- String tag = (String) arguments.get(KEY_TAG);
- String repo = (String) arguments.get(KEY_CVSROOT);
- if (tag == null || tag.length() == 0 || repo == null || repo.length() == 0)
- return;
- valid = true;
- }
-
- /*
- * Build a table from the given array. In the new format,the array contains
- * key=value elements. Otherwise we fill in the key based on the old format.
- */
- private OrderedMap populate(String[] entries) {
- OrderedMap result = new OrderedMap();
- for (int i=0; i<entries.length; i++) {
- String entry = entries[i];
- int index = entry.indexOf('=');
- if (index == -1) {
- // we only handle CVS entries
- if (i == 0 && "CVS".equalsIgnoreCase(entry))
- continue;
- // legacy story...
- return legacyPopulate(entries);
- }
- String key = entry.substring(0, index);
- String value = entry.substring(index + 1);
- result.put(key, value);
- }
- result.toString();
- return result;
- }
-
- private OrderedMap legacyPopulate(String[] entries) {
- legacy = true;
- OrderedMap result = new OrderedMap();
- // must have at least tag and connect string
- if (entries.length >= 2) {
- // Version
- result.put(KEY_TAG, entries[0]);
- // Repo Connect String
- result.put(KEY_CVSROOT, entries[1]);
-
- // Optional Password.
- if (entries.length >= 3)
- result.put(KEY_PASSWORD, entries[2]);
-
- // Optional CVS Module Name
- if (entries.length >= 4)
- result.put(KEY_PATH, entries[3]);
- }
- return result;
- }
-
- /**
- * Convert a list of tokens into an array. The list separator has to be
- * specified. The specificity of this method is that it returns an empty
- * element when to same separators are following each others. For example
- * the string a,,b returns the following array [a, ,b]
- *
- */
- public static String[] getArrayFromStringWithBlank(String list, String separator) {
- if (list == null || list.trim().length() == 0)
- return new String[0];
- List result = new ArrayList();
- boolean previousWasSeparator = true;
- for (StringTokenizer tokens = new StringTokenizer(list, separator, true); tokens.hasMoreTokens();) {
- String token = tokens.nextToken().trim();
- if (token.equals(separator)) {
- if (previousWasSeparator)
- result.add(""); //$NON-NLS-1$
- previousWasSeparator = true;
- } else {
- result.add(token);
- previousWasSeparator = false;
- }
- }
- return (String[]) result.toArray(new String[result.size()]);
- }
-
- public String getTagName() {
- String value = (String) arguments.get(KEY_TAG);
- return value == null ? EMPTY_STRING : value;
- }
-
- public CVSTag getTag() {
- if (getTagName().equals("HEAD")) return CVSTag.DEFAULT;
- return new CVSTag(getTagName(), CVSTag.VERSION);
- }
-
- public String getPassword() {
- String value = (String) arguments.get(KEY_PASSWORD);
- return value == null ? EMPTY_STRING : value;
- }
-
- public String getId() {
- return id;
- }
-
- private String internalGetCVSModule() {
- String module = (String) arguments.get(KEY_PATH);
- return module == null ? id : module;
- }
-
- public String getCVSModule() {
- String value = (String) arguments.get(KEY_PATH);
- return value == null ? EMPTY_STRING : value;
- }
-
- public String getRepo() {
- String value = (String) arguments.get(KEY_CVSROOT);
- return value == null ? EMPTY_STRING : value;
- }
-
- public String getType() {
- return type;
- }
-
- public boolean isValid() {
- return valid;
- }
-
- public String getReferenceString() {
- if (!isValid()) return null;
- // This is the format used by the CVS IProjectSerializer
- String projectName = new Path(internalGetCVSModule()).lastSegment();
- return "1.0," + getRepo() + "," + internalGetCVSModule() + "," + projectName + "," + getTagName();
- }
-
- public String getMapString() {
- StringBuffer result = new StringBuffer();
- if (legacy) {
- result.append(getType());
- result.append('@');
- result.append(getId());
- if (version != null) {
- result.append(',');
- result.append(version);
- }
- result.append('=');
- result.append(getTagName());
- result.append(',');
- result.append(getRepo());
- result.append(',');
- result.append(getPassword());
- if (!getCVSModule().equals("") || !getPassword().equals(""))
- result.append(',');
- result.append(getCVSModule());
- return result.toString();
- }
- result.append(getType());
- result.append('@');
- result.append(getId());
- if (version != null) {
- result.append(',');
- result.append(version);
- }
- result.append('=');
- result.append("CVS");
- for (Iterator iter = arguments.keys().iterator(); iter.hasNext(); ) {
- String key = (String) iter.next();
- String value = (String) arguments.get(key);
- if (value != null && value.length() > 0)
- result.append(',' + key + '=' + value);
- }
- return result.toString();
- }
-
- /*
- * Return the version specified for this entry. Can be null.
- */
- public String getVersion() {
- return version;
- }
-
- public void setPassword(String password) {
- arguments.put(KEY_PASSWORD, password);
- }
-
- public void setId(String projectID) {
- this.id = projectID;
- }
-
- public void setCVSModule(String path) {
- arguments.put(KEY_PATH, path);
- }
-
- public void setRepo(String repo) {
- arguments.put(KEY_CVSROOT, repo);
- }
-
- public void setTagName(String tagName) {
- arguments.put(KEY_TAG, tagName);
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public void setValid(boolean valid) {
- this.valid = valid;
- }
-
- public String toString() {
- return "Entry: " + getMapString();
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- if (obj instanceof MapEntry) {
- return ((MapEntry)obj).getMapString().equals(getMapString());
- }
- return super.equals(obj);
- }
-
- /**
- * Return true if this map entry is mapped to the given CVS module
- * @param moduleName
- */
- public boolean isMappedTo(String moduleName) {
- IPath entryPath = new Path(internalGetCVSModule());
- IPath modulePath = new Path(moduleName);
- if (entryPath.segmentCount() != modulePath.segmentCount()) return false;
- for (int i = 0; i < entryPath.segmentCount(); i++) {
- if (!entryPath.segment(i).equals(modulePath.segment(i))) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Return <code>true</code> if the entry is mapped to the given project
- * and <code>false</code> otherwise.
- */
- public boolean isMappedTo(IProject project) {
- String moduleName;
- try {
- moduleName = getCVSModule(project);
- if (moduleName == null) return false;
- return isMappedTo(moduleName);
- } catch (CVSException e) {
- RelEngPlugin.getDefault().getLog().log(e.getStatus());
- return false;
- }
- }
-
- /**
- * Get the remote CVS module for the project or <code>null</code>
- * if the project is not a CVS project.
- */
- private String getCVSModule(IProject project) throws CVSException {
- ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(project);
- FolderSyncInfo info = folder.getFolderSyncInfo();
- if (info == null) {
- return null;
- }
- return info.getRepository();
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFile.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFile.java
deleted file mode 100644
index be7282a..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFile.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.*;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-public class MapFile {
-
- public static final String MAP_FILE_EXTENSION = "map";
-
- protected IFile file;
- protected MapEntry[] entries;
-
- public MapFile(IFile aFile) throws CoreException {
- file = aFile;
- loadEntries();
- }
-
- public IFile getFile(){
- return file;
- }
-
- protected void loadEntries() throws CoreException {
- InputStream inputStream = null;
- List list = new ArrayList();
-
- try {
- inputStream = file.getContents();
- BufferedReader aReader = new BufferedReader(new InputStreamReader(
- inputStream));
- String aLine = aReader.readLine();
- while (aLine != null) {
- if (isMapLine(aLine)) {
- list.add(new MapEntry(aLine));
- }
- aLine = aReader.readLine();
- }
- } catch (IOException e) {
- throw new CoreException(new Status(IStatus.ERROR, RelEngPlugin.ID, 0, "An I/O Error occurred process map file " + file.getFullPath().toString(), e));
- } finally {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (IOException e) {
- // Ignore close exceptions so we don't mask another exception
- }
- }
- }
-
- this.entries = (MapEntry[]) list.toArray(new MapEntry[list.size()]);
- }
-
- private boolean isMapLine(String line) {
- if (line.trim().length() == 0) return false;
- if (line.startsWith("!")) return false;
- return true;
- }
-
- public boolean contains(IProject project){
- for(int j = 0;j < entries.length; j++){
- if (entries[j].isMappedTo(project)){
- return true;
- }
- }
- return false;
- }
-
- public MapEntry getMapEntry(IProject project) {
- for(int j = 0;j < entries.length; j++){
- if (entries[j].isMappedTo(project)){
- return entries[j];
- }
- }
- return null;
- }
-
- public IProject[] getAccessibleProjects() {
- Set list = new HashSet();
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- if(entries == null || entries.length ==0) return null;
- for (int i = 0; i < projects.length; i++) {
- IProject project = projects[i];
- if (project.isAccessible()) {
- for (int j = 0; j < entries.length; j++){
- if (entries[j].isMappedTo(project)) {
- list.add(project);
- }
- }
- }
- }
- return (IProject[])list.toArray(new IProject[list.size()]);
- }
-
- public String getName() {
- return file.getName();
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFileCompareEditorInput.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFileCompareEditorInput.java
deleted file mode 100644
index bca0383..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFileCompareEditorInput.java
+++ /dev/null
@@ -1,173 +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.releng.tools;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.CompareEditorInput;
-import org.eclipse.compare.ResourceNode;
-import org.eclipse.compare.structuremergeviewer.DiffNode;
-import org.eclipse.compare.structuremergeviewer.Differencer;
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-
-/**
- * This class extends<code>CompareEditorInput<code>. It defines the input for map file compare editor, which is showed by
- * <code>MapFileComparePage<code>
- */
-public class MapFileCompareEditorInput extends CompareEditorInput {
-
- private MapContentDocument[] documents;
- private DiffNode root;
- private Viewer viewer;
- private MapProject mapProject;
-
- private IProject[] selectedProjects;
- private String tag; //The proposed tag
-
-
- public MapFileCompareEditorInput() {
- super(new CompareConfiguration());
- documents = new MapContentDocument[0];
- root = new DiffNode(Differencer.NO_CHANGE) {
- public boolean hasChildren() {
- return true;
- }
- };
- mapProject = null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.compare.CompareEditorInput#prepareInput(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected Object prepareInput(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- CompareConfiguration config = getCompareConfiguration();
- config.setRightEditable(false);
- config.setLeftEditable(false);
- config.setRightLabel("Proposed change");
- config.setLeftLabel("Current content");
- return root;
- }
-
- public void updateInput(IProject[] projects, String tag) {
- setSelectedProjects(projects);
- setTag(tag);
- MapContentDocument[] docs = constructDocuments();
- setDocuments(docs);
- buildTree();
- }
- /* (non-Javadoc)
- * @see org.eclipse.compare.CompareEditorInput#createDiffViewer(org.eclipse.swt.widgets.Composite)
- */
- public Viewer createDiffViewer(Composite parent) {
- viewer = super.createDiffViewer(parent);
- viewer.setInput(this);
- return viewer;
- }
-
- public void updateMapProject(MapProject m){
- mapProject = m;
- }
-
- private void setDocuments(MapContentDocument[] docs) {
- this.documents = docs;
- }
-
-
-
- private void buildTree() {
- if(documents == null || documents.length == 0)return;
- //Empty the tree
- if(root.hasChildren()){
- IDiffElement[] children = root.getChildren();
- for(int i = 0; i < children.length; i++){
- root.remove(children[i]);
- }
- }
-
- //rebuild the tree
- DiffNode[] diffNodes = new DiffNode[documents.length];
- for (int i = 0; i < diffNodes.length; i++){
- ResourceNode resourceNode = new ResourceNode(documents[i].getMapFile().getFile()) {
- public boolean isEditable() {
- return false;
- }
- };
-
- diffNodes[i] = new DiffNode(root, Differencer.CHANGE, null, resourceNode, documents[i]) {
- public Image getImage() {
- return getLeft().getImage();
- }
- };
- }
- viewer.refresh();
- }
-
- /*
- * Returns the map files that will change due to the projects being released
- */
- private MapFile[] getChangedMapFiles() {
- if (selectedProjects == null || selectedProjects.length == 0)
- return null;
- List projectList = new ArrayList();
- CVSTag[] tags = mapProject.getTagsFor(selectedProjects );
- for(int i = 0; i < selectedProjects.length; i++){
- if(!tags[i].getName().equals(tag)){
- projectList.add(selectedProjects[i]);
- }
- }
- IProject [] projects = (IProject[])projectList.toArray(new IProject[projectList.size()]);
- return mapProject.getMapFilesFor(projects);
- }
-
-
- //Construct the document as the diffNode.
- private MapContentDocument [] constructDocuments(){
- MapFile[] mapFiles = getChangedMapFiles();
- if(mapFiles == null || mapFiles.length ==0) return null;
- MapContentDocument [] docs = new MapContentDocument[mapFiles.length];
- for(int i = 0; i < mapFiles.length; i++){
- docs[i] = new MapContentDocument(mapFiles[i]);
- for(int j = 0; j < selectedProjects.length; j++){
- //update the new content of each selected projects
- if(mapFiles[i].contains(selectedProjects[j])){
- try {
- docs[i]. updateTag(selectedProjects[j],tag);
- } catch (CVSException e) {
- CVSUIPlugin.openError(null, null, null, e);
- }
- }
- }
- }
- return docs;
- }
-
- private void setSelectedProjects(IProject[] projects) {
- if (projects != null && projects.length != 0) {
- selectedProjects = new IProject[projects.length ];
- System.arraycopy(projects, 0, selectedProjects, 0, projects.length);
- }
- }
-
- private void setTag(String t) {
- this.tag = t;
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFileComparePage.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFileComparePage.java
deleted file mode 100644
index eb36655..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapFileComparePage.java
+++ /dev/null
@@ -1,77 +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.releng.tools;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-
-public class MapFileComparePage extends WizardPage {
-
- private MapFileCompareEditorInput input = new MapFileCompareEditorInput();
- private String tag;
-
- public MapFileComparePage(String pageName, String title, ImageDescriptor image) {
- super(pageName, title, image);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
- */
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- //Need to handle input and rebuild tree only when becoming visible
- if(visible){
- input.updateInput(((ReleaseWizard)getWizard()).getSelectedProjects(),tag);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Font font = parent.getFont();
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setFont(font);
- composite.setLayout(new GridLayout());
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- try {
- input.run(null);
- } catch (InterruptedException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- }
-
- Control c = input.createContents(composite);
- c.setLayoutData(new GridData(GridData.FILL_BOTH));
- setControl(composite);
- }
-
- public void setTag(String t) {
- this.tag = t;
- }
- public void updateMapProject(MapProject m){
- input.updateMapProject(m);
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapProject.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapProject.java
deleted file mode 100644
index 3566213..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapProject.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.ui.operations.CommitOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation;
-
-public class MapProject implements IResourceChangeListener {
-
- private static MapProject mapProject = null;
- private IProject project;
- private MapFile[] mapFiles;
-
- /**
- * Return the default map project (org.eclipse.releng) or
- * <code>null</code> if the project does not exist or there
- * is an error processing it. If there is an error, it
- * will be logged.
- * @return the default map project
- */
- public static MapProject getDefaultMapProject(){
- if (mapProject == null) {
- IProject project = getProjectFromWorkspace();
- try {
- mapProject = new MapProject(project);
- } catch (CoreException e) {
- RelEngPlugin.log(e);
- }
- }
-
- return mapProject;
- }
-
- private static IProject getProjectFromWorkspace() {
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IWorkspaceRoot root = workspace.getRoot();
- IProject project = root.getProject(RelEngPlugin.MAP_PROJECT_NAME);
- return project;
- }
-
- public MapProject(IProject p) throws CoreException {
- this.project = p;
- ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);
- loadMapFiles();
- }
-
- public IProject getProject() {
- return project;
- }
-
- public void setProject(IProject p){
- this.project = p;
- }
-
- private MapFile getMapFile(IProject p){
- for (int i = 0; i< mapFiles.length; i++){
- if (mapFiles[i].contains(p)) {
- return mapFiles[i];
- }
- }
- return null;
- }
-
- /**
- * Return the MapEntry for the given project
- * @param string
- * @param string1
- */
- public MapEntry getMapEntry(IProject p) {
- MapFile file = getMapFile(p);
- if (file != null) {
- return file.getMapEntry(p);
- }
- return null;
- }
-
- public boolean mapsAreLoaded() {
- return project.exists();
- }
-
- public MapFile[] getValidMapFiles(){
- List list = new ArrayList();
- for (int i = 0; i <mapFiles.length; i++){
- IProject[] projects = mapFiles[i].getAccessibleProjects();
- if( projects!= null && projects.length > 0){
- list.add(mapFiles[i]);
- }
- }
- return (MapFile[])list.toArray(new MapFile[list.size()]);
- }
-
- /**
- * @param aProject The map entry of the specified project will be changed to the specified tag
- * @param tag The specified tag
- * @return returns if no map file having such a map entry is found
- */
- public void updateFile(IProject aProject, String tag) throws CoreException {
- MapFile aFile = getMapFile(aProject);
- if (aFile == null)return;
- MapContentDocument changed = new MapContentDocument(aFile);
- changed.updateTag(aProject, tag);
- if (changed.isChanged()) {
- aFile.getFile().setContents(changed.getContents(), IFile.KEEP_HISTORY, null);
- }
- }
-
- public void commitMapProject(String comment, IProgressMonitor monitor) throws CoreException{
- try {
- new CommitOperation(null, RepositoryProviderOperation.asResourceMappers(new IResource[] { project }), new Command.LocalOption[0], comment).run(monitor);
- } catch (InvocationTargetException e) {
- throw TeamException.asTeamException(e);
- } catch (InterruptedException e) {
- // Ignore;
- }
- }
-
- public MapFile[] getMapFilesFor(IProject[] projects){
- Set alist = new HashSet();
- for(int i = 0; i<projects.length; i++){
- MapFile aMapFile = getMapFile(projects[i]);
- alist.add(aMapFile);
- }
- return (MapFile[])alist.toArray(new MapFile[alist.size()]);
- }
-
- /**
- * Get the tags for the given projects. If no tag is found
- * for whatever reason, HEAD is used.
- * @param projects
- * @return
- */
- public CVSTag[] getTagsFor(IProject[] projects){
- if(projects == null || projects.length == 0)return null;
- CVSTag[] tags = new CVSTag[projects.length];
- for (int i = 0; i < tags.length; i++){
- MapEntry entry = getMapEntry(projects[i]);
- if (entry == null) tags[i] = CVSTag.DEFAULT;
- else tags[i] = entry.getTag();
- }
- return tags;
- }
- /**
- * Deregister the IResourceChangeListner. It is reserved for use in the future. It is never called
- * for now
- */
- public void dispose(){
- ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
- }
-
- /**
- * @see IResourceChangeListener#resourceChanged(IResourceChangeEvent)
- */
- public void resourceChanged(IResourceChangeEvent event) {
- IResourceDelta root = event.getDelta();
-
- //TODO: Need to add code to handle map project deletion, addition and rename
- IResourceDelta folderDelta = root.findMember(getMapFolder().getFullPath());
- if (folderDelta == null) return;
-
- //Handle map files deletion, addition and rename
- IResourceDelta[] deltas = folderDelta.getAffectedChildren();
- if(deltas == null || deltas.length == 0) return;
- for (int i = 0; i < deltas.length; i++) {
- IResourceDelta delta = deltas[i];
- if(delta.getResource().getType() == IResource.FILE){
- try{
- IFile aFile = (IFile)(delta.getResource());
- MapFile mFile = null;
- if(isMapFile(aFile)){
- // Handle content change
- if(delta.getKind() == IResourceDelta.CHANGED){
- mFile = getMapFileFor(aFile);
- mFile.loadEntries();
- }
- //Handle deletion. We cannot simply remove the map file directly bacause we have to call
- //getMapFileFor(IFile) in order to do so. But the IFile is already deleted. So we have to
- //reconstuct the map files.
- if(delta.getKind() == IResourceDelta.REMOVED ){
- loadMapFiles();
- }
- // Handle addition
- if(delta.getKind() == IResourceDelta.ADDED ){
- mFile = getMapFileFor(aFile);
- addMapFile(mFile);
- }
- }
- } catch (CoreException e) {
- RelEngPlugin.log(e);
- }
- }
- }
- }
-
- private IFolder getMapFolder(){
- return getProject().getFolder(RelEngPlugin.MAP_FOLDER);
- }
- private void loadMapFiles() throws CoreException {
- IFolder folder = project.getFolder(RelEngPlugin.MAP_FOLDER);
- if(!folder.exists()) {
- mapFiles = new MapFile[0];
- return;
- }
- IResource[] resource = folder.members();
- if (resource != null) {
- List list = new ArrayList();
- for (int i = 0; i < resource.length; i++) {
- //In case there are some sub folders
- if(resource[i].getType() == IResource.FILE){
- IFile file = (IFile) resource[i];
- if(isMapFile(file)){
- list.add(new MapFile(file));
- }
- }
- }
- mapFiles = (MapFile[])list.toArray(new MapFile[list.size()]);
- } else {
- mapFiles = new MapFile[0];
- }
- }
-
- private MapFile getMapFileFor(IFile file) throws CoreException{
- for(int i = 0; i < mapFiles.length; i++){
- if (mapFiles[i].getFile().equals(file))
- return mapFiles[i];
- }
- return new MapFile(file);
- }
- private void addMapFile(MapFile aFile){
- Set set = new HashSet(Arrays.asList(mapFiles));
- set.add(aFile);
- mapFiles = (MapFile[])set.toArray(new MapFile[set.size()]);
- }
- private boolean isMapFile(IFile aFile){
- String extension = aFile.getFileExtension();
- //In case file has no extension name or is not validate map file
- return ( extension != null && extension.equals(MapFile.MAP_FILE_EXTENSION));
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapProjectSelectionPage.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapProjectSelectionPage.java
deleted file mode 100644
index a777a13..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/MapProjectSelectionPage.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.releng.tools;
-
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.views.navigator.ResourceSorter;
-
-public class MapProjectSelectionPage extends WizardPage {
-
- private IDialogSettings settings;
- private MapProject mapProject;
- private TreeViewer projectTree;
- private Button useDefaultButton;
- private Button useOtherButton;
- private boolean useDefaults;
- private String DEFAULT_BUTTON_KEY;
- private String SELECTED_PROJECT_KEY;
-
- public MapProjectSelectionPage(String pageName,
- String title,
- IDialogSettings settings,
- ImageDescriptor image) {
- super(pageName, title, image);
- this.settings = settings;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite topContainer = new Composite(parent, SWT.NONE);
- topContainer.setLayout(new GridLayout());
- topContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- useDefaultButton = new Button(topContainer, SWT.RADIO);
- useDefaultButton.setText("Use default map project (org.eclipse.releng)");
- useDefaultButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- useDefaults = useDefaultButton.getSelection();
- updateOthers();
- }
- });
-
- useOtherButton = new Button(topContainer, SWT.RADIO);
- useOtherButton.setText("Specify the map project you want to use");
- useOtherButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- useDefaults = !useOtherButton.getSelection();
- updateOthers();
- }
- });
-
- projectTree = createTree(topContainer);
- projectTree.setInput(RelEngPlugin.getWorkspace().getRoot());
-
- Dialog.applyDialogFont(parent);
- initializedViewer();
- setControl(topContainer);
- }
-
- protected TreeViewer createTree(Composite parent) {
- Tree tree = new Tree(parent, SWT.SINGLE | SWT.BORDER);
- GridData gd= new GridData(GridData.FILL_BOTH);
- gd.heightHint= tree.getItemHeight() * 15;
- tree.setLayoutData(gd);
- TreeViewer result = new TreeViewer(tree);
- result.setContentProvider(new WorkbenchContentProvider());
- result.setLabelProvider(new WorkbenchLabelProvider());
- result.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- updateOthers();
- }
- });
- result.setSorter(new ResourceSorter(ResourceSorter.NAME));
- return result;
- }
-
- private void updateMapProject(){
- if(useDefaults){
- mapProject = MapProject.getDefaultMapProject();
- }else{
- IStructuredSelection selection = (IStructuredSelection)projectTree.getSelection();
- if( !selection.isEmpty()){
- Object obj = selection.getFirstElement();
- if(obj instanceof IProject){
- try {
- mapProject = new MapProject((IProject)obj);
- if(mapProject.getValidMapFiles().length == 0){
- mapProject = null;
- }
- } catch (CoreException e) {
- mapProject = null;
- }
- }
- }else{
- mapProject = null;
- }
- }
- if(isValid(mapProject)){
- ((ReleaseWizard)getWizard()).boadcastMapProjectChange(mapProject);
- setPageComplete( true);
- }else{
- setPageComplete(false);
- }
-
- }
-
- private void initializedViewer(){
- if(settings == null){
- useDefaults = true;
- }else{
- readSettings();
- }
- useDefaultButton.setSelection(useDefaults);
- useOtherButton.setSelection(!useDefaults);
- updateOthers();
- }
-
- private void updateOthers(){
- projectTree.getTree().setEnabled(!useDefaults);
- updateMapProject();
- }
-
- private void readSettings(){
- if(settings.get(DEFAULT_BUTTON_KEY) != null){
- useDefaults = settings.getBoolean(DEFAULT_BUTTON_KEY);
- }else{
- useDefaults = true;
- }
- String name = settings.get(SELECTED_PROJECT_KEY);
- if(!useDefaults && name != null){
- ISelection selection = new StructuredSelection(RelEngPlugin.getWorkspace().getRoot().getProject(name));
- projectTree.setSelection(selection);
- projectTree.getTree().setFocus();
- }
- }
- public void saveSettings(){
- settings.put(DEFAULT_BUTTON_KEY, useDefaults);
- IStructuredSelection selection = (IStructuredSelection)projectTree.getSelection();
- if(!selection.isEmpty()){
- Object obj = selection.getFirstElement();
- if(obj instanceof IProject){
- settings.put(SELECTED_PROJECT_KEY, ((IProject)obj).getName());
- }
- }
- }
-
- private boolean isValid(final MapProject mapProject){
- //Check if map project is accessible
- if(mapProject==null || (!mapProject.getProject().isAccessible())){
- setErrorMessage("Invalid map project selected");
- return false;
- }
-
- //Check if the map project is shared
- if(RepositoryProvider.getProvider(mapProject.getProject()) == null){
- setErrorMessage("Project " + mapProject.getProject().getName()+" is not shared");
- return false;
- }
- setErrorMessage(null);
- return true;
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/Messages.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/Messages.java
deleted file mode 100644
index 2133af2..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/Messages.java
+++ /dev/null
@@ -1,32 +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.releng.tools;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class Messages {
- private static final String BUNDLE_NAME = "org.eclipse.releng.tools.messages";//$NON-NLS-1$
- private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
- .getBundle(BUNDLE_NAME);
-
- private Messages() {
- // TODO Auto-generated constructor stub
- }
-
- public static String getString(String key) {
- // TODO Auto-generated method stub
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/OrderedMap.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/OrderedMap.java
deleted file mode 100644
index 0755ac1..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/OrderedMap.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.util.*;
-
-/**
- * Don't implement the Map interface because we don't want people calling #entrySet
- * because order is important.
- */
-public class OrderedMap {
-
- private List keys = new ArrayList();
- private List values = new ArrayList();
-
- /* (non-Javadoc)
- * @see java.util.Map#clear()
- */
- public void clear() {
- keys = new ArrayList();
- values = new ArrayList();
- }
-
- /* (non-Javadoc)
- * @see java.util.Map#containsKey(java.lang.Object)
- */
- public boolean containsKey(Object key) {
- for (Iterator iter = keys.iterator(); iter.hasNext();) {
- if (key.equals(iter.next()))
- return true;
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see java.util.Map#containsValue(java.lang.Object)
- */
- public boolean containsValue(Object value) {
- for (Iterator iter = values.iterator(); iter.hasNext();) {
- if (value.equals(iter.next()))
- return true;
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see java.util.Map#get(java.lang.Object)
- */
- public Object get(Object key) {
- int index = indexOf(key);
- return index == -1 ? null : values.get(index);
- }
-
- private int indexOf(Object key) {
- int length = keys.size();
- for (int i = 0; i < length; i++) {
- Object tempKey = keys.get(i);
- if (key.equals(tempKey))
- return i;
- }
- return -1;
- }
-
- /* (non-Javadoc)
- * @see java.util.Map#isEmpty()
- */
- public boolean isEmpty() {
- return keys.size() == 0;
- }
-
- /* (non-Javadoc)
- * @see java.util.Map#put(java.lang.Object, java.lang.Object)
- */
- public Object put(Object key, Object value) {
- int index = indexOf(key);
- if (index == -1) {
- keys.add(key);
- values.add(value);
- return null;
- }
- Object oldValue = values.get(index);
- values.set(index, value);
- return oldValue;
- }
-
- /* (non-Javadoc)
- * @see java.util.Map#putAll(java.util.Map)
- */
- public void putAll(Map other) {
- for (Iterator iter = other.entrySet().iterator(); iter.hasNext();) {
- Object key = iter.next();
- put(key, other.get(key));
- }
- }
-
- /* (non-Javadoc)
- * @see java.util.Map#remove(java.lang.Object)
- */
- public Object remove(Object key) {
- int index = indexOf(key);
- if (index == -1)
- return null;
- keys.remove(index);
- return values.remove(index);
- }
-
- /* (non-Javadoc)
- * @see java.util.Map#size()
- */
- public int size() {
- return keys.size();
- }
-
- /* (non-Javadoc)
- * @see java.util.Map#values()
- */
- public Collection values() {
- return values;
- }
-
- public Collection keys() {
- return keys;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- public String toString() {
- StringBuffer result = new StringBuffer();
- result.append("{");
- for (Iterator iter = keys().iterator(); iter.hasNext(); ) {
- Object key = iter.next();
- Object value = get(key);
- result.append(key);
- result.append('=');
- result.append(value);
- result.append(",\n");
- }
- // delete last 2 chars... comma and new-line
- if (result.length() > 2) {
- result = result.deleteCharAt(result.length() - 1);
- result = result.deleteCharAt(result.length() - 1);
- }
- result.append("}");
- return result.toString();
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectComparePage.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectComparePage.java
deleted file mode 100644
index ff20329..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectComparePage.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.synchronize.SyncInfoSet;
-import org.eclipse.team.internal.ccvs.core.CVSCompareSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.subscriber.CompareParticipant;
-import org.eclipse.team.internal.ui.synchronize.ChangeSetModelManager;
-import org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration;
-import org.eclipse.team.ui.synchronize.ISynchronizeParticipant;
-import org.eclipse.team.ui.synchronize.ParticipantPageSaveablePart;
-import org.eclipse.ui.part.PageBook;
-
-/**
- *This class extends <code>WizardPage<code>. It utilizes a <code>PageBook<code> to show user
- *whether there are any changed projects or not since last release. It also shows a compare
- *editor if there is any changed project detected
- */
-public class ProjectComparePage extends WizardPage{
-
- private IDialogSettings settings;
- private String NOTES_BUTTON_KEY = "ProjectComparePage.buildNotesButton";
- private SyncInfoSet syncInfoSet;
- private Button buildNotesButton;
- private boolean buildNotesButtonChecked;
- private PageBook pageBook;
- private Control compareView;
- private Label noneChangeMessage;
- private MapProject mapProject;
- private ISynchronizePageConfiguration configuration;
- private ParticipantPageSaveablePart input;
-
- public ProjectComparePage(String pageName,
- String title,
- IDialogSettings settings,
- ImageDescriptor image) {
- super(pageName, title, image);
- this.settings = settings;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Font font = parent.getFont();
- GridData data = new GridData(GridData.FILL_BOTH);
-
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
- composite.setLayoutData(data);
- composite.setFont(font);
-
- pageBook = new PageBook(composite, SWT.NONE);
- pageBook.setLayoutData(new GridData(GridData.FILL_BOTH));
- pageBook.setFont(font);
-
- input = createCompareInput();
- input.createPartControl(pageBook);
- compareView = input.getControl();
- compareView.setFont(font);
- compareView.setLayoutData(data);
-
- noneChangeMessage = new Label(pageBook,SWT.WRAP);
- noneChangeMessage.setText(Messages.getString("ProjectComparePage.1")); //$NON-NLS-1$
- noneChangeMessage.setLayoutData(data);
- noneChangeMessage.setFont(font);
-
- buildNotesButton = new Button(composite,SWT.CHECK);
- buildNotesButton.setText(Messages.getString("ProjectComparePage.2")); //$NON-NLS-1$
- buildNotesButton.setFont(font);
- buildNotesButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- buildNotesButtonChecked = buildNotesButton.getSelection();
- }
- });
-
- initialize();
- setControl(composite);
- }
-
-
- private void initialize() {
- initBuildNotesButton();
- }
-
-
- private void initBuildNotesButton() {
- if( settings == null || settings.get(NOTES_BUTTON_KEY) == null) {
- buildNotesButton.setSelection(false);
- buildNotesButtonChecked = false;
- return;
- }else{
- boolean b = settings.getBoolean(NOTES_BUTTON_KEY);
- buildNotesButton.setSelection(b);
- buildNotesButtonChecked = b;
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
- */
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible) {
- final ReleaseWizard wizard = (ReleaseWizard)getWizard();
- try {
- //Get updated selected project in case that some projects have outgoing changes and excluded by user
- wizard.updateSelectedProject();
-
- //Get the finalized selected projects and the associated tags from existing map files
- final IProject[] projects = wizard.getSelectedProjects();
- final CVSTag[] tags = mapProject.getTagsFor(projects);
-
- //Collect all the out-of-sync projects from selected projects and update the selected project again
- getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor)
- throws InvocationTargetException, InterruptedException {
- IResource[] r = null;
- if(projects != null && projects.length != 0){
- try {
- r = getOutOfSyncProjects(projects, tags, monitor);
- wizard.setSelectedProjects(r);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- }
- });
-
- //Show no-project-changed information on the page book if condition satisfied
- if( wizard.getSelectedProjects()== null||wizard.getSelectedProjects().length == 0){
- setPageComplete(false);
- pageBook.showPage(noneChangeMessage);
- }
- //Open a compare editor otherwise
- else{
- setPageComplete(true);
- pageBook.showPage(compareView);
- }
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- } catch (InterruptedException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- }
- }
- //When the page is invisible, it should not affect the wizard work flow by anyway
- else {
- setPageComplete(true);
- }
- }
- public void updateMapProject(MapProject m){
- mapProject = m;
- }
-
- private ParticipantPageSaveablePart createCompareInput() {
- ISynchronizeParticipant participant = new CompareParticipant(new CVSCompareSubscriber(new IResource[0], new CVSTag[0], Messages.getString("ProjectComparePage.3"))); //$NON-NLS-1$
- configuration = participant.createPageConfiguration();
- configuration.setMenuGroups(ISynchronizePageConfiguration.P_TOOLBAR_MENU, new String[] {
- ISynchronizePageConfiguration.NAVIGATE_GROUP,
- ISynchronizePageConfiguration.LAYOUT_GROUP,
- ChangeSetModelManager.CHANGE_SET_GROUP});
- configuration.setMenuGroups(ISynchronizePageConfiguration.P_CONTEXT_MENU, new String[0]);
-
- CompareConfiguration cc = new CompareConfiguration();
- cc.setLeftEditable(false);
- cc.setRightEditable(false);
- ParticipantPageSaveablePart part = new ParticipantPageSaveablePart(getShell(), cc, configuration, participant);
-
- // will be reset when setVisible is called
- setPageComplete(true);
-
- return part;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
- */
- public void dispose() {
- super.dispose();
- input.getParticipant().dispose();
- input.dispose();
- }
-
- /**
- * Return the list of projects that are out-of-sync
- */
- public IResource[] getOutOfSyncProjects(IProject[] projects, CVSTag[] tags, IProgressMonitor monitor) throws TeamException {
- CompareParticipant participant = (CompareParticipant)input.getParticipant();
- CVSCompareSubscriber subscriber = (CVSCompareSubscriber)participant.getSubscriber();
- subscriber.resetRoots(projects, tags);
- try {
- subscriber.primeRemoteTree();
- } catch (CVSException e) {
- // Log and ignore
- RelEngPlugin.log(e);
- }
- participant.refreshNow(projects, "", monitor);
- IResource[] r = participant.getSyncInfoSet().members(ResourcesPlugin.getWorkspace().getRoot());
- syncInfoSet = participant.getSyncInfoSet();
- return r;
- }
-
- /**
- * Return true if button is checked
- */
- public boolean isBuildNotesButtonChecked(){
- return buildNotesButtonChecked;
- }
-
- public SyncInfoSet getSyncInfoSet(){
- return syncInfoSet;
- }
-
- public void saveSettings() {
- settings.put(NOTES_BUTTON_KEY, buildNotesButtonChecked);
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectSelectionPage.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectSelectionPage.java
deleted file mode 100644
index f88fab5..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectSelectionPage.java
+++ /dev/null
@@ -1,264 +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.releng.tools;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-
-/**
- * This class extends <code>WizardPage<code> class and use a <code>CheckboxTreeViewer<code> to
- * display selectable items.
- */
-public class ProjectSelectionPage extends WizardPage {
- private CheckboxTreeViewer viewer;
- private IDialogSettings settings;
- private Button compareButton;
- private boolean compareButtonChecked;
- private String SELECTED_ITEMS_KEY = Messages.getString("ProjectSelectionPage.0"); //$NON-NLS-1$
- private String COMPARE_BUTTON_KEY = Messages.getString("ProjectSelectionPage.1"); //$NON-NLS-1$
- private MapProject mapProject;
-
- private class MapFileLabelProvider extends LabelProvider {
- WorkbenchLabelProvider provider = new WorkbenchLabelProvider();
- public String getText(Object element) {
- if (element instanceof MapFile) {
- return ((MapFile)element).getName();
- }
- return provider.getText(element);
- }
- public Image getImage(Object element) {
- if (element instanceof MapFile) {
- return provider.getImage(((MapFile)element).getFile());
- }
- return provider.getImage(element);
- }
- public void dispose() {
- provider.dispose();
- super.dispose();
- }
- }
-
- public ProjectSelectionPage(String pageName,
- String title,
- IDialogSettings settings,
- ImageDescriptor image) {
- super(pageName, title, image);
- this.settings = settings;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Font font = parent.getFont();
-
- Composite topContainer = new Composite(parent, SWT.NONE);
- topContainer.setLayout(new GridLayout());
- topContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- Label label = new Label(topContainer, SWT.HORIZONTAL);
- label.setFont(font);
- label.setText(Messages.getString("ProjectSelectionPage.2")); //$NON-NLS-1$
-
- viewer = new ContainerCheckedTreeViewer(topContainer, SWT.SINGLE | SWT.H_SCROLL
- | SWT.V_SCROLL | SWT.BORDER);
- GridData gd= new GridData(GridData.FILL_BOTH);
- gd.heightHint= viewer.getTree().getItemHeight() * 15;
- viewer.getTree().setLayoutData(gd);
- viewer.getTree().setFont(font);
- viewer.setLabelProvider(new MapFileLabelProvider());
- viewer.setContentProvider(getContentProvider());
- viewer.setInput(mapProject);
- viewer.expandAll();
- viewer.addCheckStateListener(new ICheckStateListener(){
- public void checkStateChanged(CheckStateChangedEvent event) {
- updatePageComplete();
- }
- });
-
- compareButton = new Button(topContainer,SWT.CHECK);
- compareButton.setText(Messages.getString("ProjectSelectionPage.3")); //$NON-NLS-1$
- compareButton.setFont(font);
- compareButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- compareButtonChecked = compareButton.getSelection();
- }
- });
-
- initialize();
- setControl(topContainer);
- }
- /**
- * Returns the content provider for the viewer
- */
- private IContentProvider getContentProvider() {
- return new WorkbenchContentProvider() {
- public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof MapProject) {
- return mapProject.getValidMapFiles();
- }
- if (parentElement instanceof MapFile) {
- return ((MapFile)parentElement).getAccessibleProjects();
- }
- return null;
- }
-
- public boolean hasChildren(Object element) {
- if (element instanceof MapFile) {
- return ((MapFile)element).getAccessibleProjects().length > 0;
- }
- return false;
- }
- };
- }
-
- /**
- * Returns all the checked items if they are IProject
- */
- public IProject[] getCheckedProjects(){
- ArrayList projectsToRelease = new ArrayList();
- Object[] obj = viewer.getCheckedElements();
- if (obj == null)return null;
- for(int i = 0; i < obj.length; i++){
- if (obj[i] instanceof IProject)
- projectsToRelease.add(obj[i]);
- }
- return (IProject[])projectsToRelease.toArray(new IProject[projectsToRelease.size()]);
- }
-
- private void readProjectSettings(){
- if( settings == null) return;
- if(settings.getArray(SELECTED_ITEMS_KEY) != null){
- ArrayList nameList = new ArrayList(Arrays.asList(settings.getArray(SELECTED_ITEMS_KEY)));
- if(nameList != null){
- Iterator iter = nameList.iterator();
- while(iter.hasNext()){
- String name = (String)iter.next();
- IProject project = getProjectWithName(name);
- if(project != null){
- viewer.setChecked(project,true);
- }
- }
- }
- }
- }
-
- private void initCompareEnablement(){
- if( settings == null || settings.get(COMPARE_BUTTON_KEY) == null) {
- compareButton.setSelection( true);
- compareButtonChecked = true;
- return;
- }else{
- boolean b = settings.getBoolean(COMPARE_BUTTON_KEY);
- compareButton.setSelection(b);
- compareButtonChecked = b;
- }
- }
-
- /**
- * Save the checked items and the checkbox options to dialog settings
- */
- public void saveSettings(){
- Object[] obj = viewer.getCheckedElements();
- ArrayList names = new ArrayList();
- for (int i = 0; i < obj.length; i++){
- if(obj[i] instanceof IProject){
- names.add(((IProject)obj[i]).getName());
- }
- }
- settings.put(SELECTED_ITEMS_KEY, (String[])names.toArray(new String[names.size()]));
- settings.put(COMPARE_BUTTON_KEY, compareButtonChecked);
- }
-
- private void initialize(){
- initCheckedProjects();
- initCompareEnablement();
- updatePageComplete();
- }
-
- private void initCheckedProjects(){
- IProject[] p = ((ReleaseWizard)getWizard()).getPreSelectedProjects( );
- if(p != null){
- viewer.setCheckedElements(p);
- }else{
- readProjectSettings();
- }
- }
-
- /**
- * Called by <code>readSettings()<code> to return the project associated with the given name
- */
- private IProject getProjectWithName(String name){
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
- if(project.exists() && project.isAccessible())
- return project;
- return null;
- }
-
- public boolean isCompareButtonChecked(){
- return compareButtonChecked;
- }
-
- /**
- *This page will not complete until at least one project is checked
- */
- private void updatePageComplete(){
- Object[] obj = viewer.getCheckedElements();
- if(obj.length > 0){
- for(int i = 0; i < obj.length; i++){
- //Exclude the situation that an empty shown map file is selected
- if(obj[i] instanceof IProject){
- setPageComplete(true);
- break;
- }
- }
- }
- else{
- setPageComplete(false);
- }
- }
-
- private CheckboxTreeViewer getViewer(){
- return viewer;
- }
-
- public void setSelection(IProject[] projects) {
- if(projects != null && projects.length > 0){
- getViewer().setCheckedElements(projects);
- }
- }
- public void updateMapProject(MapProject m){
- mapProject = m;
- if(viewer != null){
- viewer.setInput(mapProject);
- }
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectValidationDialog.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectValidationDialog.java
deleted file mode 100644
index a19d7c2..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ProjectValidationDialog.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSCompareSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.ui.subscriber.CompareParticipant;
-import org.eclipse.team.internal.ui.synchronize.ChangeSetModelManager;
-import org.eclipse.team.ui.SaveablePartAdapter;
-import org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration;
-import org.eclipse.team.ui.synchronize.ISynchronizeParticipant;
-import org.eclipse.team.ui.synchronize.ParticipantPageDialog;
-import org.eclipse.team.ui.synchronize.ParticipantPageSaveablePart;
-
-/**
- *It extends <code>Dialog<code>. This dialog will show up if <code>isValidateButtonSelected()<code>
- *in <code>TagPage<code> returns true
- */
-public class ProjectValidationDialog extends ParticipantPageDialog {
-
- private String title = Messages.getString("ProjectValidationDialog.2"); //$NON-NLS-1$
-
- public static void validateRelease(final Shell shell, final IProject[] p, final CVSTag[] tags, IProgressMonitor monitor) throws TeamException{
- final CompareParticipant participant = new CompareParticipant(new CVSCompareSubscriber(p, tags, Messages.getString("ReleaseWizard.20"))); //$NON-NLS-1$
- try {
- participant.refreshNow(p, Messages.getString("ReleaseWizard.20"), monitor); //$NON-NLS-1$
- if (!participant.getSyncInfoSet().isEmpty()) {
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- if (MessageDialog.openQuestion(shell, "Workspace Differs From Released",
- "The local workspace contents do not match what is released. There is a good chance that the release failed. Do you want to see the difference?"))
- openValidationFailedDialog(shell, participant);
- }
- });
- }
- } finally {
- participant.dispose();
- }
- }
-
- private static void openValidationFailedDialog(Shell shell, CompareParticipant participant) {
- ISynchronizePageConfiguration configuration = participant.createPageConfiguration();
- configuration.setMenuGroups(ISynchronizePageConfiguration.P_TOOLBAR_MENU, new String[] {
- ISynchronizePageConfiguration.NAVIGATE_GROUP,
- ISynchronizePageConfiguration.LAYOUT_GROUP,
- ChangeSetModelManager.CHANGE_SET_GROUP});
- configuration.setMenuGroups(ISynchronizePageConfiguration.P_CONTEXT_MENU, new String[0]);
-
- CompareConfiguration cc = new CompareConfiguration();
- cc.setLeftEditable(false);
- cc.setRightEditable(false);
- ParticipantPageSaveablePart part = new ParticipantPageSaveablePart(shell, cc, configuration, participant);
- try {
- ProjectValidationDialog dialog = new ProjectValidationDialog(shell, part, participant); //$NON-NLS-1$
- dialog.open();
- } finally {
- part.dispose();
- }
- }
-
- public ProjectValidationDialog(Shell shell, SaveablePartAdapter input,
- ISynchronizeParticipant participant) {
- super(shell, input, participant);
- shell.setText(title);
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/PropertiesFile.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/PropertiesFile.java
deleted file mode 100644
index eca09f8..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/PropertiesFile.java
+++ /dev/null
@@ -1,41 +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.releng.tools;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * @author droberts
- */
-public class PropertiesFile extends SourceFile {
-
- /**
- * @param file
- */
- public PropertiesFile(IFile file) {
- super(file);
- }
-
- /* (non-Javadoc)
- * @see Test.popup.actions.SourceFile#getCommentStart()
- */
- public String getCommentStart() {
- return "##";
- }
-
- /* (non-Javadoc)
- * @see Test.popup.actions.SourceFile#getCommentEnd()
- */
- public String getCommentEnd() {
- return "##";
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/RelEngPlugin.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/RelEngPlugin.java
deleted file mode 100644
index 04ab5e4..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/RelEngPlugin.java
+++ /dev/null
@@ -1,152 +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.releng.tools;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * A Plugin for performing certain important RelEng tasks.
- * Currentley this Plugin provides support for:
- * RelEng Map File Validator Builder and associated project nature
- */
-public class RelEngPlugin extends AbstractUIPlugin {
-
- public static final String ID = "org.eclipse.releng.tools"; //$NON-NLS-1$
- public static final String MAP_PROJECT_NAME = Messages.getString("RelEngPlugin.1"); //$NON-NLS-1$
- public static final String MAP_FOLDER = Messages.getString("RelEngPlugin.2"); //$NON-NLS-1$
-
- //The shared instance.
- private static RelEngPlugin plugin;
- //Resource bundle.
- private ResourceBundle resourceBundle;
-
- /**
- * The constructor.
- */
- public RelEngPlugin() {
- plugin = this;
- try {
- resourceBundle= ResourceBundle.getBundle(ID + Messages.getString("RelEngPlugin.3")); //$NON-NLS-1$
- } catch (MissingResourceException x) {
- resourceBundle = null;
- }
- }
-
- /**
- * Returns the shared instance.
- */
- public static RelEngPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Returns the workspace instance.
- */
- public static IWorkspace getWorkspace() {
- return ResourcesPlugin.getWorkspace();
- }
-
- /**
- * Returns the string from the plugin's resource bundle,
- * or 'key' if not found.
- */
- public static String getResourceString(String key) {
- ResourceBundle bundle= RelEngPlugin.getDefault().getResourceBundle();
- try {
- return bundle.getString(key);
- } catch (MissingResourceException e) {
- return key;
- }
- }
-
- /**
- * Returns the plugin's resource bundle,
- */
- public ResourceBundle getResourceBundle() {
- return resourceBundle;
- }
- /**
- * Convenience method for logging CoreExceptions to the plugin log
- */
- public static void log(CoreException e) {
- log(e.getStatus().getSeverity(), e.getMessage(), e);
- }
-
- /**
- * Log the given exception along with the provided message and severity indicator
- */
- public static void log(int severity, String message, Throwable e) {
- log(new Status(severity, ID, 0, message, e));
- }
-
- /**
- * Log the given status. Do not use this method for the IStatus from a CoreException.
- * Use<code>log(CoreException)</code> instead so the stack trace is not lost.
- */
- public static void log(IStatus status) {
- getPlugin().getLog().log(status);
- }
- /**
- * Returns the singleton plug-in instance.
- *
- * @return the plugin instance
- */
- public static RelEngPlugin getPlugin() {
- // If the instance has not been initialized, we will wait.
- // This can occur if multiple threads try to load the plugin at the same
- // time (see bug 33825: http://bugs.eclipse.org/bugs/show_bug.cgi?id=33825)
- while (plugin == null) {
- try {
- Thread.sleep(50);
- } catch (InterruptedException e) {
- // ignore and keep trying
- }
- }
- return plugin;
- }
-
- /**
- * The following code is a sample of how to assign a
- * RelEng nature to a project. This only ever needed
- * to be done once to set up org.eclipse.releng project
- * with the desired nature
- */
-// private void assignNature() {
-// IWorkspace workspace = ResourcesPlugin.getWorkspace();
-// IWorkspaceRoot workspaceRoot = workspace.getRoot();
-// IProject aProject = workspaceRoot.getProject();
-//
-//
-// try {
-// IProjectDescription description;
-// description = aProject.getDescription();
-// String[] natures = description.getNatureIds();
-// String[] newNatures = new String[natures.length + 1];
-// System.arraycopy(natures, 0, newNatures, 0, natures.length);
-// newNatures[natures.length] = "org.eclipse.releng.tools.relEngNature";
-// description.setNatureIds(newNatures);
-// aProject.setDescription(description, null);
-// } catch (CoreException e) {
-// System.out.println("Failed to set nature");
-// e.printStackTrace();
-// }
-//
-// }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ReleaseWizard.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ReleaseWizard.java
deleted file mode 100644
index 1fc3d7e..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ReleaseWizard.java
+++ /dev/null
@@ -1,451 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.ui.*;
-import org.eclipse.team.internal.ccvs.ui.operations.CommitOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation;
-import org.eclipse.team.internal.ui.ITeamUIImages;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
-import org.eclipse.team.internal.ui.dialogs.IPromptCondition;
-import org.eclipse.team.internal.ui.dialogs.PromptingDialog;
-
-
-public class ReleaseWizard extends Wizard {
-
- // Dialog store constants
- private static final String BOUNDS_HEIGHT= "bounds.height"; //$NON-NLS-1$
- private static final String BOUNDS_WIDTH= "bounds.width"; //$NON-NLS-1$
- private static final String BOUNDS_Y= "bounds.y"; //$NON-NLS-1$
- private static final String BOUNDS_X= "bounds.x"; //$NON-NLS-1$
-
- private MapProjectSelectionPage mapSelectionPage;
- private ProjectSelectionPage projectSelectionPage;
- private TagPage tagPage;
- private ProjectComparePage projectComparePage;
- private MapFileComparePage mapComparePage;
- private CommitCommentPage commentPage;
- private BuildNotesPage buildNotesPage;
-
- private Dialog parentDialog;
- private IDialogSettings section;
-
- private MapProject mapProject;
- private IProject[] preSelectedProjects;
- private IProject[] selectedProjects;
-
-
- public ReleaseWizard() {
- setWindowTitle("Release"); //$NON-NLS-1$
- IDialogSettings settings = RelEngPlugin.getDefault().getDialogSettings();
- section = settings.getSection("ReleaseWizard");//$NON-NLS-1$
- if (section == null) {
- section = settings.addNewSection("ReleaseWizard");//$NON-NLS-1$
- }
- setDialogSettings(section);
- }
-
- /*
- * @see org.eclipse.jface.wizard.Wizard#createPageControls(org.eclipse.swt.widgets.Composite)
- * @since 3.1
- */
- public void createPageControls(Composite pageContainer) {
- super.createPageControls(pageContainer);
-
- if (getDialogSettings().get(BOUNDS_X) != null) {
- int x= getDialogSettings().getInt(BOUNDS_X);
- int y= getDialogSettings().getInt(BOUNDS_Y);
- int width= getDialogSettings().getInt(BOUNDS_WIDTH);
- int height= getDialogSettings().getInt(BOUNDS_HEIGHT);
- getShell().setBounds(x, y, width, height);
- }
-
- getShell().addControlListener(new ControlListener() {
-
- public void controlMoved(ControlEvent e) {
- storeBounds(e);
- }
-
- public void controlResized(ControlEvent e) {
- storeBounds(e);
- }
-
- private void storeBounds(ControlEvent e) {
- Rectangle bounds= getShell().getBounds();
- getDialogSettings().put(BOUNDS_X, bounds.x);
- getDialogSettings().put(BOUNDS_Y, bounds.y);
- getDialogSettings().put(BOUNDS_WIDTH, bounds.width);
- getDialogSettings().put(BOUNDS_HEIGHT, bounds.height);
- }
- });
- }
-
- public boolean execute(Shell shell) {
- setNeedsProgressMonitor(true);
- WizardDialog dialog = new WizardDialog(shell, this);
- setParentDialog(dialog);
- return (dialog.open() == Window.OK);
- }
-
- /**
- * @see org.eclipse.jface.wizard.IWizard#addPages()
- */
- public void addPages() {
- mapSelectionPage = new MapProjectSelectionPage("MapProjectSelectionPage",
- Messages.getString("ReleaseWizard.4"), //$NON-NLS-1$
- section,
- TeamUIPlugin.getImageDescriptor(ITeamUIImages.IMG_WIZBAN_SHARE));
- mapSelectionPage.setDescription(Messages.getString("ReleaseWizard.3")); //$NON-NLS-1$
- addPage(mapSelectionPage);
-
- projectSelectionPage = new ProjectSelectionPage(Messages.getString("ReleaseWizard.5"), //$NON-NLS-1$
- Messages.getString("ReleaseWizard.6"),
- section,
- TeamUIPlugin.getImageDescriptor(ITeamUIImages.IMG_WIZBAN_SHARE));
- projectSelectionPage.setDescription(Messages.getString("ReleaseWizard.7")); //$NON-NLS-1$
- addPage(projectSelectionPage);
-
- tagPage = new TagPage(Messages.getString("ReleaseWizard.8"),
- Messages.getString("ReleaseWizard.9"),
- section,
- TeamUIPlugin.getImageDescriptor(ITeamUIImages.IMG_WIZBAN_SHARE)); //$NON-NLS-1$ //$NON-NLS-2$
- tagPage.setDescription(Messages.getString("ReleaseWizard.10")); //$NON-NLS-1$
- addPage(tagPage);
-
- projectComparePage = new ProjectComparePage(Messages.getString("ReleaseWizard.11"), //$NON-NLS-1$
- Messages.getString("ReleaseWizard.12"),
- section, TeamUIPlugin.getImageDescriptor(ITeamUIImages.IMG_WIZBAN_SHARE)); //$NON-NLS-1$
- projectComparePage.setDescription(Messages.getString("ReleaseWizard.13")); //$NON-NLS-1$
- addPage(projectComparePage);
-
- buildNotesPage = new BuildNotesPage(Messages.getString("ReleaseWizard.2"), //$NON-NLS-1$
- Messages.getString("ReleaseWizard.1"), section, TeamUIPlugin //$NON-NLS-1$
- .getImageDescriptor(ITeamUIImages.IMG_WIZBAN_SHARE));
- buildNotesPage.setDescription(Messages.getString("ReleaseWizard.0")); //$NON-NLS-1$
- addPage(buildNotesPage);
-
- mapComparePage = new MapFileComparePage(Messages.getString("ReleaseWizard.14"), //$NON-NLS-1$
- Messages.getString("ReleaseWizard.15"),
- TeamUIPlugin.getImageDescriptor(ITeamUIImages.IMG_WIZBAN_SHARE)); //$NON-NLS-1$
- mapComparePage.setDescription(Messages.getString("ReleaseWizard.16")); //$NON-NLS-1$
- addPage(mapComparePage);
-
- commentPage = new CommitCommentPage(parentDialog, Messages.getString("ReleaseWizard.17"), //$NON-NLS-1$
- Messages.getString("ReleaseWizard.18"), TeamUIPlugin.getImageDescriptor(ITeamUIImages.IMG_WIZBAN_SHARE), Messages.getString("ReleaseWizard.19")); //$NON-NLS-1$ //$NON-NLS-2$
- addPage(commentPage);
- }
-
- /*
- * commit buildnotes file if update option selected
- */
- public boolean buildNotesOperation() {
- if (buildNotesPage.isUpdateNotesButtonChecked() && projectComparePage.isBuildNotesButtonChecked()) {
- buildNotesPage.updateNotesFile();
- try {
- getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor)
- throws InvocationTargetException,
- InterruptedException {
- IFile iFile = buildNotesPage.getIFile();
- IProject iProject = iFile.getProject();
- monitor.beginTask(Messages.getString("ReleaseWizard.20"), 100); //$NON-NLS-1$
- new CommitOperation(
- null,
- RepositoryProviderOperation
- .asResourceMappers(new IResource[] { iProject }),
- new Command.LocalOption[0], commentPage
- .getComment()).run(monitor);
- monitor.done();
- }
- });
- } catch (InterruptedException e) {
- // Cancelled.
- return false;
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- }
- checkProjects();
- }
- return true;
- }
-
- /*
- * add project of build notes file if not already in selected projects
- */
- public void checkProjects() {
- IProject[] temp = new IProject[selectedProjects.length + 1];
- for (int i = 0; i < selectedProjects.length; i++) {
- if (selectedProjects[i] == buildNotesPage.getIFile().getProject()) {
- return;
- }
- }
- System.arraycopy(selectedProjects, 0, temp, 0, selectedProjects.length);
- temp[temp.length - 1] = buildNotesPage.getIFile().getProject();
- selectedProjects = temp;
- }
-
- /**
- * @see org.eclipse.jface.wizard.Wizard#performFinish()
- */
- public boolean performFinish() {
- if(!isProjectSelected())return false;
-
- // Build notes file update cancelled. Close dialog.
- if (!buildNotesOperation()) {
- return true;
- }
-
- try {
- getContainer().run(true, true, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor)
- throws InvocationTargetException, InterruptedException {
- CVSTag tag = new CVSTag(tagPage.getTagString(), CVSTag.VERSION);
- TagAndReleaseOperation operation = new TagAndReleaseOperation(null, mapProject,
- selectedProjects, tag,commentPage.getComment() );
- if (tagPage.isMoveButtonSelected()) {
- operation.moveTag();
- }
- monitor.beginTask(Messages.getString("ReleaseWizard.21"), 100); //$NON-NLS-1$
- operation.run(new SubProgressMonitor(monitor, 90));
- if (operation.isMapFileUpdated()) {
- try {
- if(tagPage.isValidateButtonSelected()){
- try {
- validateRelease(new SubProgressMonitor(monitor, 10));
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- } finally {
- monitor.done();
- }
- } else {
- // The map file update didn't occur and no exception was thrown.
- // Let the user know of the failure
- IStatus[] errors = operation.getErrors();
- IStatus status;
- if (errors.length == 0) {
- status = new Status(IStatus.ERROR, RelEngPlugin.ID, 0, Messages.getString("ReleaseWizard.22"), null); //$NON-NLS-1$
- } else if (errors.length == 1) {
- status = errors[0];
- } else {
- status = new MultiStatus(RelEngPlugin.ID, 0, errors, Messages.getString("ReleaseWizard.23"), null); //$NON-NLS-1$
- }
- ErrorDialog.openError(getShell(), Messages.getString("ReleaseWizard.24"), //$NON-NLS-1$
- Messages.getString("ReleaseWizard.25"), //$NON-NLS-1$
- status, IStatus.ERROR | IStatus.WARNING);
- }
- }
- });
- mapSelectionPage.saveSettings();
- projectSelectionPage.saveSettings();
- projectComparePage.saveSettings();
- buildNotesPage.saveSettings();
- tagPage.saveSettings();
- return true;
- } catch (InterruptedException e) {
- // Cancelled. Ignore and close dialog
- return true;
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getShell(), null, null, e);
- }
- return false;
- }
-
- public void setParentDialog(Dialog p) {
- this.parentDialog = p;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.wizard.IWizard#getNextPage(org.eclipse.jface.wizard.IWizardPage)
- */
- public IWizardPage getNextPage(IWizardPage page) {
- if (page == mapSelectionPage){
- return projectSelectionPage;
- }
- if (page == projectSelectionPage) {
- IProject[] projects = projectSelectionPage.getCheckedProjects();
- if (projects != null && projects.length > 0){
- selectedProjects = projects;
- }
-
- if (projectSelectionPage.isCompareButtonChecked()){
- return projectComparePage;
- }
- else
- return tagPage;
- }
- if (page == tagPage) {
- if (tagPage.compareButtonSelected()){
- mapComparePage.setTag(tagPage.getTagString());
- return mapComparePage;
- }
- if (tagPage.commitButtonSelected())
- return commentPage;
- }
- if (page == mapComparePage)
- return commentPage;
- if (page == projectComparePage) {
- if (projectComparePage.isBuildNotesButtonChecked()) {
- buildNotesPage.setSyncInfoSet(projectComparePage
- .getSyncInfoSet());
- return buildNotesPage;
- } else {
- return tagPage;
- }
- }
- if (page == buildNotesPage) {
- return tagPage;
- }
- return null;
- }
-
- public void setPreSelectedProjects(IResource[] resources) {
- if (resources.length < 1) {
- preSelectedProjects = null;
- } else {
- Set list = new HashSet();
- for (int i = 0; i < resources.length; i++) {
- list.add(resources[i].getProject());
- }
- preSelectedProjects = (IProject[]) list.toArray(new IProject[list.size()]);
- }
- }
-
- // Prompt for any uncommitted changes
- protected IProject[] performPrompting(IProject[] projects) {
- IResource[] resources;
- PromptingDialog prompt = new PromptingDialog(getShell(), projects,
- getPromptCondition(projects), CVSUIMessages.TagAction_uncommittedChangesTitle);//$NON-NLS-1$
- try {
- resources = prompt.promptForMultiple();
- } catch(InterruptedException e) {
- return null;
- }
- if(resources.length == 0) {
- return null;
- }
- projects = new IProject[resources.length ];
- for(int i = 0; i < resources.length; i++){
- if(resources[i] instanceof IProject)
- projects[i] = (IProject)resources[i];
- }
- return projects;
- }
-
-
- protected IPromptCondition getPromptCondition(IResource[] resource) {
- return new IPromptCondition() {
- public boolean needsPrompt(IResource resource) {
- return CVSLightweightDecorator.isDirty(resource);
- }
- public String promptMessage(IResource resource) {
- return NLS.bind(CVSUIMessages.TagAction_uncommittedChanges, new String[] { resource.getName() });//$NON-NLS-1$
- }
- };
- }
-
- public IProject[] getSelectedProjects(){
- return selectedProjects;
- }
-
- //the update will happen when (1)from project selection page to compare project page or (2)from
- //project selection page to Enter Tag page. It calls shouldRemove() to determine the projects to keep
- public void updateSelectedProject(){
- selectedProjects = projectSelectionPage.getCheckedProjects();
- selectedProjects = performPrompting(selectedProjects);
- projectSelectionPage.setSelection(selectedProjects);
- }
-
- public void setSelectedProjects(IResource[] projects){
- if(projects == null) selectedProjects = null;
- else {
- selectedProjects = new IProject[projects.length];
- for(int i = 0; i < projects.length; i++){
- selectedProjects[i] = (IProject)projects[i];
- }
- }
- }
- protected ProjectSelectionPage getProjectSelectionPage(){
- return projectSelectionPage;
- }
-
- //This method is called if validate button in TagPage is checked
- private void validateRelease(IProgressMonitor monitor) throws TeamException{
- ProjectValidationDialog.validateRelease(getShell(), selectedProjects, mapProject.getTagsFor(selectedProjects), monitor);
- }
-
-
- private boolean isProjectSelected(){
- if (selectedProjects == null || selectedProjects.length == 0){
- return false;
- }
- return true;
- }
-
- public IProject[] getPreSelectedProjects(){
- return preSelectedProjects;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.wizard.IWizard#canFinish()
- */
- public boolean canFinish() {
- // There must be projects selected
- if (!isProjectSelected()) {
- return false;
- }
- // There must be a tag
- if (!tagPage.isPageComplete()) {
- return false;
- }
- // Force map comparison if option set by user
- IWizardPage currentPage = getContainer().getCurrentPage();
- if(currentPage == tagPage){
- if(tagPage.compareButtonSelected()){
- return false;
- }
- }
- return true;
- }
-
- public MapProject getMapProject(){
- return mapProject;
- }
- public void boadcastMapProjectChange(MapProject m){
- mapProject = m;
- projectSelectionPage.updateMapProject(m);
- projectComparePage.updateMapProject(m);
- mapComparePage.updateMapProject(m);
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ReplaceLocalFromMap.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ReplaceLocalFromMap.java
deleted file mode 100644
index 6cdfac2..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ReplaceLocalFromMap.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction;
-import org.eclipse.team.internal.ccvs.ui.operations.ReplaceOperation;
-import org.eclipse.team.internal.core.InfiniteSubProgressMonitor;
-
-/**
- * This action replaces one or more projects in the local workspace
- * with the versions released to the RelEng map file.
- */
-public class ReplaceLocalFromMap extends WorkspaceAction {
-
- /*
- * Get the tag from the map files in the org.eclipse.releng project
- *
- * @param resource
- * @return
- * @throws CVSException
- */
- protected CVSTag getTag(IResource resource) {
- MapEntry entry = MapProject.getDefaultMapProject().getMapEntry((IProject)resource);
- if (entry == null) return CVSTag.DEFAULT;
- return entry.getTag();
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForAddedResources()
- */
- protected boolean isEnabledForAddedResources() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForCVSResource(org.eclipse.team.internal.ccvs.core.ICVSResource)
- */
- protected boolean isEnabledForCVSResource(ICVSResource cvsResource) throws CVSException {
- if (super.isEnabledForCVSResource(cvsResource)) {
- // Don't enable if there are sticky file revisions in the lineup
- if (!cvsResource.isFolder()) {
- ResourceSyncInfo info = cvsResource.getSyncInfo();
- if (info != null && info.getTag() != null) {
- String revision = info.getRevision();
- String tag = info.getTag().getName();
- if (revision.equals(tag)) return false;
- }
- }
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * Returns true if the super would enable the option *and*
- * only projects are selected. There is no concept of "releasing"
- * anything but a project.
- *
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- public boolean isEnabled() {
-
- boolean result = super.isEnabled();
- if (!result) {
- return false;
- }
-
- IResource[] resources = super.getSelectedResources();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (resource.getType() != IResource.PROJECT) {
- return false;
- }
- }
-
- return (getMapProject() != null && getMapProject().mapsAreLoaded());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.ReplaceWithRemoteAction#performReplace(org.eclipse.core.resources.IResource[], org.eclipse.core.runtime.IProgressMonitor)
- */
- protected void performReplace(IResource[] resources, IProgressMonitor monitor) throws TeamException, InvocationTargetException, InterruptedException {
- monitor.beginTask(null, 100 * resources.length);
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- new ReplaceOperation(getTargetPart(), new IResource[] { resource }, getTag(resource), true).run(new SubProgressMonitor(monitor, 100));
- }
- monitor.done();
- }
- private MapProject getMapProject(){
- return MapProject.getDefaultMapProject();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#execute(org.eclipse.jface.action.IAction)
- */
- protected void execute(IAction action) throws InvocationTargetException, InterruptedException {
-
- final IResource[][] resources = new IResource[][] {null};
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
- try {
- monitor.beginTask(null, 100);
- resources[0] = checkOverwriteOfDirtyResources(getSelectedResources(), new InfiniteSubProgressMonitor(monitor, 100));
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- } finally {
- monitor.done();
- }
- }
- }, false /* cancelable */, PROGRESS_BUSYCURSOR);
-
- if (resources[0] == null || resources[0].length == 0) return;
-
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- performReplace(resources[0], monitor);
- } catch (TeamException e) {
- throw new InvocationTargetException(e);
- }
- }
- }, true, PROGRESS_DIALOG);
-
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/RepositorySelectionDialog.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/RepositorySelectionDialog.java
deleted file mode 100644
index 0b3e982..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/RepositorySelectionDialog.java
+++ /dev/null
@@ -1,113 +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.releng.tools;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * This code copied from CVSProjectPropertiesPage
- */
-public class RepositorySelectionDialog extends Dialog {
- ICVSRepositoryLocation[] locations;
- ICVSRepositoryLocation location;
-
- private static final int TABLE_HEIGHT_HINT = 150;
- private static final int TABLE_WIDTH_HINT = 300;
-
- TableViewer viewer;
- Button okButton;
- public RepositorySelectionDialog(Shell shell) {
- super(shell);
- }
- protected void createButtonsForButtonBar(Composite parent) {
- // create OK and Cancel buttons by default
- okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
- okButton.setEnabled(false);
- createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
- }
- protected Control createDialogArea(Composite parent) {
- parent.getShell().setText(Messages.getString("RepositorySelectionDialog.0")); //$NON-NLS-1$
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- createLabel(composite, Messages.getString("RepositorySelectionDialog.1"), 1); //$NON-NLS-1$
- Table table = new Table(composite, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
- GridData data = new GridData();
- data.widthHint = TABLE_WIDTH_HINT;
- data.heightHint = TABLE_HEIGHT_HINT;
- table.setLayoutData(data);
- viewer = new TableViewer(table);
- viewer.setLabelProvider(new WorkbenchLabelProvider());
- viewer.setContentProvider(new WorkbenchContentProvider() {
- public Object[] getElements(Object inputElement) {
- return locations;
- }
- });
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection selection = (IStructuredSelection)event.getSelection();
- if (selection.isEmpty()) {
- location = null;
- okButton.setEnabled(false);
- } else {
- location = (ICVSRepositoryLocation)selection.getFirstElement();
- okButton.setEnabled(true);
- }
- }
- });
- viewer.addDoubleClickListener(new IDoubleClickListener() {
- public void doubleClick(DoubleClickEvent event) {
- okPressed();
- }
- });
- viewer.setInput(locations);
- return composite;
- }
- protected Label createLabel(Composite parent, String text, int span) {
- Label label = new Label(parent, SWT.LEFT);
- label.setText(text);
- GridData data = new GridData();
- data.horizontalSpan = span;
- data.horizontalAlignment = GridData.FILL;
- label.setLayoutData(data);
- return label;
- }
- protected void cancelPressed() {
- location = null;
- super.cancelPressed();
- }
- public void setLocations(ICVSRepositoryLocation[] locations) {
- this.locations = locations;
- }
- public ICVSRepositoryLocation getLocation() {
- return location;
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ShellMakeFile.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ShellMakeFile.java
deleted file mode 100644
index 0beac1b..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/ShellMakeFile.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import org.eclipse.core.resources.IFile;
-
-public class ShellMakeFile extends SourceFile {
-
- public ShellMakeFile(IFile file) {
- super(file);
- }
-
- public String getCommentStart() {
- return "#*";
- }
-
- public String getCommentEnd() {
- return "**";
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/SourceFile.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/SourceFile.java
deleted file mode 100644
index e161542..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/SourceFile.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-/**
- * @author droberts
- */
-public abstract class SourceFile {
-
- IFile file;
- List comments = new ArrayList();
- StringWriter contents = new StringWriter();
- private String newLine = System.getProperty("line.separator");
-
- /**
- * @param file
- */
- public SourceFile(IFile file) {
- super();
- this.file = file;
- initialize();
- }
-
- public abstract String getCommentStart();
- public abstract String getCommentEnd();
-
- /**
- *
- */
- private void initialize() {
-
- InputStream inputStream;
- try {
- inputStream = file.getContents(false);
- BufferedReader aReader = new BufferedReader(new InputStreamReader(inputStream));
- String aLine = aReader.readLine();
- String comment = "";
- BufferedWriter contentsWriter = new BufferedWriter(contents);
- int lineNumber = 0;
- int commentStart = 0;
- int commentEnd = 0;
- boolean inComment = false;
-
- while (aLine != null) {
- contentsWriter.write(aLine);
- contentsWriter.newLine();
- if (!inComment && aLine.trim().startsWith(getCommentStart())) {
- // start saving comment
- inComment = true;
- commentStart = lineNumber;
- }
-
- if (inComment) {
- comment = comment + aLine + newLine;
-
- if (aLine.trim().endsWith(getCommentEnd()) && commentStart != lineNumber) {
- // stop saving comment
- inComment = false;
- commentEnd = lineNumber;
- BlockComment aComment = new BlockComment(commentStart, commentEnd, comment.toString(), getCommentStart(), getCommentEnd());
- comments.add(aComment);
- comment = "";
- commentStart = 0;
- commentEnd = 0;
- }
- }
-
- aLine = aReader.readLine();
- lineNumber++;
- }
-
- aReader.close();
- } catch (CoreException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @return BlockComment
- */
- public BlockComment firstBlockComment() {
- if (comments.isEmpty()) {
- return null;
- } else {
- return (BlockComment) comments.get(0);
- }
- }
-
- /**
- * @param string
- */
- public void insert(String string) {
-
- InputStream fileStream;
- try {
- fileStream = file.getContents();
- ByteArrayOutputStream result = new ByteArrayOutputStream();
-
- result.write(string.getBytes());
- int aByte = fileStream.read();
- while (aByte != -1) {
- result.write(aByte);
- aByte = fileStream.read();
- }
-
- fileStream.close();
- ByteArrayInputStream writeMe = new ByteArrayInputStream(result.toByteArray());
- file.setContents(writeMe, IFile.KEEP_HISTORY, new NullProgressMonitor());
-
- result.close();
- writeMe.close();
- } catch (CoreException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
-
-
- }
-
- /**
- * @return BlockComment
- */
- public BlockComment firstCopyrightComment() {
- Iterator anIterator = comments.iterator();
- while (anIterator.hasNext()) {
- BlockComment aComment = (BlockComment) anIterator.next();
- if (aComment.isCopyright()) {
- return aComment;
- }
- }
-
- return null;
- }
-
- /**
- * @param firstCopyrightComment
- * @param string
- */
- public void replace(BlockComment aComment, String string) {
-
-
- try {
- InputStream fileStream = file.getContents();
- ByteArrayOutputStream result = new ByteArrayOutputStream();
-
- BufferedReader fileReader = new BufferedReader(new InputStreamReader(fileStream));
-
- for (int i = 0; i < aComment.start; i++) {
- String aLine = fileReader.readLine();
- result.write(aLine.getBytes());
- result.write(newLine.getBytes());
- }
-
- result.write(string.getBytes());
-
- for (int i = aComment.start; i < aComment.end + 1; i++) {
- fileReader.readLine();
- }
-
- String aLine = fileReader.readLine();
- while (aLine != null) {
- result.write(aLine.getBytes());
- result.write(newLine.getBytes());
- aLine = fileReader.readLine();
- }
-
- fileStream.close();
-
- ByteArrayInputStream writeMe = new ByteArrayInputStream(result.toByteArray());
- file.setContents(writeMe, IFile.KEEP_HISTORY, new NullProgressMonitor());
-
- result.close();
- writeMe.close();
- } catch (CoreException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
-
-
-
-
- }
-
- /**
- * @return boolean
- */
- public boolean hasMultipleCopyrights() {
- int count = 0;
- Iterator anIterator = comments.iterator();
- while (anIterator.hasNext()) {
- BlockComment aComment = (BlockComment) anIterator.next();
- if (aComment.isCopyright()) {
- count++;
- }
- if (count > 1) {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagAndReleaseAction.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagAndReleaseAction.java
deleted file mode 100644
index 2e9a5c2..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagAndReleaseAction.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.internal.ccvs.ui.actions.CVSAction;
-
-
-/**
- *This class respond the "release..." menu action and try to open a wizard
- */
-public class TagAndReleaseAction extends CVSAction {
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.TagAction#execute(org.eclipse.jface.action.IAction)
- */
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
- //Start the release wizard
- ReleaseWizard wizard = new ReleaseWizard();
- IResource[] preSelection = getSelectedResources();
- if(preSelection != null && preSelection.length != 0){
- wizard.setPreSelectedProjects(preSelection);
- }
- wizard.execute(getShell());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- public boolean isEnabled() {
- return true;
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagAndReleaseOperation.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagAndReleaseOperation.java
deleted file mode 100644
index fd7287b..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagAndReleaseOperation.java
+++ /dev/null
@@ -1,121 +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.releng.tools;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.ui.operations.TagOperation;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * This class overrides the basic tag operation in order to update and possibly commit
- * the map file used by the Eclipse RelEng builder.
- */
-public class TagAndReleaseOperation extends TagOperation {
-
- private IResource[] selectedProjects;
- private CVSTag tag;
- private String comment;
- private MapProject mapProject;
- private boolean mapFileUpdated;
-
- public TagAndReleaseOperation(IWorkbenchPart part, MapProject mapProject, IResource[] resources, CVSTag t, String c) {
- super(part, asResourceMappers(resources));
- selectedProjects = new IResource[resources.length];
- System.arraycopy(resources,0,selectedProjects,0,resources.length);
- this.tag = t;
- setTag(tag);
- this.comment = c;
- this.mapProject = mapProject;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.TagOperation#tag(org.eclipse.team.internal.ccvs.core.CVSTeamProvider, org.eclipse.core.resources.IResource[], org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus tag(
- CVSTeamProvider provider,
- IResource[] resources,
- boolean recurse,
- IProgressMonitor progress)
- throws CVSException {
-
- // Tag the resource
- progress.beginTask("Releasing project " + provider.getProject().getName(), 100);
- IStatus status = super.tag(provider, resources, recurse, new SubProgressMonitor(progress, 95));
- if (status.getSeverity() == IStatus.ERROR) return status;
- progress.done();
- return status;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.CVSOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
- */
- public void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
- monitor.beginTask("Tagging with " + getTag().getName(), 100);
- super.execute(new SubProgressMonitor(monitor, 95));
-
- monitor.subTask("Updating and committing map files");
- // Always update the map file even if tagging failed
- updateMapFile();
- // Only commit if there are no errors
- if (!errorsOccurred()) {
- try {
- mapProject.commitMapProject(comment,monitor);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- mapFileUpdated = true;
- }
- monitor.done();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation#getSchedulingRule(org.eclipse.team.internal.ccvs.core.CVSTeamProvider)
- */
- protected ISchedulingRule getSchedulingRule(CVSTeamProvider provider) {
- // We need a rule on both the provider and the releng map project
- ISchedulingRule rule = super.getSchedulingRule(provider);
- return new MultiRule(new ISchedulingRule[] {rule, mapProject.getProject()});
- }
-
- /**
- * Update the tag for the given project in the appropriate map file.
- */
- private void updateTagsInMapFile(IProject project, String t) throws CVSException {
- try {
- mapProject.updateFile(project, t);
- } catch (CoreException e) {
- throw CVSException.wrapException(e);
- }
- }
-
- private void updateMapFile() throws CVSException{
- for (int i = 0; i < selectedProjects.length; i++) {
- if(selectedProjects[i] instanceof IProject){
- updateTagsInMapFile((IProject)selectedProjects[i], tag.getName());
- }
- }
- }
-
- public boolean isMapFileUpdated() {
- return mapFileUpdated;
- }
-
- protected IStatus[] getErrors() {
- return super.getErrors();
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagMap.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagMap.java
deleted file mode 100644
index 31d6ab5..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagMap.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.internal.ccvs.core.*;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.actions.TagInRepositoryAction;
-
-/**
- * Tags the versions in a map file with another tag
- */
-public class TagMap extends TagInRepositoryAction {
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getSelectedCVSResources()
- */
- protected ICVSRemoteResource[] getSelectedRemoteResources() {
- IResource[] resources = getSelectedResources();
- List identifiers = new ArrayList();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- try {
- String[] strings = LoadMap.readReferenceStrings((IFile)resource);
- identifiers.addAll(Arrays.asList(strings));
- } catch (CoreException e) {
- RelEngPlugin.log(e);
- }
- }
- return getCVSResourcesFor((String[]) identifiers.toArray(new String[identifiers.size()]));
- }
-
- private ICVSRemoteResource[] getCVSResourcesFor(String[] referenceStrings) {
- Map previouslySelectedRepositories = new HashMap();
- int size = referenceStrings.length;
- List result = new ArrayList(size);
- for (int i = 0; i < size; i++) {
- StringTokenizer tokenizer = new StringTokenizer(referenceStrings[i], ","); //$NON-NLS-1$
- String version = tokenizer.nextToken();
- if (!version.equals("1.0")) { //$NON-NLS-1$
- // Bail out, this is a newer version
- return null;
- }
- try {
- String repo = tokenizer.nextToken();
- ICVSRepositoryLocation storedlocation = getLocationFromString(repo);
- ICVSRepositoryLocation location = (ICVSRepositoryLocation)previouslySelectedRepositories.get(storedlocation);
- if (location == null) {
- location = getWritableRepositoryLocation(storedlocation);
- previouslySelectedRepositories.put(storedlocation, location);
- if (location == null) return new ICVSRemoteResource[0];
- }
- String module = tokenizer.nextToken();
- tokenizer.nextToken(); /* project name */
- CVSTag tag = CVSTag.DEFAULT;
- if (tokenizer.hasMoreTokens()) {
- String tagName = tokenizer.nextToken();
- tag = new CVSTag(tagName, CVSTag.VERSION);
- }
- result.add(location.getRemoteFolder(module, tag));
- } catch (CVSException e) {
- RelEngPlugin.log(e);
- }
- }
- return (ICVSRemoteResource[]) result.toArray(new ICVSRemoteResource[result.size()]);
- }
-
- private ICVSRepositoryLocation getLocationFromString(String repo) throws CVSException {
- // create the new location
- ICVSRepositoryLocation newLocation = CVSRepositoryLocation.fromString(repo);
- if (newLocation.getUsername() == null || newLocation.getUsername().length() == 0) {
- // look for an existing location that matched
- ICVSRepositoryLocation[] locations = CVSProviderPlugin.getPlugin().getKnownRepositories();
- for (int i = 0; i < locations.length; i++) {
- ICVSRepositoryLocation location = locations[i];
- if (location.getMethod() == newLocation.getMethod()
- && location.getHost().equals(newLocation.getHost())
- && location.getPort() == newLocation.getPort()
- && location.getRootDirectory().equals(newLocation.getRootDirectory()))
- return location;
- }
- }
- return newLocation;
- }
-
- private ICVSRepositoryLocation getWritableRepositoryLocation(ICVSRepositoryLocation storedLocation) {
- // Find out which repo locations are appropriate
- ICVSRepositoryLocation[] locations = CVSUIPlugin.getPlugin().getRepositoryManager().getKnownRepositoryLocations();
- List compatibleLocations = new ArrayList();
- for (int i = 0; i < locations.length; i++) {
- ICVSRepositoryLocation location = locations[i];
- // Only locations with the same host and root are eligible
- if (!location.getHost().equals(storedLocation.getHost())) continue;
- if (!location.getRootDirectory().equals(storedLocation.getRootDirectory())) continue;
- compatibleLocations.add(location);
- }
- RepositorySelectionDialog dialog = new RepositorySelectionDialog(getShell());
- dialog.setLocations((ICVSRepositoryLocation[])compatibleLocations.toArray(new ICVSRepositoryLocation[compatibleLocations.size()]));
- dialog.open();
- ICVSRepositoryLocation location = dialog.getLocation();
- return location;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
- */
- public boolean isEnabled() {
- IResource[] resources = getSelectedResources();
- return (resources.length >= 0 && MapProject.getDefaultMapProject().mapsAreLoaded());
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagPage.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagPage.java
deleted file mode 100644
index f761ce7..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/TagPage.java
+++ /dev/null
@@ -1,359 +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.releng.tools;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-
-/**
- *This class extends <code>WizardPage<code>. It allows user to enter a tag name and make some additional
- *options.
- */
-public class TagPage extends WizardPage{
-
- private String tagString;
- private Combo tagCombo;
- private static final int COMBO_HISTORY_LENGTH = 5;
- private final String DEFAULT_TAG_PREFIX = "v";
-
- private Button moveButton;
- private Button validateButton;
- private Button compareButton;
- private Button commitButton;
-
- private boolean moveButtonSelected;
- private boolean compareButtonSelected;
- private boolean commitButtonSelected;
- private boolean validateButtonSelected;
- private boolean hasError;//for tag validation
-
- private IDialogSettings settings;
- private String TAG_KEY = Messages.getString("TagPage.1"); //$NON-NLS-1$
- private String COMPARE_BUTTON_KEY = Messages.getString("TagPage.2"); //$NON-NLS-1$
- private String COMMIT_BUTTON_KEY = Messages.getString("TagPage.3"); //$NON-NLS-1$
- private String MOVE_BUTTON_KEY = Messages.getString("TagPage.4"); //$NON-NLS-1$
- private String VALIDATE_BUTTON_KEY = Messages.getString("TagPage.5"); //$NON-NLS-1$
-
- /**
- * @param pageName
- * @param title
- * @param titleImage
- */
- public TagPage(String pageName, String title, IDialogSettings settings, ImageDescriptor image) {
- super(pageName, title, image);
- this.settings = settings;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Font font = parent.getFont();
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
- GridData data = new GridData(GridData.FILL_BOTH);
- composite.setLayoutData(data);
- composite.setFont(font);
-
- Label label = new Label(composite, SWT.HORIZONTAL);
- label.setText(Messages.getString("TagPage.6")); //$NON-NLS-1$
- label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- label.setFont(font);
-
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- tagString = null;
- modifyTag();
- }
- };
-
- tagCombo = new Combo(composite,SWT.NONE);
- tagCombo.addListener(SWT.Selection, listener);
- tagCombo.addListener(SWT.Modify, listener);
- tagCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- tagCombo.setFont(font);
-
- moveButton = new Button(composite, SWT.CHECK);
- moveButton.setVisible(true);
- moveButton.setText(Messages.getString("TagPage.7")); //$NON-NLS-1$
- moveButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- moveButtonSelected = moveButton.getSelection();
- }
- });
- moveButton.setFont(font);
-
- validateButton = new Button(composite,SWT.CHECK);
- validateButton.setText(Messages.getString("TagPage.8")); //$NON-NLS-1$
- validateButton.addSelectionListener( new SelectionAdapter(){
- public void widgetSelected(SelectionEvent e) {
- validateButtonSelected = validateButton.getSelection();
- }
- });
- validateButton.setFont(font);
-
- Group group = new Group(composite, SWT.LEFT);
- group.setLayout(new GridLayout());
- group.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
- group.setFont(font);
-
- Label mapLabel = new Label(group, SWT.HORIZONTAL);
- mapLabel.setText(Messages.getString("TagPage.9")); //$NON-NLS-1$
- mapLabel.setFont(font);
-
- compareButton = new Button(group,SWT.RADIO);
- compareButton.setText(Messages.getString("TagPage.10")); //$NON-NLS-1$
- compareButton.addSelectionListener( new SelectionAdapter(){
- public void widgetSelected(SelectionEvent e) {
- compareButtonSelected = compareButton.getSelection();
- updateFinishStatus();
- }
- });
- compareButton.setFont(font);
-
- commitButton = new Button(group,SWT.RADIO);
- commitButton.setText(Messages.getString("TagPage.11")); //$NON-NLS-1$
- commitButton.setSelection(true);
- commitButton.addSelectionListener(new SelectionAdapter(){
- public void widgetSelected(SelectionEvent e) {
- commitButtonSelected = commitButton.getSelection();
- }
- });
- commitButton.setFont(font);
-
- initializePage();
- setControl(composite);
-
- }
-
- public String getTagString(){
- return tagString;
- }
- /**
- * Validates tag name
- */
- private void validateTag(String tag){
- String message = null;
- hasError = false;
- if(tag.length() == 0) {
- hasError = true;
- } else {
- IStatus status = CVSTag.validateTagName(tag);
- if (!status.isOK()) {
- message = status.getMessage();
- hasError = true;
- }
- }
- setErrorMessage(message);
- }
-
- public boolean isMoveButtonSelected(){
- return moveButtonSelected;
- }
- public boolean compareButtonSelected(){
- return compareButtonSelected;
- }
- public boolean commitButtonSelected(){
- return commitButtonSelected ;
- }
- private boolean isPageCompleted(){
- return (!hasError);
- }
-
- public void saveSettings(){
- String[] tags = settings.getArray(TAG_KEY);
- if (tags == null) tags = new String[0];
- tags = addToTagList(tags, tagCombo.getText());
- settings.put(TAG_KEY,tags);
- settings.put(COMPARE_BUTTON_KEY,compareButtonSelected);
- settings.put(COMMIT_BUTTON_KEY ,commitButtonSelected);
- settings.put(MOVE_BUTTON_KEY ,moveButtonSelected);
- settings.put(VALIDATE_BUTTON_KEY,validateButtonSelected);
- }
-
- private void readSettings(){
- if(settings.get(COMPARE_BUTTON_KEY) != null){
- compareButton.setSelection(settings.getBoolean(COMPARE_BUTTON_KEY));
- compareButtonSelected = settings.getBoolean(COMPARE_BUTTON_KEY);
- }else{
- compareButton.setSelection(true);
- compareButtonSelected = true;
- }
- if(settings.get(COMMIT_BUTTON_KEY) != null){
- commitButton.setSelection(settings.getBoolean(COMMIT_BUTTON_KEY));
- commitButtonSelected = settings.getBoolean(COMMIT_BUTTON_KEY);
- }else{
- commitButton.setSelection( false);
- commitButtonSelected = false;
- }
- if(settings.get(MOVE_BUTTON_KEY) != null){
- moveButton.setSelection(settings.getBoolean(MOVE_BUTTON_KEY));
- moveButtonSelected = settings.getBoolean(MOVE_BUTTON_KEY);
- }else{
- moveButton.setSelection(false);
- moveButtonSelected = false;
- }
- if(settings.get(VALIDATE_BUTTON_KEY) != null){
- validateButton.setSelection( settings.getBoolean(VALIDATE_BUTTON_KEY ));
- validateButtonSelected = settings.getBoolean(VALIDATE_BUTTON_KEY);
- }else{
- validateButton.setSelection(true);
- validateButtonSelected = true;
- }
- //insert the tag template to the head of the list and avoid duplicated items.
- if(settings.getArray(TAG_KEY) == null){
- tagCombo.add(getTagTemplate());
- }else{
- String[] savedTags = settings.getArray(TAG_KEY);
- if (savedTags != null && savedTags.length > 0) {
- String[] newTags = addToTagList( savedTags,getTagTemplate());
- for(int i = 0; i< newTags.length; i++){
- tagCombo.add(newTags[i]);
- }
- }
- else{
- tagCombo.add(getTagTemplate());
- }
- }
- }
-
- private void initializePage(){
- if(settings != null){
- readSettings();
- }
- else{
- commitButton.setSelection(false);
- compareButton.setSelection(true);
- validateButton.setSelection(true);
- moveButton.setSelection(false);
- commitButtonSelected = false;
- compareButtonSelected = true;
- moveButtonSelected = false;
- validateButtonSelected = true;
- tagCombo.add(getTagTemplate());
- }
- hasError = false;
- setPageComplete(false);
- }
-
-
- private void modifyTag() {
- tagString = tagCombo.getText();
- validateTag(tagString);
- setPageComplete(isPageCompleted());
- }
-
- //The default tag format is "vYYYYMMDD"
- private String getTagTemplate(){
- String tag = getTagPrefix(); //$NON-NLS-1$
- Calendar today = Calendar.getInstance( );
- tag += today.get(Calendar.YEAR);
- int month = today.get(Calendar.MONTH) + 1;
- if(month < 10){
- tag += "0" + month; //$NON-NLS-1$
- }
- else{
- tag += month;
- }
- int day = today.get(Calendar.DAY_OF_MONTH);
- if (day < 10){
- tag += "0" + day;
- }
- else{
- tag += day;
- }
- return tag;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
- */
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- ReleaseWizard wizard = (ReleaseWizard)getWizard();
- boolean b = wizard.getProjectSelectionPage().isCompareButtonChecked();
- if (visible && !b) {
- //In case the wizard switches to this page from Project Selection Page and there are some projects have outgoing changes
- wizard.updateSelectedProject();
- }
- }
-
- public boolean isValidateButtonSelected(){
- return validateButtonSelected;
- }
-
- private String[] addToTagList(String[] history, String newEntry) {
- ArrayList l = new ArrayList(Arrays.asList(history));
- addToTagList(l, newEntry);
- String[] r = new String[l.size()];
- l.toArray(r);
- return r;
- }
-
- private void addToTagList(List history, String newEntry) {
- history.remove(newEntry);
- history.add(0,newEntry);
- // since only one new item was added, we can be over the limit
- // by at most one item
- if (history.size() > COMBO_HISTORY_LENGTH)
- history.remove(COMBO_HISTORY_LENGTH);
- }
-
- private String getTagPrefix(){
- if(settings != null){
- if(settings.getArray(TAG_KEY) != null){
- String[] tags = settings.getArray(TAG_KEY);
- if (tags != null && tags.length > 0) {
- String s =parseFirstTag(tags[0]);
- if(s != null) return s;
- }
- }
- }
- return DEFAULT_TAG_PREFIX;
- }
-
- private String parseFirstTag(String s){
- if(s == null)return null;
- int length = s.length();
- if(length == 0 || !Character. isLetter(s.charAt(0)))return null;
- int i = 0;
- for (i = 0; i < length; i++) {
- if (Character.isDigit(s.charAt(i))) {
- break;
- }
- }
- return s.substring(0, i);
- }
-
- private void updateFinishStatus(){
- ((ReleaseWizard)getWizard()).getContainer().updateButtons();
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/messages.properties b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/messages.properties
deleted file mode 100644
index cdfbf1e..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/messages.properties
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-ReleaseWizard.5=ProjectSelectionPage
-ReleaseWizard.6=Project Selection
-ReleaseWizard.7=Select the projects to be considered for release
-ReleaseWizard.8=TagPage
-ReleaseWizard.9=Release Tag
-ReleaseWizard.4=Map Project Selection
-ReleaseWizard.3=Specify a map project to release projects
-ReleaseWizard.0=List of Changes for Build
-ReleaseWizard.10=Enter the tag to be used for this release
-ReleaseWizard.11=ProjectComparePage
-ReleaseWizard.12=Changed Projects
-ReleaseWizard.13=Review the changes that will be released
-ReleaseWizard.14=MapComparePage
-ReleaseWizard.15=Configuration File Changes
-ReleaseWizard.16=Review changes applied to release configuration files
-ReleaseWizard.17=Commit
-ReleaseWizard.18=Commit Comment
-ReleaseWizard.19=Enter the commit comment for changed configuration files
-ReleaseWizard.1=Notes for Build Changes
-ReleaseWizard.20=Releng Release
-ReleaseWizard.2=Build Notes Page
-ReleaseWizard.20=Releasing build notes file
-ReleaseWizard.21=Releasing
-ReleaseWizard.22=Map file was not committed
-ReleaseWizard.23=Errors occurred during release
-ReleaseWizard.24=Release Failed
-ReleaseWizard.25=There were errors reported during the release. The map files have not been updated
-ProjectSelectionPage.0=ProjectSelectionPage.selected
-ProjectSelectionPage.1=ProjectSelectionPage.compareButton
-ProjectSelectionPage.2=&Select the projects to be release
-ProjectSelectionPage.3=&Release only projects that have changed since the last release
-TagPage.1=TagPage.Tag
-TagPage.2=TagPage.Compare
-TagPage.3=TagPage.Commmit
-TagPage.4=TagPage.move
-TagPage.5=TagePage.validate
-TagPage.6=Tag name:
-TagPage.7=Move tag if it already exists
-TagPage.8=Validate the release once completed
-TagPage.9=For changed release configuration files...
-TagPage.10=Show the file change before committing
-TagPage.11=Commit the files without showing changes
-ProjectCompareDialog.0=The following projects still have differences between the local and released copies
-RepositorySelectionDialog.0=Select Repository Location
-RepositorySelectionDialog.1=Select the repository location to be used for tagging
-ProjectComparePage.0=Changes since last release
-ProjectComparePage.1=There were no changes in the selected projects.
-ProjectComparePage.2=Generate Build Notes
-ProjectComparePage.3=RelEng Release
-RelEngPlugin.1=org.eclipse.releng
-RelEngPlugin.2=maps
-RelEngPlugin.3=RelEngPluginResources
-ProjectValidationDialog.2=Project Validation
-RelEngPreferenceInitializer.0=Copyright (c) ${date} IBM Corporation and others.\nAll rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n\nContributors:\n IBM Corporation - initial API and implementation
-CopyrightPreferencePage.0=Use "${date}" to substitute in "creation_year, revision_year"
-CopyrightPreferencePage.1=Default creation year:
-CopyrightPreferencePage.2=Replace all existing copyright comments with this copyright template
-CopyrightPreferencePage.3=Fix up existing copyright comments to follow copyright template format
-CopyrightPreferencePage.4=Skip over properties files
-CopyrightPreferencePage.5=Copyright template
-CopyrightPreferencePage.6=Default year must be a positive number
-CopyrightPreferencePage.7=Default revision year:
-CopyrightPreferencePage.8=Always use default revision year instead of CVS lookup
-BuildNotesPage.2=Update Build Notes File
-BuildNotesPage.3=Build Notes File:
-BuildNotesPage.5=Invalid file extension.
-BuildNotesPage.6=Invalid path.
-BuildNotesPage.7=Input a file path.
-BuildNotesPage.8=Browse
-BuildNotesPage.11=Creating file...
-BuildNotesPage.38=Updating File...
-BuildNotesPage.42=Select Build Notes File
-BuildNotesPage.43=Select the file to update with the new build notes.
-GetBugsOperation.0=Beginning Bug Operation
-GetBugsOperation.1=Fetching Bugzilla Summaries.
-CopyrightDialog.1=Any file whose last comment contains the following as a substring will be excluded from the copyright update.\nLeave empty for no exclusion.
-CopyrightDialog.2=Enter a substring:
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/CopyrightPreferencePage.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/CopyrightPreferencePage.java
deleted file mode 100644
index ee39916..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/CopyrightPreferencePage.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools.preferences;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.text.source.SourceViewerConfiguration;
-import org.eclipse.releng.tools.Messages;
-import org.eclipse.releng.tools.RelEngPlugin;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-/**
- * Copyright tools preference page
- */
-public class CopyrightPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
- private final String NEW_LINE = "\n"; //$NON-NLS-1$
- private Composite fComposite;
- private Label fCopyrightLabel;
- private SourceViewer fEditor;
- private Text fInstructions;
- private Label fCreationYearLabel;
- private Text fCreationYear;
- private Label fRevisionYearLabel;
- private Text fRevisionYear;
- private Button fUseDefaultRevisionYear;
- private Button fReplaceAllExisting;
- // disable fix up existing copyright till it works better
-// private Button fFixExisting;
- private Button fIgnoreProperties;
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- public void init(IWorkbench workbench) {
- // TODO Auto-generated method stub
-
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
- */
- protected Control createContents(Composite parent) {
-
- //The main composite
- fComposite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- fComposite.setLayout(layout);
- fComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- // copyright template editor
- fEditor = createEditor(fComposite);
-
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- data.horizontalIndent = 0;
- fInstructions = new Text(fComposite, SWT.READ_ONLY);
- fInstructions.setText(Messages.getString("CopyrightPreferencePage.0")); //$NON-NLS-1$
- fInstructions.setLayoutData(data);
-
- // default creation year
- fCreationYearLabel = new Label(fComposite, SWT.NONE);
- fCreationYearLabel.setText(Messages.getString("CopyrightPreferencePage.1")); //$NON-NLS-1$
- fCreationYear = new Text(fComposite, SWT.BORDER);
- fCreationYear.setTextLimit(4);
-
- // default revision year
- fRevisionYearLabel = new Label(fComposite, SWT.NONE);
- fRevisionYearLabel.setText(Messages.getString("CopyrightPreferencePage.7")); //$NON-NLS-1$
- fRevisionYear = new Text(fComposite, SWT.BORDER);
- fRevisionYear.setTextLimit(4);
-
- // always use default revision year instead of cvs lookup
- fUseDefaultRevisionYear = new Button(fComposite, SWT.CHECK);
- fUseDefaultRevisionYear.setText(Messages.getString("CopyrightPreferencePage.8")); //$NON-NLS-1$
- data = new GridData();
- data.horizontalSpan = 2;
- fUseDefaultRevisionYear.setLayoutData(data);
-
- // replace all existing copyright statement
- fReplaceAllExisting = new Button(fComposite, SWT.CHECK);
- fReplaceAllExisting.setText(Messages.getString("CopyrightPreferencePage.2")); //$NON-NLS-1$
- data = new GridData();
- data.horizontalSpan = 2;
- fReplaceAllExisting.setLayoutData(data);
-
- // disable fix up existing copyright till it works better
-// // fix up existing copyright statement
-// fFixExisting = new Button(fComposite, SWT.CHECK);
-// fFixExisting.setText(Messages.getString("CopyrightPreferencePage.3")); //$NON-NLS-1$
-// data = new GridData();
-// data.horizontalSpan = 2;
-// fFixExisting.setLayoutData(data);
-
- // ignore properties files
- fIgnoreProperties = new Button(fComposite, SWT.CHECK);
- fIgnoreProperties.setText(Messages.getString("CopyrightPreferencePage.4")); //$NON-NLS-1$
- data = new GridData();
- data.horizontalSpan = 2;
- fIgnoreProperties.setLayoutData(data);
-
- KeyListener listener1 = new KeyAdapter() {
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.KeyAdapter#keyReleased(org.eclipse.swt.events.KeyEvent)
- */
- public void keyReleased(KeyEvent e) {
- validateValues();
- }
- };
- fCreationYear.addKeyListener(listener1);
- fRevisionYear.addKeyListener(listener1);
-
- // disable fix up existing copyright till it works better
-// SelectionListener listener2 = new SelectionAdapter() {
-// public void widgetSelected(SelectionEvent e) {
-// handleReplaceAllEnabled(fReplaceAllExisting.getSelection(), fFixExisting.getSelection());
-// }
-// };
-// fReplaceAllExisting.addSelectionListener(listener2);
-
- initializeValues();
- applyDialogFont(fComposite);
- return fComposite;
- }
-
- /**
- * Create the sourceviewer editor to be used to edit the copyright template
- */
- private SourceViewer createEditor(Composite parent) {
- fCopyrightLabel = new Label(parent, SWT.NONE);
- fCopyrightLabel.setText(Messages.getString("CopyrightPreferencePage.5")); //$NON-NLS-1$
- GridData data= new GridData();
- data.horizontalSpan= 2;
- fCopyrightLabel.setLayoutData(data);
-
- SourceViewer viewer= createViewer(parent);
-
- IDocument document= new Document();
- viewer.setEditable(true);
- viewer.setDocument(document);
-
- // just use a default 10 lines
- int nLines = 10;
-// int nLines= document.getNumberOfLines();
-// if (nLines < 5) {
-// nLines= 5;
-// } else if (nLines > 12) {
-// nLines= 12;
-// }
-
- Control control= viewer.getControl();
- data= new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint= convertWidthInCharsToPixels(80);
- data.heightHint= convertHeightInCharsToPixels(nLines);
- data.horizontalSpan = 2;
- control.setLayoutData(data);
-
- // TODO add content assist support
-// viewer.addTextListener(new ITextListener() {
-// public void textChanged(TextEvent event) {
-// if (event.getDocumentEvent() != null)
-// doSourceChanged(event.getDocumentEvent().getDocument());
-// }
-// });
-//
-// viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-// public void selectionChanged(SelectionChangedEvent event) {
-// updateSelectionDependentActions();
-// }
-// });
-//
-// viewer.prependVerifyKeyListener(new VerifyKeyListener() {
-// public void verifyKey(VerifyEvent event) {
-// handleVerifyKeyPressed(event);
-// }
-// });
-
- return viewer;
- }
-
- /**
- * Creates the viewer to be used to display the copyright.
- *
- * @param parent the parent composite of the viewer
- * @return a configured <code>SourceViewer</code>
- */
- private SourceViewer createViewer(Composite parent) {
- SourceViewer viewer= new SourceViewer(parent, null, null, false, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- SourceViewerConfiguration configuration= new SourceViewerConfiguration() {
- // TODO add content assist support
-// public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
-//
-// ContentAssistant assistant= new ContentAssistant();
-// assistant.enableAutoActivation(true);
-// assistant.enableAutoInsert(true);
-// assistant.setContentAssistProcessor(fTemplateProcessor, IDocument.DEFAULT_CONTENT_TYPE);
-// return assistant;
-// }
- };
- viewer.configure(configuration);
- return viewer;
- }
-
- /**
- * Initialize the control values in this preference page
- */
- private void initializeValues() {
- IPreferenceStore store = getPreferenceStore();
-
- fEditor.getDocument().set(store.getString(RelEngCopyrightConstants.COPYRIGHT_TEMPLATE_KEY));
- fCreationYear.setText(store.getString(RelEngCopyrightConstants.CREATION_YEAR_KEY));
- fRevisionYear.setText(store.getString(RelEngCopyrightConstants.REVISION_YEAR_KEY));
- fUseDefaultRevisionYear.setSelection(store.getBoolean(RelEngCopyrightConstants.USE_DEFAULT_REVISION_YEAR_KEY));
- fReplaceAllExisting.setSelection(store.getBoolean(RelEngCopyrightConstants.REPLACE_ALL_EXISTING_KEY));
- // disable fix up existing copyright till it works better
-// handleReplaceAllEnabled(fReplaceAllExisting.getSelection(), store.getBoolean(RelEngCopyrightConstants.FIX_UP_EXISTING_KEY));
- fIgnoreProperties.setSelection(store.getBoolean(RelEngCopyrightConstants.IGNORE_PROPERTIES_KEY));
- }
-
- /**
- * Validate the control values in this preference page
- */
- private void validateValues() {
- String ERROR_MESSAGE = Messages.getString("CopyrightPreferencePage.6"); //$NON-NLS-1$
-
- String errorMsg = null;
-
- // creation & revision year must be an integer
- String creationYear = fCreationYear.getText();
- String revisionYear = fRevisionYear.getText();
- try {
- int year = Integer.parseInt(creationYear);
- if (year < 0) {
- errorMsg = ERROR_MESSAGE;
- }
- year = Integer.parseInt(revisionYear);
- if (year < 0) {
- errorMsg = ERROR_MESSAGE;
- }
- } catch (NumberFormatException e) {
- errorMsg = ERROR_MESSAGE;
- }
- setErrorMessage(errorMsg);
- setValid(errorMsg == null);
- }
-
- // disable fix up existing copyright till it works better
-// /**
-// * Handles when the Replace all copyrights checkbox is checked/unchecked.
-// * When checked, fix up copyright checkbox is disabled and checked
-// * When unchecked, fix up copyright checkbox is enabled and set to default value
-// * @param replaceAll
-// * @param defaultValue
-// */
-// private void handleReplaceAllEnabled(boolean replaceAll, boolean defaultValue) {
-// if (fReplaceAllExisting.isEnabled() && !replaceAll)
-// fFixExisting.setEnabled(true);
-// else
-// fFixExisting.setEnabled(false);
-//
-// if (replaceAll) {
-// fFixExisting.setSelection(replaceAll);
-// } else {
-// fFixExisting.setSelection(defaultValue);
-// }
-// }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
- */
- protected IPreferenceStore doGetPreferenceStore() {
- return RelEngPlugin.getDefault().getPreferenceStore();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
- */
- protected void performDefaults() {
- IPreferenceStore store = getPreferenceStore();
-
- fEditor.getDocument().set(store.getDefaultString(RelEngCopyrightConstants.COPYRIGHT_TEMPLATE_KEY));
- fCreationYear.setText(store.getDefaultString(RelEngCopyrightConstants.CREATION_YEAR_KEY));
- fRevisionYear.setText(store.getDefaultString(RelEngCopyrightConstants.REVISION_YEAR_KEY));
- fUseDefaultRevisionYear.setSelection(getPreferenceStore().getDefaultBoolean(RelEngCopyrightConstants.USE_DEFAULT_REVISION_YEAR_KEY));
- fReplaceAllExisting.setSelection(getPreferenceStore().getDefaultBoolean(RelEngCopyrightConstants.REPLACE_ALL_EXISTING_KEY));
- // disable fix up existing copyright till it works better
-// handleReplaceAllEnabled(fReplaceAllExisting.getSelection(), getPreferenceStore().getDefaultBoolean(RelEngCopyrightConstants.FIX_UP_EXISTING_KEY));
- fIgnoreProperties.setSelection(getPreferenceStore().getDefaultBoolean(RelEngCopyrightConstants.IGNORE_PROPERTIES_KEY));
-
- super.performDefaults();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.IPreferencePage#performOk()
- */
- public boolean performOk() {
- IPreferenceStore store = getPreferenceStore();
-
- store.setValue(RelEngCopyrightConstants.COPYRIGHT_TEMPLATE_KEY, fixupLineDelimiters(fEditor.getDocument()));
- store.setValue(RelEngCopyrightConstants.CREATION_YEAR_KEY, fCreationYear.getText());
- store.setValue(RelEngCopyrightConstants.REVISION_YEAR_KEY, fRevisionYear.getText());
- store.setValue(RelEngCopyrightConstants.USE_DEFAULT_REVISION_YEAR_KEY, fUseDefaultRevisionYear.getSelection());
- store.setValue(RelEngCopyrightConstants.REPLACE_ALL_EXISTING_KEY, fReplaceAllExisting.getSelection());
- // disable fix up existing copyright till it works better
-// store.setValue(RelEngCopyrightConstants.FIX_UP_EXISTING_KEY, fFixExisting.getSelection());
- store.setValue(RelEngCopyrightConstants.IGNORE_PROPERTIES_KEY, fIgnoreProperties.getSelection());
-
- RelEngPlugin.getDefault().savePluginPreferences();
-
- return super.performOk();
- }
-
- /**
- * Fix up line delimiters in doc to use only \n
- * @param doc
- * @return
- */
- private String fixupLineDelimiters(IDocument doc) {
- String docContents = doc.get();
- String newText = ""; //$NON-NLS-1$
- int lineCount = doc.getNumberOfLines();
- for (int i = 0; i < lineCount; i++) {
- try {
- IRegion lineInfo = doc.getLineInformation(i);
- int lineStartOffset = lineInfo.getOffset();
- int lineLength = lineInfo.getLength();
- int lineEndOffset = lineStartOffset + lineLength;
- newText += docContents.substring(lineStartOffset, lineEndOffset);
-
- if ((i < lineCount - 1) && (fEditor.getDocument().getLineDelimiter(i) != null))
- newText += NEW_LINE;
- }
- catch (BadLocationException exception) {
- // exception
- }
- }
- return newText;
- }
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/RelEngCopyrightConstants.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/RelEngCopyrightConstants.java
deleted file mode 100644
index 4952f8f..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/RelEngCopyrightConstants.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools.preferences;
-
-/**
- * Contains all the constants used by the releng copyright tool
- */
-public class RelEngCopyrightConstants {
- public final static String COPYRIGHT_TEMPLATE_KEY = "org.eclipse.releng.tools.copyrightTemplate"; //$NON-NLS-1$
- public final static String CREATION_YEAR_KEY = "org.eclipse.releng.tools.creationYear"; //$NON-NLS-1$
- public final static String REVISION_YEAR_KEY = "org.eclipse.releng.tools.revisionYear"; //$NON-NLS-1$
- public final static String USE_DEFAULT_REVISION_YEAR_KEY = "org.eclipse.releng.tools.useDefaultRevisionYear"; //$NON-NLS-1$
- // disable fix up existing copyright till it works better
-// public final static String FIX_UP_EXISTING_KEY = "org.eclipse.releng.tools.fixUpExisting"; //$NON-NLS-1$
- public final static String REPLACE_ALL_EXISTING_KEY = "org.eclipse.releng.tools.replaceAllExisting"; //$NON-NLS-1$
- public final static String IGNORE_PROPERTIES_KEY = "org.eclipse.releng.tools.ignoreProperties"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/RelEngPreferenceInitializer.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/RelEngPreferenceInitializer.java
deleted file mode 100644
index d40a691..0000000
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/preferences/RelEngPreferenceInitializer.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng.tools.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.releng.tools.Messages;
-import org.eclipse.releng.tools.RelEngPlugin;
-
-/**
- * Initializes default preferences for release engineering tool
- */
-public class RelEngPreferenceInitializer extends AbstractPreferenceInitializer {
- private final String LEGAL_LINE = Messages.getString("RelEngPreferenceInitializer.0"); //$NON-NLS-1$
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
- */
- public void initializeDefaultPreferences() {
- IPreferenceStore store = RelEngPlugin.getDefault().getPreferenceStore();
- store.setDefault(RelEngCopyrightConstants.COPYRIGHT_TEMPLATE_KEY, LEGAL_LINE);
- store.setDefault(RelEngCopyrightConstants.CREATION_YEAR_KEY, 2001);
- store.setDefault(RelEngCopyrightConstants.REVISION_YEAR_KEY, 2007);
- store.setDefault(RelEngCopyrightConstants.USE_DEFAULT_REVISION_YEAR_KEY, false);
- // disable fix up existing copyright till it works better
-// store.setDefault(RelEngCopyrightConstants.FIX_UP_EXISTING_KEY, false);
- store.setDefault(RelEngCopyrightConstants.REPLACE_ALL_EXISTING_KEY, false);
- store.setDefault(RelEngCopyrightConstants.IGNORE_PROPERTIES_KEY, false);
- }
-
-}
diff --git a/bundles/org.eclipse.releng.tools/toc.xml b/bundles/org.eclipse.releng.tools/toc.xml
deleted file mode 100644
index 78b42bf..0000000
--- a/bundles/org.eclipse.releng.tools/toc.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-<toc label="RelEng Tools">
- <topic label="Release Wizard" href="html/00028.html">
- <topic label="Preliminary Cases" href="html/00000.html">
- <topic label="PreCondition Test" href="html/00070.html">
- <topic label="No Map Project Exists" href="html/00001.html">
- </topic>
- <topic label="No Map File Exists" href="html/00004.html">
- </topic>
- <topic label="Empty Map Files" href="html/00005.html">
- </topic>
- <topic label="Unshared Map Project" href="html/00006.html">
- </topic>
- </topic>
- <topic label="Individual Wizard Page And Options Test" href="html/00071.html">
- <topic label="Checkbox on Project Selection Page" href="html/00011.html">
- </topic>
- <topic label="Outgoing Change Prompting Dialog" href="html/00012.html">
- </topic>
- <topic label="Project Compare Page" href="html/00013.html">
- </topic>
- <topic label="Move Tag Option on Tag Page" href="html/00014.html">
- </topic>
- <topic label="Validate Option on Tag Page" href="html/00015.html">
- </topic>
- <topic label="Show Map File Change Option on Tag page" href="html/00016.html">
- </topic>
- <topic label="Commit Directly Option on Tag Page " href="html/00017.html">
- </topic>
- <topic label="Commit Comment Page" href="html/00018.html">
- </topic>
- </topic>
- <topic label="Map Files And Map Entries" href="html/00072.html">
- <topic label="Map Entries and CVS Module Name" href="html/00007.html">
- </topic>
- <topic label="Map Entries Contain No-existing Projects" href="html/00008.html">
- </topic>
- <topic label="Add/delete Map File" href="html/00009.html">
- </topic>
-
- <topic label="Map project has other type of files" href="html/00019.html">
- </topic>
- </topic>
- <topic label="Tag Validation" href="html/00073.html">
- <topic label="Tag Validation" href="html/00010.html">
- </topic>
- </topic>
- </topic>
- <topic label="Integrated Tests for Default Settings" href="html/00002.html">
- <topic label="About Default Settings" href="html/00020.html">
- </topic>
- <topic label="All Projects Have No Outgoing Change " href="html/00021.html">
- </topic>
- <topic label="All Projects Have Outgoing Changes" href="html/00022.html">
- </topic>
- <topic label="Some Projects Have Outgoing Changes" href="html/00023.html">
- </topic>
- </topic>
- <topic label="Integrated Tests for Variations" href="html/00003.html">
- <topic label="About Configuration Variations" href="html/00024.html">
- </topic>
- <topic label="All Projects Have Changes Since Last Release " href="html/00025.html">
- </topic>
- <topic label="Some Projects Have Changes Since Last Release " href="html/00026.html">
- </topic>
- <topic label="Move Tag Option Deselected / Selected" href="html/00027.html">
- </topic>
- </topic>
- </topic>
- <topic label="Compare With Released" href="html/00030.html">
- <topic label="One Project Case" href="html/00061.html">
- <topic label="One Project Without Change" href="html/00032.html">
- </topic>
- <topic label="One Project With Changes" href="html/00033.html">
- </topic>
- </topic>
- <topic label="Multiple Projects Case" href="html/00062.html">
- <topic label="Multiple Projects Without Change" href="html/00035.html">
- </topic>
- <topic label="Multiple Projects With Outgoing Changes" href="html/00036.html">
- </topic>
- </topic>
- <topic label="Compare File Or Folder" href="html/00063.html">
- <topic label="Compare a File" href="html/00037.html">
- </topic>
- <topic label="Compare A Folder" href="html/00038.html">
- </topic>
- </topic>
- </topic>
- <topic label="Replace With Released" href="html/00031.html">
- <topic label="Replace One Project" href="html/00064.html">
- <topic label="One Project Without Change" href="html/00043.html">
- </topic>
- <topic label="One project With Outgoing Change" href="html/00039.html">
- </topic>
- <topic label="One Project With Outgoing Addtion" href="html/00041.html">
- </topic>
- <topic label="One Project With Outgoing Deletion" href="html/00042.html">
- </topic>
- </topic>
- <topic label="Replace Multiple Projects" href="html/00065.html">
- <topic label="Multiple Projects" href="html/00044.html">
- </topic>
- </topic>
- <topic label="Replace A File Or A Folder" href="html/00066.html">
- <topic label="Replace A File" href="html/00045.html">
- </topic>
- <topic label="Replace A Folder" href="html/00046.html">
- </topic>
- </topic>
- </topic>
- <topic label="Load Map Projects" href="html/00047.html">
- <topic label="Single Map File And Valid Entries" href="html/00067.html">
- <topic label="Project Does Not Exist In Local WorkSpace" href="html/00057.html">
- </topic>
- <topic label="Project Exists in Local WorkSpace" href="html/00058.html">
- </topic>
- <topic label="Map Contains A Older Tag Name" href="html/00059.html">
- </topic>
- <topic label="Project Using CVS Module Name" href="html/00060.html">
- </topic>
- </topic>
- <topic label="Single Map File And Invalid Entries" href="html/00068.html">
- <topic label="Map File Contains Unexisting Project" href="html/00054.html">
- </topic>
- <topic label="Map File Cotains Unexisting Tag" href="html/00056.html">
- </topic>
- </topic>
- <topic label="Multiple Map Files" href="html/00069.html">
- <topic label="Select Multiple Map Files to Load" href="html/00055.html">
- </topic>
- </topic>
- </topic>
-</toc>
diff --git a/bundles/org.eclipse.sdk.examples/.project b/bundles/org.eclipse.sdk.examples/.project
deleted file mode 100644
index 705c8dd..0000000
--- a/bundles/org.eclipse.sdk.examples/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.sdk.examples</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- </buildSpec>
- <natures>
- </natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.sdk.examples/about.html b/bundles/org.eclipse.sdk.examples/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.sdk.examples/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.sdk.examples/about.ini b/bundles/org.eclipse.sdk.examples/about.ini
deleted file mode 100644
index 669383f..0000000
--- a/bundles/org.eclipse.sdk.examples/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/bundles/org.eclipse.sdk.examples/about.mappings b/bundles/org.eclipse.sdk.examples/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/bundles/org.eclipse.sdk.examples/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/bundles/org.eclipse.sdk.examples/about.properties b/bundles/org.eclipse.sdk.examples/about.properties
deleted file mode 100644
index f60c7fe..0000000
--- a/bundles/org.eclipse.sdk.examples/about.properties
+++ /dev/null
@@ -1,26 +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
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Eclipse SDK Examples\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2000, 2007. All rights reserved.\n\
-Visit http://www.eclipse.org/eclipse
-
diff --git a/bundles/org.eclipse.sdk.examples/build.properties b/bundles/org.eclipse.sdk.examples/build.properties
deleted file mode 100644
index c05dc58..0000000
--- a/bundles/org.eclipse.sdk.examples/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes=\
-about.html,\
-about.ini,\
-about.mappings,\
-about.properties,\
-eclipse32.png,\
-plugin.xml,\
-plugin.properties
-
-# note: the following files are intentionally not listed in bin.includes
-# epl-v10.html
-# notice.html
-# these files need to end up as root files in <install>/eclipse/
-
-
diff --git a/bundles/org.eclipse.sdk.examples/eclipse32.gif b/bundles/org.eclipse.sdk.examples/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/bundles/org.eclipse.sdk.examples/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.sdk.examples/eclipse32.png b/bundles/org.eclipse.sdk.examples/eclipse32.png
deleted file mode 100644
index 568fac1..0000000
--- a/bundles/org.eclipse.sdk.examples/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.sdk.examples/notice.html b/bundles/org.eclipse.sdk.examples/notice.html
deleted file mode 100644
index c6af966..0000000
--- a/bundles/org.eclipse.sdk.examples/notice.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/bundles/org.eclipse.sdk.examples/plugin.properties b/bundles/org.eclipse.sdk.examples/plugin.properties
deleted file mode 100644
index 4622583..0000000
--- a/bundles/org.eclipse.sdk.examples/plugin.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-pluginName=Eclipse SDK Examples
-providerName=Eclipse.org
diff --git a/bundles/org.eclipse.sdk.examples/plugin.xml b/bundles/org.eclipse.sdk.examples/plugin.xml
deleted file mode 100644
index 5e721ad..0000000
--- a/bundles/org.eclipse.sdk.examples/plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- id="org.eclipse.sdk.examples"
- name="%pluginName"
- version="3.1.100.qualifier"
- provider-name="%providerName">
-
- <runtime>
- </runtime>
-
-</plugin>
diff --git a/bundles/org.eclipse.sdk.tests/.project b/bundles/org.eclipse.sdk.tests/.project
deleted file mode 100644
index 72794b1..0000000
--- a/bundles/org.eclipse.sdk.tests/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.sdk.tests</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- </buildSpec>
- <natures>
- </natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.sdk.tests/about.html b/bundles/org.eclipse.sdk.tests/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.sdk.tests/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.sdk.tests/about.ini b/bundles/org.eclipse.sdk.tests/about.ini
deleted file mode 100644
index dbd842f..0000000
--- a/bundles/org.eclipse.sdk.tests/about.ini
+++ /dev/null
@@ -1,27 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
diff --git a/bundles/org.eclipse.sdk.tests/about.mappings b/bundles/org.eclipse.sdk.tests/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/bundles/org.eclipse.sdk.tests/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/bundles/org.eclipse.sdk.tests/about.properties b/bundles/org.eclipse.sdk.tests/about.properties
deleted file mode 100644
index ea5577c..0000000
--- a/bundles/org.eclipse.sdk.tests/about.properties
+++ /dev/null
@@ -1,26 +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
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Eclipse SDK Tests\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2000, 2006. All rights reserved.\n\
-Visit http://www.eclipse.org/eclipse
-
diff --git a/bundles/org.eclipse.sdk.tests/build.properties b/bundles/org.eclipse.sdk.tests/build.properties
deleted file mode 100644
index 8f99f6b..0000000
--- a/bundles/org.eclipse.sdk.tests/build.properties
+++ /dev/null
@@ -1,19 +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
-###############################################################################
-bin.includes=\
-about.html,\
-about.ini,\
-about.mappings,\
-about.properties,\
-eclipse32.gif,\
-plugin.xml,\
-plugin.properties
-
diff --git a/bundles/org.eclipse.sdk.tests/eclipse32.gif b/bundles/org.eclipse.sdk.tests/eclipse32.gif
deleted file mode 100644
index e25ff07..0000000
--- a/bundles/org.eclipse.sdk.tests/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.sdk.tests/epl-v10.html b/bundles/org.eclipse.sdk.tests/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/bundles/org.eclipse.sdk.tests/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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.sdk.tests/notice.html b/bundles/org.eclipse.sdk.tests/notice.html
deleted file mode 100644
index c6af966..0000000
--- a/bundles/org.eclipse.sdk.tests/notice.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/bundles/org.eclipse.sdk.tests/plugin.properties b/bundles/org.eclipse.sdk.tests/plugin.properties
deleted file mode 100644
index 2cc4b52..0000000
--- a/bundles/org.eclipse.sdk.tests/plugin.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-pluginName=Eclipse SDK Tests
-providerName=Eclipse.org
diff --git a/bundles/org.eclipse.sdk.tests/plugin.xml b/bundles/org.eclipse.sdk.tests/plugin.xml
deleted file mode 100644
index 6b32d58..0000000
--- a/bundles/org.eclipse.sdk.tests/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- name="%pluginName"
- id="org.eclipse.sdk.tests"
- version="3.1.0"
- provider-name="%providerName">
-</plugin>
diff --git a/bundles/org.eclipse.test.performance.data/.classpath b/bundles/org.eclipse.test.performance.data/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/bundles/org.eclipse.test.performance.data/.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/bundles/org.eclipse.test.performance.data/.cvsignore b/bundles/org.eclipse.test.performance.data/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.test.performance.data/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.test.performance.data/.project b/bundles/org.eclipse.test.performance.data/.project
deleted file mode 100644
index 2f4d951..0000000
--- a/bundles/org.eclipse.test.performance.data/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.test.performance.data</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/bundles/org.eclipse.test.performance.data/META-INF/MANIFEST.MF b/bundles/org.eclipse.test.performance.data/META-INF/MANIFEST.MF
deleted file mode 100644
index 37e5a2c..0000000
--- a/bundles/org.eclipse.test.performance.data/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Performance Data Plug-in
-Bundle-SymbolicName: org.eclipse.test.performance.data
-Bundle-Version: 3.1.0
-Bundle-ClassPath: data.jar
-Bundle-Activator: org.eclipse.test.performance.data.DataPlugin
-Bundle-Vendor: org.eclipse
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime
-Eclipse-LazyStart: true
diff --git a/bundles/org.eclipse.test.performance.data/build.properties b/bundles/org.eclipse.test.performance.data/build.properties
deleted file mode 100644
index 8cc2f7e..0000000
--- a/bundles/org.eclipse.test.performance.data/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.data.jar = src/
-output.data.jar = bin/
-bin.includes = META-INF/,\
- data.jar
diff --git a/bundles/org.eclipse.test.performance.data/src/org/eclipse/test/performance/data/DataPlugin.java b/bundles/org.eclipse.test.performance.data/src/org/eclipse/test/performance/data/DataPlugin.java
deleted file mode 100644
index 45c8ca3..0000000
--- a/bundles/org.eclipse.test.performance.data/src/org/eclipse/test/performance/data/DataPlugin.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.eclipse.test.performance.data;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-import java.util.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class DataPlugin extends Plugin {
- //The shared instance.
- private static DataPlugin plugin;
- //Resource bundle.
- private ResourceBundle resourceBundle;
-
- /**
- * The constructor.
- */
- public DataPlugin() {
- super();
- plugin = this;
- }
-
- /**
- * 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;
- resourceBundle = null;
- }
-
- /**
- * Returns the shared instance.
- */
- public static DataPlugin 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 = DataPlugin.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.test.performance.data.DataPluginResources");
- } catch (MissingResourceException x) {
- resourceBundle = null;
- }
- return resourceBundle;
- }
-
-}
diff --git a/bundles/org.eclipse.test.performance.win32/.project b/bundles/org.eclipse.test.performance.win32/.project
deleted file mode 100644
index 4923750..0000000
--- a/bundles/org.eclipse.test.performance.win32/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.test.performance.win32</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <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>
- </natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.test.performance.win32/META-INF/MANIFEST.MF b/bundles/org.eclipse.test.performance.win32/META-INF/MANIFEST.MF
deleted file mode 100644
index 312c273..0000000
--- a/bundles/org.eclipse.test.performance.win32/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,8 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.test.performance.win32
-Bundle-Version: 3.1.100
-Bundle-Vendor: %Plugin.providerName
-Fragment-Host: org.eclipse.test.performance;bundle-version="[3.1.0,4.0.0)"
-Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.test.performance.win32/about.html b/bundles/org.eclipse.test.performance.win32/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.test.performance.win32/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.win32/build.properties b/bundles/org.eclipse.test.performance.win32/build.properties
deleted file mode 100644
index 02b787f..0000000
--- a/bundles/org.eclipse.test.performance.win32/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-bin.includes = os/,\
- about.html,\
- META-INF/
-
-
diff --git a/bundles/org.eclipse.test.performance.win32/os/win32/x86/ivjperf.dll b/bundles/org.eclipse.test.performance.win32/os/win32/x86/ivjperf.dll
deleted file mode 100644
index affa796..0000000
--- a/bundles/org.eclipse.test.performance.win32/os/win32/x86/ivjperf.dll
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance.win32/plugin.properties b/bundles/org.eclipse.test.performance.win32/plugin.properties
deleted file mode 100644
index 4cb88a8..0000000
--- a/bundles/org.eclipse.test.performance.win32/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-Plugin.name= Performance Monitor for Windows
-Plugin.providerName= Eclipse.org
diff --git a/bundles/org.eclipse.test.performance.win32/src/build.bat b/bundles/org.eclipse.test.performance.win32/src/build.bat
deleted file mode 100644
index ed2f0e4..0000000
--- a/bundles/org.eclipse.test.performance.win32/src/build.bat
+++ /dev/null
@@ -1,15 +0,0 @@
-@echo off
-if '%1' == '?' goto help
-if not '%BATLST%' == '' echo on
-rem - build - Build the program
-
-del ivjperf.h
-call javah.exe -classpath "z:\jars\perfmsr.jar" -jni -o ivjperf.h org.eclipse.perfmsr.core.PerformanceMonitor
-echo After running this step you still need to do a build inside of VC
-@goto exit
-
-:help
-echo Build the program
-goto exit
-
-:exit
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance.win32/src/ivjperf.c b/bundles/org.eclipse.test.performance.win32/src/ivjperf.c
deleted file mode 100644
index 32ead06..0000000
--- a/bundles/org.eclipse.test.performance.win32/src/ivjperf.c
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- This DLL provides some native utility methods for the Performance Plugin.
-
- 2003/07/08 - I tried providing my own replacement to GetPerformanceInfo by calling pdhopenquery()
- but wsad always crashed when I shut it down, so I backed off (at least for now) and simply return
- a function not available return code. At some later point in time you can go back in VSS and restore
- that code and try again.
- */
-
-#include <windows.h>
-#include <wincon.h>
-#include <psapi.h>
-
-#include "ivjperf.h"
-
-enum loadStatusType {unknown, loaded, notFound} loadStatus = unknown, loadHandleCount = unknown;
-
-// loadStatusType loadStatus;
-
-// depending on the OS (NT4/W2k or XP) we use different functions
-typedef BOOL WINAPI _GPI(PPERFORMACE_INFORMATION pPerformanceInformation, DWORD cb);
-
-_GPI* gpGetPerformanceInfo = NULL; // this is our function pointer
-
-typedef BOOL WINAPI _GPHC(HANDLE hProcess, PDWORD count);
-_GPHC* gpGetProcessHandleCount = NULL;
-
-
-/*
- A helper function that makes it easier to throw exceptions.
-*/
-void throwException(JNIEnv * jniEnv, char* details)
-{
- jclass exceptionClass;
-
- exceptionClass = (*jniEnv)->FindClass(jniEnv, "java/lang/IllegalArgumentException");
- if (exceptionClass == 0)
- {
- printf("Could not find the exception class I have to give up");
- return;
- }
- (*jniEnv)->ThrowNew(jniEnv, exceptionClass, details);
- return;
-
-}
-
-/*
- A helper function that throws an exception that tells us a function is not supported
-*/
-void throwUnsupported(JNIEnv * jniEnv, char* details)
-{
- jclass exceptionClass;
-
- exceptionClass = (*jniEnv)->FindClass(jniEnv, "java/lang/UnsupportedOperationException");
- if (exceptionClass == 0)
- {
- printf("Could not find the UnsupportedOperationException class I have to give up");
- return;
- }
- (*jniEnv)->ThrowNew(jniEnv, exceptionClass, details);
- return;
-
-}
-
-/*
- A helper method that makes it easier to handle errors. If a windows
- error is encountered, then a RuntimeException is thrown.
-*/
-void handleSystemError(JNIEnv * jniEnv)
-{
- jclass exceptionClass;
- LPVOID lpMsgBuf;
-
- if (!FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- GetLastError(),
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
- (LPTSTR) &lpMsgBuf,
- 0,
- NULL ))
- {
- // I give up
- return;
- }
-
- exceptionClass = (*jniEnv)->FindClass(jniEnv, "java/lang/RuntimeException");
- (*jniEnv)->ThrowNew(jniEnv, exceptionClass, lpMsgBuf);
- LocalFree( lpMsgBuf );
-}
-
-/*
- Determine if you can (or have) loaded the GetPerformanceInfo function. Set the global variable
- loadStatus with your determination.
-*/
-void checkGetPerformanceInfo(JNIEnv * jniEnv)
-{
- if (loadStatus == unknown)
- {
- HMODULE psapiHandle = LoadLibraryA("PSAPI.dll");
- if (psapiHandle == NULL)
- {
- loadStatus = notFound;
- throwUnsupported(jniEnv, "Could not load psapi.dll");
- return;
- }
- gpGetPerformanceInfo = (_GPI*)GetProcAddress(psapiHandle, "GetPerformanceInfo");
-
- if(gpGetPerformanceInfo == NULL)loadStatus = notFound;
- else loadStatus = loaded;
- }
-}
-
-/*
- If you can answer the total amount of committed memory (for the entire machine). If you can't
- figure this out then return -1.
-*/
-jlong getTotalCommitted(JNIEnv * jniEnv)
-{
- BOOL rc;
- jlong result = -1;
- PERFORMACE_INFORMATION pi;
-
- checkGetPerformanceInfo(jniEnv);
- if (loadStatus == loaded)
- {
- rc = (gpGetPerformanceInfo)(&pi, sizeof(pi));
- if (!rc)handleSystemError(jniEnv);
- else result = pi.CommitTotal * pi.PageSize;
- }
- return result;
-}
-
-/*
- Answer the number of open handles in the process. If you can't get this information return -1.
-*/
-jlong getHandleCount(JNIEnv * jniEnv, HANDLE me)
-{
- jlong result = -1;
- DWORD handleCount;
-
- if (loadHandleCount == unknown)
- {
- HMODULE kernel32 = LoadLibraryA("kernel32.dll");
- if (kernel32 == NULL)
- {
- loadHandleCount = notFound;
- throwUnsupported(jniEnv, "Could not load kernel32.dll");
- }
- else
- {
- gpGetProcessHandleCount = (_GPHC*)GetProcAddress(kernel32, "GetProcessHandleCount");
-
- if(gpGetProcessHandleCount == NULL)loadHandleCount = notFound;
- else loadHandleCount = loaded;
- }
- }
-
- if (loadHandleCount == loaded)
- {
- (gpGetProcessHandleCount)(me, &handleCount);
- result = handleCount;
- }
- return result;
-}
-
-/*
- The following block is copied from the Java source code. It documents the counters array.
-
- * @param counters the results are returned in this array.
- * <ol>
- * <li>working set in bytes for this process
- * <li>peak working set in bytes for this process
- * <li>elapsed time in milliseconds
- * <li>user time in milliseconds
- * <li>kernel time in milliseconds
- * <li>page faults for the process
- * <li>commit charge total in bytes (working set for the entire machine). On some
- * machines we have problems getting this value so we return -1 in that case.
- * <li>number of GDI objects in the process
- * <li>number of USER objects in the process
- * <li>number of open handles in the process. returns -1 if this information is not available
- * <li>Number of read operations
- * <li>Number of write operations
- * <li>Number of bytes read
- * <li>Number of bytes written
- * </ol>
-
-*/
-JNIEXPORT jboolean JNICALL Java_org_eclipse_perfmsr_core_PerformanceMonitor_nativeGetPerformanceCounters
- (JNIEnv * jniEnv, jclass jniClass, jlongArray counters)
-{
- FILETIME creationTime, exitTime, kernelTime, userTime, systemTime;
- ULARGE_INTEGER uliCreation, uliSystem, uliKernel, uliUser;
- ULONGLONG diff;
- IO_COUNTERS ioCounters;
-
- jboolean result = TRUE;
- jsize len = (*jniEnv)->GetArrayLength(jniEnv, counters);
- jlong *body = (*jniEnv)->GetLongArrayElements(jniEnv, counters, 0);
- HANDLE me = GetCurrentProcess();
- PROCESS_MEMORY_COUNTERS memCounters;
- DWORD cb = sizeof(PROCESS_MEMORY_COUNTERS);
- BOOL rc = GetProcessMemoryInfo(me, &memCounters, cb);
- if (rc != 0)
- {
- body[0] = memCounters.WorkingSetSize;
- body[1] = memCounters.PeakWorkingSetSize;
- body[5] = memCounters.PageFaultCount;
- }
- else
- {
- handleSystemError(jniEnv);
- return FALSE;
- }
-
- if (!GetProcessTimes(me, &creationTime, &exitTime, &kernelTime, &userTime))
- {
- handleSystemError(jniEnv);
- return FALSE;
- }
- GetSystemTimeAsFileTime(&systemTime);
-
- memcpy(&uliCreation, &creationTime, sizeof(uliCreation));
- memcpy(&uliSystem, &systemTime, sizeof(uliSystem));
- memcpy(&uliKernel, &kernelTime, sizeof(uliSystem));
- memcpy(&uliUser, &userTime, sizeof(ULARGE_INTEGER));
- diff = uliSystem.QuadPart - uliCreation.QuadPart;
- body[2] = diff / 10000;
- body[3] = uliUser.QuadPart / 10000;
- body[4] = uliKernel.QuadPart / 10000;
- body[6] = getTotalCommitted(jniEnv);
-
- body[7] = GetGuiResources(me, GR_GDIOBJECTS);
- body[8] = GetGuiResources(me, GR_USEROBJECTS);
- body[9] = getHandleCount(jniEnv, me);
-
- if (!GetProcessIoCounters(me, &ioCounters))
- {
- handleSystemError(jniEnv);
- return FALSE;
- }
- body[10] = ioCounters.ReadOperationCount;
- body[11] = ioCounters.WriteOperationCount;
- body[12] = ioCounters.ReadTransferCount;
- body[13] = ioCounters.WriteTransferCount;
-
- (*jniEnv)->ReleaseLongArrayElements(jniEnv, counters, body, 0);
-
- return result;
-}
-
-JNIEXPORT jstring JNICALL Java_org_eclipse_perfmsr_core_PerformanceMonitor_nativeGetUUID
- (JNIEnv * jniEnv, jclass jniClass)
-{
- UUID uuid;
- unsigned char* uuidStr;
- jstring result;
-
- UuidCreate(&uuid);
- UuidToString(&uuid, &uuidStr);
-
- result = (*jniEnv)->NewStringUTF(jniEnv, uuidStr);
- RpcStringFree(&uuidStr);
-
- return result;
-}
-
-
-JNIEXPORT void JNICALL Java_org_eclipse_perfmsr_core_PerformanceMonitor_nativeGetPerformanceInfo
- (JNIEnv * jniEnv, jclass jniClass, jlongArray counters)
-{
- jlong *body;
- BOOL rc;
- PERFORMACE_INFORMATION pi;
-
- jsize len = (*jniEnv)->GetArrayLength(jniEnv, counters);
-
- if (len != 13)
- {
- throwException(jniEnv, "Wrong number of elements in array, 13 are expected");
- return;
- }
-
- checkGetPerformanceInfo(jniEnv);
- if (loadStatus == notFound)
- {
- throwUnsupported(jniEnv, "The GetPerformanceInfo() function is not available");
- return;
- }
-
- body = (*jniEnv)->GetLongArrayElements(jniEnv, counters, 0);
-
- rc = (gpGetPerformanceInfo)(&pi, sizeof(pi));
- if (!rc)
- {
- handleSystemError(jniEnv);
- return;
- }
-
- body[0] = pi.CommitTotal;
- body[1] = pi.CommitLimit;
- body[2] = pi.CommitPeak;
- body[3] = pi.PhysicalTotal;
- body[4] = pi.PhysicalAvailable;
- body[5] = pi.SystemCache;
- body[6] = pi.KernelTotal;
- body[7] = pi.KernelPaged;
- body[8] = pi.KernelNonpaged;
- body[9] = pi.PageSize;
- body[10] = pi.HandleCount;
- body[11] = pi.ProcessCount;
- body[12] = pi.ThreadCount;
-
- (*jniEnv)->ReleaseLongArrayElements(jniEnv, counters, body, 0);
-
-}
-
diff --git a/bundles/org.eclipse.test.performance.win32/src/ivjperf.h b/bundles/org.eclipse.test.performance.win32/src/ivjperf.h
deleted file mode 100644
index c7173b8..0000000
--- a/bundles/org.eclipse.test.performance.win32/src/ivjperf.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-/* Header for class org_eclipse_perfmsr_core_PerformanceMonitor */
-
-#ifndef _Included_org_eclipse_perfmsr_core_PerformanceMonitor
-#define _Included_org_eclipse_perfmsr_core_PerformanceMonitor
-#ifdef __cplusplus
-extern "C" {
-#endif
-/* Inaccessible static: _debug */
-/* Inaccessible static: _isLoaded */
-#undef org_eclipse_perfmsr_core_PerformanceMonitor_WHAT_ELASPED_IDX
-#define org_eclipse_perfmsr_core_PerformanceMonitor_WHAT_ELASPED_IDX 2L
-#undef org_eclipse_perfmsr_core_PerformanceMonitor_WHAT_USER_TIME_IDX
-#define org_eclipse_perfmsr_core_PerformanceMonitor_WHAT_USER_TIME_IDX 3L
-#undef org_eclipse_perfmsr_core_PerformanceMonitor_WHAT_KERNEL_TIME_IDX
-#define org_eclipse_perfmsr_core_PerformanceMonitor_WHAT_KERNEL_TIME_IDX 4L
-#undef org_eclipse_perfmsr_core_PerformanceMonitor_WHAT_COMMITTED_IDX
-#define org_eclipse_perfmsr_core_PerformanceMonitor_WHAT_COMMITTED_IDX 6L
-#undef org_eclipse_perfmsr_core_PerformanceMonitor_WHAT_OPEN_HANDLES_IDX
-#define org_eclipse_perfmsr_core_PerformanceMonitor_WHAT_OPEN_HANDLES_IDX 9L
-/* Inaccessible static: _df */
-/* Inaccessible static: _map */
-/*
- * Class: org_eclipse_perfmsr_core_PerformanceMonitor
- * Method: nativeGetPerformanceInfo
- * Signature: ([J)V
- */
-JNIEXPORT void JNICALL Java_org_eclipse_perfmsr_core_PerformanceMonitor_nativeGetPerformanceInfo
- (JNIEnv *, jclass, jlongArray);
-
-/*
- * Class: org_eclipse_perfmsr_core_PerformanceMonitor
- * Method: nativeGetPerformanceCounters
- * Signature: ([J)Z
- */
-JNIEXPORT jboolean JNICALL Java_org_eclipse_perfmsr_core_PerformanceMonitor_nativeGetPerformanceCounters
- (JNIEnv *, jclass, jlongArray);
-
-/*
- * Class: org_eclipse_perfmsr_core_PerformanceMonitor
- * Method: nativeGetUUID
- * Signature: ()Ljava/lang/String;
- */
-JNIEXPORT jstring JNICALL Java_org_eclipse_perfmsr_core_PerformanceMonitor_nativeGetUUID
- (JNIEnv *, jclass);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/bundles/org.eclipse.test.performance.win32/src/resource.h b/bundles/org.eclipse.test.performance.win32/src/resource.h
deleted file mode 100644
index 71b6748..0000000
--- a/bundles/org.eclipse.test.performance.win32/src/resource.h
+++ /dev/null
@@ -1,14 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by ivjperf.rc
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 101
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1001
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
diff --git a/bundles/org.eclipse.test.performance/.classpath b/bundles/org.eclipse.test.performance/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.test.performance/.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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.test.performance/.cvsignore b/bundles/org.eclipse.test.performance/.cvsignore
deleted file mode 100644
index 341a3ee..0000000
--- a/bundles/org.eclipse.test.performance/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-cloudscape.log
-testDBs
-cslook.log
-out.txt
-derby.log
diff --git a/bundles/org.eclipse.test.performance/.project b/bundles/org.eclipse.test.performance/.project
deleted file mode 100644
index fa31398..0000000
--- a/bundles/org.eclipse.test.performance/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.test.performance</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.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.test.performance/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.test.performance/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index bc8ccbe..0000000
--- a/bundles/org.eclipse.test.performance/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,64 +0,0 @@
-#Wed Apr 19 13:00:25 CEST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.test.performance/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.test.performance/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 2c96a42..0000000
--- a/bundles/org.eclipse.test.performance/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 18 20:32:40 CEST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.test.performance/META-INF/MANIFEST.MF b/bundles/org.eclipse.test.performance/META-INF/MANIFEST.MF
deleted file mode 100644
index fe39127..0000000
--- a/bundles/org.eclipse.test.performance/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.test.performance
-Bundle-Version: 3.3.0.qualifier
-Bundle-Activator: org.eclipse.test.internal.performance.PerformanceTestPlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.perfmsr.core,
- org.eclipse.test.internal.performance,
- org.eclipse.test.internal.performance.data,
- org.eclipse.test.internal.performance.db,
- org.eclipse.test.internal.performance.eval,
- org.eclipse.test.internal.performance.tests,
- org.eclipse.test.performance
-Require-Bundle: org.eclipse.core.runtime,
- org.junit,
- org.apache.derby;resolution:=optional,
- org.apache.derby.core;resolution:=optional,
- Cloudscape;resolution:=optional
-Eclipse-LazyStart: true
-Bundle-ClassPath: .
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.test.performance/about.html b/bundles/org.eclipse.test.performance/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.test.performance/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance/build.properties b/bundles/org.eclipse.test.performance/build.properties
deleted file mode 100644
index 7f2fa3e..0000000
--- a/bundles/org.eclipse.test.performance/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-
-bin.includes = .,\
- plugin.properties,\
- about.html,\
- META-INF/
-
-source.. = src/
diff --git a/bundles/org.eclipse.test.performance/doc/FP_I200409240800_I200410050800.jpeg b/bundles/org.eclipse.test.performance/doc/FP_I200409240800_I200410050800.jpeg
deleted file mode 100644
index a7f2ff5..0000000
--- a/bundles/org.eclipse.test.performance/doc/FP_I200409240800_I200410050800.jpeg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.test.performance/doc/Performance Tests HowTo.html b/bundles/org.eclipse.test.performance/doc/Performance Tests HowTo.html
deleted file mode 100644
index 99bb584..0000000
--- a/bundles/org.eclipse.test.performance/doc/Performance Tests HowTo.html
+++ /dev/null
@@ -1,589 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
- <title>Performance Tests HowTo</title>
- <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
-</head>
-<body>
-
-<h1>Performance Tests HowTo</h1>
-<p>
-By Sonia Dimitrov, Christof Marti, Andre Weinand<br>
-2005/02/24<br>
-
-<p>
-The Eclipse performance test plugin (org.eclipse.test.performance)
-provides infrastructure for instrumenting programs
-to collect performance data and to assert that performance doesn't drop
-below a baseline. The infrastructure is supported on Windows, Linux,
-and MacOS X.
-
-<p>
-The first part of this document describes how performance tests are
-written and executed, the <a href="#cloudscape">second part</a> explains how performance data is
-collected in a database and how this database is installed and
-configured.
-
-<h2>Writing Performance Tests</h2>
-
-<h3>Setting up the environment</h3>
-
-<ul>
- <li>check out the following plug-ins from dev.eclipse.org.</li>
- <ul>
- <li>org.eclipse.test.performance</li>
- <li>org.eclipse.test.performance.win32 (for Windows only)</li>
- </ul>
- <li>you need org.junit</li>
- <li>add org.eclipse.test.performance to your test plug-in's dependencies</li>
-</ul>
-
-<h3>Writing a performance test case</h3>
-
-A performance test case is an ordinary JUnit test TestCase.
-<ul>
-<li>create a test case with test methods along the lines of:
-<pre>
-public void testMyOperation() {
- Performance perf= Performance.getDefault();
- PerformanceMeter performanceMeter= perf.<b>createPerformanceMeter</b>(perf.getDefaultScenarioId(this));
- try {
- for (int i= 0; i < 10; i++) {
- performanceMeter.<b>start</b>();
- toMeasure();
- performanceMeter.<b>stop</b>();
- }
- performanceMeter.<b>commit</b>();
- perf.<b>assertPerformance</b>(performanceMeter);
- } finally {
- performanceMeter.<b>dispose</b>();
- }
- }
-</pre>
-</li>
-
-<li>or create a test case extending <code>PerformanceTestCase</code>
-which is a convenience class that makes the
-use of <code>PerformanceMeter</code> transparent:
-<pre>
-public class MyPerformanceTestCase extends PeformanceTestCase {
-
- public void testMyOperation() {
- for (int i= 0; i < 10; i++) {
- <b>startMeasuring</b>();
- toMeasure();
- <b>stopMeasuring</b>();
- }
- <b>commitMeasurements</b>();
- <b>assertPerformance</b>();
- }
-}
-</pre>
-</li>
-</ul>
-
-Notes:
-<ul>
-<li>
-The scenario id passed to <code>createPerformanceMeter(...)</code> must be unique in a single test run
-and must be the same for each build. This enables comparisons between builds.
-The <code>Peformance#getDefaultScenarioId(...)</code> methods are provided for convenience.
-</li>
-
-<li>
-<code>PerformanceMeter</code> supports repeated measurements by multiple invocations
-of the <code>start()</code>, <code>stop()</code> sequence. The call
-to <code>commit()</code> is required before evaluation with <code>assertPerformance()</code>
-and <code>dispose()</code> is required before releasing the meter.
-</li>
-
-<li>The first iterations of the above <code>for</code>-loop will generally take more time because the
-code is not optimized by the JIT compiler yet. This can introduce some variance to the
-measurements, especially if other tests run before and change in some way that affects
-the JIT's optimization of the measured code. A simple way to stabilize the measurements
-is to run the code a few times before the measurements start. Caches also need special
-caution as they can affect the measurements.
-</li>
-
-<li>
-As a rule of thumb the measured code should take at least 100ms on the target machine in
-order for the measurements to be relevant. For example, Windows' and Linux 2.4's system time increases
-in 10ms steps. In some cases the measured code can be invoked repeatedly to accumulate the
-elapsed time, however, it should be kept in mind that JIT could optimize this more aggressively
-than in real-world scenarios.
-</li>
-</ul>
-
-<h3>Participating in the performance summary (aka "Performance Fingerprint")</h3>
-
-If the number of performance tests grows large, it becomes harder to
-get a good overview of the performance characteristics of a build. A
-solution for this problem is a performance summary chart that
-tries to condense a small subset of key performance tests into a chart
-that fits onto a single page. Currently the performance infrastructure
-supports two levels of summaries, one global and any number of "local" summaries.
-A local summary is typically associated with a component.
-<p>
-A summary bar chart shows the performance development of about 20 tests relative to a
-reference build in an easy to grasp red/green presentation.
-<p>
-<img alt="summary graph" src="FP_I200409240800_I200410050800.jpeg">
-<p>
-So dependent on the total number of components every Eclipse component can tag one or
-two tests for inclusion in a global and up to 20 for a local performance summary.
-Tests marked for the global summary are automatically included for a local summary.
-<p>
-Marking a test for inclusion is done by passing a performance meter
-into the method Performance.tagAsGlobalSummary(...) or Performance.tagAsSummary(...).
-Both methods should
-be called outside of start/stop calls but it must be called before the
-the call to commit().
-<pre>
-// ....
-Performance perf= Performance.getDefault();
-PerformanceMeter pm= perf.createPerformanceMeter(perf.getDefaultScenarioId(this));
-perf.<b>tagAsGlobalSummary</b>(pm, "A Short Name", Dimension.CPU_TIME);
-try {
- // ...
-</pre>
-<p>
-In order to keep the overview graph small, only a single dimension (CPU_TIME, USED_JAVA_HEAP etc.) of
-the test's data is shown and only a short name is used to label the
-data (instead of the rather long scenario ID). Both the short label as
-well as the dimension must be supplied in the calls to tagAsGlobalSummary and tagAsSummary.
-The available dimensions can be found in <code>org.eclipse.test.performance.Dimension</code>.
-
-<p>
-The PerformanceTestCase provides similar methods that must be called
-before startMeasuring():
-<pre>
-public class MyPerformanceTestCase extends PerformanceTestCase {
-
- public void testMyOperation() {
- <b>tagAsSummary</b>("A Short Name", Dimension.CPU_TIME);
- for (int i= 0; i < 10; i++) {
- startMeasuring();
- toMeasure();
- stopMeasuring();
- }
- commitMeasurements();
- assertPerformance();
- }
-}</pre>
-
-<h3>Running a performance test case (from a launch configuration)</h3>
-
-<ul>
- <li>create a new JUnit Plug-in Test launch configuration for the test case</li>
- <li>add "-Xms256M -Xmx256M" or similar to the VM arguments to avoid memory pressure during the measurements</li>
- <li>run the launch configuration</li>
- <li>by default the measured averages of the performance monitor
-are written to the console on <code>commit()</code>. This is
-surpressed if performance tests are configured to store data in the
-database (see below).
- </li>
-</ul>
-
-<h3>Running a performance test case (from the command-line)</h3>
-
-<ul>
- <li>this method is of particular interest, if you want to do precise measurements of a specific build</li>
- <li>export the following plug-ins as 'Deployable plug-ins' to the eclipse installation directory (not the 'plugins' directory; choose to deploy as
-'a directory structure')</li>
- <ul>
- <li>org.eclipse.test</li>
- <li>org.eclipse.test.performance</li>
- <li>org.eclipse.test.performance.win32 (for Windows only)</li>
- <li>your test plug-in(s)</li>
- </ul>
- <li>copy the following .bat file and customize it to your needs (Windows):</li>
- <pre>
-@echo off
-
-REM Installation paths
-SET ECLIPSEPATH=c:\eclipse
-SET JVMPATH=c:\jdk\jdk1.4.2_05
-
-REM Paths, relative to ECLIPSEPATH
-SET BUILD=I200411050810
-SET WORKSPACE=workspace\performance
-
-REM Test
-SET TESTPLUGIN=org.eclipse.jdt.text.tests
-SET TESTCLASS=org.eclipse.jdt.text.tests.performance.OpenQuickOutlineTest
-
-REM For headless tests use: org.eclipse.test.coretestapplication
-SET APPLICATION=org.eclipse.test.uitestapplication
-
-REM Add -clean when the installation changes
-SET OPTIONS=-console -consolelog -showlocation
-SET JVMOPTIONS=-Xms256M -Xmx256M
-
-ECHO Build: %ECLIPSEPATH%\%BUILD%
-ECHO Workspace: %ECLIPSEPATH%\%WORKSPACE%
-ECHO Test: %TESTPLUGIN%\%TESTCLASS%
-
-%JVMPATH%\bin\java %JVMOPTIONS% -cp %ECLIPSEPATH%\%BUILD%\startup.jar org.eclipse.core.launcher.Main %OPTIONS% -application %APPLICATION% -data %ECLIPSEPATH%\%WORKSPACE% -testPluginName %TESTPLUGIN% -className %TESTCLASS%
-
-pause
-</pre>
- <li>after testing the setup you may want to close other applications to avoid distortion of the measurements</li>
-</ul>
-
-<h3>Running a performance test case (within the Automated Testing Framework on each build)</h3>
-
-If the <code>test.xml</code> of your test plug-in already exists
-and looks similar to the <code>jdt.text.tests</code>' one, add targets
-similar to those shown below. The <code>performance</code> target is
-the entry point for performance testing like the <code>run</code> target
-is for correctness testing.
-<pre>
-<!-- This target defines the performance tests that need to be run. -->
-<target name="performance-suite">
- <property name="your-performance-folder" value="${eclipse-home}/your_performance_folder"/>
- <delete dir="${your-performance-folder}" quiet="true"/>
- <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
- <property name="data-dir" value="${your-performance-folder}"/>
- <property name="plugin-name" value="${plugin-name}"/>
- <property name="classname" value="<em><your fully qualified test case class name></em>"/>
- </ant>
-</target>
-
-<!-- This target runs the performance test suite. Any actions that need to happen -->
-<!-- after all the tests have been run should go here. -->
-<target name="performance" depends="init,performance-suite,cleanup">
- <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
- <property name="includes" value="org*.xml"/>
- <property name="output-file" value="${plugin-name}.xml"/>
- </ant>
-</target>
-</pre>
-
-Notes:
-<ul>
-<li>
-Performance measurements are run on a dedicated performance measurement machine of the Releng team.
-</li>
-
-<li>
-If you have created a new source folder, do not forget to include
-it in the build (add it to the "build.properties" file).
-</li>
-</ul>
-
-<h3>Running a performance test case (within the Automated Testing Framework, locally)</h3>
-
-<ul>
- <li>
- modify <code>test.xml</code> as described above
- </li>
-
- <li>
- download a build and its accompanying test framework plug-ins contained
- in eclipse-test-framework-*.zip
- </li>
-
- <li>
- unzip the Eclipse SDK and the eclipse-test-framework zip to install your target Eclipse<br>
- (you need <a href="http://www.info-zip.org/pub/infozip/UnZip.html">Info-ZIP
- UnZip</a> version 5.41 or later (<a href="ftp://sunsite.cnlab-switch.ch/mirror/infozip/WIN32/unz551xN.exe">Windows</a>)
- installed and added to the path).
- </li>
-
- <li>
- export your test plug-in as a 'Deployable plug-in' to the target Eclipse installed
- above; choose to export as directory structure.
- </li>
-
- <li>
- open a terminal or command window and execute the follwoing (on a single line):<br>
- <pre>
- java -jar <i><b><an eclipse install></i></b>/startup.jar
- -application org.eclipse.ant.core.antRunner
- -file <i><b><target eclipse install/plugins/your test plug-in id_version></b></i>/test.xml
- performance
- -Dos=<i><b><os></b></i> -Dws=<i><b><ws></b></i> -Darch=<i><b><arch></b></i> -Declipse_home=<i><b><target eclipse install></b></i>
- "-Dvmargs=-Xms256M -Xmx256M"
- -logger org.apache.tools.ant.DefaultLogger
- </pre>
- </li>
-
- <li>
- The JUnit results are written to an xml file in the root of the target Eclipse
- and the performance measurements are written to the console.
- </li>
-
-</ul>
-
-<h2><a name="cloudscape"></a>Setting up the Derby database</h2>
-
-Performance tests are only valuable if measured data can be
-monitored over time and compared against reference data.
-For this functionality the Eclipse performance plugin makes use of
-the Apache project's <a href="http://incubator.apache.org/derby/">Derby</a>
-database (formerly called
-<a href="http://www-306.ibm.com/software/data/cloudscape/">Cloudscape</a>).
-</p>
-<p>Derby is a database engine written in Java that can be accessed
-via JDBC. Derby is easily embeddable in Java programs or can run
-as a network server.
-</p>
-<p>This section describes how to install Derby and how to
-configure the performance test plugin to use Derby.
-
-<h3>Getting and installing Derby</h3>
-
-The performance infrastructure does not include Derby.
-If you want to leverage Derby
-you need to download and install it.
-
-<p>
-The performance plugin has an optional prereq for a "org.apche.derby"
-library project. Since it is optional, you won't see any compile time
-errors when loading the performance plugin from the Eclipse repository
-and the Derby project is not available in your workspace. However
-you'll see runtime errors when running the tests and trying to access
-the database.<br>
-
-<p>
-If you have access to the following repository you can get the
-org.apache.derby library project from there:
-<pre>
- :pserver:anonymous@ottcvs1.ott.oti.com:/home/cvs/zrheclipse
-</pre>
-Otherwise get Derby from
-<a href="http://www-106.ibm.com/developerworks/db2/library/techarticle/dm-0408cline/index.html">here</a>.
-Unpack the archive to any directory.
-<br>
-To create a library project for Derby, open the Java project
-wizard and enter "org.eclipse.derby" as the project's name. Go to the next
-page and select the "Libraries" tab. Remove the JRE and add the five
-jar-files () from Derby's lib directory via the "Add External JARs"
-button. Switch to the "Order and Export" tab and check all five
-libraries. Press "Finish". Create a new file "plugin.xml" inside the
-Derby project and paste the following contents into it:<br>
-<pre>
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- id="org.apache.derby"
- name="Derby"
- version="1.0.0">
- <runtime>
- <library name="db2jcc.jar">
- <export name="*"/>
- </library>
- <library name="db2jcc_license_c.jar">
- <export name="*"/>
- </library>
- <library name="derby.jar">
- <export name="*"/>
- </library>
- <library name="derbynet.jar">
- <export name="*"/>
- </library>
- <library name="derbytools.jar">
- <export name="*"/>
- </library>
- </runtime>
-</plugin>
-</pre>
-
-In addition you'll need to load the performance plugin
-(org.eclipse.test.performance) and if you are running
-on Windows the associated fragment (org.eclipse.test.performance.win32).
-
-
-<h3>Configuring the performance plugin for using Derby</h3>
-
-The performance test plugin is configured via the three Java properties
-eclipse.perf.dbloc, eclipse.perf.config, and eclipse.perf.assertAgainst.
-<p>
-The eclipse.perf.dbloc specifies where the Derby DB is located.
-If no value is given
-<pre>
- -Declipse.perf.dbloc=
-</pre>
-Derby runs in embedded mode (not as a separate server)
-and the DB will live in your home directory.
-<p>
-If an absolute or relative path is given, Derby uses or creates
-the DB in that location. E.g. with (Linux and MacOS X)
-<pre>
- -Declipse.perf.dbloc=/tmp/derby
-</pre>
-Derby runs in embedded mode and creates the database under
-/tmp/derby.
-<p>
-To connect to a Derby server running locally (or remotely) use the
-following:
-<pre>
- -Declipse.perf.dbloc=net://<i>tcp-ip address</i>
-</pre>
-With the properties eclipse.perf.config and eclipse.perf.assertAgainst
-you specify the name under which performance data is stored in the
-database and the name of the reference data to compare against. This
-"name" is not a single string but a set of key/value pairs separated by
-semicolons:
-<pre>
- -Declipse.perf.config=<i>key1</i>=<i>value1</i>;<i>key2</i>=<i>value2</i>;...;<i>keyn</i>=<i>valuen</i>
- -Declipse.perf.assertAgainst=<i>key1</i>=<i>value1</i>;<i>key2</i>=<i>value2</i>;...;<i>keyn</i>=<i>valuen</i>
-</pre>
-The key/value pairs can be used to associate the collected
-performance data with information about the configuration that was used
-to generate the data. Typically this includes the name of the build,
-the system on which the test were run, or the used Java VM. So in this
-example:
-<pre>
- -Declipse.perf.config=build=N20040914;host=relengwin;jvm=j9
-</pre>
-performance data for the nightly build N20040914 is stored in the
-database under a "name" that consist of three key/value pairs.<br>
-If the tests are run multiple times with the same arguments, the new
-data does not replace
-old data but is added under the same name. Programs that visualize the
-data are expected
-to aggregate the data for example by calculating the average of all
-tests.
-
-<p>
-To assert that performance data collected for another build does not
-degrade with respect to some reference data the assertAgainst property
-is used similarly:
-<pre>
- -Declipse.perf.assertAgainst=build=R3.0;host=relengwin;jvm=j9
-</pre>
-This property enables any "assertPerformance" calls in your performance
-tests and compares the newly measured data against the data specified
-by the three key/value pairs. Please note that the order of the pairs
-does not matter when looking up the data in the database. However, the
-number of key/value pairs must be identical.
-<p>
-Because in most cases you want to store newly collected data as well as
-assert against other reference data at the same time you'll need to
-specify both properties. In this case only those key/value pairs must
-be listed in the assertAgainst property, that differ from the config
-property:
-<pre>
- -Declipse.perf.config=build=N20040914;host=relengwin
- -Declipse.perf.assertAgainst=build=R3.0
-</pre>
-So in the example from above the new performance data is stored in the
-database under the build name
-"N20040914" and the host "relengwin" and the "assertPerformance"
-compares this data against data tagged with a build name of "R3.0" and
-an implicitely specified host "relengwin".
-<p>
-If you want to assert the average of multiple runs (instead of the data
-of a single run)
-against the reference data, do the following:
-<pre>
- // Run program 4 times to collect data under build name "I20040914"
- ... -Declipse.perf.config=build=I20040914
- ... -Declipse.perf.config=build=I20040914
- ... -Declipse.perf.config=build=I20040914
- ... -Declipse.perf.config=build=I20040914
-
- // Run program a 5th time and collect more data under I20040914
- // and assert the average of 5 runs of I20040914 against some baseline data
- ... -Declipse.perf.config=build=I20040914 -Declipse.perf.assertAgainst=build=R3.0
-</pre>
-
-<h3>Viewing the data</h3>
-
-Since we do not (yet) have fancy visualization tools, the performance
-test plugin provides a class <code>org.eclipse.test.internal.performance.db.View</code>
-that can be run as a standalone program for viewing the data contained in the database in a tabular format.
-<p>
-You need to specify the database location via the <code>eclipse.perf.dbloc</code>
-property (most easily done via a launch configuration).
-Select the data to view by either specifying a variation via the <code>eclipse.perf.config</code> property or
-by directly setting the key/value pairs of the variation at the beginning of the program's <code>main</code> method.
-If you only want to view specific scenarios, use an appropriate pattern for the local variable <code>scenarioPattern</code>.
-The local variable <code>seriesKey</code> specifies what variation is shown on the x-axis of the table.
-<p>
-So the following setup:
-<pre>
-public class View {
-
- public static void main(String[] args) {
-
- Variations <b>variations</b>= PerformanceTestPlugin.getVariations();
- variations.put("host", "relengwin");
- variations.put("build", "I%");
-
- String <b>scenarioPattern</b>= "%RevertJavaEditorTest%";
-
- String <b>seriesKey</b>= "build";
-
- // ...
-</pre>
-creates a table showing all dimensions of the (single) scenario selected by the pattern
-"<code>%testRevertJavaEditor%</code>" for all integration builds (that is builds starting with a capital 'I').
-<pre>
-Scenario: org.eclipse.jdt.text.tests.performance.RevertJavaEditorTest#testRevertJavaEditor()
-Builds: I200409240800 I200409281200 I200410050800 I200410190941 I200410260800
-CPU Time: 1.02 s [284 ms] 1.05 s [327 ms] 971 ms 1 s 481 ms
-Committed: 69K [246K] 119K [389K] 103K 111K -97484
-Elapsed Process: 1.02 s [286 ms] 1.07 s [345 ms] 981 ms 1.01 s 481 ms
-Kernel time: 41 ms [27 ms] 48 ms [40 ms] 46 ms 28 ms 22 ms
-Page Faults: 145 [125] 148 [125] 176 191 143
-System Time: 1.02 s [285 ms] 1.06 s [345 ms] 981 ms 1.01 s 477 ms
-</pre>
-
-If you are interested in creating performance charts and tables similar to those available on the eclipse platform
-download pages, you could try the stand-alone java program org.eclipse.test.performance.ui.Main stored in the
-org.eclipse.releng.basebuilder project. Refer to the <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.releng.basebuilder/plugins/org.eclipse.test.performance.ui/readme.html?rev=HEAD&content-type=text/html">readme.html</a> in
-org.eclipse.releng.basebuilder/plugins/org.eclipse.test.performance.ui for more details.
-
-<h3>How to setup a Derby server (on Linux and MacOS X)</h3>
-
-<ul>
-
-<li>Either get Derby from the repository or from <a
- href="http://www-106.ibm.com/developerworks/db2/library/techarticle/dm-0408cline/index.html">here</a>.
-</li>
-
-<li>Get the (Bourne) shell script "derby.sh" from the scripts folder of <code>org.eclipse.test.performance</code>
-and install it on the server
-(rename it to "derby" and make it executable; if you've checked out the
-file on Windows and copied it to Linux,
-it might be necessary to convert line delimiters with the dos2unix
-tool).
-The script simplifies the usage of the Derby tools - especially
-starting and stopping the server - because
-it sets the correct classpath and some important properties.
-</li>
-
-<li>Edit the script and adapt the variables <code>CSLIB</code>, <code>DBROOT</code>,
-and <code>JAVA</code>
-to your installation. <code>CSLIB</code> should point to the directory
-containing the Derby jars.
-If you've used the Derby installer, then this is the lib directory
-inside the Cloudscape 10.0 directory.
-If you are using the org.apache.derby project from the repository, then this
-is just the project folder.
-</li>
-
-<li>in a Shell execute
-<pre>
- derby start &
-</pre>
-to launch the server in background. The server will send this to
-stdout:
-<pre>
- Server is ready to accept connections on port 1527.
-</pre>
-to the console.
-</li>
-
-<li>stop the server with
-<pre>
- derby stop
-</pre>
-</li>
-</ul>
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.test.performance/plugin.properties b/bundles/org.eclipse.test.performance/plugin.properties
deleted file mode 100644
index fdec7e3..0000000
--- a/bundles/org.eclipse.test.performance/plugin.properties
+++ /dev/null
@@ -1,13 +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
-###############################################################################
-
-Plugin.name= Performance Test Plug-in
-Plugin.providerName= Eclipse.org
diff --git a/bundles/org.eclipse.test.performance/scripts/cs.sh b/bundles/org.eclipse.test.performance/scripts/cs.sh
deleted file mode 100644
index c55c93c..0000000
--- a/bundles/org.eclipse.test.performance/scripts/cs.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-
-#
-# This script makes it easier to launch various cloudscape tools
-# Usage: "sh cs.sh <command>"
-# where <command> is one of "start, stop, ij, look"
-#
-
-# where the Cloudscape libraries reside
-CSLIB=/Volumes/Stuff/Java/Cloudscape_10.0/lib
-
-# where the DBs live
-DBROOT=/tmp/cloudscape
-
-# name of the default DB
-DBNAME=perfDB
-
-# the Java VM
-JAVA=/usr/bin/java
-
-NSC="$JAVA -Dcloudscape.system.home=$DBROOT com.ihost.cs.drda.NetworkServerControl"
-
-export CLASSPATH="${CSLIB}/cs.jar:${CSLIB}/cstools.jar:${CSLIB}/csnet.jar:${CLASSPATH}"
-
-case $1 in
- start )
- $NSC start -h 0.0.0.0
- break;;
-
- stop )
- $NSC shutdown
- break;;
-
- ij )
- $JAVA -Dij.protocol=jdbc:cloudscape: -Dij.database=$DBROOT/$DBNAME com.ihost.cs.tools.ij
- break;;
-
- look )
- $JAVA com.ihost.cs.tools.cslook -d jdbc:cloudscape:$DBROOT/$DBNAME
- break;;
-
- * )
- echo "unknown command $1"
- break ;;
-esac
diff --git a/bundles/org.eclipse.test.performance/scripts/derby.sh b/bundles/org.eclipse.test.performance/scripts/derby.sh
deleted file mode 100644
index a0e1ba9..0000000
--- a/bundles/org.eclipse.test.performance/scripts/derby.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-
-#
-# This script makes it easier to launch various Derby tools
-# Usage: "sh derby.sh <command>"
-# where <command> is one of "start, stop, ij, look"
-#
-
-# where the Derby libraries reside
-CSLIB=/Volumes/Stuff/Java/IBM/Cloudscape_10.0/lib
-
-# where the DBs live
-DBROOT=/tmp/derby
-
-# name of the default DB
-DBNAME=perfDB
-
-# the Java VM
-JAVA=/usr/bin/java
-
-#MacOS: NSC="-Dderby.system.home=$DBROOT -Dderby.storage.fileSyncTransactionLog=true org.apache.derby.drda.NetworkServerControl"
-NSC="-Dderby.system.home=$DBROOT org.apache.derby.drda.NetworkServerControl"
-
-export CLASSPATH="${CSLIB}/derby.jar:${CSLIB}/derbytools.jar:${CSLIB}/derbynet.jar:${CLASSPATH}"
-
-case $1 in
- start )
- $JAVA -Xms256M -Xmx256M $NSC start -h 0.0.0.0
- break;;
-
- stop )
- $JAVA $NSC shutdown
- break;;
-
- ij )
- $JAVA -Dij.protocol=jdbc:derby: -Dij.database=$DBROOT/$DBNAME com.ihost.cs.tools.ij
- break;;
-
- look )
- $JAVA com.ihost.cs.tools.cslook -d jdbc:derby:$DBROOT/$DBNAME
- break;;
-
- * )
- echo "unknown command $1"
- break ;;
-esac
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/perfmsr/core/PerformanceMonitor.java b/bundles/org.eclipse.test.performance/src/org/eclipse/perfmsr/core/PerformanceMonitor.java
deleted file mode 100644
index 1f75ac2..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/perfmsr/core/PerformanceMonitor.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.perfmsr.core;
-
-
-/**
- * Some natives for PerformanceMonitorWindows.
- * (We cannot fold them into the PerformanceMonitorWindows because this would break the natives
- * and we don't want to rebuild them yet).
- */
-public class PerformanceMonitor {
-
- /**
- * ivjperf - name of the library that implements the native methods.
- */
- private static final String NATIVE_LIBRARY_NAME= "ivjperf"; //$NON-NLS-1$
-
- /**
- * Is the native library loaded? 0-don't know, 1-no, 2-yes
- */
- private static int fgIsLoaded= 0;
-
- /**
- * Answer true if the native library for this class has been successfully
- * loaded. If the load has not been attempted yet, try to load it.
- * @return true if native library has been successfully loaded
- */
- public static boolean isLoaded() {
- if (fgIsLoaded == 0) {
- try {
- System.loadLibrary(NATIVE_LIBRARY_NAME);
- fgIsLoaded= 2;
- } catch (Throwable e) {
- e.printStackTrace();
- fgIsLoaded= 1;
- }
- }
- return fgIsLoaded == 2;
- }
-
- /**
- * Calls the Windows GetPerformanceInfo function
- * @param counters any array of counters that corresponds to the Windows
- * PERFORMANCE_INFORMATION structure.
- */
- public static native void nativeGetPerformanceInfo(long[] counters);
-
- public static native boolean nativeGetPerformanceCounters(long[] counters);
-
- public static native String nativeGetUUID();
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/InternalDimensions.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/InternalDimensions.java
deleted file mode 100644
index 72b3ed9..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/InternalDimensions.java
+++ /dev/null
@@ -1,84 +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.test.internal.performance;
-
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.data.Unit;
-
-/**
- * Some hard coded measurement id's.
- */
-public interface InternalDimensions {
-
-// Common:
-// OS Counters:
- Dim
- SYSTEM_TIME= new Dim(2, Unit.SECOND, 1000), // System.currentTimeMillis. "System Time"
- USED_JAVA_HEAP= new Dim(3, Unit.BYTE), // Runtime.totalMemory() - Runtime.freeMemory()
- WORKING_SET= new Dim(4, Unit.BYTE), // the working set (or on Linux the resident set). "Working Set"
-// USER_TIME= new Dim(10, Unit.SECOND, 1000), // the amount of elapsed user time. "User time"
- KERNEL_TIME= new Dim(11, Unit.SECOND, 1000), // the amount of elapsed kernel time. "Kernel time"
- CPU_TIME= new Dim(20, Unit.SECOND, 1000), // the amount of CPU time we have used so far. "CPU Time"
- INVOCATION_COUNT= new Dim(52, Unit.INVOCATION, 1); // the number of method invocations. "Invocation Count"
-
-// OS Info:
- Dim
- PHYSICAL_TOTAL= new Dim(24, Unit.BYTE), // the amount of physical memory in bytes. "Physical Memory"
- SYSTEM_CACHE= new Dim(26, Unit.BYTE); // the amount of system cache memory in bytes. "System Cache"
-
-// Windows:
-// OS Counters:
- Dim
- COMITTED= new Dim(7, Unit.BYTE), // "Committed"
- WORKING_SET_PEAK= new Dim(8, Unit.BYTE), // "Working Set Peak"
- ELAPSED_PROCESS= new Dim(9, Unit.SECOND, 1000), // "Elapsed Process"
- PAGE_FAULTS= new Dim(19), // "Page Faults"
- GDI_OBJECTS= new Dim(34), // "GDI Objects"
- USER_OBJECTS= new Dim(35), // "USER Objects"
- OPEN_HANDLES= new Dim(36), // "Open Handles"
- READ_COUNT= new Dim(38, Unit.BYTE), // "Read Count"
- WRITE_COUNT= new Dim(39, Unit.BYTE), // "Write Count"
- BYTES_READ= new Dim(40, Unit.BYTE), // "Bytes Read"
- BYTES_WRITTEN= new Dim(41, Unit.BYTE); // "Bytes Written"
-
-// OS Info:
- Dim
- COMMIT_LIMIT= new Dim(22), // "Commit Limit"
- COMMIT_PEAK= new Dim(23), // "Commit Peak"
- PHYSICAL_AVAIL= new Dim(25, Unit.BYTE), // "Physical Available"
- KERNEL_TOTAL= new Dim(27), // "Kernel Total"
- KERNEL_PAGED= new Dim(28), // "Kernel Paged"
- KERNEL_NONPAGED= new Dim(29), // "Kernel Nonpaged"
- PAGE_SIZE= new Dim(30, Unit.BYTE), // "Page Size"
- HANDLE_COUNT= new Dim(31), // "Handle Count"
- PROCESS_COUNT= new Dim(32), // "Process Count"
- THREAD_COUNT= new Dim(33), // "Thread Count"
- COMMIT_TOTAL= new Dim(37); // "Commit Total"
-
-// Linux:
-// OS Counters:
- Dim
- HARD_PAGE_FAULTS= new Dim(42), // the number of hard page faults. A page had to be fetched from disk. "Hard Page Faults"
- SOFT_PAGE_FAULTS= new Dim(43), // the number of soft page faults. A page was not fetched from disk. "Soft Page Faults"
- TRS= new Dim(44, Unit.BYTE), // the amount of memory in bytes occupied by text (i.e. code). "Text Size"
- DRS= new Dim(45, Unit.BYTE), // the amount of memory in bytes occupied by data or stack. "Data Size"
- LRS= new Dim(46, Unit.BYTE); // the amount of memory in bytes occupied by shared code. "Library Size"
-
-// OS Info:
- Dim
- USED_LINUX_MEM= new Dim(48, Unit.BYTE), // the amount of memory that Linux reports is used. From /proc/meminfo. "Used Memory"
- FREE_LINUX_MEM= new Dim(49, Unit.BYTE), // the amount of memory that Linux reports is free. From /proc/meminfo. "Free Memory"
- BUFFERS_LINUX= new Dim(50, Unit.BYTE); // the amount of memory that Linux reports is used by buffers. From /proc/meminfo. "Buffers Memory"
-
-// Mac:
-// OS Counters:
-// OS Info:
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/InternalPerformanceMeter.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/InternalPerformanceMeter.java
deleted file mode 100644
index 9376a4b..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/InternalPerformanceMeter.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.test.internal.performance;
-
-import java.io.PrintStream;
-import java.text.MessageFormat;
-import java.text.NumberFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.internal.performance.data.DataPoint;
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.data.Sample;
-import org.eclipse.test.internal.performance.db.DB;
-import org.eclipse.test.internal.performance.db.Variations;
-import org.eclipse.test.internal.performance.eval.StatisticsSession;
-import org.eclipse.test.internal.performance.eval.StatisticsUtil;
-import org.eclipse.test.internal.performance.eval.StatisticsUtil.Percentile;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.PerformanceMeter;
-
-
-public abstract class InternalPerformanceMeter extends PerformanceMeter {
-
-
- private static class DimensionComparator implements Comparator {
-
- public int compare(Object o1, Object o2) {
- return ((Dim) o1).getId() - ((Dim) o2).getId();
- }
-
- }
-
- public static final int AVERAGE= -3;
- public static final int SIZE= -4;
- public static final int STDEV= -5;
- public static final int BEFORE= 0;
- public static final int AFTER= 1;
-
- protected static final String VERBOSE_PERFORMANCE_METER_PROPERTY= "InternalPrintPerformanceResults"; //$NON-NLS-1$
-
- private String fScenarioId;
-
- private String fShortName;
- private Dimension[] fSummaryDimensions;
- private boolean fSummaryIsGlobal;
- private int fCommentType;
- private String fComment;
-
-
- public InternalPerformanceMeter(String scenarioId) {
- fScenarioId= scenarioId;
- }
-
- public void dispose() {
- fScenarioId= null;
- }
-
- public abstract Sample getSample();
-
- /**
- * Answer the scenario ID.
- * @return the scenario ID
- */
- public String getScenarioName() {
- return fScenarioId;
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#commit()
- */
- public void commit() {
- Sample sample= getSample();
- if (sample != null) {
- if (fSummaryDimensions != null)
- sample.tagAsSummary(fSummaryIsGlobal, fShortName, fSummaryDimensions, fCommentType, fComment);
- Variations variations= PerformanceTestPlugin.getVariations();
- if (variations != null)
- DB.store(variations, sample);
- if (!DB.isActive() || System.getProperty(VERBOSE_PERFORMANCE_METER_PROPERTY) != null) {
- printSample(System.out, sample);
-// printSampleCSV(System.out, sample);
- }
- }
- }
-
- private void printSample(PrintStream ps, Sample sample) {
- ps.print("Scenario '" + getScenarioName() + "' "); //$NON-NLS-1$ //$NON-NLS-2$
- DataPoint[] dataPoints= sample.getDataPoints();
- if (dataPoints.length > 0) {
- StatisticsSession s= new StatisticsSession(dataPoints);
- Dim[] dimensions= dataPoints[0].getDimensions();
- Arrays.sort(dimensions, new DimensionComparator());
- if (dimensions.length > 0) {
- List badDimensions= new ArrayList();
- long n= s.getCount(dimensions[0]);
- MessageFormat format= new MessageFormat("({0,number,percent} in [{1}, {2}])"); //$NON-NLS-1$
-
- String spaces= " "; //$NON-NLS-1$
-
- ps.println("(average over " + n + " samples):"); //$NON-NLS-1$ //$NON-NLS-2$
- for (int i= 0; i < dimensions.length; i++) {
- Dim dimension= dimensions[i];
- double mean= s.getAverage(dimension);
-
- String nameString= " " + dimension.getName() + ":"; //$NON-NLS-1$ //$NON-NLS-2$
- String meanString= dimension.getDisplayValue(mean);
- int align= firstNonDigit(meanString);
- meanString= spaces.substring(0, 30 - align - nameString.length()) + meanString;
-
- align= nameString.length() + meanString.length();
-
- Percentile percentile= StatisticsUtil.T95;
- double[] confidenceInterval= s.getConfidenceInterval(dimension, percentile);
-
- String confidenceString= n <= 2
- ? " (no confidence)" //$NON-NLS-1$
- : spaces.substring(0, 40 - align) + format.format(new Object[] {new Double(percentile.inside()), dimension.getDisplayValue(confidenceInterval[0]), dimension.getDisplayValue(confidenceInterval[1])});
-
- align+= confidenceString.length();
- String sizeWarning;
- try {
- sizeWarning= spaces.substring(0, 70 - align) + checkSampleSize(s, sample, dimension);
- } catch (CoreException x) {
- badDimensions.add(dimension);
- continue;
- }
-
- ps.println(nameString + meanString + confidenceString + sizeWarning);
- }
-
- if (!badDimensions.isEmpty()) {
- ps.print(" Dimensions with unusable statistical properties: "); //$NON-NLS-1$
- for (Iterator iter= badDimensions.iterator(); iter.hasNext();) {
- Dim dimension= (Dim) iter.next();
- ps.print(dimension.getName());
- if (iter.hasNext())
- ps.print(", "); //$NON-NLS-1$
- }
- ps.println();
- }
- }
- }
- ps.println();
- }
-
- private String checkSampleSize(StatisticsSession s, Sample sample, Dim dimension) throws CoreException {
- long sampleSize= s.getCount(dimension);
- double stdev= s.getStddev(dimension);
- double mean= s.getAverage(dimension);
-
- if (stdev == 0)
- return ""; //$NON-NLS-1$
-
- // measurable effect size
- // sampleSize= 16 * stdev^2 / effect^2
- double effectSize= 4 * Math.sqrt(stdev * stdev / sampleSize);
-
- double base;
- String baseName;
- if (stdev > Math.abs(mean)) {
- base= stdev;
- baseName="stdev"; //$NON-NLS-1$
- } else {
- base= Math.abs(mean);
- baseName= "mean"; //$NON-NLS-1$
- }
- double fivePercentEffect= 0.05 * base;
- long requiredSampleSizeForFivePercentEffect= Math.round(16 * stdev * stdev / fivePercentEffect / fivePercentEffect + 0.5);
-
-// if (requiredSampleSizeForFivePercentEffect > 1000 || Double.isNaN(stdev))
-// throw new CoreException(new Status(IStatus.OK, "org.eclipse.text.performance", IStatus.OK, "no message", null)); //$NON-NLS-1$ //$NON-NLS-2$
-
- NumberFormat numberInstance= NumberFormat.getNumberInstance();
- numberInstance.setMaximumFractionDigits(1);
- numberInstance.setMinimumFractionDigits(1);
-
- String measurableMsg= " Measurable effect: " + dimension.getDisplayValue(effectSize) + " (" + numberInstance.format(effectSize / stdev) + " SDs)"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- if (fivePercentEffect < effectSize)
- measurableMsg += " (required sample size for an effect of 5% of " + baseName + ": " + requiredSampleSizeForFivePercentEffect + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- return measurableMsg;
- }
-
- private int firstNonDigit(String string) {
- int length= string.length();
- for (int i= 0; i < length; i++)
- if (!Character.isDigit(string.charAt(i)) && string.charAt(i) != '-' && string.charAt(i) != '.')
- return i;
- return length;
- }
-
- void printSampleCSV(PrintStream ps, Sample sample) {
- final char SEPARATOR= '\t';
- DataPoint[] dataPoints= sample.getDataPoints();
- if (dataPoints.length > 0) {
- Dim[] dimensions= dataPoints[0].getDimensions();
- Arrays.sort(dimensions, new DimensionComparator());
- if (dimensions.length > 0) {
- /* print dimensions */
- for (int d= 0; d < dimensions.length; d++) {
- Dim dimension= dimensions[d];
- ps.print(dimension.getName());
- ps.print(SEPARATOR);
- }
- ps.println("scenario"); //$NON-NLS-1$
-
- for (int p= 0; p < dataPoints.length - 1; p+=2) {
- DataPoint before= dataPoints[p];
- DataPoint after= dataPoints[p + 1];
- for (int d= 0; d < dimensions.length; d++) {
- Dim dimension= dimensions[d];
- long valBefore= before.getScalar(dimension).getMagnitude();
- long valAfter= after.getScalar(dimension).getMagnitude();
- ps.print(valAfter - valBefore);
- ps.print(SEPARATOR);
- }
- ps.print(sample.getShortname() != null ? sample.getShortname() : sample.getScenarioID());
- ps.println();
- }
-
- ps.println();
- }
- }
- }
-
- public void tagAsSummary(boolean global, String shortName, Dimension[] dims) {
- fSummaryIsGlobal= global;
- fShortName= shortName;
- fSummaryDimensions= dims;
- }
-
- public void setComment(int commentType, String comment) {
- fCommentType= commentType;
- fComment= comment;
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/NullPerformanceMeter.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/NullPerformanceMeter.java
deleted file mode 100644
index c1a9043..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/NullPerformanceMeter.java
+++ /dev/null
@@ -1,48 +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.test.internal.performance;
-
-import org.eclipse.test.performance.PerformanceMeter;
-
-/**
- * Null performance meter.
- */
-public class NullPerformanceMeter extends PerformanceMeter {
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#start()
- */
- public void start() {
- // do nothing
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#stop()
- */
- public void stop() {
- // do nothing
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#commit()
- */
- public void commit() {
- // do nothing
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#dispose()
- */
- public void dispose() {
- // do nothing
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/OSPerformanceMeter.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/OSPerformanceMeter.java
deleted file mode 100644
index aae4506..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/OSPerformanceMeter.java
+++ /dev/null
@@ -1,89 +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.test.internal.performance;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import org.eclipse.test.internal.performance.data.DataPoint;
-import org.eclipse.test.internal.performance.data.Sample;
-
-
-/**
- * Performance meter that makes its measurements with OS functionality.
- */
-public class OSPerformanceMeter extends InternalPerformanceMeter {
-
- private PerformanceMonitor fPerformanceMonitor;
- private long fStartTime;
- private List fDataPoints= new ArrayList();
-
- /**
- * @param scenarioId the scenario id
- */
- public OSPerformanceMeter(String scenarioId) {
- super(scenarioId);
- fPerformanceMonitor= PerformanceMonitor.getPerformanceMonitor();
- fStartTime= System.currentTimeMillis();
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#dispose()
- */
- public void dispose() {
- fPerformanceMonitor= null;
- fDataPoints= null;
- super.dispose();
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#start()
- */
- public void start() {
- snapshot(BEFORE);
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#stop()
- */
- public void stop() {
- snapshot(AFTER);
- }
-
- /*
- * @see org.eclipse.test.internal.performance.InternalPerformanceMeter#getSample()
- */
- public Sample getSample() {
- if (fDataPoints != null) {
- HashMap runProperties= new HashMap();
- collectRunInfo(runProperties);
- return new Sample(getScenarioName(), fStartTime, runProperties, (DataPoint[]) fDataPoints.toArray(new DataPoint[fDataPoints.size()]));
- }
- return null;
- }
-
- //---- private stuff ------
-
- private void snapshot(int step) {
- HashMap map= new HashMap();
- fPerformanceMonitor.collectOperatingSystemCounters(map);
- fDataPoints.add(new DataPoint(step, map));
- }
-
- /**
- * Write out the run element if it hasn't been written out yet.
- * @param runProperties
- */
- private void collectRunInfo(HashMap runProperties) {
- fPerformanceMonitor.collectGlobalPerformanceInfo(runProperties);
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/OSPerformanceMeterFactory.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/OSPerformanceMeterFactory.java
deleted file mode 100644
index 35ef8f8..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/OSPerformanceMeterFactory.java
+++ /dev/null
@@ -1,21 +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.test.internal.performance;
-
-import org.eclipse.test.performance.PerformanceMeter;
-
-public class OSPerformanceMeterFactory extends PerformanceMeterFactory {
-
- protected PerformanceMeter doCreatePerformanceMeter(String scenario) {
- return new OSPerformanceMeter(scenario);
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMeterFactory.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMeterFactory.java
deleted file mode 100644
index b69c4e6..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMeterFactory.java
+++ /dev/null
@@ -1,46 +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.test.internal.performance;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceMeter;
-
-import junit.framework.TestCase;
-
-public abstract class PerformanceMeterFactory {
-
- private static Set fScenarios= new HashSet();
-
- public PerformanceMeter createPerformanceMeter(String scenario) {
- assertUniqueScenario(scenario);
- return doCreatePerformanceMeter(scenario);
- }
-
- public PerformanceMeter createPerformanceMeter(TestCase testCase, String monitorId) {
- return createPerformanceMeter(Performance.getDefault().getDefaultScenarioId(testCase, monitorId));
- }
-
- public PerformanceMeter createPerformanceMeter(TestCase testCase) {
- return createPerformanceMeter(Performance.getDefault().getDefaultScenarioId(testCase));
- }
-
- protected abstract PerformanceMeter doCreatePerformanceMeter(String scenario);
-
- private static void assertUniqueScenario(String scenario) {
- if (fScenarios.contains(scenario))
- throw new IllegalArgumentException();
- fScenarios.add(scenario);
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitor.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitor.java
deleted file mode 100644
index 7ad757d..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.test.internal.performance;
-
-import java.util.Map;
-
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.data.Scalar;
-
-
-class PerformanceMonitor {
-
- private static PerformanceMonitor fgPerformanceMonitor;
-
- public static PerformanceMonitor getPerformanceMonitor() {
- if (fgPerformanceMonitor == null) {
- String os= System.getProperty("os.name"); //$NON-NLS-1$
- if (os.startsWith("Windows")) //$NON-NLS-1$
- fgPerformanceMonitor= new PerformanceMonitorWindows();
- else if (os.startsWith("Mac OS X")) //$NON-NLS-1$
- fgPerformanceMonitor= new PerformanceMonitorMac();
- else
- fgPerformanceMonitor= new PerformanceMonitorLinux();
- }
- return fgPerformanceMonitor;
- }
-
- protected void collectOperatingSystemCounters(Map scalars) {
- if (PerformanceTestPlugin.isOldDB()) {
- addScalar(scalars, InternalDimensions.SYSTEM_TIME, System.currentTimeMillis());
- } else {
- Runtime runtime= Runtime.getRuntime();
- //runtime.gc();
- addScalar(scalars, InternalDimensions.USED_JAVA_HEAP, runtime.totalMemory() - runtime.freeMemory());
- }
- }
-
- protected void collectGlobalPerformanceInfo(Map scalars) {
- // no default implementation
- }
-
- void addScalar(Map scalars, Dim dimension, long value) {
- scalars.put(dimension, new Scalar(dimension, value));
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorLinux.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorLinux.java
deleted file mode 100644
index a16a114..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorLinux.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.test.internal.performance;
-
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-class PerformanceMonitorLinux extends PerformanceMonitor {
-
- private static long PAGESIZE= 4096;
- private static long JIFFIES= 10L;
- private static boolean fgHasElapsedTime= true;
- private static long fgStartupTime;
-
- /**
- * Write out operating system counters for Linux.
- * @param scalars
- */
- protected void collectOperatingSystemCounters(Map scalars) {
- synchronized(this) {
- /**
- * The status values for a Linux process, that is the values that come from /proc/self/stat.
- * The names of the variables match the man proc page.
- */
- StringTokenizer st= readTokens("/proc/self/stat", false); //$NON-NLS-1$
- if (st != null) {
- st.nextToken(); // int pid; // Process id.
- st.nextToken(); // String comm; // The command name.
- st.nextToken(); // String state;
- st.nextToken(); // int ppid; // Parent process id. */
- st.nextToken(); // int pgrp; // Process group. */
- st.nextToken(); // int session;
- st.nextToken(); // int ttry_nr;
- st.nextToken(); // int tpgid;
- st.nextToken(); // long flags;
- long minflt = Long.parseLong(st.nextToken()); // Minor page faults (didn't need to load a page from disk). */
- st.nextToken(); // long cminflt; // Minor page faults for the process and it's children. */
- long majflt = Long.parseLong(st.nextToken()); // Major page faults. */
- st.nextToken(); // long cmajflt; // Major page faults for the process and it's children. */
- long utime = Long.parseLong(st.nextToken()); // User time in jiffies. */
- long stime = Long.parseLong(st.nextToken()); // System time in jiffies. */
- st.nextToken(); // long cutime; // User time for the process and it's children. */
- st.nextToken(); // long cstime; // System time for the process and it's children. */
-
- //addScalar(scalars, InternalDimensions.USER_TIME, utime*JIFFIES);
- addScalar(scalars, InternalDimensions.KERNEL_TIME, stime*JIFFIES);
- addScalar(scalars, InternalDimensions.CPU_TIME, (utime+stime)*JIFFIES);
- addScalar(scalars, InternalDimensions.SOFT_PAGE_FAULTS, minflt);
- addScalar(scalars, InternalDimensions.HARD_PAGE_FAULTS, majflt);
- }
-
- /**
- * The status memory values values for a Linux process, that is the values that come from /proc/self/statm.
- * The names of the variables match the man proc page.
- */
- st= readTokens("/proc/self/statm", false); //$NON-NLS-1$
- if (st != null) {
- st.nextToken(); // int size; // Size of the process in pages
- int resident= Integer.parseInt(st.nextToken()); // Resident size in pages.
- st.nextToken(); // int shared; // Shared size in pages.
- int trs= Integer.parseInt(st.nextToken()); // Text (code) size in pages.
- int drs= Integer.parseInt(st.nextToken()); // Data/Stack size in pages.
- int lrs= Integer.parseInt(st.nextToken()); // Library size in pages.
- // st.nextToken(); // int dt; // Dirty pages.
-
- addScalar(scalars, InternalDimensions.WORKING_SET, resident*PAGESIZE);
- addScalar(scalars, InternalDimensions.TRS, trs*PAGESIZE);
- addScalar(scalars, InternalDimensions.DRS, drs*PAGESIZE);
- addScalar(scalars, InternalDimensions.LRS, lrs*PAGESIZE);
- }
-
- long currentTime= System.currentTimeMillis();
- if (!PerformanceTestPlugin.isOldDB())
- addScalar(scalars, InternalDimensions.SYSTEM_TIME, currentTime);
-
- if (fgHasElapsedTime) {
- if (fgStartupTime == 0) {
- String t= System.getProperty("eclipse.startTime"); //$NON-NLS-1$
- if (t != null) {
- try {
- fgStartupTime= Long.parseLong(t);
- } catch (NumberFormatException e) {
- fgHasElapsedTime= false;
- }
- } else
- fgHasElapsedTime= false;
- }
- if (fgHasElapsedTime)
- addScalar(scalars, InternalDimensions.ELAPSED_PROCESS, currentTime-fgStartupTime);
- }
-
- super.collectOperatingSystemCounters(scalars);
- }
- }
-
- /**
- * Write out the global machine counters for Linux.
- * @param scalars
- */
- protected void collectGlobalPerformanceInfo(Map scalars) {
- synchronized(this) {
- /**
- * The meminfo values for a Linux machine, that is the values that come from /proc/meminfo.
- */
- // /proc/meminfo is formatted on linux - use byte-counted output from free
- StringTokenizer st= readOutput("free -b", true); //$NON-NLS-1$
- if (st != null) {
- st.nextToken(); // throw away label
- long total= Long.parseLong(st.nextToken());
- long used= Long.parseLong(st.nextToken());
- long free= Long.parseLong(st.nextToken());
- st.nextToken(); // long shared;
- long buffers= Long.parseLong(st.nextToken());
- long cache= Long.parseLong(st.nextToken());
-
- addScalar(scalars, InternalDimensions.PHYSICAL_TOTAL, total);
- addScalar(scalars, InternalDimensions.USED_LINUX_MEM, used);
- addScalar(scalars, InternalDimensions.FREE_LINUX_MEM, free);
- addScalar(scalars, InternalDimensions.BUFFERS_LINUX, buffers);
- addScalar(scalars, InternalDimensions.SYSTEM_CACHE, cache);
- }
- super.collectGlobalPerformanceInfo(scalars);
- }
- }
-
- private StringTokenizer readTokens(String procPath, boolean skipFirst) {
- BufferedReader rdr= null;
- try {
- rdr= new BufferedReader(new FileReader(procPath));
- if (skipFirst)
- rdr.readLine(); // throw away the heading line
- return new StringTokenizer(rdr.readLine());
- } catch (IOException e) {
- PerformanceTestPlugin.log(e);
- } finally {
- try {
- if (rdr != null)
- rdr.close();
- } catch (IOException e) {
- // silently ignored
- }
- }
- return null;
- }
-
- private StringTokenizer readOutput(String cmd, boolean skipFirst) {
- BufferedReader rdr= null;
- try {
- Process process= Runtime.getRuntime().exec(cmd);
- rdr= new BufferedReader(new InputStreamReader(process.getInputStream()));
- if (skipFirst)
- rdr.readLine(); // throw away the heading line
- return new StringTokenizer(rdr.readLine());
- } catch (IOException e) {
- PerformanceTestPlugin.log(e);
- } finally {
- try {
- if (rdr != null)
- rdr.close();
- } catch (IOException e) {
- // silently ignored
- }
- }
- return null;
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorMac.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorMac.java
deleted file mode 100644
index f1fee45..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorMac.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.test.internal.performance;
-
-import java.util.Map;
-
-/**
- * The Mac OS X version of the performance monitor.
- * (Uses default implementation for now).
- */
-class PerformanceMonitorMac extends PerformanceMonitor {
-
- private static boolean fgHasElapsedTime= true;
- private static long fgStartupTime;
-
- /**
- * name of the library that implements the native methods.
- */
- private static final String NATIVE_LIBRARY_NAME= "perf_3_1_0"; //$NON-NLS-1$
-
- /**
- * Is the native library loaded? 0-don't know, 1-no, 2-yes
- */
- private static int fgIsLoaded= 0;
-
- /**
- * Answer true if the native library for this class has been successfully
- * loaded. If the load has not been attempted yet, try to load it.
- * @return returns true if native library has been successfullz loaded
- */
- public static boolean isLoaded() {
- if (fgIsLoaded == 0) {
- try {
- System.loadLibrary(NATIVE_LIBRARY_NAME);
- fgIsLoaded= 2;
- } catch (Throwable e) {
- //e.printStackTrace();
- //PerformanceTestPlugin.log(e);
- fgIsLoaded= 1;
- }
- }
- return fgIsLoaded == 2;
- }
-
-
- /**
- * Write out operating system counters for Mac OS X.
- * @param scalars where to collect the data
- */
- protected void collectOperatingSystemCounters(Map scalars) {
- synchronized(this) {
- if (isLoaded()) {
- int[] counters= new int[18];
- if (getrusage(0, counters) == 0) {
-
- int user_time= counters[0]*1000 + counters[1]/1000;
- int kernel_time= counters[2]*1000 + counters[3]/1000;
-
- addScalar(scalars, InternalDimensions.KERNEL_TIME, kernel_time);
- addScalar(scalars, InternalDimensions.CPU_TIME, user_time + kernel_time);
- }
- }
-
- long currentTime= System.currentTimeMillis();
- if (!PerformanceTestPlugin.isOldDB())
- addScalar(scalars, InternalDimensions.SYSTEM_TIME, currentTime);
-
- if (fgHasElapsedTime) {
- if (fgStartupTime == 0) {
- String t= System.getProperty("eclipse.startTime"); //$NON-NLS-1$
- if (t != null) {
- try {
- fgStartupTime= Long.parseLong(t);
- } catch (NumberFormatException e) {
- fgHasElapsedTime= false;
- }
- } else
- fgHasElapsedTime= false;
- }
- if (fgHasElapsedTime)
- addScalar(scalars, InternalDimensions.ELAPSED_PROCESS, currentTime-fgStartupTime);
- }
-
- super.collectOperatingSystemCounters(scalars);
- }
- }
-
-// struct rusage {
-// 0,1 struct timeval ru_utime; /* user time used */
-// 2,3 struct timeval ru_stime; /* system time used */
-// 4 long ru_maxrss; /* integral max resident set size */
-// 5 long ru_ixrss; /* integral shared text memory size */
-// 6 long ru_idrss; /* integral unshared data size */
-// 7 long ru_isrss; /* integral unshared stack size */
-// 8 long ru_minflt; /* page reclaims */
-// 9 long ru_majflt; /* page faults */
-// 10 long ru_nswap; /* swaps */
-// 11 long ru_inblock; /* block input operations */
-// 12 long ru_oublock; /* block output operations */
-// 13 long ru_msgsnd; /* messages sent */
-// 14 long ru_msgrcv; /* messages received */
-// 15 long ru_nsignals; /* signals received */
-// 16 long ru_nvcsw; /* voluntary context switches */
-// 17 long ru_nivcsw; /* involuntary context switches */
-// };
- private static native int getrusage(int who, int[] counters);
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorWindows.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorWindows.java
deleted file mode 100644
index b7bc861..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceMonitorWindows.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.test.internal.performance;
-
-import java.util.Map;
-
-import org.eclipse.test.internal.performance.PerformanceMonitor;
-
-/**
- * The PerformanceMonitor for Windows.
- */
-class PerformanceMonitorWindows extends PerformanceMonitor {
-
-
- private boolean fgNativeGetPerformanceInfoNotAvailable;
-
- protected void collectOperatingSystemCounters(Map scalars) {
- synchronized(this) {
- if (org.eclipse.perfmsr.core.PerformanceMonitor.isLoaded()) {
- long[] counters= new long[14];
- if (org.eclipse.perfmsr.core.PerformanceMonitor.nativeGetPerformanceCounters(counters)) {
- addScalar(scalars, InternalDimensions.WORKING_SET, counters[0]);
- addScalar(scalars, InternalDimensions.WORKING_SET_PEAK, counters[1]);
- addScalar(scalars, InternalDimensions.ELAPSED_PROCESS, counters[2]);
- //addScalar(scalars, InternalDimensions.USER_TIME, counters[3]);
- addScalar(scalars, InternalDimensions.KERNEL_TIME, counters[4]);
- addScalar(scalars, InternalDimensions.CPU_TIME, counters[3] + counters[4]);
- addScalar(scalars, InternalDimensions.PAGE_FAULTS, counters[5]);
- if (counters[6] != -1)
- addScalar(scalars, InternalDimensions.COMITTED, counters[6]);
- addScalar(scalars, InternalDimensions.GDI_OBJECTS, counters[7]);
- //addScalar(scalars, Dimensions.USER_OBJECTS, counters[8]);
- //if (counters[9] != -1)
- // addScalar(scalars, InternalDimensions.OPEN_HANDLES, counters[9]);
- //addScalar(scalars, InternalDimensions.READ_COUNT, counters[10]);
- //addScalar(scalars, InternalDimensions.WRITE_COUNT, counters[11]);
- //addScalar(scalars, InternalDimensions.BYTES_READ, counters[12]);
- //addScalar(scalars, InternalDimensions.BYTES_WRITTEN, counters[13]);
- }
- }
- super.collectOperatingSystemCounters(scalars);
- }
- }
-
- /**
- * Collect global performance info. This includes things like the total
- * committed memory for the entire system.
- *
- * This function depends on the GetPerformanceInfo() function being available in
- * the Windows ivjperf.dll. This is available in XP but is usually not available
- * in Win2000. If it is not available then this function throws an UnsupportedOperationException.
- * @param scalars
- */
- protected void collectGlobalPerformanceInfo(Map scalars) {
- synchronized(this) {
- if (!fgNativeGetPerformanceInfoNotAvailable && org.eclipse.perfmsr.core.PerformanceMonitor.isLoaded()) {
- long[] counters= new long[13];
- try {
- org.eclipse.perfmsr.core.PerformanceMonitor.nativeGetPerformanceInfo(counters);
- long pageSize= counters[9];
- addScalar(scalars, InternalDimensions.COMMIT_TOTAL, counters[0]*pageSize);
- addScalar(scalars, InternalDimensions.COMMIT_LIMIT, counters[1]*pageSize);
- addScalar(scalars, InternalDimensions.COMMIT_PEAK, counters[2]*pageSize);
- addScalar(scalars, InternalDimensions.PHYSICAL_TOTAL, counters[3]*pageSize);
- addScalar(scalars, InternalDimensions.PHYSICAL_AVAIL, counters[4]*pageSize);
- addScalar(scalars, InternalDimensions.SYSTEM_CACHE, counters[5]*pageSize);
- addScalar(scalars, InternalDimensions.KERNEL_TOTAL, counters[6]*pageSize);
- addScalar(scalars, InternalDimensions.KERNEL_PAGED, counters[7]*pageSize);
- addScalar(scalars, InternalDimensions.KERNEL_NONPAGED, counters[8]*pageSize);
- addScalar(scalars, InternalDimensions.PAGE_SIZE, counters[9]);
- addScalar(scalars, InternalDimensions.HANDLE_COUNT, counters[10]);
- addScalar(scalars, InternalDimensions.PROCESS_COUNT, counters[11]);
- addScalar(scalars, InternalDimensions.THREAD_COUNT, counters[12]);
- } catch (Exception e) {
- PerformanceTestPlugin.logWarning("native function GetPerformanceInfo() not available on this version of Windows"); //$NON-NLS-1$
- fgNativeGetPerformanceInfoNotAvailable= true;
- }
- }
- super.collectGlobalPerformanceInfo(scalars);
- }
- }
-
-// protected String getUUID() {
-// if (org.eclipse.perfmsr.core.PerformanceMonitor.isLoaded()) {
-// try {
-// return org.eclipse.perfmsr.core.PerformanceMonitor.nativeGetUUID();
-// } catch (Exception e) {
-// }
-// }
-// return super.getUUID();
-// }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceTestPlugin.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceTestPlugin.java
deleted file mode 100644
index e7de1c7..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/PerformanceTestPlugin.java
+++ /dev/null
@@ -1,196 +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.test.internal.performance;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.test.internal.performance.db.DB;
-import org.eclipse.test.internal.performance.db.Variations;
-import org.osgi.framework.BundleContext;
-
-
-/**
- * @since 3.1
- */
-public class PerformanceTestPlugin extends Plugin {
-
- public static final String CONFIG= "config"; //$NON-NLS-1$
- public static final String BUILD= "build"; //$NON-NLS-1$
-
- private static final String DEFAULT_DB_NAME= "perfDB"; //$NON-NLS-1$
- private static final String DEFAULT_DB_USER= "guest"; //$NON-NLS-1$
- private static final String DEFAULT_DB_PASSWORD= "guest"; //$NON-NLS-1$
-
- private static final String DB_NAME= "dbname"; //$NON-NLS-1$
- private static final String DB_USER= "dbuser"; //$NON-NLS-1$
- private static final String DB_PASSWD= "dbpasswd"; //$NON-NLS-1$
-
- /*
- * New properties
- */
- private static final String ECLIPSE_PERF_DBLOC= "eclipse.perf.dbloc"; //$NON-NLS-1$
- private static final String ECLIPSE_PERF_ASSERTAGAINST= "eclipse.perf.assertAgainst"; //$NON-NLS-1$
- private static final String ECLIPSE_PERF_CONFIG= "eclipse.perf.config"; //$NON-NLS-1$
-
- /**
- * The plug-in ID
- */
- public static final String PLUGIN_ID= "org.eclipse.test.performance"; //$NON-NLS-1$
-
- /** Status code describing an internal error */
- public static final int INTERNAL_ERROR= 1;
-
- /**
- * The shared instance.
- */
- private static PerformanceTestPlugin fgPlugin;
-
- /* temporary code */
- private static boolean fgOldDBInitialized;
- private static boolean fgOldDB; // true if we are talking to the old perfDB in Ottawa
-
- /**
- * The constructor.
- */
- public PerformanceTestPlugin() {
- super();
- fgPlugin= this;
- }
-
- static boolean isOldDB() {
- if (!fgOldDBInitialized) {
- String loc= getDBLocation();
- if (loc != null && loc.indexOf("relengbuildserv") >= 0) //$NON-NLS-1$
- fgOldDB= true;
- fgOldDBInitialized= true;
- }
- return fgOldDB;
- }
-
- public void stop(BundleContext context) throws Exception {
- DB.shutdown();
- super.stop(context);
- }
-
- /*
- * Returns the shared instance.
- */
- public static PerformanceTestPlugin getDefault() {
- return fgPlugin;
- }
-
- /*
- * -Declipse.perf.dbloc=net://localhost
- */
- public static String getDBLocation() {
- String dbloc= System.getProperty(ECLIPSE_PERF_DBLOC);
- if (dbloc != null) {
- Variations keys= new Variations();
- keys.parsePairs(ECLIPSE_PERF_DBLOC + '=' + dbloc);
- return keys.getProperty(ECLIPSE_PERF_DBLOC);
- }
- return null;
- }
-
- public static String getDBName() {
- String dbloc= System.getProperty(ECLIPSE_PERF_DBLOC);
- if (dbloc != null) {
- Variations keys= new Variations();
- keys.parsePairs(ECLIPSE_PERF_DBLOC + '=' + dbloc);
- return keys.getProperty(DB_NAME, DEFAULT_DB_NAME);
- }
- return DEFAULT_DB_NAME;
- }
-
- public static String getDBUser() {
- String dbloc= System.getProperty(ECLIPSE_PERF_DBLOC);
- if (dbloc != null) {
- Variations keys= new Variations();
- keys.parsePairs(ECLIPSE_PERF_DBLOC + '=' + dbloc);
- return keys.getProperty(DB_USER, DEFAULT_DB_USER);
- }
- return DEFAULT_DB_USER;
- }
-
- public static String getDBPassword() {
- String dbloc= System.getProperty(ECLIPSE_PERF_DBLOC);
- if (dbloc != null) {
- Variations keys= new Variations();
- keys.parsePairs(ECLIPSE_PERF_DBLOC + '=' + dbloc);
- return keys.getProperty(DB_PASSWD, DEFAULT_DB_PASSWORD);
- }
- return DEFAULT_DB_PASSWORD;
- }
-
- /*
- * -Declipse.perf.config=<varname1>=<varval1>;<varname2>=<varval2>;...;<varnameN>=<varvalN>
- */
- public static Variations getVariations() {
- Variations keys= new Variations();
- String configKey= System.getProperty(ECLIPSE_PERF_CONFIG);
- if (configKey != null)
- keys.parsePairs(configKey);
- return keys;
- }
-
- /*
- * -Declipse.perf.assertAgainst=<varname1>=<varval1>;<varname2>=<varval2>;...;<varnameN>=<varvalN>
- * Returns null if assertAgainst property isn't defined.
- */
- public static Variations getAssertAgainst() {
- String assertKey= System.getProperty(ECLIPSE_PERF_ASSERTAGAINST);
- if (assertKey != null) {
- Variations keys= getVariations();
- if (keys == null)
- keys= new Variations();
- keys.parsePairs(assertKey);
- return keys;
- }
- return null;
- }
-
- // logging
-
- public static void logError(String message) {
- if (message == null)
- message= ""; //$NON-NLS-1$
- log(new Status(IStatus.ERROR, PLUGIN_ID, INTERNAL_ERROR, message, null));
- }
-
- public static void logWarning(String message) {
- if (message == null)
- message= ""; //$NON-NLS-1$
- log(new Status(IStatus.WARNING, PLUGIN_ID, IStatus.OK, message, null));
- }
-
- public static void log(Throwable e) {
- log(new Status(IStatus.ERROR, PLUGIN_ID, INTERNAL_ERROR, "Internal Error", e)); //$NON-NLS-1$
- }
-
- public static void log(IStatus status) {
- if (fgPlugin != null) {
- fgPlugin.getLog().log(status);
- } else {
- switch (status.getSeverity()) {
- case IStatus.ERROR:
- System.err.println("Error: " + status.getMessage()); //$NON-NLS-1$
- break;
- case IStatus.WARNING:
- System.err.println("Warning: " + status.getMessage()); //$NON-NLS-1$
- break;
- }
- Throwable exception= status.getException();
- if (exception != null)
- exception.printStackTrace(System.err);
- }
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/SystemTimePerformanceMeter.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/SystemTimePerformanceMeter.java
deleted file mode 100644
index 99f7483..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/SystemTimePerformanceMeter.java
+++ /dev/null
@@ -1,118 +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.test.internal.performance;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.test.internal.performance.data.Assert;
-import org.eclipse.test.internal.performance.data.DataPoint;
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.data.Sample;
-import org.eclipse.test.internal.performance.data.Scalar;
-
-
-public class SystemTimePerformanceMeter extends InternalPerformanceMeter {
-
- private static final int DEFAULT_INITIAL_CAPACITY= 3;
-
- private long fStartDate;
- private List fStartTime;
- private List fStopTime;
-
- /**
- * @param scenarioId the scenario id
- */
- public SystemTimePerformanceMeter(String scenarioId) {
- this(scenarioId, DEFAULT_INITIAL_CAPACITY);
- fStartDate= System.currentTimeMillis();
- }
-
- /**
- * @param scenarioId the scenario id
- * @param initalCapacity the initial capacity in the number of measurments
- */
- public SystemTimePerformanceMeter(String scenarioId, int initalCapacity) {
- super(scenarioId);
- fStartTime= new ArrayList(initalCapacity);
- fStopTime= new ArrayList(initalCapacity);
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#start()
- */
- public void start() {
- fStartTime.add(new Long(System.currentTimeMillis()));
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#stop()
- */
- public void stop() {
- fStopTime.add(new Long(System.currentTimeMillis()));
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#commit()
- */
- public void commit() {
- Assert.isTrue(fStartTime.size() == fStopTime.size());
- System.out.println("Scenario: " + getScenarioName()); //$NON-NLS-1$
- int maxOccurenceLength= String.valueOf(fStartTime.size()).length();
- for (int i= 0; i < fStartTime.size(); i++) {
- String occurence= String.valueOf(i + 1);
- System.out.println("Occurence " + replicate(" ", maxOccurenceLength - occurence.length()) + occurence + ": " + (((Long) fStopTime.get(i)).longValue() - ((Long) fStartTime.get(i)).longValue())); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
- }
-
- private String replicate(String s, int n) {
- StringBuffer buf= new StringBuffer(n * s.length());
- for (int i= 0; i < n; i++)
- buf.append(s);
- return buf.toString();
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#dispose()
- */
- public void dispose() {
- fStartTime= null;
- fStopTime= null;
- super.dispose();
- }
-
- public Sample getSample() {
- Assert.isTrue(fStartTime.size() == fStopTime.size());
-
- Map properties= new HashMap();
- /*
- properties.put(DRIVER_PROPERTY, PerformanceTestPlugin.getBuildId());
- properties.put(HOSTNAME_PROPERTY, getHostName());
- */
-
- DataPoint[] data= new DataPoint[2*fStartTime.size()];
- for (int i= 0; i < fStartTime.size(); i++) {
- data[2*i]= createDataPoint(BEFORE, InternalDimensions.SYSTEM_TIME, ((Long) fStartTime.get(i)).longValue());
- data[2*i+1]= createDataPoint(AFTER, InternalDimensions.SYSTEM_TIME, ((Long) fStopTime.get(i)).longValue());
- }
-
- return new Sample(getScenarioName(), fStartDate, properties, data);
- }
-
- private DataPoint createDataPoint(int step, Dim dimension, long value) {
- Map scalars= new HashMap();
- scalars.put(dimension, new Scalar(dimension, value));
- return new DataPoint(step, scalars);
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/SystemTimePerformanceMeterFactory.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/SystemTimePerformanceMeterFactory.java
deleted file mode 100644
index b54a16e..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/SystemTimePerformanceMeterFactory.java
+++ /dev/null
@@ -1,21 +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.test.internal.performance;
-
-import org.eclipse.test.performance.PerformanceMeter;
-
-public class SystemTimePerformanceMeterFactory extends PerformanceMeterFactory {
-
- protected PerformanceMeter doCreatePerformanceMeter(String scenario) {
- return new SystemTimePerformanceMeter(scenario);
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Assert.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Assert.java
deleted file mode 100644
index f45958f..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Assert.java
+++ /dev/null
@@ -1,180 +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.test.internal.performance.data;
-
-
-/**
- * <code>Assert</code> is useful for for embedding runtime sanity checks
- * in code. The static predicate methods all test a condition and throw some
- * type of unchecked exception if the condition does not hold.
- * <p>
- * Assertion failure exceptions, like most runtime exceptions, are
- * thrown when something is misbehaving. Assertion failures are invariably
- * unspecified behavior; consequently, clients should never rely on
- * these being thrown (or not thrown). <b>If you find yourself in the
- * position where you need to catch an assertion failure, you have most
- * certainly written your program incorrectly.</b>
- * </p>
- * <p>
- * Note that an <code>assert</code> statement is slated to be added to the
- * Java language in JDK 1.4, rending this class obsolete.
- * </p>
- */
-public final class Assert {
-
- /**
- * <code>AssertionFailedException</code> is a runtime exception thrown
- * by some of the methods in <code>Assert</code>.
- * <p>
- * This class is not declared public to prevent some misuses; programs that catch
- * or otherwise depend on assertion failures are susceptible to unexpected
- * breakage when assertions in the code are added or removed.
- * </p>
- */
- private static class AssertionFailedException extends RuntimeException {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * Constructs a new exception.
- */
- public AssertionFailedException() {
- // empty
- }
-
- /**
- * Constructs a new exception with the given message.
- *
- * @param detail the detailed message
- */
- public AssertionFailedException(String detail) {
- super(detail);
- }
- }
-
- /* This class is not intended to be instantiated. */
- private Assert() {
- // empty
- }
-
- /**
- * Asserts that an argument is legal. If the given boolean is
- * not <code>true</code>, an <code>IllegalArgumentException</code>
- * is thrown.
- *
- * @param expression the outcome of the check
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- * @exception IllegalArgumentException if the legality test failed
- */
- public static boolean isLegal(boolean expression) {
- // succeed as quickly as possible
- if (expression) {
- return true;
- }
- return isLegal(expression, "");//$NON-NLS-1$
- }
-
- /**
- * Asserts that an argument is legal. If the given boolean is
- * not <code>true</code>, an <code>IllegalArgumentException</code>
- * is thrown.
- * The given message is included in that exception, to aid debugging.
- *
- * @param expression the outcome of the check
- * @param message the message to include in the exception
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- * @exception IllegalArgumentException if the legality test failed
- */
- public static boolean isLegal(boolean expression, String message) {
- if (!expression)
- throw new IllegalArgumentException("assertion failed; " + message); //$NON-NLS-1$
- return expression;
- }
-
- /**
- * Asserts that the given object is not <code>null</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- * <p>
- * As a general rule, parameters passed to API methods must not be
- * <code>null</code> unless <b>explicitly</b> allowed in the method's
- * specification. Similarly, results returned from API methods are never
- * <code>null</code> unless <b>explicitly</b> allowed in the method's
- * specification. Implementations are encouraged to make regular use of
- * <code>Assert.isNotNull</code> to ensure that <code>null</code>
- * parameters are detected as early as possible.
- * </p>
- *
- * @param object the value to test
- */
- public static void isNotNull(Object object) {
- // succeed as quickly as possible
- if (object != null) {
- return;
- }
- isNotNull(object, "");//$NON-NLS-1$
- }
-
- /**
- * Asserts that the given object is not <code>null</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- * The given message is included in that exception, to aid debugging.
- * <p>
- * As a general rule, parameters passed to API methods must not be
- * <code>null</code> unless <b>explicitly</b> allowed in the method's
- * specification. Similarly, results returned from API methods are never
- * <code>null</code> unless <b>explicitly</b> allowed in the method's
- * specification. Implementations are encouraged to make regular use of
- * <code>Assert.isNotNull</code> to ensure that <code>null</code>
- * parameters are detected as early as possible.
- * </p>
- *
- * @param object the value to test
- * @param message the message to include in the exception
- */
- public static void isNotNull(Object object, String message) {
- if (object == null)
- throw new AssertionFailedException("null argument;" + message);//$NON-NLS-1$
- }
-
- /**
- * Asserts that the given boolean is <code>true</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- *
- * @param expression the outcome of the check
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- */
- public static boolean isTrue(boolean expression) {
- // succeed as quickly as possible
- if (expression) {
- return true;
- }
- return isTrue(expression, "");//$NON-NLS-1$
- }
-
- /**
- * Asserts that the given boolean is <code>true</code>. If this
- * is not the case, some kind of unchecked exception is thrown.
- * The given message is included in that exception, to aid debugging.
- *
- * @param expression the outcome of the check
- * @param message the message to include in the exception
- * @return <code>true</code> if the check passes (does not return
- * if the check fails)
- */
- public static boolean isTrue(boolean expression, String message) {
- if (!expression)
- throw new AssertionFailedException("Assertion failed: "+message);//$NON-NLS-1$
- return expression;
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DataPoint.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DataPoint.java
deleted file mode 100644
index 1c2ec71..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DataPoint.java
+++ /dev/null
@@ -1,58 +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.test.internal.performance.data;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-
-/**
- * @since 3.1
- */
-public class DataPoint {
- private int fStep;
- private Map fScalars;
-
- public DataPoint(int step, Map values) {
- fStep= step;
- fScalars= values;
- }
-
- public int getStep() {
- return fStep;
- }
-
- public Dim[] getDimensions() {
- Set set= fScalars.keySet();
- return (Dim[]) set.toArray(new Dim[set.size()]);
- }
-
- public Collection getDimensions2() {
- return fScalars.keySet();
- }
-
- public boolean contains(Dim dimension) {
- return fScalars.containsKey(dimension);
- }
-
- public Scalar[] getScalars() {
- return (Scalar[]) fScalars.values().toArray(new Scalar[fScalars.size()]);
- }
-
- public Scalar getScalar(Dim dimension) {
- return (Scalar) fScalars.get(dimension);
- }
-
- public String toString() {
- return "DataPoint [step= " + fStep + ", #dimensions: " + fScalars.size() + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Dim.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Dim.java
deleted file mode 100644
index e0fbd80..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Dim.java
+++ /dev/null
@@ -1,88 +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.test.internal.performance.data;
-
-import org.eclipse.test.internal.performance.InternalDimensions;
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-import org.eclipse.test.performance.Dimension;
-
-/**
- * @since 3.1
- */
-public class Dim implements Dimension {
-
- private static Dim[] fgRegisteredDimensions= new Dim[100];
-
- private final int fId;
- private final Unit fUnit;
- private final int fMultiplier;
- private final boolean fLargerIsBetter= false; // true indicates that larger values are better
-
- public static Dim getDimension(int id) {
- InternalDimensions.COMITTED.getId(); // trigger loading class InternalDimensions
- if (id >= 0 && id < fgRegisteredDimensions.length)
- return fgRegisteredDimensions[id];
- return null;
- }
-
- public Dim(int id) {
- this(id, Unit.CARDINAL, 1);
- }
-
- public Dim(int id, Unit unit) {
- this(id, unit, 1);
- }
-
- public Dim(int id, Unit unit, int multiplier) {
-
- if (id >= 0 && id < fgRegisteredDimensions.length) {
- if (fgRegisteredDimensions[id] == null) {
- fgRegisteredDimensions[id]= this;
- } else
- PerformanceTestPlugin.logError("dimension with id '" + id + "' already registered"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- fId= id;
- fUnit= unit;
- fMultiplier= multiplier;
- }
-
- public int getId() {
- return fId;
- }
-
- public Unit getUnit() {
- return fUnit;
- }
-
- public int getMultiplier() {
- return fMultiplier;
- }
-
- public boolean largerIsBetter() {
- return fLargerIsBetter;
- }
-
- public String getName() {
- return DimensionMessages.getString(fId);
- }
-
- public String toString() {
- return "Dimension [name=" + getName() + ", " + fUnit + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-
- public String getDisplayValue(Scalar scalar) {
- return fUnit.getDisplayValue1(scalar.getMagnitude(), fMultiplier);
- }
-
- public String getDisplayValue(double scalar) {
- return fUnit.getDisplayValue1(scalar / fMultiplier);
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DimensionMessages.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DimensionMessages.java
deleted file mode 100644
index 7768da6..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DimensionMessages.java
+++ /dev/null
@@ -1,41 +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.test.internal.performance.data;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-
-/**
- * @since 3.1
- */
-public class DimensionMessages {
-
- private static final String BUNDLE_NAME= "org.eclipse.test.internal.performance.data.DimensionMessages";//$NON-NLS-1$
-
- private static final ResourceBundle RESOURCE_BUNDLE= ResourceBundle.getBundle(BUNDLE_NAME);
-
- private DimensionMessages() {
- // emtpy
- }
-
- public static String getString(int id) {
- return getString("Dimension." + id); //$NON-NLS-1$
- }
-
- public static String getString(String key) {
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DimensionMessages.properties b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DimensionMessages.properties
deleted file mode 100644
index 79b4460..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/DimensionMessages.properties
+++ /dev/null
@@ -1,50 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-Dimension.2=System Time
-Dimension.3=Used Java Heap
-Dimension.4=Working Set
-Dimension.7=Committed
-Dimension.8=Working Set Peak
-Dimension.9=Elapsed Process
-Dimension.10=User time
-Dimension.11=Kernel time
-Dimension.19=Page Faults
-Dimension.20=CPU Time
-Dimension.22=Commit Limit
-Dimension.23=Commit Peak
-Dimension.24=Physical Memory
-Dimension.25=Physical Available
-Dimension.26=System Cache
-Dimension.27=Kernel Total
-Dimension.28=Kernel Paged
-Dimension.29=Kernel Nonpaged
-Dimension.30=Page Size
-Dimension.31=Handle Count
-Dimension.32=Process Count
-Dimension.33=Thread Count
-Dimension.34=GDI Objects
-Dimension.35=USER Objects
-Dimension.36=Open Handles
-Dimension.37=Commit Total
-Dimension.38=Read Count
-Dimension.39=Write Count
-Dimension.40=Bytes Read
-Dimension.41=Bytes Written
-Dimension.42=Hard Page Faults
-Dimension.43=Soft Page Faults
-Dimension.44=Text Size
-Dimension.45=Data Size
-Dimension.46=Library Size
-Dimension.48=Used Memory
-Dimension.49=Free Memory
-Dimension.50=Buffers Memory
-Dimension.51=Free Java Memory
-Dimension.52=Invocation Count
\ No newline at end of file
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Sample.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Sample.java
deleted file mode 100644
index e91a07d..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Sample.java
+++ /dev/null
@@ -1,110 +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.test.internal.performance.data;
-
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.test.performance.Dimension;
-
-import junit.framework.Assert;
-
-/**
- * @since 3.1
- */
-public class Sample {
- String fScenarioID;
- long fStartTime;
- Map fProperties;
- DataPoint[] fDataPoints;
-
- boolean fIsSummary;
- boolean fSummaryIsGlobal;
- String fShortName;
- Dimension[] fSummaryDimensions;
- int fCommentType;
- String fComment;
-
-
- public Sample(String scenarioID, long starttime, Map properties, DataPoint[] dataPoints) {
- Assert.assertTrue("scenarioID is null", scenarioID != null); //$NON-NLS-1$
- fScenarioID= scenarioID;
- fStartTime= starttime;
- fProperties= properties;
- fDataPoints= dataPoints;
- }
-
- public Sample(DataPoint[] dataPoints) {
- fDataPoints= dataPoints;
- }
-
- public void tagAsSummary(boolean global, String shortName, Dimension[] summaryDimensions, int commentType, String comment) {
- fIsSummary= true;
- fSummaryIsGlobal= global;
- fShortName= shortName;
- fSummaryDimensions= summaryDimensions;
- fCommentType= commentType;
- fComment= comment;
- }
-
- public String getScenarioID() {
- return fScenarioID;
- }
-
- public long getStartTime() {
- return fStartTime;
- }
-
- public String getProperty(String name) {
- return (String) fProperties.get(name);
- }
-
- public String[] getPropertyKeys() {
- if (fProperties == null)
- return new String[0];
- Set set= fProperties.keySet();
- return (String[]) set.toArray(new String[set.size()]);
- }
-
- public DataPoint[] getDataPoints() {
- DataPoint[] dataPoints= new DataPoint[fDataPoints.length];
- System.arraycopy(fDataPoints, 0, dataPoints, 0, fDataPoints.length);
- return dataPoints;
- }
-
- public String toString() {
- return "MeteringSession [scenarioID= " + fScenarioID + ", #datapoints: " + fDataPoints.length + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-
- public boolean isSummary() {
- return fIsSummary;
- }
-
- public boolean isGlobal() {
- return fSummaryIsGlobal;
- }
-
- public String getShortname() {
- return fShortName;
- }
-
- public Dimension[] getSummaryDimensions() {
- return fSummaryDimensions;
- }
-
- public int getCommentType() {
- return fCommentType;
- }
-
- public String getComment() {
- return fComment;
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Scalar.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Scalar.java
deleted file mode 100644
index 6fd3c02..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Scalar.java
+++ /dev/null
@@ -1,39 +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.test.internal.performance.data;
-
-
-/**
- * @since 3.1
- */
-public class Scalar {
- private Dim fDimension;
- private long fMagnitude;
-
- public Scalar(Dim dimension, long extent) {
- fDimension= dimension;
- fMagnitude= extent;
- }
-
- public Dim getDimension() {
- return fDimension;
- }
-
- public long getMagnitude() {
- return fMagnitude;
- }
-
- public String toString() {
- if (fDimension == null)
- return "Scalar [dimension= " + fDimension + ", magnitude= " + fMagnitude + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- return "Scalar [" + fDimension.getName() + ": " + fDimension.getDisplayValue(this) + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Unit.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Unit.java
deleted file mode 100644
index 6030098..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/data/Unit.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.data;
-
-import java.text.NumberFormat;
-
-
-/**
- * @since 3.1
- */
-public class Unit {
-
- public static final Unit SECOND= new Unit("s", "second", false); //$NON-NLS-1$ //$NON-NLS-2$
- public static final Unit BYTE= new Unit("byte", "byte", true); //$NON-NLS-1$ //$NON-NLS-2$
- public static final Unit CARDINAL= new Unit("", "", false); //$NON-NLS-1$ //$NON-NLS-2$
- public static final Unit INVOCATION= new Unit("invoc.", "invocation", false); //$NON-NLS-1$ //$NON-NLS-2$
-
- private static final int T_DECIMAL= 1000;
- private static final int T_BINARY= 1024;
-
- //protected static final String[] PREFIXES= new String[] { "y", "z", "a", "f", "p", "n", "u", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" };
- //protected static final String[] FULL_PREFIXES= new String[] { "yocto", "zepto", "atto", "femto", "pico", "nano", "micro", "milli", "", "kilo", "mega", "giga", "tera", "peta", "exa", "zetta", "yotta" };
- //protected static final String[] BINARY_PREFIXES= new String[] { "", "", "", "", "", "", "", "", "", "ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi", "Yi" };
- //protected static final String[] BINARY_FULL_PREFIXES= new String[] { "", "", "", "", "", "", "", "", "", "kibi", "mebi", "gibi", "tebi", "pebi", "exbi", "zebi", "yobi" };
-
- private final String fShortName;
- private final String fFullName;
- private final boolean fIsBinary;
- //private final int fPrecision= 2;
-
- public Unit(String shortName, String fullName, boolean binary) {
- fShortName= shortName;
- fFullName= fullName;
- fIsBinary= binary;
- }
-
- public String getShortName() {
- return fShortName;
- }
-
- public String getFullName() {
- return fFullName;
- }
-
- public String getDisplayValue1(long magnitudel, int multiplier) {
-
- //return getDisplayValue1(magnitudel / multiplier);
- //return Long.toString((double)(magnitudel / multiplier));
- return getDisplayValue1(magnitudel / multiplier);
- }
-
- public String getDisplayValue1(double magnitude) {
-
- if (this == SECOND)
- return formatedTime((long) (magnitude*1000.0));
- return formatEng((long) (magnitude));
-
- /*
- int div= fIsBinary ? T_BINARY : T_DECIMAL;
- boolean negative= magnitude < 0;
- double mag= Math.abs(magnitude), ratio= mag / div;
- int divs= PREFIXES.length / 2;
- while (ratio >= 1) {
- mag= ratio;
- divs++;
- ratio= mag / div;
- }
- ratio= mag * div;
- while (ratio > 0.0 && ratio < div) {
- mag= ratio;
- divs--;
- ratio= mag * div;
- }
-
- if (negative)
- mag= -mag;
-
- String[] prefixes= fIsBinary ? BINARY_PREFIXES : PREFIXES;
- NumberFormat format= NumberFormat.getInstance();
- format.setMaximumFractionDigits(fPrecision);
- if (divs > 0 && divs <= prefixes.length)
- return prefixes[divs] + getShortName() + format.format(mag);
- else
- return getShortName() + magnitude;
- */
- }
-
- public String toString() {
- return "Unit [" + getShortName() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Answer a formatted string for the elapsed time (minutes, hours or days)
- * that is appropriate for the scale of the time.
- *
- * @param diff time in milliseconds
- *
- * I copied this from karasiuk.utility.TimeIt
- * @return the formatted time
- */
- public static String formatedTime(long diff) {
- long sign= diff < 0 ? -1 : 1;
- diff = Math.abs(diff);
-
- if (diff < 1000)
- return String.valueOf(sign * diff) + "ms"; //$NON-NLS-1$
-
- NumberFormat nf= NumberFormat.getInstance();
- nf.setMaximumFractionDigits(2);
- double d = diff / 1000.0;
- if (d < 60)
- return nf.format(sign * d) + "s"; //$NON-NLS-1$
-
- d = d / 60.0;
- if (d < 60.0)
- return nf.format(sign * d) + "m"; //$NON-NLS-1$
-
- d = d / 60.0;
- if (d < 24.0)
- return nf.format(sign * d) + "h"; //$NON-NLS-1$
-
- d = d / 24.0;
- return nf.format(sign * d) + "d"; //$NON-NLS-1$
- }
-
- /**
- * Answer a number formatted using engineering conventions, K thousands, M millions,
- * G billions and T trillions.
- *
- * I copied this method from karasiuk.utility.Misc.
- * @param n the number to format
- * @return the formatted number
- */
- public String formatEng(long n) {
- long sign= n < 0 ? -1 : 1;
- n = Math.abs(n);
- int TSD= fIsBinary ? T_BINARY : T_DECIMAL;
- if (n < TSD)
- return String.valueOf(sign*n);
- double d = ((double)n) / TSD;
- NumberFormat nf = NumberFormat.getInstance();
- nf.setMaximumFractionDigits(2);
- if (d < TSD)
- return nf.format(sign * d) + "K"; //$NON-NLS-1$
-
- d = d / TSD;
- if ( d < TSD)
- return nf.format(sign * d) + "M"; //$NON-NLS-1$
-
- d = d / TSD;
- if ( d < TSD)
- return nf.format(sign * d) + "G"; //$NON-NLS-1$
-
- d = d / TSD;
- return nf.format(sign * d) + "T"; //$NON-NLS-1$
- }
-
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/DB.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/DB.java
deleted file mode 100644
index 60fa429..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/DB.java
+++ /dev/null
@@ -1,789 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.db;
-
-import java.io.File;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import junit.framework.Assert;
-
-import org.eclipse.test.internal.performance.InternalPerformanceMeter;
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-import org.eclipse.test.internal.performance.data.DataPoint;
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.data.Sample;
-import org.eclipse.test.internal.performance.data.Scalar;
-import org.eclipse.test.internal.performance.eval.StatisticsSession;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.Performance;
-
-public class DB {
-
- private static final boolean DEBUG= false;
- private static final boolean AGGREGATE= true;
-
- // the two supported DB types
- private static final String DERBY= "derby"; //$NON-NLS-1$
- private static final String CLOUDSCAPE= "cloudscape"; //$NON-NLS-1$
-
- private static DB fgDefault;
-
- private Connection fConnection;
- private SQL fSQL;
- private int fStoredSamples;
- private boolean fStoreCalled;
- private boolean fIsEmbedded;
- private String fDBType; // either "derby" or "cloudscape"
-
-
- // Datapaoints
- public static DataPoint[] queryDataPoints(Variations variations, String scenarioName, Set dims) {
- return getDefault().internalQueryDataPoints(variations, scenarioName, dims);
- }
-
- // Scenarios
- /**
- * Return all Scenarios that match the given config, build, and scenario name.
- * @param configName
- * @param buildPattern
- * @param scenarioPattern
- * @return array of scenarios
- * @deprecated Use queryScenarios(Variations variations, ...) instead
- */
- public static Scenario[] queryScenarios(String configName, String buildPattern, String scenarioPattern) {
- Variations variations= new Variations();
- variations.put(PerformanceTestPlugin.CONFIG, configName);
- variations.put(PerformanceTestPlugin.BUILD, buildPattern);
- return queryScenarios(variations, scenarioPattern, PerformanceTestPlugin.BUILD, null);
- }
-
- /**
- * @param configName
- * @param buildPatterns
- * @param scenarioPattern
- * @param dimensions
- * @return array of scenarios
- * @deprecated Use queryScenarios(Variations variations, ...) instead
- */
- public static Scenario[] queryScenarios(String configName, String[] buildPatterns, String scenarioPattern, Dim[] dimensions) {
- Variations variations= new Variations();
- variations.put(PerformanceTestPlugin.CONFIG, configName);
- variations.put(PerformanceTestPlugin.BUILD, buildPatterns);
- return queryScenarios(variations, scenarioPattern, PerformanceTestPlugin.BUILD, dimensions);
- }
-
- /**
- * @param configName
- * @param buildPatterns
- * @param scenarioName
- * @return Scenario
- * @deprecated Use queryScenarios(Variations variations, ...) instead
- */
- public static Scenario queryScenario(String configName, String[] buildPatterns, String scenarioName) {
- Variations variations= new Variations();
- variations.put(PerformanceTestPlugin.CONFIG, configName);
- variations.put(PerformanceTestPlugin.BUILD, buildPatterns);
- return new Scenario(scenarioName, variations, PerformanceTestPlugin.BUILD, null);
- }
-
- /**
- * Returns all Scenarios that match the given variation and scenario pattern.
- * Every Scenario returned contains a series of datapoints specified by the seriesKey.
- *
- * For example to get the datapoints for
- * For every Scenario only the specified Diemnsions are retrieved from the database.
- * @param variations
- * @param scenarioPattern
- * @param seriesKey
- * @param dimensions
- * @return array of scenarios or <code>null</code> if an error occured.
- */
- public static Scenario[] queryScenarios(Variations variations, String scenarioPattern, String seriesKey, Dim[] dimensions) {
- String[] scenarioNames= getDefault().internalQueryScenarioNames(variations, scenarioPattern); // get all Scenario names
- if (scenarioNames == null)
- return new Scenario[0];
- Scenario.SharedState ss= new Scenario.SharedState(variations, scenarioPattern, seriesKey, dimensions);
- Scenario[] tables= new Scenario[scenarioNames.length];
- for (int i= 0; i < scenarioNames.length; i++)
- tables[i]= new Scenario(scenarioNames[i], ss);
- return tables;
- }
-
- /**
- * Returns all summaries that match the given variation and scenario patterns.
- * If scenarioPattern is null, all summary scenarios are returned that are marked as "global".
- * If scenarioPattern is not null, it is used to filter the scenarios and only scenarios marked as "local" are returned.
- * @param variationPatterns
- * @param scenarioPattern
- * @return array of summaries or <code>null</code> if an error occured.
- */
- public static SummaryEntry[] querySummaries(Variations variationPatterns, String scenarioPattern) {
- return getDefault().internalQuerySummaries(variationPatterns, scenarioPattern);
- }
-
- /**
- * @param names
- * @param variationPatterns
- * @param scenarioPattern
- * @deprecated Use queryDistinctValues instead
- */
- public static void queryBuildNames(List names, Variations variationPatterns, String scenarioPattern) {
- getDefault().internalQueryDistinctValues(names, PerformanceTestPlugin.BUILD, variationPatterns, scenarioPattern);
- }
-
- public static void queryDistinctValues(List values, String key, Variations variationPatterns, String scenarioPattern) {
- getDefault().internalQueryDistinctValues(values, key, variationPatterns, scenarioPattern);
- }
-
- public static String[] querySeriesValues(String scenarioName, Variations v, String seriesKey) {
- return getDefault().internalQuerySeriesValues(v, scenarioName, seriesKey);
- }
-
- public static Scenario getScenarioSeries(String scenarioName, Variations v, String seriesKey, String startBuild, String endBuild, Dim[] dims) {
- v= (Variations) v.clone();
- v.put(seriesKey, new String[] { startBuild, endBuild });
- Scenario.SharedState ss= new Scenario.SharedState(v, scenarioName, seriesKey, dims);
- Scenario scenario= new Scenario(scenarioName, ss);
- TimeSeries ts= scenario.getTimeSeries(dims[0]);
- if (ts.getLength() < 2) {
- v.put(seriesKey, "%"); //$NON-NLS-1$
- String[] names= DB.querySeriesValues(scenarioName, v, seriesKey);
- if (names.length >= 2) {
- String start= findClosest(names, startBuild);
- String end= findClosest(names, endBuild);
- v.put(seriesKey, new String[] { start, end });
- scenario= new Scenario(scenarioName, ss);
- }
- }
- return scenario;
- }
-
- public static Map queryFailure(String scenarioPattern, Variations variations) {
- return getDefault().internalQueryFailure(scenarioPattern, variations);
- }
-
- private static String findClosest(String[] names, String name) {
- for (int i= 0; i < names.length; i++)
- if (names[i].equals(name))
- return name;
-
- Pattern pattern= Pattern.compile("200[3-9][01][0-9][0-3][0-9]"); //$NON-NLS-1$
- Matcher matcher= pattern.matcher(name);
-
- if (!matcher.find())
- return name;
-
- int x= Integer.parseInt(name.substring(matcher.start(), matcher.end()));
- int ix= -1;
- int mind= 0;
-
- for (int i= 0; i < names.length; i++) {
- matcher.reset(names[i]);
- if (matcher.find()) {
- int y= Integer.parseInt(names[i].substring(matcher.start(), matcher.end()));
- int d= Math.abs(y-x);
- if (ix < 0 || d < mind) {
- mind= d;
- ix= i;
- }
- }
- }
-
- if (ix >= 0)
- return names[ix];
- return name;
- }
-
- /**
- * Store the data contained in the given sample in the database.
- * The data is tagged with key/value pairs from variations.
- * @param variations used to tag the data in the database
- * @param sample the sample to store
- * @return returns true if data could be stored successfully
- */
- public static boolean store(Variations variations, Sample sample) {
- return getDefault().internalStore(variations, sample);
- }
-
- /**
- * @param variations used to tag the data in the database
- * @param sample the sample maked as failed
- * @param failMesg the reason of the failure
- */
- public static void markAsFailed(Variations variations, Sample sample, String failMesg) {
- getDefault().internalMarkAsFailed(variations, sample, failMesg);
- }
-
- public static Connection getConnection() {
- return getDefault().fConnection;
- }
-
- public static boolean isActive() {
- return fgDefault != null && fgDefault.getSQL() != null;
- }
-
- //---- private implementation
-
- /**
- * Private constructor to block instance creation.
- */
- private DB() {
- // empty implementation
- }
-
- synchronized static DB getDefault() {
- if (fgDefault == null) {
- fgDefault= new DB();
- fgDefault.connect();
- if (PerformanceTestPlugin.getDefault() == null) {
- // not started as plugin
- Runtime.getRuntime().addShutdownHook(
- new Thread() {
- public void run() {
- shutdown();
- }
- }
- );
- }
- }
- return fgDefault;
- }
-
- public static void shutdown() {
- if (DEBUG) System.out.println("DB.shutdown"); //$NON-NLS-1$
- if (fgDefault != null) {
- fgDefault.disconnect();
- fgDefault= null;
- }
- }
-
- SQL getSQL() {
- return fSQL;
- }
-
- private void internalMarkAsFailed(Variations variations, Sample sample, String failMesg) {
-
- if (fSQL == null)
- return;
-
- try {
- int variation_id= fSQL.getVariations(variations);
- int scenario_id= fSQL.getScenario(sample.getScenarioID());
-
- fSQL.insertFailure(variation_id, scenario_id, failMesg);
-
- fConnection.commit();
-
- } catch (SQLException e) {
- PerformanceTestPlugin.log(e);
- try {
- fConnection.rollback();
- } catch (SQLException e1) {
- PerformanceTestPlugin.log(e1);
- }
- }
- }
-
- private boolean internalStore(Variations variations, Sample sample) {
-
- if (fSQL == null || sample == null)
- return false;
-
- DataPoint[] dataPoints= sample.getDataPoints();
- int n= dataPoints.length;
- if (n <= 0)
- return false;
-
- //System.out.println("store started..."); //$NON-NLS-1$
- try {
- //long l= System.currentTimeMillis();
- int variation_id= fSQL.getVariations(variations);
- int scenario_id= fSQL.getScenario(sample.getScenarioID());
- if (sample.isSummary()) {
- boolean isGlobal= sample.isGlobal();
-
- int commentId= 0;
- int commentKind= sample.getCommentType();
- String comment= sample.getComment();
- if (commentKind == Performance.EXPLAINS_DEGRADATION_COMMENT && comment != null)
- commentId= fSQL.getCommentId(commentKind, comment);
-
- Dimension[] summaryDimensions= sample.getSummaryDimensions();
- for (int i= 0; i < summaryDimensions.length; i++) {
- Dimension dimension= summaryDimensions[i];
- if (dimension instanceof Dim)
- fSQL.createSummaryEntry(variation_id, scenario_id, ((Dim)dimension).getId(), isGlobal, commentId);
- }
- String shortName= sample.getShortname();
- if (shortName != null)
- fSQL.setScenarioShortName(scenario_id, shortName);
- }
- int sample_id= fSQL.createSample(variation_id, scenario_id, new Timestamp(sample.getStartTime()));
-
- if (AGGREGATE) {
- StatisticsSession stats= new StatisticsSession(dataPoints);
- Dim[] dims= dataPoints[0].getDimensions();
-
- int datapoint_id= fSQL.createDataPoint(sample_id, 0, InternalPerformanceMeter.AVERAGE);
- for (int i= 0; i < dims.length; i++) {
- Dim dim= dims[i];
- fSQL.insertScalar(datapoint_id, dim.getId(), (long) stats.getAverage(dim));
- }
-
- datapoint_id= fSQL.createDataPoint(sample_id, 0, InternalPerformanceMeter.STDEV);
- for (int i= 0; i < dims.length; i++) {
- Dim dim= dims[i];
- // see StatisticsSession
- long value= Double.doubleToLongBits(stats.getStddev(dim));
- fSQL.insertScalar(datapoint_id, dim.getId(), value);
- }
-
- datapoint_id= fSQL.createDataPoint(sample_id, 0, InternalPerformanceMeter.SIZE);
- for (int i= 0; i < dims.length; i++) {
- Dim dim= dims[i];
- fSQL.insertScalar(datapoint_id, dim.getId(), stats.getCount(dim));
- }
- } else {
- for (int i= 0; i < dataPoints.length; i++) {
- DataPoint dp= dataPoints[i];
- int datapoint_id= fSQL.createDataPoint(sample_id, i, dp.getStep());
- Scalar[] scalars= dp.getScalars();
- for (int j= 0; j < scalars.length; j++) {
- Scalar scalar= scalars[j];
- int dim_id= scalar.getDimension().getId();
- long value= scalar.getMagnitude();
- fSQL.insertScalar(datapoint_id, dim_id, value);
- }
- }
- }
-
- fConnection.commit();
- fStoredSamples++;
- fStoreCalled= true;
-
- //System.err.println(System.currentTimeMillis()-l);
-
- } catch (SQLException e) {
- PerformanceTestPlugin.log(e);
- try {
- fConnection.rollback();
- } catch (SQLException e1) {
- PerformanceTestPlugin.log(e1);
- }
- }
- return true;
- }
-
- private DataPoint[] internalQueryDataPoints(Variations variations, String scenarioName, Set dimSet) {
- if (fSQL == null)
- return null;
-
- long start = System.currentTimeMillis();
- if (DEBUG)
- System.out.print(" - query data points from DB for scenario "+scenarioName+"..."); //$NON-NLS-1$ //$NON-NLS-2$
- ResultSet rs= null;
- try {
- ArrayList dataPoints= new ArrayList();
- rs= fSQL.queryDataPoints(variations, scenarioName);
- if (DEBUG) {
- long time = System.currentTimeMillis();
- System.out.println("done in "+(time-start)+"ms"); //$NON-NLS-1$ //$NON-NLS-2$
- start = time;
- }
- while (rs.next()) {
- int datapoint_id= rs.getInt(1);
- int step= rs.getInt(2);
-
- HashMap map= new HashMap();
- ResultSet rs2= fSQL.queryScalars(datapoint_id);
- while (rs2.next()) {
- int dim_id= rs2.getInt(1);
- long value= rs2.getBigDecimal(2).longValue();
- Dim dim= Dim.getDimension(dim_id);
- if (dim != null) {
- if (dimSet == null || dimSet.contains(dim))
- map.put(dim, new Scalar(dim, value));
- }
- }
- if (map.size() > 0)
- dataPoints.add(new DataPoint(step, map));
-
- rs2.close();
- }
- rs.close();
-
- int n= dataPoints.size();
- if (DEBUG) {
- long time = System.currentTimeMillis();
- System.out.println(" + " + n + " datapoints created in "+(time-start)+"ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
- return (DataPoint[])dataPoints.toArray(new DataPoint[n]);
-
- } catch (SQLException e) {
- PerformanceTestPlugin.log(e);
-
- } finally {
- if (rs != null)
- try {
- rs.close();
- } catch (SQLException e1) {
- // ignored
- }
- }
- return null;
- }
-
- /*
- * Returns array of scenario names matching the given pattern.
- */
- private String[] internalQueryScenarioNames(Variations variations, String scenarioPattern) {
- if (fSQL == null)
- return null;
- long start = System.currentTimeMillis();
- if (DEBUG) System.out.print(" - query scenario names from DB for scenario pattern '"+scenarioPattern+"'..."); //$NON-NLS-1$ //$NON-NLS-2$
- ResultSet result= null;
- try {
- result= fSQL.queryScenarios(variations, scenarioPattern);
- ArrayList scenarios= new ArrayList();
- for (int i= 0; result.next(); i++)
- scenarios.add(result.getString(1));
- return (String[])scenarios.toArray(new String[scenarios.size()]);
-
- } catch (SQLException e) {
- PerformanceTestPlugin.log(e);
-
- } finally {
- if (result != null) {
- try {
- result.close();
- } catch (SQLException e1) {
- // ignored
- }
- }
- if (DEBUG) {
- long time = System.currentTimeMillis();
- System.out.println("done in "+(time-start)+"ms"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- return null;
- }
-
- /*
- *
- */
- private void internalQueryDistinctValues(List values, String seriesKey, Variations variations, String scenarioPattern) {
- if (fSQL == null)
- return;
- long start = System.currentTimeMillis();
- if (DEBUG) System.out.print(" - query distinct values from DB for scenario pattern '"+scenarioPattern+"'..."); //$NON-NLS-1$ //$NON-NLS-2$
- ResultSet result= null;
- try {
- result= fSQL.queryVariations(variations.toExactMatchString(), scenarioPattern);
- for (int i= 0; result.next(); i++) {
- Variations v= new Variations();
- v.parseDB(result.getString(1));
- String build= v.getProperty(seriesKey);
- if (build != null && !values.contains(build))
- values.add(build);
- }
- } catch (SQLException e) {
- PerformanceTestPlugin.log(e);
-
- } finally {
- if (result != null) {
- try {
- result.close();
- } catch (SQLException e1) {
- // ignored
- }
- }
- if (DEBUG) {
- long time = System.currentTimeMillis();
- System.out.println("done in "+(time-start)+"ms"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- private SummaryEntry[] internalQuerySummaries(Variations variationPatterns, String scenarioPattern) {
- if (fSQL == null)
- return null;
- long start = System.currentTimeMillis();
- if (DEBUG) System.out.print(" - query summaries from DB for scenario pattern '"+scenarioPattern+"'..."); //$NON-NLS-1$ //$NON-NLS-2$
- ResultSet result = null;
- try {
- List fingerprints= new ArrayList();
- if (scenarioPattern != null)
- result= fSQL.querySummaryEntries(variationPatterns, scenarioPattern);
- else
- result= fSQL.queryGlobalSummaryEntries(variationPatterns);
- while (result.next()) {
- String scenarioName= result.getString(1);
- String shortName= result.getString(2);
- int dim_id= result.getInt(3);
- boolean isGlobal= result.getShort(4) == 1;
- int comment_id= result.getInt(5);
- int commentKind= 0;
- String comment= null;
- if (comment_id != 0) {
- ResultSet rs2= fSQL.getComment(comment_id);
- if (rs2.next()) {
- commentKind= rs2.getInt(1);
- comment= rs2.getString(2);
- }
- }
- fingerprints.add(new SummaryEntry(scenarioName, shortName, Dim.getDimension(dim_id), isGlobal, commentKind, comment));
- }
- return (SummaryEntry[])fingerprints.toArray(new SummaryEntry[fingerprints.size()]);
- } catch (SQLException e) {
- PerformanceTestPlugin.log(e);
- } finally {
- if (result != null) {
- try {
- result.close();
- } catch (SQLException e1) {
- // ignored
- }
- }
- if (DEBUG) {
- long time = System.currentTimeMillis();
- System.out.println("done in "+(time-start)+"ms"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- return null;
- }
-
- private String[] internalQuerySeriesValues(Variations v, String scenarioName, String seriesKey) {
-
- boolean isCloned= false;
-
- String[] seriesPatterns= null;
- Object object= v.get(seriesKey);
- if (object instanceof String[])
- seriesPatterns= (String[]) object;
- else if (object instanceof String)
- seriesPatterns= new String[] { (String) object };
- else
- Assert.assertTrue(false);
-
- ArrayList values= new ArrayList();
- for (int i= 0; i < seriesPatterns.length; i++) {
- if (seriesPatterns[i].indexOf('%') >= 0) {
- if (! isCloned) {
- v= (Variations) v.clone();
- isCloned= true;
- }
- v.put(seriesKey, seriesPatterns[i]);
- internalQueryDistinctValues(values, seriesKey, v, scenarioName);
- } else
- values.add(seriesPatterns[i]);
- }
-
- String[] names= (String[])values.toArray(new String[values.size()]);
-
- boolean sort= true;
- Pattern pattern= Pattern.compile("200[3-9][01][0-9][0-3][0-9]"); //$NON-NLS-1$
- final Matcher matcher= pattern.matcher(""); //$NON-NLS-1$
- for (int i= 0; i < names.length; i++) {
- matcher.reset(names[i]);
- if (! matcher.find()) {
- sort= false;
- break;
- }
- }
- if (sort) {
- Arrays.sort(names,
- new Comparator() {
- public int compare(Object o1, Object o2) {
- String s1= (String)o1;
- String s2= (String)o2;
-
- matcher.reset(s1);
- if (matcher.find())
- s1= s1.substring(matcher.start());
-
- matcher.reset(s2);
- if (matcher.find())
- s2= s2.substring(matcher.start());
-
- return s1.compareTo(s2);
- }
- }
- );
- }
- return names;
- }
-
- private Map internalQueryFailure(String scenarioPattern, Variations variations) {
- if (fSQL == null)
- return null;
- long start = System.currentTimeMillis();
- if (DEBUG) System.out.print(" - query failure from DB for scenario pattern '"+scenarioPattern+"'..."); //$NON-NLS-1$ //$NON-NLS-2$
- ResultSet result= null;
- try {
- Map map= new HashMap();
- result= fSQL.queryFailure(variations, scenarioPattern);
- while (result.next()) {
- String scenario= result.getString(1);
- String message= result.getString(2);
- map.put(scenario, message);
- }
- return map;
- } catch (SQLException e) {
- PerformanceTestPlugin.log(e);
-
- } finally {
- if (result != null) {
- try {
- result.close();
- } catch (SQLException e1) {
- // ignored
- }
- }
- if (DEBUG) {
- long time = System.currentTimeMillis();
- System.out.println("done in "+(time-start)+"ms"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- return null;
- }
-
- /**
- * dbloc= embed in home directory
- * dbloc=/tmp/performance embed given location
- * dbloc=net://localhost connect to local server
- * dbloc=net://www.eclipse.org connect to remove server
- */
- private void connect() {
-
- if (fConnection != null)
- return;
-
- String dbloc= PerformanceTestPlugin.getDBLocation();
- if (dbloc == null)
- return;
-
- String dbname= PerformanceTestPlugin.getDBName();
- String url= null;
- java.util.Properties info= new java.util.Properties();
-
- fDBType= DERBY; // assume we are using Derby
- try {
- if (dbloc.startsWith("net://")) { //$NON-NLS-1$
- // remote
- fIsEmbedded= false;
- // connect over network
- if (DEBUG) System.out.println("Trying to connect over network..."); //$NON-NLS-1$
- Class.forName("com.ibm.db2.jcc.DB2Driver"); //$NON-NLS-1$
- info.put("user", PerformanceTestPlugin.getDBUser()); //$NON-NLS-1$
- info.put("password", PerformanceTestPlugin.getDBPassword()); //$NON-NLS-1$
- info.put("retrieveMessagesFromServerOnGetMessage", "true"); //$NON-NLS-1$ //$NON-NLS-2$
- url= dbloc + "/" + dbname + ";create=true"; //$NON-NLS-1$//$NON-NLS-2$
- } else {
-
- // workaround for Derby issue: http://nagoya.apache.org/jira/browse/DERBY-1
- if ("Mac OS X".equals(System.getProperty("os.name"))) //$NON-NLS-1$//$NON-NLS-2$
- System.setProperty("derby.storage.fileSyncTransactionLog", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-
- // embedded
- fIsEmbedded= true;
- try {
- Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); //$NON-NLS-1$
- } catch (ClassNotFoundException e) {
- Class.forName("com.ihost.cs.jdbc.CloudscapeDriver"); //$NON-NLS-1$
- fDBType= CLOUDSCAPE;
- }
- if (DEBUG) System.out.println("Loaded embedded " + fDBType); //$NON-NLS-1$
- File f;
- if (dbloc.length() == 0) {
- String user_home= System.getProperty("user.home"); //$NON-NLS-1$
- if (user_home == null)
- return;
- f= new File(user_home, fDBType);
- } else
- f= new File(dbloc);
- url= new File(f, dbname).getAbsolutePath();
- info.put("create", "true"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- try {
- fConnection= DriverManager.getConnection("jdbc:" + fDBType + ":" + url, info); //$NON-NLS-1$ //$NON-NLS-2$
- } catch (SQLException e) {
- if ("08001".equals(e.getSQLState()) && DERBY.equals(fDBType)) { //$NON-NLS-1$
- if (DEBUG) System.out.println("DriverManager.getConnection failed; retrying for cloudscape"); //$NON-NLS-1$
- // try Cloudscape
- fDBType= CLOUDSCAPE;
- fConnection= DriverManager.getConnection("jdbc:" + fDBType + ":" + url, info); //$NON-NLS-1$ //$NON-NLS-2$
- } else
- throw e;
- }
- if (DEBUG) System.out.println("connect succeeded!"); //$NON-NLS-1$
-
- fConnection.setAutoCommit(false);
- fSQL= new SQL(fConnection);
- fConnection.commit();
-
- } catch (SQLException ex) {
- PerformanceTestPlugin.logError(ex.getMessage());
-
- } catch (ClassNotFoundException e) {
- PerformanceTestPlugin.log(e);
- }
- }
-
- private void disconnect() {
- if (DEBUG && fStoreCalled)
- System.out.println("stored " + fStoredSamples + " new datapoints in DB"); //$NON-NLS-1$ //$NON-NLS-2$
- if (DEBUG) System.out.println("disconnecting from DB"); //$NON-NLS-1$
- if (fSQL != null) {
- try {
- fSQL.dispose();
- } catch (SQLException e1) {
- PerformanceTestPlugin.log(e1);
- }
- fSQL= null;
- }
- if (fConnection != null) {
- try {
- fConnection.commit();
- } catch (SQLException e) {
- PerformanceTestPlugin.log(e);
- }
- try {
- fConnection.close();
- } catch (SQLException e) {
- PerformanceTestPlugin.log(e);
- }
- fConnection= null;
- }
-
- if (fIsEmbedded) {
- try {
- DriverManager.getConnection("jdbc:" + fDBType + ":;shutdown=true"); //$NON-NLS-1$ //$NON-NLS-2$
- } catch (SQLException e) {
- String message= e.getMessage();
- if (message.indexOf("system shutdown.") < 0) //$NON-NLS-1$
- e.printStackTrace();
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/DBHelpers.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/DBHelpers.java
deleted file mode 100644
index 4d79635..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/DBHelpers.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.db;
-
-import java.io.BufferedOutputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.PrintStream;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-import org.eclipse.test.internal.performance.data.Dim;
-
-
-public class DBHelpers {
-
- private Connection fConnection;
-
-
- public static void main(String[] args) throws SQLException {
-
- //System.setProperty("eclipse.perf.dbloc", "net://localhost");
-
- DBHelpers db= new DBHelpers();
-
- String outFile= null;
- //outFile= "out.txt"; //$NON-NLS-1$
- PrintStream ps= null;
- if (outFile != null) {
- try {
- ps= new PrintStream(new BufferedOutputStream(new FileOutputStream(outFile)));
- } catch (FileNotFoundException e) {
- System.err.println("can't create output file"); //$NON-NLS-1$
- }
- }
- if (ps == null)
- ps= System.out;
-
- long start= System.currentTimeMillis();
-
-
- db.dumpSizes(ps);
- //db.renameVariation("|build=3.0.0_200410130800||config=relengbuildwin2|", "|build=3.0.0_200406251208_200410130800||config=relengbuildwin2|");
- //db.dumpTable(ps, "VARIATION", 1000); //$NON-NLS-1$
- //db.countSamplesWithNullVariations();
-
- //Variations v= new Variations();
- //v.put(PerformanceTestPlugin.CONFIG, "relengbuildwin2"); //$NON-NLS-1$
- //v.put(PerformanceTestPlugin.BUILD, "I20041104%"); //$NON-NLS-1$
-
- //db.dumpSummaries(v, null);
- //db.removeSamples(v);
- //db.countSamples(ps, v);
- //db.view(ps, v, "org.eclipse.jdt.core.tests.performance.FullSourceWorkspaceTests#testPerfFullBuild()");
-
-
- System.out.println("time: " + ((System.currentTimeMillis()-start)/1000.0)); //$NON-NLS-1$
-
- if (ps != System.out)
- ps.close();
- }
-
- public DBHelpers() {
- fConnection= DB.getConnection();
- }
-
- void renameVariation(String oldName, String newName) throws SQLException {
- PreparedStatement update= fConnection.prepareStatement("update VARIATION set KEYVALPAIRS = ? where KEYVALPAIRS = ? "); //$NON-NLS-1$
- update.setString(1, newName);
- update.setString(2, oldName);
- update.executeUpdate();
- update.close();
- }
-
- void dumpSummaries(Variations variations, String scenarioPattern) {
- SummaryEntry[] summries= DB.querySummaries(variations, scenarioPattern);
- for (int i= 0; i < summries.length; i++)
- System.out.println(summries[i]);
- }
-
- void count(PrintStream ps) throws SQLException {
- PreparedStatement stmt= fConnection.prepareStatement("select count(*) from SCALAR where DATAPOINT_ID not in (select DATAPOINT.ID from DATAPOINT)"); //$NON-NLS-1$
- ResultSet set= stmt.executeQuery();
- if (set.next())
- ps.println("count: " + set.getInt(1)); //$NON-NLS-1$
- set.close();
- stmt.close();
- }
-
- void countDimension(PrintStream ps, Dim dim) throws SQLException {
- PreparedStatement stmt= fConnection.prepareStatement("select count(*) from SCALAR where DIM_ID = ?"); //$NON-NLS-1$
- stmt.setInt(1, dim.getId());
- ResultSet set= stmt.executeQuery();
- if (set.next())
- ps.println("dimension " + dim + ": " + set.getInt(1)); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- void countAllDimensions(PrintStream ps) throws SQLException {
- PreparedStatement stmt= fConnection.prepareStatement("select distinct DIM_ID from SCALAR"); //$NON-NLS-1$
- ResultSet set= stmt.executeQuery();
- while (set.next()) {
- Dim dimension= Dim.getDimension(set.getInt(1));
- if (dimension != null)
- countDimension(ps, dimension);
- }
- }
-
- int countSamples(PrintStream ps, Variations v) throws SQLException {
- PreparedStatement stmt= fConnection.prepareStatement("select count(*) from SAMPLE, VARIATION where VARIATION.KEYVALPAIRS = ? and SAMPLE.VARIATION_ID = VARIATION.ID"); //$NON-NLS-1$
- stmt.setString(1, v.toExactMatchString());
- ResultSet set= stmt.executeQuery();
- int n= 0;
- if (set.next())
- n= set.getInt(1);
- ps.println("samples with variation " + v + ": " + n); //$NON-NLS-1$ //$NON-NLS-2$
- return n;
- }
-
- void countDatapoints(PrintStream ps, Variations v) throws SQLException {
- PreparedStatement stmt= fConnection.prepareStatement("select count(*) from DATAPOINT, SAMPLE, VARIATION where VARIATION.KEYVALPAIRS = ? and SAMPLE.VARIATION_ID = VARIATION.ID and DATAPOINT.SAMPLE_ID= SAMPLE.ID"); //$NON-NLS-1$
- stmt.setString(1, v.toExactMatchString());
- ResultSet set= stmt.executeQuery();
- if (set.next())
- ps.println("datapoints with variation " + v + ": " + set.getInt(1)); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- void countScalars(PrintStream ps, Variations v) throws SQLException {
- PreparedStatement stmt= fConnection.prepareStatement("select count(*) from SCALAR, DATAPOINT, SAMPLE, VARIATION where VARIATION.KEYVALPAIRS = ? and SAMPLE.VARIATION_ID = VARIATION.ID and DATAPOINT.SAMPLE_ID= SAMPLE.ID and DATAPOINT.ID = SCALAR.DATAPOINT_ID"); //$NON-NLS-1$
- stmt.setString(1, v.toExactMatchString());
- ResultSet set= stmt.executeQuery();
- if (set.next())
- ps.println("scalars with variation " + v + ": " + set.getInt(1)); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- void removeSamples(Variations v) throws SQLException {
-
- boolean delete= true;
-
- int n= countSamples(System.out, v);
-
- int variation_id= 0;
- PreparedStatement stmt= fConnection.prepareStatement("select ID from VARIATION where KEYVALPAIRS = ?"); //$NON-NLS-1$
- stmt.setString(1, v.toExactMatchString());
- ResultSet set= stmt.executeQuery();
- if (set.next()) {
- variation_id= set.getInt(1);
- System.err.println("variation_id: " + variation_id); //$NON-NLS-1$
- }
-
- if (variation_id <= 0) {
- System.err.println("nothing found for variation " + v); //$NON-NLS-1$
- return;
- }
-
- PreparedStatement iterSamples= fConnection.prepareStatement("select SAMPLE.ID, SAMPLE.SCENARIO_ID from SAMPLE where SAMPLE.VARIATION_ID = ?"); //$NON-NLS-1$
- PreparedStatement iterDatapoints= fConnection.prepareStatement("select DATAPOINT.ID from DATAPOINT where DATAPOINT.SAMPLE_ID = ?"); //$NON-NLS-1$
-
- PreparedStatement deleteScalars= fConnection.prepareStatement("delete from SCALAR where DATAPOINT_ID = ?"); //$NON-NLS-1$
- PreparedStatement deleteDatapoints= fConnection.prepareStatement("delete from DATAPOINT where SAMPLE_ID = ?"); //$NON-NLS-1$
- PreparedStatement deleteSamples= fConnection.prepareStatement("delete from SAMPLE where SAMPLE.ID = ?"); //$NON-NLS-1$
- PreparedStatement deleteScenario= fConnection.prepareStatement("delete from SCENARIO where SCENARIO.ID = ?"); //$NON-NLS-1$
-
- ResultSet samples= null, datapoints= null, configs= null;
- iterSamples.setInt(1, variation_id);
- samples= iterSamples.executeQuery();
- while (samples.next()) {
- int sample_id= samples.getInt(1);
- int scenario_id= samples.getInt(2);
- System.out.print(n + ": sample(" + sample_id + "):"); //$NON-NLS-1$ //$NON-NLS-2$
- iterDatapoints.setInt(1, sample_id);
- datapoints= iterDatapoints.executeQuery();
- int dps= 0;
- while (datapoints.next()) {
- int dp_id= datapoints.getInt(1);
- //ps.println(" dp: " + dp_id); //$NON-NLS-1$
- if (delete) {
- deleteScalars.setInt(1, dp_id);
- try {
- deleteScalars.executeUpdate();
- fConnection.commit();
- dps++;
- } catch (SQLException e) {
- System.err.println("removing scalars: " + e); //$NON-NLS-1$
- }
- }
- }
- System.out.println(" dps: " + dps); //$NON-NLS-1$
- if (delete) {
- deleteDatapoints.setInt(1, sample_id);
- try {
- deleteDatapoints.executeUpdate();
- fConnection.commit();
- } catch (SQLException e1) {
- System.err.println("removing datapoints: " + e1); //$NON-NLS-1$
- }
-
- deleteSamples.setInt(1, sample_id);
- try {
- deleteSamples.executeUpdate();
- fConnection.commit();
- } catch (SQLException e) {
- System.err.println("removing sample: " + e); //$NON-NLS-1$
- }
-
- deleteScenario.setInt(1, scenario_id);
- try {
- deleteScenario.executeUpdate();
- fConnection.commit();
- } catch (SQLException e) {
- // System.err.println("removing scenario: " + e); //$NON-NLS-1$
- }
- }
- n--;
- }
- if (delete) {
- PreparedStatement deleteSummaries= fConnection.prepareStatement("delete from SUMMARYENTRY where VARIATION_ID = ?"); //$NON-NLS-1$
- deleteSummaries.setInt(1, variation_id);
- deleteSummaries.executeUpdate();
- deleteSummaries.close();
-
- PreparedStatement deleteVariation= fConnection.prepareStatement("delete from VARIATION where ID = ?"); //$NON-NLS-1$
- deleteVariation.setInt(1, variation_id);
- try {
- deleteVariation.executeUpdate();
- } catch (SQLException e) {
- System.err.println("removing variation: " + e); //$NON-NLS-1$
- }
- deleteVariation.close();
- }
-
- if (configs != null) configs.close();
- if (samples != null) samples.close();
- if (datapoints != null) datapoints.close();
-
- if (iterSamples != null) iterSamples.close();
- if (iterDatapoints != null) iterDatapoints.close();
-
- if (deleteSamples != null) deleteSamples.close();
- if (deleteScenario != null) deleteScenario.close();
- if (deleteScalars != null) deleteScalars.close();
- if (deleteDatapoints != null) deleteDatapoints.close();
- }
-
- void countSamplesWithNullVariations() throws SQLException {
- Statement stmt= fConnection.createStatement();
- ResultSet rs= stmt.executeQuery("select count(*) from SAMPLE where SAMPLE.VARIATION_ID is null"); //$NON-NLS-1$
- while (rs.next()) {
- int config_id= rs.getInt(1);
- System.out.println("samples with NULL variation: " + config_id); //$NON-NLS-1$
- }
- rs.close();
- stmt.close();
- }
-
- void removeDimension(Dim dim) throws SQLException {
- PreparedStatement q= fConnection.prepareStatement("delete from SCALAR where SCALAR.DIM_ID = ?"); //$NON-NLS-1$
- q.setInt(1, dim.getId());
- q.executeUpdate();
- q.close();
- }
-
- void dumpScenarios(PrintStream ps, String pattern) throws SQLException {
- PreparedStatement stmt= fConnection.prepareStatement("select NAME from SCENARIO where NAME like ? order by NAME"); //$NON-NLS-1$
- stmt.setString(1, pattern);
- ResultSet rs= stmt.executeQuery();
- while (rs.next())
- ps.println(rs.getString(1));
- rs.close();
- stmt.close();
- }
-
- void dumpSizes(PrintStream ps) throws SQLException {
- if (fConnection == null)
- return;
- Statement stmt= fConnection.createStatement();
- try {
- ResultSet rs= stmt.executeQuery("SELECT sys.systables.tablename FROM sys.systables WHERE sys.systables.tablename NOT LIKE 'SYS%' "); //$NON-NLS-1$
- while (rs.next())
- dumpSize(ps, rs.getString(1));
- rs.close();
- } finally {
- stmt.close();
- }
- }
-
- void dumpSize(PrintStream ps, String table) throws SQLException {
- Statement stmt= fConnection.createStatement();
- ResultSet rs= stmt.executeQuery("select Count(*) from " + table); //$NON-NLS-1$
- if (rs.next())
- ps.println(table + ": " + rs.getInt(1)); //$NON-NLS-1$
- rs.close();
- stmt.close();
- }
-
- public void dumpAll(PrintStream ps, int maxRow) throws SQLException {
- if (fConnection == null)
- return;
- if (maxRow < 0)
- maxRow= 1000000;
- Statement stmt= fConnection.createStatement();
- try {
- ResultSet rs= stmt.executeQuery("select SYS.SYSTABLES.TABLENAME from SYS.SYSTABLES where SYS.SYSTABLES.TABLENAME not like 'SYS%' "); //$NON-NLS-1$
- while (rs.next()) {
- dumpTable(ps, rs.getString(1), maxRow);
- ps.println();
- }
- rs.close();
- } finally {
- stmt.close();
- }
- }
-
- void dumpTable(PrintStream ps, String tableName, int maxRow) throws SQLException {
- ps.print(tableName + '(');
- Statement select= fConnection.createStatement();
- ResultSet result= select.executeQuery("select * from " + tableName); //$NON-NLS-1$
- ResultSetMetaData metaData= result.getMetaData();
- int n= metaData.getColumnCount();
- for (int i= 0; i < n; i++) {
- ps.print(metaData.getColumnLabel(i+1));
- if (i < n-1)
- ps.print(", "); //$NON-NLS-1$
- }
- ps.println("):"); //$NON-NLS-1$
- for (int r= 0; result.next() && r < maxRow; r++) {
- for (int i= 0; i < n; i++)
- ps.print(' ' + result.getString(i+1));
- ps.println();
- }
- select.close();
- }
-
- void view(PrintStream ps, Variations v, String scenarioPattern) throws SQLException {
- Scenario[] scenarios= DB.queryScenarios(v, scenarioPattern, PerformanceTestPlugin.BUILD, null);
- ps.println(scenarios.length + " Scenarios"); //$NON-NLS-1$
- ps.println();
- for (int s= 0; s < scenarios.length; s++)
- scenarios[s].dump(ps, PerformanceTestPlugin.BUILD);
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Report.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Report.java
deleted file mode 100644
index 6c1bc10..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Report.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.test.internal.performance.db;
-
-import java.io.PrintStream;
-import java.util.HashMap;
-
-public class Report {
-
- private static final String LEFT= "l"; //$NON-NLS-1$
- private static final String RIGHT= "r"; //$NON-NLS-1$
-
- private int fGap;
- private int fColumn;
- private int fRow;
- private int fRows;
- private HashMap fContent= new HashMap();
- private HashMap fWidths= new HashMap();
- private HashMap fAlignment= new HashMap();
-
- public Report(int gap) {
- fGap= gap;
- }
-
- public void addCell(String value) {
- setCell(fColumn, fRow, value, LEFT);
- fColumn++;
- }
-
- public void addCellRight(String value) {
- setCell(fColumn, fRow, value, RIGHT);
- fColumn++;
- }
-
- public void nextRow() {
- fRow++;
- fColumn= 0;
- }
-
- private void setCell(int x, int y, String value, String align) {
- fContent.put(x + "/" + y, value); //$NON-NLS-1$
- fAlignment.put(x + "/" + y, align); //$NON-NLS-1$
- Integer w= (Integer) fWidths.get(Integer.toString(x));
- if (w == null)
- w= new Integer(value.length());
- else
- w= new Integer(Math.max(w.intValue(), value.length()));
- fWidths.put(Integer.toString(x), w);
- fRows= Math.max(fRows, y+1);
- }
-
- private String getCell(int x, int y) {
- return (String) fContent.get(x + "/" + y); //$NON-NLS-1$
- }
-
- public void print(PrintStream ps) {
- int n= fWidths.size();
- for (int y= 0; y < fRows; y++) {
- for (int x= 0; x < n; x++) {
- Integer w= (Integer) fWidths.get(Integer.toString(x));
- int ww= w.intValue();
- String s= getCell(x, y);
- if (s == null)
- s= ""; //$NON-NLS-1$
-
- if (x > 0)
- for (int g= 0; g < fGap; g++)
- ps.print(' ');
-
- int www= ww-s.length();
- String align= (String) fAlignment.get(x + "/" + y); //$NON-NLS-1$
- if (LEFT.equalsIgnoreCase(align))
- ps.print(s);
- for (int l= 0; l < www; l++)
- ps.print(' ');
- if (RIGHT.equalsIgnoreCase(align))
- ps.print(s);
- }
- ps.println();
- }
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/SQL.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/SQL.java
deleted file mode 100644
index 3df9e9a..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/SQL.java
+++ /dev/null
@@ -1,524 +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.test.internal.performance.db;
-
-import java.math.BigDecimal;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Timestamp;
-
-/*
- * Any SQL should only be used here.
- */
-public class SQL {
-
- private boolean fCompatibility= false;
-
- private Connection fConnection;
-
- private PreparedStatement fInsertVariation, fInsertScenario, fInsertSample, fInsertDataPoint, fInsertScalar;
- private PreparedStatement fQueryComment, fInsertComment, fQueryComment2;
- private PreparedStatement fQueryVariation, fQueryVariations, fQueryScenario, fQueryAllScenarios, fQueryDatapoints,
- fQueryScalars;
- private PreparedStatement fInsertSummaryEntry, fUpdateScenarioShortName, fQuerySummaryEntry, fQueryGlobalSummaryEntries,
- fQuerySummaryEntries;
- private PreparedStatement fInsertFailure, fQueryFailure;
-
- SQL(Connection con) throws SQLException {
- fConnection= con;
-
- boolean needsUpgrade= true;
- boolean needsInitialization= true;
- boolean needsFailures= true;
- boolean needsComments= true;
-
- Statement statement= fConnection.createStatement();
- ResultSet rs= statement.executeQuery("select SYS.SYSTABLES.TABLENAME from SYS.SYSTABLES where SYS.SYSTABLES.TABLENAME not like 'SYS%'"); //$NON-NLS-1$
- while (rs.next()) {
- String tablename= rs.getString(1);
- if ("SUMMARYENTRY".equals(tablename)) //$NON-NLS-1$
- needsUpgrade= false;
- else if ("CONFIG_ORG".equals(tablename)) //$NON-NLS-1$
- fCompatibility= true;
- else if ("VARIATION".equals(tablename)) //$NON-NLS-1$
- needsInitialization= false;
- else if ("FAILURE".equals(tablename)) //$NON-NLS-1$
- needsFailures= false;
- else if ("COMMENT".equals(tablename)) //$NON-NLS-1$
- needsComments= false;
- }
- if (!fCompatibility) {
- // check whether table SAMPLE still has the CONFIG_ID column
- rs= statement.executeQuery("select count(*) from SYS.SYSTABLES, SYS.SYSCOLUMNS where SYS.SYSTABLES.TABLENAME = 'SAMPLE' and " + //$NON-NLS-1$
- "SYS.SYSTABLES.TABLEID = SYS.SYSCOLUMNS.REFERENCEID and SYS.SYSCOLUMNS.COLUMNNAME = 'CONFIG_ID' "); //$NON-NLS-1$
- if (rs.next() && rs.getInt(1) == 1)
- fCompatibility= true;
- }
-
- if (needsInitialization)
- initialize();
- else {
- if (needsUpgrade)
- upgradeDB();
- else if (needsFailures)
- addFailureTable();
- if (needsComments)
- addCommentTable();
- }
- }
-
- public void dispose() throws SQLException {
- if (fInsertVariation != null)
- fInsertVariation.close();
- if (fInsertScenario != null)
- fInsertScenario.close();
- if (fInsertSample != null)
- fInsertSample.close();
- if (fInsertDataPoint != null)
- fInsertDataPoint.close();
- if (fInsertScalar != null)
- fInsertScalar.close();
- if (fInsertSummaryEntry != null)
- fInsertSummaryEntry.close();
- if (fInsertFailure != null)
- fInsertFailure.close();
- if (fInsertComment != null)
- fInsertComment.close();
- if (fUpdateScenarioShortName != null)
- fUpdateScenarioShortName.close();
- if (fQueryDatapoints != null)
- fQueryDatapoints.close();
- if (fQueryScalars != null)
- fQueryScalars.close();
- if (fQueryVariation != null)
- fQueryVariation.close();
- if (fQueryScenario != null)
- fQueryScenario.close();
- if (fQueryAllScenarios != null)
- fQueryAllScenarios.close();
- if (fQueryVariations != null)
- fQueryVariations.close();
- if (fQueryGlobalSummaryEntries != null)
- fQueryGlobalSummaryEntries.close();
- if (fQuerySummaryEntries != null)
- fQuerySummaryEntries.close();
- if (fQueryFailure != null)
- fQueryFailure.close();
- if (fQueryComment != null)
- fQueryComment.close();
- if (fQueryComment2 != null)
- fQueryComment2.close();
- }
-
- private void initialize() throws SQLException {
- Statement stmt= null;
- try {
- stmt= fConnection.createStatement();
- stmt.executeUpdate("create table VARIATION (" + //$NON-NLS-1$
- "ID int unique not null GENERATED ALWAYS AS IDENTITY," + //$NON-NLS-1$
- "KEYVALPAIRS varchar(10000) not null " + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
- stmt.executeUpdate("create table SCENARIO (" + //$NON-NLS-1$
- "ID int unique not null GENERATED ALWAYS AS IDENTITY," + //$NON-NLS-1$
- "NAME varchar(256) not null," + //$NON-NLS-1$
- "SHORT_NAME varchar(40)" + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
- stmt.executeUpdate("create table SAMPLE (" + //$NON-NLS-1$
- "ID int not null GENERATED ALWAYS AS IDENTITY," + //$NON-NLS-1$
- "VARIATION_ID int not null," + //$NON-NLS-1$
- "SCENARIO_ID int not null," + //$NON-NLS-1$
- "STARTTIME timestamp" + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
- stmt.executeUpdate("create table DATAPOINT (" + //$NON-NLS-1$
- "ID int not null GENERATED ALWAYS AS IDENTITY," + //$NON-NLS-1$
- "SAMPLE_ID int not null," + //$NON-NLS-1$
- "SEQ int," + //$NON-NLS-1$
- "STEP int" + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
- stmt.executeUpdate("create table SCALAR (" + //$NON-NLS-1$
- "DATAPOINT_ID int not null," + //$NON-NLS-1$
- "DIM_ID int not null," + //$NON-NLS-1$
- "VALUE bigint" + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
- stmt.executeUpdate("create table SUMMARYENTRY (" + //$NON-NLS-1$
- "VARIATION_ID int not null," + //$NON-NLS-1$
- "SCENARIO_ID int not null," + //$NON-NLS-1$
- "DIM_ID int not null," + //$NON-NLS-1$
- "IS_GLOBAL smallint not null," + //$NON-NLS-1$
- "COMMENT_ID int not null" + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
- stmt.executeUpdate("create table FAILURE (" + //$NON-NLS-1$
- "VARIATION_ID int not null," + //$NON-NLS-1$
- "SCENARIO_ID int not null," + //$NON-NLS-1$
- "MESSAGE varchar(1000) not null" + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
- stmt.executeUpdate("create table COMMENT (" + //$NON-NLS-1$
- "ID int unique not null GENERATED ALWAYS AS IDENTITY," + //$NON-NLS-1$
- "KIND int not null," + //$NON-NLS-1$
- "TEXT varchar(400) not null" + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
-
- // Primary/unique
- stmt.executeUpdate("alter table VARIATION add constraint VA_KVP primary key (KEYVALPAIRS)"); //$NON-NLS-1$
- stmt.executeUpdate("alter table SCENARIO add constraint SC_NAME primary key (NAME)"); //$NON-NLS-1$
- stmt.executeUpdate("alter table SAMPLE add constraint SA_ID primary key (ID)"); //$NON-NLS-1$
- stmt.executeUpdate("alter table DATAPOINT add constraint DP_ID primary key (ID)"); //$NON-NLS-1$
-
- // Foreign
- stmt.executeUpdate("alter table SAMPLE add constraint SAMPLE_CONSTRAINT " + //$NON-NLS-1$
- "foreign key (VARIATION_ID) references VARIATION (ID)"); //$NON-NLS-1$
- stmt.executeUpdate("alter table SAMPLE add constraint SAMPLE_CONSTRAINT2 " + //$NON-NLS-1$
- "foreign key (SCENARIO_ID) references SCENARIO (ID)"); //$NON-NLS-1$
- stmt.executeUpdate("alter table DATAPOINT add constraint DP_CONSTRAINT " + //$NON-NLS-1$
- "foreign key (SAMPLE_ID) references SAMPLE (ID)"); //$NON-NLS-1$
- stmt.executeUpdate("alter table SCALAR add constraint SCALAR_CONSTRAINT " + //$NON-NLS-1$
- "foreign key (DATAPOINT_ID) references DATAPOINT (ID)"); //$NON-NLS-1$
-
- stmt.executeUpdate("alter table SUMMARYENTRY add constraint FP_CONSTRAINT " + //$NON-NLS-1$
- "foreign key (VARIATION_ID) references VARIATION (ID)"); //$NON-NLS-1$
- stmt.executeUpdate("alter table SUMMARYENTRY add constraint FP_CONSTRAINT2 " + //$NON-NLS-1$
- "foreign key (SCENARIO_ID) references SCENARIO (ID)"); //$NON-NLS-1$
-
- stmt.executeUpdate("alter table FAILURE add constraint FA_CONSTRAINT " + //$NON-NLS-1$
- "foreign key (VARIATION_ID) references VARIATION (ID)"); //$NON-NLS-1$
- stmt.executeUpdate("alter table FAILURE add constraint FA_CONSTRAINT2 " + //$NON-NLS-1$
- "foreign key (SCENARIO_ID) references SCENARIO (ID)"); //$NON-NLS-1$
-
- fConnection.commit();
-
- } finally {
- if (stmt != null)
- stmt.close();
- }
- }
-
- private void upgradeDB() throws SQLException {
- Statement stmt= null;
- try {
- stmt= fConnection.createStatement();
-
- stmt.executeUpdate("create table SUMMARYENTRY (" + //$NON-NLS-1$
- "VARIATION_ID int not null," + //$NON-NLS-1$
- "SCENARIO_ID int not null," + //$NON-NLS-1$
- "DIM_ID int not null," + //$NON-NLS-1$
- "IS_GLOBAL smallint not null," + //$NON-NLS-1$
- "COMMENT_ID int not null" + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
- stmt.executeUpdate("alter table SUMMARYENTRY add constraint FP_CONSTRAINT " + //$NON-NLS-1$
- "foreign key (VARIATION_ID) references VARIATION (ID)"); //$NON-NLS-1$
- stmt.executeUpdate("alter table SUMMARYENTRY add constraint FP_CONSTRAINT2 " + //$NON-NLS-1$
- "foreign key (SCENARIO_ID) references SCENARIO (ID)"); //$NON-NLS-1$
-
- stmt.executeUpdate("alter table SCENARIO add column SHORT_NAME varchar(40)"); //$NON-NLS-1$
-
- fConnection.commit();
-
- } finally {
- if (stmt != null)
- stmt.close();
- }
- }
-
- private void addCommentTable() throws SQLException {
- Statement stmt= null;
- try {
- stmt= fConnection.createStatement();
-
- stmt.executeUpdate("create table COMMENT (" + //$NON-NLS-1$
- "ID int unique not null GENERATED ALWAYS AS IDENTITY," + //$NON-NLS-1$
- "KIND int not null," + //$NON-NLS-1$
- "TEXT varchar(400) not null" + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
-
- stmt.executeUpdate("alter table SUMMARYENTRY add column COMMENT_ID int not null default 0"); //$NON-NLS-1$
-
- fConnection.commit();
-
- } finally {
- if (stmt != null)
- stmt.close();
- }
- }
-
- private void addFailureTable() throws SQLException {
- Statement stmt= null;
- try {
- stmt= fConnection.createStatement();
-
- stmt.executeUpdate("create table FAILURE (" + //$NON-NLS-1$
- "VARIATION_ID int not null," + //$NON-NLS-1$
- "SCENARIO_ID int not null," + //$NON-NLS-1$
- "MESSAGE varchar(1000) not null" + //$NON-NLS-1$
- ")" //$NON-NLS-1$
- );
-
- stmt.executeUpdate("alter table FAILURE add constraint FA_CONSTRAINT " + //$NON-NLS-1$
- "foreign key (VARIATION_ID) references VARIATION (ID)"); //$NON-NLS-1$
- stmt.executeUpdate("alter table FAILURE add constraint FA_CONSTRAINT2 " + //$NON-NLS-1$
- "foreign key (SCENARIO_ID) references SCENARIO (ID)"); //$NON-NLS-1$
-
- fConnection.commit();
-
- } finally {
- if (stmt != null)
- stmt.close();
- }
- }
-
- static int create(PreparedStatement stmt) throws SQLException {
- stmt.executeUpdate();
- ResultSet rs= stmt.getGeneratedKeys();
- if (rs != null) {
- try {
- if (rs.next()) {
- BigDecimal idColVar= rs.getBigDecimal(1);
- return idColVar.intValue();
- }
- } finally {
- rs.close();
- }
- }
- return 0;
- }
-
- int getScenario(String scenarioPattern) throws SQLException {
- if (fQueryScenario == null)
- fQueryScenario= fConnection.prepareStatement("select ID from SCENARIO where NAME = ?"); //$NON-NLS-1$
- fQueryScenario.setString(1, scenarioPattern);
- ResultSet result= fQueryScenario.executeQuery();
- while (result.next())
- return result.getInt(1);
-
- if (fInsertScenario == null)
- fInsertScenario= fConnection.prepareStatement("insert into SCENARIO (NAME) values (?)", Statement.RETURN_GENERATED_KEYS); //$NON-NLS-1$
- fInsertScenario.setString(1, scenarioPattern);
- return create(fInsertScenario);
- }
-
- int getVariations(Variations variations) throws SQLException {
- if (fQueryVariation == null)
- fQueryVariation= fConnection.prepareStatement("select ID from VARIATION where KEYVALPAIRS = ?"); //$NON-NLS-1$
- String exactMatchString= variations.toExactMatchString();
- fQueryVariation.setString(1, exactMatchString);
- ResultSet result= fQueryVariation.executeQuery();
- while (result.next())
- return result.getInt(1);
-
- if (fInsertVariation == null)
- fInsertVariation= fConnection.prepareStatement("insert into VARIATION (KEYVALPAIRS) values (?)", Statement.RETURN_GENERATED_KEYS); //$NON-NLS-1$
- fInsertVariation.setString(1, exactMatchString);
- return create(fInsertVariation);
- }
-
- int createSample(int variation_id, int scenario_id, Timestamp starttime) throws SQLException {
- if (fInsertSample == null) {
- if (fCompatibility) {
- // since we cannot remove table columns in cloudscape we have to
- // provide a non-null value for CONFIG_ID
- fInsertSample= fConnection.prepareStatement("insert into SAMPLE (VARIATION_ID, SCENARIO_ID, STARTTIME, CONFIG_ID) values (?, ?, ?, 0)", Statement.RETURN_GENERATED_KEYS); //$NON-NLS-1$
- } else {
- fInsertSample= fConnection.prepareStatement("insert into SAMPLE (VARIATION_ID, SCENARIO_ID, STARTTIME) values (?, ?, ?)", Statement.RETURN_GENERATED_KEYS); //$NON-NLS-1$
- }
- }
- fInsertSample.setInt(1, variation_id);
- fInsertSample.setInt(2, scenario_id);
- fInsertSample.setTimestamp(3, starttime);
- return create(fInsertSample);
- }
-
- int createDataPoint(int sample_id, int seq, int step) throws SQLException {
- if (fInsertDataPoint == null)
- fInsertDataPoint= fConnection.prepareStatement("insert into DATAPOINT (SAMPLE_ID, SEQ, STEP) values (?, ?, ?)", Statement.RETURN_GENERATED_KEYS); //$NON-NLS-1$
- fInsertDataPoint.setInt(1, sample_id);
- fInsertDataPoint.setInt(2, seq);
- fInsertDataPoint.setInt(3, step);
- return create(fInsertDataPoint);
- }
-
- void insertScalar(int datapoint_id, int dim_id, long value) throws SQLException {
- if (fInsertScalar == null)
- fInsertScalar= fConnection.prepareStatement("insert into SCALAR values (?, ?, ?)"); //$NON-NLS-1$
- fInsertScalar.setInt(1, datapoint_id);
- fInsertScalar.setInt(2, dim_id);
- fInsertScalar.setLong(3, value);
- fInsertScalar.executeUpdate();
- }
-
- ResultSet queryDataPoints(Variations variations, String scenarioName) throws SQLException {
- if (fQueryDatapoints == null)
- fQueryDatapoints= fConnection.prepareStatement("select DATAPOINT.ID, DATAPOINT.STEP from VARIATION, SCENARIO, SAMPLE, DATAPOINT " + //$NON-NLS-1$
- "where " + //$NON-NLS-1$
- "SAMPLE.VARIATION_ID = VARIATION.ID and VARIATION.KEYVALPAIRS = ? and " + //$NON-NLS-1$
- "SAMPLE.SCENARIO_ID = SCENARIO.ID and SCENARIO.NAME LIKE ? and " + //$NON-NLS-1$
- "DATAPOINT.SAMPLE_ID = SAMPLE.ID " //$NON-NLS-1$
- );
- fQueryDatapoints.setString(1, variations.toExactMatchString());
- fQueryDatapoints.setString(2, scenarioName);
- return fQueryDatapoints.executeQuery();
- }
-
- ResultSet queryScalars(int datapointId) throws SQLException {
- if (fQueryScalars == null)
- fQueryScalars= fConnection.prepareStatement("select SCALAR.DIM_ID, SCALAR.VALUE from SCALAR where SCALAR.DATAPOINT_ID = ?"); //$NON-NLS-1$
- fQueryScalars.setInt(1, datapointId);
- return fQueryScalars.executeQuery();
- }
-
- /*
- * Returns SCENARIO.NAME
- */
- ResultSet queryScenarios(Variations variations, String scenarioPattern) throws SQLException {
- if (fQueryAllScenarios == null)
- fQueryAllScenarios= fConnection.prepareStatement("select distinct SCENARIO.NAME from SCENARIO, SAMPLE, VARIATION where " + //$NON-NLS-1$
- "SAMPLE.VARIATION_ID = VARIATION.ID and VARIATION.KEYVALPAIRS LIKE ? and " + //$NON-NLS-1$
- "SAMPLE.SCENARIO_ID = SCENARIO.ID and SCENARIO.NAME LIKE ?" //$NON-NLS-1$
- );
- fQueryAllScenarios.setString(1, variations.toQueryPattern());
- fQueryAllScenarios.setString(2, scenarioPattern);
- return fQueryAllScenarios.executeQuery();
- }
-
- /*
- * Returns VARIATION.KEYVALPAIRS
- */
- ResultSet queryVariations(String variations, String scenarioPattern) throws SQLException {
- if (fQueryVariations == null)
- fQueryVariations= fConnection.prepareStatement("select distinct VARIATION.KEYVALPAIRS from VARIATION, SAMPLE, SCENARIO where " + //$NON-NLS-1$
- "SAMPLE.VARIATION_ID = VARIATION.ID and VARIATION.KEYVALPAIRS LIKE ? and " + //$NON-NLS-1$
- "SAMPLE.SCENARIO_ID = SCENARIO.ID and SCENARIO.NAME LIKE ?" //$NON-NLS-1$
- );
- fQueryVariations.setString(1, variations);
- fQueryVariations.setString(2, scenarioPattern);
- return fQueryVariations.executeQuery();
- }
-
- void createSummaryEntry(int variation_id, int scenario_id, int dim_id, boolean isGlobal, int comment_id) throws SQLException {
- if (fQuerySummaryEntry == null)
- fQuerySummaryEntry= fConnection.prepareStatement(
- "select count(*) from SUMMARYENTRY where VARIATION_ID = ? and SCENARIO_ID = ? and DIM_ID = ? and IS_GLOBAL = ? and COMMENT_ID = ?"); //$NON-NLS-1$
- fQuerySummaryEntry.setInt(1, variation_id);
- fQuerySummaryEntry.setInt(2, scenario_id);
- fQuerySummaryEntry.setInt(3, dim_id);
- fQuerySummaryEntry.setShort(4, (short) (isGlobal ? 1 : 0));
- fQuerySummaryEntry.setInt(5, comment_id);
- ResultSet result= fQuerySummaryEntry.executeQuery();
- if (result.next() && result.getInt(1) > 0)
- return;
-
- if (fInsertSummaryEntry == null)
- fInsertSummaryEntry= fConnection.prepareStatement("insert into SUMMARYENTRY (VARIATION_ID, SCENARIO_ID, DIM_ID, IS_GLOBAL, COMMENT_ID) values (?, ?, ?, ?, ?)"); //$NON-NLS-1$
- fInsertSummaryEntry.setInt(1, variation_id);
- fInsertSummaryEntry.setInt(2, scenario_id);
- fInsertSummaryEntry.setInt(3, dim_id);
- fInsertSummaryEntry.setShort(4, (short) (isGlobal ? 1 : 0));
- fInsertSummaryEntry.setInt(5, comment_id);
- fInsertSummaryEntry.executeUpdate();
- }
-
- public void setScenarioShortName(int scenario_id, String shortName) throws SQLException {
- if (shortName.length() >= 40)
- shortName= shortName.substring(0, 40);
- if (fUpdateScenarioShortName == null)
- fUpdateScenarioShortName= fConnection.prepareStatement("update SCENARIO set SHORT_NAME = ? where SCENARIO.ID = ?"); //$NON-NLS-1$
- fUpdateScenarioShortName.setString(1, shortName);
- fUpdateScenarioShortName.setInt(2, scenario_id);
- fUpdateScenarioShortName.executeUpdate();
- }
-
- ResultSet queryGlobalSummaryEntries(Variations variations) throws SQLException {
- if (fQueryGlobalSummaryEntries == null)
- fQueryGlobalSummaryEntries= fConnection.prepareStatement(
- "select distinct SCENARIO.NAME, SCENARIO.SHORT_NAME, SUMMARYENTRY.DIM_ID, SUMMARYENTRY.IS_GLOBAL, SUMMARYENTRY.COMMENT_ID " + //$NON-NLS-1$
- "from VARIATION, SCENARIO, SUMMARYENTRY " + //$NON-NLS-1$
- "where SUMMARYENTRY.VARIATION_ID = VARIATION.ID " + //$NON-NLS-1$
- "and VARIATION.KEYVALPAIRS LIKE ? " + //$NON-NLS-1$
- "and SUMMARYENTRY.SCENARIO_ID = SCENARIO.ID " + //$NON-NLS-1$
- "and SUMMARYENTRY.IS_GLOBAL = 1 " + //$NON-NLS-1$
- "order by SCENARIO.NAME" //$NON-NLS-1$
- );
- fQueryGlobalSummaryEntries.setString(1, variations.toExactMatchString());
- return fQueryGlobalSummaryEntries.executeQuery();
- }
-
- ResultSet querySummaryEntries(Variations variations, String scenarioPattern) throws SQLException {
- if (fQuerySummaryEntries == null)
- fQuerySummaryEntries= fConnection.prepareStatement(
- "select distinct SCENARIO.NAME, SCENARIO.SHORT_NAME, SUMMARYENTRY.DIM_ID, SUMMARYENTRY.IS_GLOBAL, SUMMARYENTRY.COMMENT_ID " + //$NON-NLS-1$
- "from VARIATION, SCENARIO, SUMMARYENTRY " + //$NON-NLS-1$
- "where SUMMARYENTRY.VARIATION_ID = VARIATION.ID " + //$NON-NLS-1$
- "and VARIATION.KEYVALPAIRS LIKE ? " + //$NON-NLS-1$
- "and SUMMARYENTRY.SCENARIO_ID = SCENARIO.ID " + //$NON-NLS-1$
- "and SCENARIO.NAME like ? " + //$NON-NLS-1$
- "order by SCENARIO.NAME" //$NON-NLS-1$
- );
- fQuerySummaryEntries.setString(1, variations.toExactMatchString());
- fQuerySummaryEntries.setString(2, scenarioPattern);
- return fQuerySummaryEntries.executeQuery();
- }
-
- void insertFailure(int variation_id, int scenario_id, String message) throws SQLException {
- if (fInsertFailure == null)
- fInsertFailure= fConnection.prepareStatement("insert into FAILURE values (?, ?, ?)"); //$NON-NLS-1$
- fInsertFailure.setInt(1, variation_id);
- fInsertFailure.setInt(2, scenario_id);
- fInsertFailure.setString(3, message);
- fInsertFailure.executeUpdate();
- }
-
- public ResultSet queryFailure(Variations variations, String scenarioPattern) throws SQLException {
- if (fQueryFailure == null)
- fQueryFailure= fConnection.prepareStatement("select SCENARIO.NAME, FAILURE.MESSAGE from FAILURE, VARIATION, SCENARIO where " + //$NON-NLS-1$
- "FAILURE.VARIATION_ID = VARIATION.ID and VARIATION.KEYVALPAIRS LIKE ? and " + //$NON-NLS-1$
- "FAILURE.SCENARIO_ID = SCENARIO.ID and SCENARIO.NAME LIKE ?" //$NON-NLS-1$
- );
- fQueryFailure.setString(1, variations.toExactMatchString());
- fQueryFailure.setString(2, scenarioPattern);
- return fQueryFailure.executeQuery();
- }
-
- int getCommentId(int commentKind, String comment) throws SQLException {
- if (comment.length() > 400)
- comment= comment.substring(0, 400);
- if (fQueryComment == null)
- fQueryComment= fConnection.prepareStatement("select ID from COMMENT where KIND = ? and TEXT = ?"); //$NON-NLS-1$
- fQueryComment.setInt(1, commentKind);
- fQueryComment.setString(2, comment);
- ResultSet result= fQueryComment.executeQuery();
- while (result.next())
- return result.getInt(1);
-
- if (fInsertComment == null)
- fInsertComment= fConnection.prepareStatement("insert into COMMENT (KIND, TEXT) values (?, ?)", Statement.RETURN_GENERATED_KEYS); //$NON-NLS-1$
- fInsertComment.setInt(1, commentKind);
- fInsertComment.setString(2, comment);
- return create(fInsertComment);
- }
-
- public ResultSet getComment(int comment_id) throws SQLException {
- if (fQueryComment2 == null)
- fQueryComment2= fConnection.prepareStatement("select KIND, TEXT from COMMENT where ID = ?"); //$NON-NLS-1$
- fQueryComment2.setInt(1, comment_id);
- return fQueryComment2.executeQuery();
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Scenario.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Scenario.java
deleted file mode 100644
index a5ec83e..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Scenario.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.db;
-
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import junit.framework.Assert;
-
-import org.eclipse.test.internal.performance.data.DataPoint;
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.eval.StatisticsSession;
-
-/**
- * A Scenario contains a series of data points for a single scenario.
- * The axis of the data points can be specified when creating a scenario.
- * Typical examples are:
- * - datapoints corresponding to different builds
- * - datapoints corresponding to different OSes
- * - datapoints corresponding to different JVMs
- * @since 3.1
- */
-public class Scenario {
-
- private final static boolean DEBUG= false;
-
- public static class SharedState {
-
- private Variations fVariations;
- private String fSeriesKey;
- private Set fQueryDimensions;
- private String fScenarioPattern;
- private Map fMessages;
-
-
- SharedState(Variations variations, String scenarioPattern, String seriesKey, Dim[] dimensions) {
- fVariations= variations;
- fScenarioPattern= scenarioPattern;
- fSeriesKey= seriesKey;
- if (dimensions != null && dimensions.length > 0) {
- fQueryDimensions= new HashSet();
- for (int i= 0; i < dimensions.length; i++)
- fQueryDimensions.add(dimensions[i]);
- }
- }
-
- String[] getFailures(String[] names, String scenarioId) {
- if (fMessages == null) {
- fMessages= new HashMap();
- Variations v= (Variations) fVariations.clone();
- for (int i= 0; i < names.length; i++) {
- v.put(fSeriesKey, names[i]);
- Map map= DB.queryFailure(fScenarioPattern, v);
- fMessages.put(names[i], map);
- }
- }
- String[] result= new String[names.length];
- for (int i= 0; i < names.length; i++) {
- Map messages= (Map) fMessages.get(names[i]);
- if (messages != null)
- result[i]= (String) messages.get(scenarioId);
- }
- return result;
- }
- }
-
- private SharedState fSharedState;
- private String fScenarioName;
- private String[] fSeriesNames;
- private StatisticsSession[] fSessions;
- private Map fSeries= new HashMap();
- private Dim[] fDimensions;
-
- /**
- * @param scenario
- * @param variations
- * @param seriesKey
- * @param dimensions
- * @deprecated
- */
- public Scenario(String scenario, Variations variations, String seriesKey, Dim[] dimensions) {
- Assert.assertFalse(scenario.indexOf('%') >= 0);
- fScenarioName= scenario;
- fSharedState= new SharedState(variations, scenario, seriesKey, dimensions);
- }
-
- /**
- * @param scenario
- * @param sharedState
- */
- public Scenario(String scenario, SharedState sharedState) {
- Assert.assertFalse(scenario.indexOf('%') >= 0);
- fScenarioName= scenario;
- fSharedState= sharedState;
- }
-
- public String getScenarioName() {
- return fScenarioName;
- }
-
- public Dim[] getDimensions() {
- loadSessions();
- if (fDimensions == null)
- return new Dim[0];
- return fDimensions;
- }
-
- public String[] getTimeSeriesLabels() {
- loadSeriesNames();
- if (fSeriesNames == null)
- return new String[0];
- return fSeriesNames;
- }
-
- public String[] getFailureMessages() {
- loadSeriesNames();
- return fSharedState.getFailures(fSeriesNames, fScenarioName);
- }
-
- public TimeSeries getTimeSeries(Dim dim) {
- loadSessions();
- TimeSeries ts= (TimeSeries) fSeries.get(dim);
- if (ts == null) {
- double[] ds= new double[fSessions.length];
- double[] sd= new double[fSessions.length];
- long[] sizes= new long[fSessions.length];
- for (int i= 0; i < ds.length; i++) {
- ds[i]= fSessions[i].getAverage(dim);
- sd[i]= fSessions[i].getStddev(dim);
- sizes[i]= fSessions[i].getCount(dim);
- }
- ts= new TimeSeries(fSeriesNames, ds, sd, sizes);
- fSeries.put(dim, ts);
- }
- return ts;
- }
-
- public void dump(PrintStream ps, String key) {
- ps.println("Scenario: " + getScenarioName()); //$NON-NLS-1$
- Report r= new Report(2);
-
- String[] timeSeriesLabels= getTimeSeriesLabels();
- r.addCell(key + ":"); //$NON-NLS-1$
- for (int j= 0; j < timeSeriesLabels.length; j++)
- r.addCellRight(timeSeriesLabels[j]);
- r.nextRow();
-
- Dim[] dimensions= getDimensions();
- for (int i= 0; i < dimensions.length; i++) {
- Dim dim= dimensions[i];
- r.addCell(dim.getName() + ':');
-
- TimeSeries ts= getTimeSeries(dim);
- int n= ts.getLength();
- for (int j= 0; j < n; j++) {
- String stddev= ""; //$NON-NLS-1$
- double stddev2= ts.getStddev(j);
- if (stddev2 != 0.0)
- stddev= " [" + dim.getDisplayValue(stddev2) + "]"; //$NON-NLS-1$ //$NON-NLS-2$
- r.addCellRight(dim.getDisplayValue(ts.getValue(j)) + stddev);
- }
- r.nextRow();
- }
- r.print(ps);
- ps.println();
- }
-
- //---- private
-
- private void loadSeriesNames() {
- if (fSeriesNames == null) {
- long start;
- if (DEBUG) start= System.currentTimeMillis();
- fSeriesNames= DB.querySeriesValues(fScenarioName, fSharedState.fVariations, fSharedState.fSeriesKey);
- if (DEBUG) System.err.println("names: " + (System.currentTimeMillis()-start)); //$NON-NLS-1$
- }
- }
-
- private void loadSessions() {
- if (fSessions != null)
- return;
-
- loadSeriesNames();
-
- long start;
- Variations v= (Variations) fSharedState.fVariations.clone();
- if (DEBUG) start= System.currentTimeMillis();
- ArrayList sessions= new ArrayList();
- ArrayList names2= new ArrayList();
- Set dims= new HashSet();
- for (int t= 0; t < fSeriesNames.length; t++) {
- v.put(fSharedState.fSeriesKey, fSeriesNames[t]);
- DataPoint[] dps= DB.queryDataPoints(v, fScenarioName, fSharedState.fQueryDimensions);
- if (DEBUG) System.err.println(" dps length: " + dps.length); //$NON-NLS-1$
- if (dps.length > 0) {
- dims.addAll(dps[0].getDimensions2());
- sessions.add(new StatisticsSession(dps));
- names2.add(fSeriesNames[t]);
- }
- }
- if (DEBUG) System.err.println("data: " + (System.currentTimeMillis()-start)); //$NON-NLS-1$
-
- fSessions= (StatisticsSession[]) sessions.toArray(new StatisticsSession[sessions.size()]);
- fSeriesNames= (String[]) names2.toArray(new String[sessions.size()]);
-
- fDimensions= (Dim[]) dims.toArray(new Dim[dims.size()]);
- Arrays.sort(fDimensions,
- new Comparator() {
- public int compare(Object o1, Object o2) {
- Dim d1= (Dim)o1;
- Dim d2= (Dim)o2;
- return d1.getName().compareTo(d2.getName());
- }
- }
- );
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/SummaryEntry.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/SummaryEntry.java
deleted file mode 100644
index 3a19e77..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/SummaryEntry.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.test.internal.performance.db;
-
-import org.eclipse.test.internal.performance.data.Dim;
-
-
-public class SummaryEntry {
- public String scenarioName;
- public String shortName;
- public Dim dimension;
- public boolean isGlobal;
- public int commentKind;
- public String comment;
-
- SummaryEntry(String scenarioName, String shortName, Dim dimension, boolean isGlobal) {
- this.scenarioName= scenarioName;
- this.shortName= shortName;
- this.dimension= dimension;
- this.isGlobal= isGlobal;
- }
-
- SummaryEntry(String scenarioName, String shortName, Dim dimension, boolean isGlobal, int commentKind, String comment) {
- this.scenarioName= scenarioName;
- this.shortName= shortName;
- this.dimension= dimension;
- this.isGlobal= isGlobal;
- this.commentKind= commentKind;
- this.comment= comment;
- }
-
- public String toString() {
- return "SummaryEntry("+isGlobal+"): <" + scenarioName + "> <" + shortName + "> <" + dimension + '>'; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/TimeSeries.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/TimeSeries.java
deleted file mode 100644
index 3108908..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/TimeSeries.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.db;
-
-public class TimeSeries {
-
- private String[] fBuildNames;
- private double[] fAverages;
- private double[] fStddev;
- private long[] fCount;
-
- TimeSeries(String[] tags, double[] averages, double[] stddev, long[] sizes) {
- fBuildNames= tags;
- fAverages= averages;
- fStddev= stddev;
- fCount= sizes;
- }
-
- /**
- * Returns length of series.
- * @return length of series
- */
- public int getLength() {
- return fBuildNames.length;
- }
-
- /**
- * Returns value at given index.
- * @param ix
- * @return value at given index
- */
- public double getValue(int ix) {
- return fAverages[ix];
- }
-
- /**
- * Returns std dev at given index.
- * @param ix
- * @return std dev at given index
- */
- public double getStddev(int ix) {
- return fStddev[ix];
- }
-
- /**
- * Returns label at given index.
- * @param ix
- * @return label at given index
- */
- public String getLabel(int ix) {
- return fBuildNames[ix];
- }
-
- /**
- * Returns the sample size at the given index.
- *
- * @param ix
- * @return the sample size at the given index
- */
- public long getCount(int ix) {
- return fCount[ix];
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Variations.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Variations.java
deleted file mode 100644
index 751a6c6..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/Variations.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.test.internal.performance.db;
-
-import java.util.Arrays;
-import java.util.Properties;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-
-/**
- * The <code>Variations</code> class represents a set of key/value pairs
- * and is used to tag data stored in the performance database and when
- * querying for data from the database.
- */
-public class Variations extends Properties {
-
- private static final long serialVersionUID= 1L;
-
- /**
- * Creates an empty set of key/value pairs.
- */
- public Variations() {
- //
- }
-
- /**
- * Creates a Variations object that is populated with a "config" and a "build" key/value pair.
- * @param configValue a value to store under the config key
- * @param buildValue a value to store under the build key
- * @deprecated Use the default constructor instead and fill in key/value pairs explicitely.
- */
- public Variations(String configValue, String buildValue) {
- if (configValue != null)
- put(PerformanceTestPlugin.CONFIG, configValue);
- if (buildValue != null)
- put(PerformanceTestPlugin.BUILD, buildValue);
- }
-
- /**
- * Creates a set of key/value pairs by parsing the given string.
- * The format of the string must be:
- * <pre>
- * key1=value1;key2=value2; .... ; keyn=valuen
- * </pre>
- * @param keyValuePairs
- */
- public Variations(String keyValuePairs) {
- parsePairs(keyValuePairs);
- }
-
- public String toExactMatchString() {
- return toDB(this, false);
- }
-
- public String toQueryPattern() {
- return toDB(this, true);
- }
-
- public void parsePairs(String keyvaluepairs) {
- parse(keyvaluepairs, ";"); //$NON-NLS-1$
- }
-
- public void parseDB(String keyvaluepairs) {
- parse(keyvaluepairs, "|"); //$NON-NLS-1$
- }
-
- /**
- * parsing the given string as key/value pairs and stores them in Variations.
- * The string's format is an implementation detail of the database.
- * @param keyvaluepairs
- * @param separator
- */
- private void parse(String keyvaluepairs, String separator) {
- StringTokenizer st= new StringTokenizer(keyvaluepairs, separator);
- while (st.hasMoreTokens()) {
- String token= st.nextToken();
- int i= token.indexOf('=');
- if (i < 1)
- throw new IllegalArgumentException("kev/value pair '" + token + "' is illformed"); //$NON-NLS-1$ //$NON-NLS-2$
- String value= token.substring(i+1);
- token= token.substring(0, i);
- //System.out.println(token + ": <" + value + ">");
- put(token, value);
- }
- }
-
- /*
- * TODO: we need to escape '=' and ';' characters in key/values.
- */
- private static String toDB(Properties keyValues, boolean asQuery) {
- Set set= keyValues.keySet();
- String[] keys= (String[]) set.toArray(new String[set.size()]);
- Arrays.sort(keys);
- StringBuffer sb= new StringBuffer();
-
- for (int i= 0; i < keys.length; i++) {
- if (asQuery)
- sb.append('%');
- String key= keys[i];
- String value= keyValues.getProperty(key);
- sb.append('|');
- sb.append(key);
- sb.append('=');
- if (value != null)
- sb.append(value);
- sb.append('|');
- }
- if (asQuery)
- sb.append('%');
- return sb.toString();
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/View.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/View.java
deleted file mode 100644
index b966ff5..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/db/View.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.test.internal.performance.db;
-
-import java.io.BufferedOutputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.PrintStream;
-
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-
-/**
- * Dumps performance data to stdout.
- */
-public class View {
-
- public static void main(String[] args) {
-
- Variations variations= PerformanceTestPlugin.getVariations();
- variations.put("config", "eclipseperfwin2_R3.3"); //$NON-NLS-1$//$NON-NLS-2$
- variations.put("build", "I200704%"); //$NON-NLS-1$//$NON-NLS-2$
- variations.put("jvm", "sun"); //$NON-NLS-1$//$NON-NLS-2$
-
- String scenarioPattern= "%RevertJavaEditorTest%"; //$NON-NLS-1$
-
- String seriesKey= PerformanceTestPlugin.BUILD;
-
- String outFile= null;
- // outfile= "/tmp/dbdump"; //$NON-NLS-1$
- PrintStream ps= null;
- if (outFile != null) {
- try {
- ps= new PrintStream(new BufferedOutputStream(new FileOutputStream(outFile)));
- } catch (FileNotFoundException e) {
- System.err.println("can't create output file"); //$NON-NLS-1$
- }
- }
- if (ps == null)
- ps= System.out;
-
- Scenario[] scenarios= DB.queryScenarios(variations, scenarioPattern, seriesKey, null);
- ps.println(scenarios.length + " Scenarios"); //$NON-NLS-1$
- ps.println();
-
- for (int s= 0; s < scenarios.length; s++)
- scenarios[s].dump(ps, PerformanceTestPlugin.BUILD);
-
- if (ps != System.out)
- ps.close();
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/AbsoluteBandChecker.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/AbsoluteBandChecker.java
deleted file mode 100644
index b552010..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/AbsoluteBandChecker.java
+++ /dev/null
@@ -1,54 +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.test.internal.performance.eval;
-
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.data.Scalar;
-
-
-/**
- * @since 3.1
- */
-public class AbsoluteBandChecker extends AssertChecker {
-
- private long fLowerBand;
- private long fUpperBand;
-
- public AbsoluteBandChecker(Dim dimension, long lowerBand, long upperBand) {
- super(dimension);
- fLowerBand= lowerBand;
- fUpperBand= upperBand;
- }
-
- public boolean test(StatisticsSession reference, StatisticsSession measured, StringBuffer message) {
- Dim dimension= getDimension();
-
- if (!measured.contains(dimension)) {
- PerformanceTestPlugin.logWarning("collected data provides no dimension '"+dimension.getName()+'\''); //$NON-NLS-1$
- return true;
- }
- if (!reference.contains(dimension)) {
- PerformanceTestPlugin.logWarning("reference data provides no dimension '"+dimension.getName()+'\''); //$NON-NLS-1$
- return true;
- }
-
- double actual= measured.getAverage(dimension);
- double test= reference.getAverage(dimension);
-
- if (actual > fUpperBand + test || actual < test - fLowerBand) {
- message.append('\n' + dimension.getName() + ": " + dimension.getDisplayValue(actual) + " is not within [-" + dimension.getDisplayValue(new Scalar(null, fLowerBand)) + ", +" + dimension.getDisplayValue(new Scalar(null, fUpperBand)) + "] of " + dimension.getDisplayValue(test)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return false;
- }
-
- return true;
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/AssertChecker.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/AssertChecker.java
deleted file mode 100644
index dc6339b..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/AssertChecker.java
+++ /dev/null
@@ -1,53 +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.test.internal.performance.eval;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.test.internal.performance.data.Assert;
-import org.eclipse.test.internal.performance.data.Dim;
-
-/**
- * @since 3.1
- */
-public abstract class AssertChecker {
- private Set fDimensions;
-
- public AssertChecker(Dim dimension) {
- this(new Dim[] {dimension});
- }
-
- public AssertChecker(Dim[] dimensions) {
- fDimensions= new HashSet();
- fDimensions.addAll(Arrays.asList(dimensions));
- }
-
- public Dim[] getDimensions() {
- return (Dim[]) fDimensions.toArray(new Dim[fDimensions.size()]);
- }
-
- protected Dim getDimension() {
- Assert.isTrue(fDimensions.size() == 1);
- return getDimensions()[0];
- }
-
- /**
- * Evaluates the predicate.
- *
- * @param reference statistics of dimensions of the reference metering session
- * @param measured statistics of dimensions of the metering session to be tested
- * @param message a message presented to the user upon failure
- * @return <code>true</code> if the predicate passes, <code>false</code> if it fails
- */
- public abstract boolean test(StatisticsSession reference, StatisticsSession measured, StringBuffer message);
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/EmptyEvaluator.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/EmptyEvaluator.java
deleted file mode 100644
index 72b9657..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/EmptyEvaluator.java
+++ /dev/null
@@ -1,41 +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.test.internal.performance.eval;
-
-import org.eclipse.test.performance.PerformanceMeter;
-
-/**
- * The empty evaluator. Does nothing.
- */
-public class EmptyEvaluator implements IEvaluator {
-
- /*
- * @see org.eclipse.test.internal.performance.eval.IEvaluator#evaluate(org.eclipse.jdt.ui.tests.performance.PerformanceMeter)
- */
- public void evaluate(PerformanceMeter performanceMeter) throws RuntimeException {
- // empty
- }
-
- /*
- * @see org.eclipse.test.internal.performance.eval.IEvaluator#setAssertCheckers(org.eclipse.test.internal.performance.eval.AssertChecker[])
- */
- public void setAssertCheckers(AssertChecker[] asserts) {
- // empty
- }
-
- /*
- * @see org.eclipse.test.internal.performance.eval.IEvaluator#setReferenceFilterProperties(java.lang.String, java.lang.String)
- */
- public void setReferenceFilterProperties(String driver, String timestamp) {
- // empty
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/Evaluator.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/Evaluator.java
deleted file mode 100644
index ea4b616..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/Evaluator.java
+++ /dev/null
@@ -1,105 +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.test.internal.performance.eval;
-
-import java.util.HashSet;
-import junit.framework.Assert;
-
-import org.eclipse.test.internal.performance.InternalPerformanceMeter;
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-import org.eclipse.test.internal.performance.data.DataPoint;
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.data.Sample;
-import org.eclipse.test.internal.performance.db.DB;
-import org.eclipse.test.internal.performance.db.Variations;
-import org.eclipse.test.performance.PerformanceMeter;
-
-/**
- * The default implementation of an evaluator backed by a database.
- * @since 3.1
- */
-public class Evaluator extends EmptyEvaluator {
-
- private AssertChecker[] fCheckers;
-
-
- public void setAssertCheckers(AssertChecker[] asserts) {
- fCheckers= asserts;
- }
-
- /*
- * @see org.eclipse.test.internal.performance.eval.IEvaluator#evaluate(org.eclipse.jdt.ui.tests.performance.PerformanceMeter)
- */
- public void evaluate(PerformanceMeter performanceMeter) throws RuntimeException {
-
- if (fCheckers == null)
- return; // nothing to do
-
- // get reference build tag
- Variations refKeys= PerformanceTestPlugin.getAssertAgainst();
- if (refKeys == null)
- return; // nothing to do
-
- if (!(performanceMeter instanceof InternalPerformanceMeter))
- return; // we cannot handle this.
-
- InternalPerformanceMeter ipm= (InternalPerformanceMeter) performanceMeter;
- Sample session= ipm.getSample();
- Assert.assertTrue("metering session is null", session != null); //$NON-NLS-1$
- String scenarioName= session.getScenarioID();
-
- // determine all dimensions we need
- HashSet allDimensions= new HashSet();
- for (int i= 0; i < fCheckers.length; i++) {
- AssertChecker chk= fCheckers[i];
- Dim[] dims= chk.getDimensions();
- for (int j= 0; j < dims.length; j++)
- allDimensions.add(dims[j]);
- }
-
- // get data for this session
- DataPoint[] sessionDatapoints;
- Variations config= PerformanceTestPlugin.getVariations();
- if (config != null)
- sessionDatapoints= DB.queryDataPoints(config, scenarioName, allDimensions);
- else
- sessionDatapoints= session.getDataPoints();
- if (sessionDatapoints == null || sessionDatapoints.length == 0) {
- PerformanceTestPlugin.logWarning("no session data named '" + config + "' found"); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
-
- // get reference data
- DataPoint[] datapoints= DB.queryDataPoints(refKeys, scenarioName, allDimensions);
- if (datapoints == null || datapoints.length == 0) {
- PerformanceTestPlugin.logWarning("no reference data named '" + refKeys + "' found"); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
-
- // calculate the average
- StatisticsSession referenceStats= new StatisticsSession(datapoints);
- StatisticsSession measuredStats= new StatisticsSession(sessionDatapoints);
-
- StringBuffer failMesg= new StringBuffer("Performance criteria not met when compared to '" + refKeys + "':"); //$NON-NLS-1$ //$NON-NLS-2$
- boolean pass= true;
- for (int i= 0; i < fCheckers.length; i++) {
- AssertChecker chk= fCheckers[i];
- pass &= chk.test(referenceStats, measuredStats, failMesg);
- }
-
- if (!pass) {
- if (config != null)
- DB.markAsFailed(config, session, failMesg.toString());
-// else
-// Assert.assertTrue(failMesg.toString(), false);
- }
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/IEvaluator.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/IEvaluator.java
deleted file mode 100644
index a237388..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/IEvaluator.java
+++ /dev/null
@@ -1,44 +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.test.internal.performance.eval;
-
-import org.eclipse.test.performance.PerformanceMeter;
-
-/**
- * @since 3.1
- */
-public interface IEvaluator {
-
- /**
- * Evaluates the given performance meter by comparing its measurements
- * against the reference data selected with
- * <code>setReferenceFilterProperties</code>.
- *
- * @param performanceMeter the performance meter
- * @throws RuntimeException when the comparison does not pass
- */
- void evaluate(PerformanceMeter performanceMeter) throws RuntimeException;
-
- /**
- * Sets the asserts that should be evaluated by the evaluator.
- *
- * @param asserts the assert checkers that should be evaluated by the evaluator
- */
- void setAssertCheckers(AssertChecker[] asserts);
-
- /**
- * Selects the reference build against which the current session will
- * be compared in <code>evaluate</code>.
- * @param driver
- * @param timestamp the timestamp of the reference, may be null to use any
- */
- void setReferenceFilterProperties(String driver, String timestamp);
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/RelativeBandChecker.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/RelativeBandChecker.java
deleted file mode 100644
index 22856d4..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/RelativeBandChecker.java
+++ /dev/null
@@ -1,62 +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.test.internal.performance.eval;
-
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-import org.eclipse.test.internal.performance.data.Dim;
-
-/**
- * @since 3.1
- */
-public class RelativeBandChecker extends AssertChecker {
-
- private final double fLowerBand;
- private final double fUpperBand;
-
- public RelativeBandChecker(Dim dimension, double lowerBand, double upperBand) {
- super(dimension);
- fLowerBand= lowerBand;
- fUpperBand= upperBand;
- }
-
- public boolean test(StatisticsSession reference, StatisticsSession measured, StringBuffer message) {
- Dim dimension= getDimension();
-
- if (!measured.contains(dimension)) {
- PerformanceTestPlugin.logWarning("collected data provides no dimension '"+dimension.getName()+'\''); //$NON-NLS-1$
- return true;
- }
- if (!reference.contains(dimension)) {
- PerformanceTestPlugin.logWarning("reference data provides no dimension '"+dimension.getName()+'\''); //$NON-NLS-1$
- return true;
- }
-
- double actual= measured.getAverage(dimension);
- double test= reference.getAverage(dimension);
-
- if (test < 0.001 && test > -0.001) {
- // we don't fail for reference value of zero
- PerformanceTestPlugin.logWarning("ref value for '"+dimension.getName()+"' is too small"); //$NON-NLS-1$ //$NON-NLS-2$
- return true;
- }
- if (actual < 0) {
- // we don't fail for negative values
- PerformanceTestPlugin.logWarning("actual value for '"+dimension.getName()+"' is negative"); //$NON-NLS-1$ //$NON-NLS-2$
- return true;
- }
-
- if (actual > fUpperBand * test || actual < fLowerBand * test) {
- message.append('\n' + dimension.getName() + ": " + dimension.getDisplayValue(actual) + " is not within [" + Math.round(fLowerBand * 100)+ "%, " + Math.round(fUpperBand * 100) + "%] of " + dimension.getDisplayValue(test)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- return false;
- }
- return true;
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/StatisticsSession.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/StatisticsSession.java
deleted file mode 100644
index 799bddd..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/StatisticsSession.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.eval;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.test.internal.performance.InternalPerformanceMeter;
-import org.eclipse.test.internal.performance.data.DataPoint;
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.data.Scalar;
-import org.eclipse.test.internal.performance.eval.StatisticsUtil.Percentile;
-
-import junit.framework.Assert;
-
-/**
- * @since 3.1
- */
-public class StatisticsSession {
-
- static final class Statistics {
- public long count;
- public long sum;
- public double average;
- public double stddev;
- }
-
- private final DataPoint[] fDataPoints;
- private final Map fStatistics= new HashMap();
-
- public StatisticsSession(DataPoint[] datapoints) {
- fDataPoints= datapoints;
- }
-
- public double getAverage(Dim dimension) {
- return getStats(dimension).average;
- }
-
- public long getSum(Dim dimension) {
- return getStats(dimension).sum;
- }
-
- public long getCount(Dim dimension) {
- return getStats(dimension).count;
- }
-
- public double getStddev(Dim dimension) {
- return getStats(dimension).stddev;
- }
-
- double getStderr_mean(Dim dimension) {
- return getStats(dimension).stddev / Math.sqrt(getStats(dimension).count);
- }
-
- double getStudentsT(Dim dimension, Percentile percentile) {
- int df= (int) getStats(dimension).count - 1;
- return StatisticsUtil.getStudentsT(df, percentile);
- }
-
- /**
- * Returns the confidence interval for the given dimension and the percentile.
- *
- * @param dimension the dimension
- * @param percentile the percentile
- * @return an array of length two, with the lower and upper bounds of the confidence interval
- */
- public double[] getConfidenceInterval(Dim dimension, Percentile percentile) {
- double mean= getAverage(dimension);
- double stat_err= getStderr_mean(dimension);
-
- double t= getStudentsT(dimension, percentile);
-
- double[] interval= {mean - t * stat_err, mean + t * stat_err};
-
- return interval;
- }
-
- private Statistics getStats(Dim dimension) {
- Statistics stats= (Statistics) fStatistics.get(dimension);
- if (stats == null) {
- stats= computeStats(dimension);
- fStatistics.put(dimension, stats);
- }
- return stats;
- }
-
- private Statistics computeStats(Dim dimension) {
-
- Statistics stats;
-
- Set steps= new HashSet();
- for (int j= 0; j < fDataPoints.length; j++) {
- DataPoint dp= fDataPoints[j];
- steps.add(new Integer(dp.getStep()));
- }
-
- if (steps.contains(new Integer(InternalPerformanceMeter.AVERAGE))) {
- // an already aggregated set of data points from the DB
- stats= computeStatsFromAggregates(dimension);
- } else if (steps.contains(new Integer(InternalPerformanceMeter.AFTER))) {
- // raw values from measurement
- stats= computeStatsFromMeasurements(dimension, steps);
- } else {
- Assert.fail("illegal data set: contains neither AVERAGE nor AFTER values."); //$NON-NLS-1$
- stats= null; // dummy
- }
-
- return stats;
- }
-
- private Statistics computeStatsFromAggregates(Dim dimension) {
- Statistics stats= new Statistics();
- long aggregateCount= 0;
- double averageSum= 0;
- long countSum= 0;
- double stdevSum= 0;
-
-// Set acquiredAggregates= new HashSet();
- for (int i= 0; i < fDataPoints.length; i++) {
- DataPoint point= fDataPoints[i];
- Scalar scalar= point.getScalar(dimension);
- if (scalar == null)
- continue;
-
- Integer aggregate= new Integer(point.getStep());
- // allow for multiple measurements that were each stored with their own
- // aggregate values
-// Assert.assertTrue(acquiredAggregates.add(aggregate));
-
- long magnitude= scalar.getMagnitude();
- switch (aggregate.intValue()) {
- case InternalPerformanceMeter.AVERAGE:
- averageSum += magnitude;
- aggregateCount++;
- break;
- case InternalPerformanceMeter.STDEV:
- // see DB.internalStore
- stdevSum += Double.longBitsToDouble(magnitude);
- break;
- case InternalPerformanceMeter.SIZE:
- countSum += magnitude;
- break;
- default:
- Assert.fail("only average, stdev and size are supported in aggregate mode"); //$NON-NLS-1$
- break;
- }
- }
-
- stats.average= averageSum / aggregateCount;
- stats.stddev= stdevSum / aggregateCount; // XXX this does not work! have to treat multiple runs like normal measurement data
- stats.count= countSum;
- stats.sum= Math.round(stats.count * stats.average);
-
- return stats;
- }
-
- private Statistics computeStatsFromMeasurements(Dim dimension, Set steps) {
- Statistics stats= new Statistics();
- long mags[];
- switch (steps.size()) {
- case 1:
- // if there is only one Step, we don't calculate the delta. happens for startup tests
- mags= new long[fDataPoints.length];
- for (int i= 0; i < fDataPoints.length; i++) {
- Scalar sc= fDataPoints[i].getScalar(dimension);
- mags[i]= sc == null ? 0 : sc.getMagnitude();
- }
- break;
- case 2:
- int count= fDataPoints.length / 2;
- mags= new long[count];
- for (int i= 0; i < count; i ++) {
- DataPoint before= fDataPoints[2 * i];
- Assert.assertTrue("wrong order of steps", before.getStep() == InternalPerformanceMeter.BEFORE); //$NON-NLS-1$
- DataPoint after= fDataPoints[2 * i + 1];
- Assert.assertTrue("wrong order of steps", after.getStep() == InternalPerformanceMeter.AFTER); //$NON-NLS-1$
-
- Scalar delta= getDelta(before, after, dimension);
- long magnitude= delta.getMagnitude();
- mags[i]= magnitude;
- }
- break;
- default:
- Assert.fail("cannot handle more than two steps in measurement mode"); //$NON-NLS-1$
- return null; // dummy
- }
-
- for (int i= 0; i < mags.length; i++) {
- stats.sum += mags[i];
- stats.count++;
- }
-
- if (stats.count > 0) {
- stats.average= (double) stats.sum / stats.count;
- if (stats.count == 1) {
- stats.stddev= 0;
- } else {
- double squaredDeviations= 0;
- for (int i= 0; i < mags.length; i++) {
- double deviation= stats.average - mags[i];
- squaredDeviations += deviation * deviation;
- }
- stats.stddev= Math.sqrt(squaredDeviations / (stats.count - 1)); // unbiased sample stdev
- }
- } else {
- stats.average= 0;
- stats.stddev= 0;
- }
-
- return stats;
- }
-
- private Scalar getDelta(DataPoint before, DataPoint after, Dim dimension) {
- Scalar one= before.getScalar(dimension);
- Assert.assertTrue("reference has no value for dimension " + dimension, one != null); //$NON-NLS-1$
-
- Scalar two= after.getScalar(dimension);
- Assert.assertTrue("reference has no value for dimension " + dimension, two != null); //$NON-NLS-1$
-
- return new Scalar(one.getDimension(), two.getMagnitude() - one.getMagnitude());
- }
-
- public boolean contains(Dim dimension) {
- if (fDataPoints.length > 0)
- return fDataPoints[0].contains(dimension);
- return false;
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/StatisticsUtil.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/StatisticsUtil.java
deleted file mode 100644
index a114129..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/eval/StatisticsUtil.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.eval;
-
-import org.eclipse.test.internal.performance.db.TimeSeries;
-
-/**
- * Utility methods for statistics.
- *
- * @since 3.2
- */
-public final class StatisticsUtil {
- /**
- * Percentile constants class.
- *
- * @since 3.2
- */
- public static final class Percentile {
- final int fColumn;
- private final double fInside;
-
- private Percentile(int column, double inside) {
- fColumn= column;
- fInside= inside;
- }
-
- /**
- * Returns how much is within the percentile, [0, 1]
- *
- * @return the inside quotient
- */
- public double inside() {
- return fInside;
- }
- }
-
- public static final Percentile T90= new Percentile(0, 0.9);
- public static final Percentile T95= new Percentile(1, 0.95);
- public static final Percentile T97_5= new Percentile(2, 0.975);
- public static final Percentile T99= new Percentile(3, 0.99);
-
- /**
- * Returns the student's t value from the two-tailed t-table. For a degree-of-freedom larger
- * than 100, the value for 100 is returned.
- *
- * @param df the degrees of freedom (usually sample size - 1)
- * @param percentile the percentile
- * @return the corresponding student's t value
- */
- public static double getStudentsT(int df, Percentile percentile) {
- if (df < 0)
- df= 0;
- else if (df > 100)
- df= 100;
- return T[df][percentile.fColumn];
- }
-
- /**
- * Returns <code>true</code> if the mean of two data sets is significantly different, such
- * that the probability that they are from the same population is lower than
- * <code>percentile</code>, <code>false</code> otherwise. The data sets are taken from
- * <code>series</code> at <code>index1</code> and <code>index2</code>.
- * <p>
- * Note that no conclusion must be drawn from a <code>false</code> return value: it does not
- * indicate that the two data sets are from the same population - there may simply be not enough
- * data to conclude the other way, for example due to a small sample size or large standard
- * deviation.
- * </p>
- * <p>
- * Also note that a <code>true</code> return value does not say anything about the relevance
- * of the difference - a statistically significant difference may be practically irrelevant if
- * it is small.
- * </p>
- * <p>
- * XXX the current implementation assumes that the standard deviations are sufficiently similar.
- * </p>
- *
- * @param refSeries the time series containing the first data set
- * @param index1 the index into <code>series1</code> for the first data set
- * @param testSeries the time series containing the second data set
- * @param index2 the index into <code>series2</code> for the second data set
- * @param percentile the percentile level to use
- * @return <code>true</code> if the null hypothesis is rejected on the <code>percentile</code>
- * level, <code>false</code> if it cannot be rejected based on the given data
- */
- public static double[] statisticsForTimeSeries(TimeSeries refSeries, int index1, TimeSeries testSeries, int index2, Percentile percentile) {
- // see http://bmj.bmjjournals.com/collections/statsbk/7.shtml
-
- double[] values = new double[] { refSeries.getValue(index1), testSeries.getValue(index2) };
- long[] counts = new long[] { refSeries.getCount(index1), testSeries.getCount(index2) };
- double[] stddevs = new double[] { refSeries.getStddev(index1), testSeries.getStddev(index2) };
- double ttest = studentTtest(values, stddevs, counts, percentile);
- return new double[] {
- getStudentsT((int) (counts[0] + counts[1] - 2), percentile),
- ttest,
- standardError(values, stddevs, counts),
- deviation(values),
- };
- }
-
- public static double studentTtest(double[] values, double[] stddevs, long[] counts, Percentile percentile) {
-
- double ref = values[0];
- double val= values[1];
-
- double delta= ref - val;
- long df1= counts[0] - 1;
- double sd1= stddevs[0];
- long df2= counts[1];
- double sd2= stddevs[1];
- // TODO if the stdev's are not sufficiently similar, we have to take a different approach
-
- if (!Double.isNaN(sd1) && !Double.isNaN(sd2) && df1 > 0 && df2 > 0) {
- long df= df1 + df2;
- double sp_square= (df1 * sd1 * sd1 + df2 * sd2 * sd2) / df;
-
- double se_diff= Math.sqrt(sp_square * (1.0 / (df1 + 1) + 1.0 / (df2 + 1)));
- return Math.abs(delta / se_diff);
- }
-
- return -1;
- }
-
- public static double deviation(double[] values) {
- return (values[1] - values[0]) / values[0];
- }
-
- public static double standardError(double[] values, double[] stddevs, long[] counts) {
- return Math.sqrt((stddevs[0] * stddevs[0] / counts[0]) + (stddevs[1] * stddevs[1] / counts[1])) / values[0];
- }
-
- /**
- * The (two-tailed) T-table. [degrees_of_freedom][percentile]
- */
- private static final double[][] T= {
- { Double.NaN, Double.NaN, Double.NaN, Double.NaN},
- { Double.NaN, Double.NaN, Double.NaN, Double.NaN},
- {2.92,4.3027,6.2054,9.925},
- {2.3534,3.1824,4.1765,5.8408},
- {2.1318,2.7765,3.4954,4.6041},
- {2.015,2.5706,3.1634,4.0321},
- {1.9432,2.4469,2.9687,3.7074},
- {1.8946,2.3646,2.8412,3.4995},
- {1.8595,2.306,2.7515,3.3554},
- {1.8331,2.2622,2.685,3.2498},
- {1.8125,2.2281,2.6338,3.1693},
- {1.7959,2.201,2.5931,3.1058},
- {1.7823,2.1788,2.56,3.0545},
- {1.7709,2.1604,2.5326,3.0123},
- {1.7613,2.1448,2.5096,2.9768},
- {1.7531,2.1315,2.4899,2.9467},
- {1.7459,2.1199,2.4729,2.9208},
- {1.7396,2.1098,2.4581,2.8982},
- {1.7341,2.1009,2.445,2.8784},
- {1.7291,2.093,2.4334,2.8609},
- {1.7247,2.086,2.4231,2.8453},
- {1.7207,2.0796,2.4138,2.8314},
- {1.7171,2.0739,2.4055,2.8188},
- {1.7139,2.0687,2.3979,2.8073},
- {1.7109,2.0639,2.391,2.797},
- {1.7081,2.0595,2.3846,2.7874},
- {1.7056,2.0555,2.3788,2.7787},
- {1.7033,2.0518,2.3734,2.7707},
- {1.7011,2.0484,2.3685,2.7633},
- {1.6991,2.0452,2.3638,2.7564},
- {1.6973,2.0423,2.3596,2.75},
- {1.6955,2.0395,2.3556,2.744},
- {1.6939,2.0369,2.3518,2.7385},
- {1.6924,2.0345,2.3483,2.7333},
- {1.6909,2.0322,2.3451,2.7284},
- {1.6896,2.0301,2.342,2.7238},
- {1.6883,2.0281,2.3391,2.7195},
- {1.6871,2.0262,2.3363,2.7154},
- {1.686,2.0244,2.3337,2.7116},
- {1.6849,2.0227,2.3313,2.7079},
- {1.6839,2.0211,2.3289,2.7045},
- {1.6829,2.0195,2.3267,2.7012},
- {1.682,2.0181,2.3246,2.6981},
- {1.6811,2.0167,2.3226,2.6951},
- {1.6802,2.0154,2.3207,2.6923},
- {1.6794,2.0141,2.3189,2.6896},
- {1.6787,2.0129,2.3172,2.687},
- {1.6779,2.0117,2.3155,2.6846},
- {1.6772,2.0106,2.3139,2.6822},
- {1.6766,2.0096,2.3124,2.68},
- {1.6759,2.0086,2.3109,2.6778},
- {1.6753,2.0076,2.3095,2.6757},
- {1.6747,2.0066,2.3082,2.6737},
- {1.6741,2.0057,2.3069,2.6718},
- {1.6736,2.0049,2.3056,2.67},
- {1.673,2.004,2.3044,2.6682},
- {1.6725,2.0032,2.3033,2.6665},
- {1.672,2.0025,2.3022,2.6649},
- {1.6716,2.0017,2.3011,2.6633},
- {1.6711,2.001,2.3,2.6618},
- {1.6706,2.0003,2.299,2.6603},
- {1.6702,1.9996,2.2981,2.6589},
- {1.6698,1.999,2.2971,2.6575},
- {1.6694,1.9983,2.2962,2.6561},
- {1.669,1.9977,2.2954,2.6549},
- {1.6686,1.9971,2.2945,2.6536},
- {1.6683,1.9966,2.2937,2.6524},
- {1.6679,1.996,2.2929,2.6512},
- {1.6676,1.9955,2.2921,2.6501},
- {1.6672,1.9949,2.2914,2.649},
- {1.6669,1.9944,2.2906,2.6479},
- {1.6666,1.9939,2.2899,2.6469},
- {1.6663,1.9935,2.2892,2.6458},
- {1.666,1.993,2.2886,2.6449},
- {1.6657,1.9925,2.2879,2.6439},
- {1.6654,1.9921,2.2873,2.643},
- {1.6652,1.9917,2.2867,2.6421},
- {1.6649,1.9913,2.2861,2.6412},
- {1.6646,1.9908,2.2855,2.6403},
- {1.6644,1.9905,2.2849,2.6395},
- {1.6641,1.9901,2.2844,2.6387},
- {1.6639,1.9897,2.2838,2.6379},
- {1.6636,1.9893,2.2833,2.6371},
- {1.6634,1.989,2.2828,2.6364},
- {1.6632,1.9886,2.2823,2.6356},
- {1.663,1.9883,2.2818,2.6349},
- {1.6628,1.9879,2.2813,2.6342},
- {1.6626,1.9876,2.2809,2.6335},
- {1.6624,1.9873,2.2804,2.6329},
- {1.6622,1.987,2.28,2.6322},
- {1.662,1.9867,2.2795,2.6316},
- {1.6618,1.9864,2.2791,2.6309},
- {1.6616,1.9861,2.2787,2.6303},
- {1.6614,1.9858,2.2783,2.6297},
- {1.6612,1.9855,2.2779,2.6291},
- {1.6611,1.9852,2.2775,2.6286},
- {1.6609,1.985,2.2771,2.628},
- {1.6607,1.9847,2.2767,2.6275},
- {1.6606,1.9845,2.2764,2.6269},
- {1.6604,1.9842,2.276,2.6264},
- {1.6602,1.984,2.2757,2.6259},
- };
-
- private StatisticsUtil() {
- // don't instantiate
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/AllTests.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/AllTests.java
deleted file mode 100644
index 18eeb10..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/AllTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.test.internal.performance.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-
-public class AllTests {
-
- public static Test suite() {
- TestSuite suite= new TestSuite("Performance Test plugin tests"); //$NON-NLS-1$
-
- //suite.addTestSuite(SimplePerformanceMeterTest.class);
- suite.addTestSuite(VariationsTests.class);
- suite.addTestSuite(DBTests.class);
- suite.addTestSuite(PerformanceMeterFactoryTest.class);
-
- return suite;
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/DBTests.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/DBTests.java
deleted file mode 100644
index 9cf372d..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/DBTests.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.test.internal.performance.tests;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.test.internal.performance.InternalDimensions;
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-import org.eclipse.test.internal.performance.data.DataPoint;
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.data.Scalar;
-import org.eclipse.test.internal.performance.db.DB;
-import org.eclipse.test.internal.performance.db.Scenario;
-import org.eclipse.test.internal.performance.db.SummaryEntry;
-import org.eclipse.test.internal.performance.db.Variations;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.Performance;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
-
-public class DBTests extends TestCase {
-
- private static final String CONFIG= "c"; //$NON-NLS-1$
- private static final String BUILD= "b"; //$NON-NLS-1$
-
- private static final String SCENARIO_NAME_0= "bar.testScenario0"; //$NON-NLS-1$
- private static final String SCENARIO_NAME_1= "bar.testScenario1"; //$NON-NLS-1$
- private static final String SCENARIO_NAME_2= "bar.testScenario2"; //$NON-NLS-1$
- private static final String SCENARIO_NAME_3= "foo.testScenario3"; //$NON-NLS-1$
- private static final String SCENARIO_NAME_4= "foo.testScenario4"; //$NON-NLS-1$
- private static final String SHORT_NAME_2= "ShortName2"; //$NON-NLS-1$
- private static final String SHORT_NAME_3= "ShortName3"; //$NON-NLS-1$
- private static final String SHORT_NAME_4= "ShortName4"; //$NON-NLS-1$
-
- private static final String DBLOC= "testDBs"; //$NON-NLS-1$
- //private static final String DBLOC= "net://localhost"; //$NON-NLS-1$
- private static String DBNAME;
- private static final String DBUSER= "testUser"; //$NON-NLS-1$
- private static final String DBPASSWD= "testPassword"; //$NON-NLS-1$
-
-
- protected void setUp() throws Exception {
- super.setUp();
-
- // generate a unique DB name
- DBNAME= "testDB_" + new Date().getTime(); //$NON-NLS-1$
-
- System.setProperty("eclipse.perf.dbloc", DBLOC + ";dbname=" + DBNAME + ";dbuser=" + DBUSER + ";dbpasswd=" + DBPASSWD); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- System.setProperty("eclipse.perf.config", CONFIG+"=test;"+BUILD+"=b0001;jvm=sun142"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- System.setProperty("eclipse.perf.assertAgainst", BUILD+"=base"); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- public void testPropertyGetters() {
- assertEquals(DBLOC, PerformanceTestPlugin.getDBLocation());
- assertEquals(DBNAME, PerformanceTestPlugin.getDBName());
- assertEquals(DBUSER, PerformanceTestPlugin.getDBUser());
- assertEquals(DBPASSWD, PerformanceTestPlugin.getDBPassword());
-
- assertEquals("|"+BUILD+"=b0001||"+CONFIG+"=test||jvm=sun142|", PerformanceTestPlugin.getVariations().toExactMatchString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertEquals("|"+BUILD+"=base||"+CONFIG+"=test||jvm=sun142|", PerformanceTestPlugin.getAssertAgainst().toExactMatchString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-
- public void testAssertPerformance() throws SQLException {
-
- Performance perf= Performance.getDefault();
-
- // set the variation for the reference data
- System.setProperty("eclipse.perf.config", CONFIG+"=test;"+BUILD+"=ref"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- // store a reference value
- TestPerformanceMeter pm1= new TestPerformanceMeter(SCENARIO_NAME_0);
- pm1.addPair(InternalDimensions.CPU_TIME, 100, 1000);
- pm1.addPair(InternalDimensions.WORKING_SET, 1000, 2000);
-
- pm1.start();
- pm1.stop();
- pm1.commit();
- pm1.dispose();
-
- String build= "001"; //$NON-NLS-1$
- // set the variation for the this run
- System.setProperty("eclipse.perf.config", CONFIG+"=test;"+BUILD+"="+build); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- // assert that this run's values are compared against reference data
- System.setProperty("eclipse.perf.assertAgainst", BUILD+"=ref"); //$NON-NLS-1$ //$NON-NLS-2$
-
- // store a reference value
- TestPerformanceMeter pm2= new TestPerformanceMeter(SCENARIO_NAME_0);
- pm2.addPair(InternalDimensions.CPU_TIME, 100, 1100);
- pm2.addPair(InternalDimensions.WORKING_SET, 1000, 2000);
-
- pm2.start();
- pm2.stop();
- pm2.commit();
- boolean failed= false;
- try {
- perf.assertPerformanceInRelativeBand(pm2, InternalDimensions.CPU_TIME, -5, +5);
- } catch (AssertionFailedError e) {
- failed= true;
- }
- pm2.dispose();
-
- if (!failed) {
- // check in DB
- Variations v= new Variations();
- v.put(CONFIG, "%"); //$NON-NLS-1$
- v.put(BUILD, build);
- Scenario[] scenarios= DB.queryScenarios(v, SCENARIO_NAME_0, CONFIG, null);
- if (scenarios != null && scenarios.length > 0) {
- Scenario s= scenarios[0];
- String[] failureMessages= s.getFailureMessages();
- if (failureMessages.length == 1) {
- String mesg= failureMessages[0];
- if (mesg != null && mesg.equals("Performance criteria not met when compared to '{b=ref, c=test}':\nCPU Time: 1 s is not within [95%, 105%] of 900 ms")) //$NON-NLS-1$
- failed= true;
- }
- }
- }
- assertTrue(failed);
- }
-
- public void testBasicDBFunctionality() {
-
- Performance perf= Performance.getDefault();
-
- TestPerformanceMeter pm1= new TestPerformanceMeter(SCENARIO_NAME_1);
- pm1.addPair(InternalDimensions.CPU_TIME, 100, 1000);
- pm1.addPair(InternalDimensions.WORKING_SET, 1000, 2000);
- pm1.start();
- pm1.stop();
- pm1.commit();
- pm1.dispose();
-
- TestPerformanceMeter pm2= new TestPerformanceMeter(SCENARIO_NAME_2);
- pm2.addPair(InternalDimensions.CPU_TIME, 100, 1000);
- pm2.addPair(InternalDimensions.WORKING_SET, 1000, 2000);
- perf.tagAsGlobalSummary(pm2, SHORT_NAME_2, new Dimension[] { Dimension.CPU_TIME, Dimension.USED_JAVA_HEAP } );
- pm2.start();
- pm2.stop();
- pm2.commit();
- pm2.dispose();
-
- TestPerformanceMeter pm3= new TestPerformanceMeter(SCENARIO_NAME_3);
- pm3.addPair(InternalDimensions.CPU_TIME, 100, 1000);
- pm3.addPair(InternalDimensions.WORKING_SET, 1000, 2000);
- perf.tagAsGlobalSummary(pm3, SHORT_NAME_3, Dimension.CPU_TIME);
- pm3.start();
- pm3.stop();
- pm3.commit();
- pm3.dispose();
-
- TestPerformanceMeter pm4= new TestPerformanceMeter(SCENARIO_NAME_4);
- pm4.addPair(InternalDimensions.CPU_TIME, 100, 1000);
- pm4.addPair(InternalDimensions.WORKING_SET, 1000, 2000);
- perf.tagAsSummary(pm4, SHORT_NAME_4, Dimension.USED_JAVA_HEAP);
- pm4.start();
- pm4.stop();
- pm4.commit();
- pm4.dispose();
-
- //
-
- Variations v= new Variations();
- v.put(CONFIG, "test"); //$NON-NLS-1$
- v.put(BUILD, "b0001"); //$NON-NLS-1$
- v.put("jvm", "sun142"); //$NON-NLS-1$ //$NON-NLS-2$
- DataPoint[] points= DB.queryDataPoints(v, SCENARIO_NAME_1, null);
- assertEquals(1, points.length);
-
- DataPoint dp= points[0];
- Dim[] dimensions= dp.getDimensions();
- assertEquals(2, dimensions.length);
-
- Scalar s1= dp.getScalar(InternalDimensions.CPU_TIME);
- assertNotNull(s1);
- assertEquals(900, s1.getMagnitude());
-
- Scalar s2= dp.getScalar(InternalDimensions.WORKING_SET);
- assertNotNull(s2);
- assertEquals(1000, s2.getMagnitude());
-
- //
- Set dims= new HashSet();
- dims.add(InternalDimensions.WORKING_SET);
- points= DB.queryDataPoints(v, SCENARIO_NAME_1, dims);
- assertEquals(1, points.length);
- dimensions= points[0].getDimensions();
- assertEquals(1, dimensions.length);
- Scalar s= points[0].getScalar(InternalDimensions.WORKING_SET);
- assertNotNull(s);
- assertEquals(1000, s.getMagnitude());
-
- //
- List buildNames= new ArrayList();
- Variations v2= new Variations();
- v2.put(CONFIG, "%"); //$NON-NLS-1$
- v2.put(BUILD, "b%"); //$NON-NLS-1$
- DB.queryDistinctValues(buildNames, BUILD, v2, "%"); //$NON-NLS-1$
- assertEquals(1, buildNames.size());
- assertEquals("b0001", buildNames.get(0)); //$NON-NLS-1$
-
- SummaryEntry[] fps= DB.querySummaries(PerformanceTestPlugin.getVariations(), null);
- assertEquals(3, fps.length);
-
- assertEquals(SCENARIO_NAME_2, fps[0].scenarioName);
- assertEquals(SHORT_NAME_2, fps[0].shortName);
- assertEquals(Dimension.USED_JAVA_HEAP, fps[0].dimension);
-
- assertEquals(SCENARIO_NAME_2, fps[1].scenarioName);
- assertEquals(SHORT_NAME_2, fps[1].shortName);
- assertEquals(Dimension.CPU_TIME, fps[1].dimension);
-
- assertEquals(SCENARIO_NAME_3, fps[2].scenarioName);
- assertEquals(SHORT_NAME_3, fps[2].shortName);
- assertEquals(Dimension.CPU_TIME, fps[2].dimension);
-
-
- SummaryEntry[] fps2= DB.querySummaries(PerformanceTestPlugin.getVariations(), "foo.%"); //$NON-NLS-1$
- assertEquals(2, fps2.length);
-
- assertEquals(SCENARIO_NAME_3, fps2[0].scenarioName);
- assertEquals(SHORT_NAME_3, fps2[0].shortName);
- assertEquals(Dimension.CPU_TIME, fps2[0].dimension);
-
- assertEquals(SCENARIO_NAME_4, fps2[1].scenarioName);
- assertEquals(SHORT_NAME_4, fps2[1].shortName);
- assertEquals(Dimension.USED_JAVA_HEAP, fps2[1].dimension);
- }
-
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/PerformanceMeterFactoryTest.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/PerformanceMeterFactoryTest.java
deleted file mode 100644
index 5dc13f0..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/PerformanceMeterFactoryTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.tests;
-
-import org.eclipse.test.internal.performance.OSPerformanceMeter;
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceMeter;
-
-import junit.framework.TestCase;
-
-public class PerformanceMeterFactoryTest extends TestCase {
-
- public void testPerformanceMeterFactory() {
- System.setProperty("PerformanceMeterFactory", "org.eclipse.test.performance:org.eclipse.test.internal.performance.OSPerformanceMeterFactory"); //$NON-NLS-1$ //$NON-NLS-2$
-
- PerformanceMeter pm= Performance.getDefault().createPerformanceMeter("scenarioId"); //$NON-NLS-1$
-
- assertTrue(pm instanceof OSPerformanceMeter);
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/SimplePerformanceMeterTest.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/SimplePerformanceMeterTest.java
deleted file mode 100644
index e17290c..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/SimplePerformanceMeterTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test.internal.performance.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.test.internal.performance.OSPerformanceMeter;
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceMeter;
-
-public class SimplePerformanceMeterTest extends TestCase {
-
- public void testPerformanceMeterFactory() {
- PerformanceMeter meter= Performance.getDefault().createPerformanceMeter("scenarioId"); //$NON-NLS-1$
-
- assertTrue(meter instanceof OSPerformanceMeter);
-
- meter.start();
- meter.stop();
-
- meter.commit();
-
- meter.dispose();
- }
-
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/TestPerformanceMeter.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/TestPerformanceMeter.java
deleted file mode 100644
index f938fd7..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/TestPerformanceMeter.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.test.internal.performance.tests;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.test.internal.performance.InternalPerformanceMeter;
-import org.eclipse.test.internal.performance.data.DataPoint;
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.data.Sample;
-import org.eclipse.test.internal.performance.data.Scalar;
-
-
-/**
- * Mock performance meter that generates deterministic values for two dimensions.
- */
-class TestPerformanceMeter extends InternalPerformanceMeter {
-
- private long fStartTime;
- private List fDataPoints= new ArrayList();
- private Map fStart= new HashMap();
- private Map fStop= new HashMap();
-
- /**
- * @param scenarioId the scenario id
- */
- TestPerformanceMeter(String scenarioId) {
- super(scenarioId);
- fStartTime= System.currentTimeMillis();
- }
-
- void addPair(Dim dimension, long start, long end) {
- fStart.put(dimension, new Scalar(dimension, start));
- fStop.put(dimension, new Scalar(dimension, end));
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#dispose()
- */
- public void dispose() {
- fDataPoints= null;
- super.dispose();
- }
-
- /*
- * @see org.eclipse.test.internal.performance.InternalPerformanceMeter#getSample()
- */
- public Sample getSample() {
- if (fDataPoints != null)
- return new Sample(getScenarioName(), fStartTime, new HashMap(), (DataPoint[]) fDataPoints.toArray(new DataPoint[fDataPoints.size()]));
- return null;
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#start()
- */
- public void start() {
- fDataPoints.add(new DataPoint(BEFORE, fStart));
- }
-
- /*
- * @see org.eclipse.test.performance.PerformanceMeter#stop()
- */
- public void stop() {
- fDataPoints.add(new DataPoint(AFTER, fStop));
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/VariationsTests.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/VariationsTests.java
deleted file mode 100644
index c1c6f0a..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/internal/performance/tests/VariationsTests.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.test.internal.performance.tests;
-
-import org.eclipse.test.internal.performance.db.Variations;
-
-import junit.framework.TestCase;
-
-public class VariationsTests extends TestCase {
-
- public void testVariations() {
- Variations v1= new Variations();
- v1.put("k1", "foo"); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("|k1=foo|", v1.toExactMatchString()); //$NON-NLS-1$
- assertEquals("%|k1=foo|%", v1.toQueryPattern()); //$NON-NLS-1$
-
- Variations v2= new Variations();
- v2.put("k1", "foo"); //$NON-NLS-1$ //$NON-NLS-2$
- v2.put("k2", "bar"); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("|k1=foo||k2=bar|", v2.toExactMatchString()); //$NON-NLS-1$
- assertEquals("%|k1=foo|%|k2=bar|%", v2.toQueryPattern()); //$NON-NLS-1$
-
- Variations v3= new Variations();
- v3.put("k1", "foo"); //$NON-NLS-1$ //$NON-NLS-2$
- v3.put("k2", "bar"); //$NON-NLS-1$ //$NON-NLS-2$
- v3.put("k3", "xyz"); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("|k1=foo||k2=bar||k3=xyz|", v3.toExactMatchString()); //$NON-NLS-1$
- assertEquals("%|k1=foo|%|k2=bar|%|k3=xyz|%", v3.toQueryPattern()); //$NON-NLS-1$
-}
-
- public void testParseVariations() {
- Variations v1= new Variations();
- v1.put("k1", "foo"); //$NON-NLS-1$ //$NON-NLS-2$
-
- Variations v= new Variations();
- v.parseDB(v1.toExactMatchString());
- assertEquals(v1, v);
-
- Variations v2= new Variations();
- v2.put("k1", "foo"); //$NON-NLS-1$ //$NON-NLS-2$
- v2.put("k2", "bar"); //$NON-NLS-1$ //$NON-NLS-2$
- v= new Variations();
- v.parseDB(v2.toExactMatchString());
- assertEquals(v2, v);
-
- Variations v3= new Variations();
- v3.put("k1", "foo"); //$NON-NLS-1$ //$NON-NLS-2$
- v3.put("k2", "bar"); //$NON-NLS-1$ //$NON-NLS-2$
- v3.put("k3", "xyz"); //$NON-NLS-1$ //$NON-NLS-2$
- v= new Variations();
- v.parseDB(v3.toExactMatchString());
- assertEquals(v3, v);
- }
-
-// public void testMaxLength() {
-// StringBuffer sb= new StringBuffer();
-// for (int i= 0; i < 1000; i++)
-// sb.append("0123456789"); //$NON-NLS-1$
-// Variations v= new Variations(sb.toString(), null);
-//
-// String s1= v.toExactMatchString();
-// assertTrue(s1.length() == 10000);
-//
-// String s2= v.toQueryPattern();
-// assertTrue(s2.length() == 10000);
-// }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/Dimension.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/Dimension.java
deleted file mode 100644
index 2f0447b..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/Dimension.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.test.performance;
-
-import org.eclipse.test.internal.performance.InternalDimensions;
-
-/**
- * Some predefined dimensions most likely supported on all platforms.
- *
- * This interface is not intended to be implemented by clients.
- *
- * @since 3.1
- */
-public interface Dimension {
-
- // Dimensions available on all platforms:
-
- /**
- * The amount of time that the process has executed in kernel mode.
- * It is calculated by taking the sum of the time that each of the threads of the process has executed in kernel mode.
- */
- public Dimension KERNEL_TIME= InternalDimensions.KERNEL_TIME;
-
- /**
- * The amount of CPU time used so far by this process.
- * It is calculated by adding the KERNEL_TIME and the amount of time that the process has executed in user mode.
- * The user time is calculated by taking the sum of the time that each of the threads of the process has executed in user mode.
- * It does not include any time where the process is waiting for OS resources.
- * It is the best approximation for ELAPSED_PROCESS (which is not available on all platforms).
- */
- public Dimension CPU_TIME= InternalDimensions.CPU_TIME;
-
- /**
- * WORKING_SET is the amount of memory in the working set of this process.
- * The working set is the set of memory pages touched recently by the threads in the process.
- * If free memory in the computer is above a threshold, pages are left in the working set of a process
- * even if they are not in use. When free memory falls below a threshold, pages are removed from
- * working sets.
- */
- public Dimension WORKING_SET= InternalDimensions.WORKING_SET;
-
- /**
- * The total elapsed time this process has been running.
- * Since it starts at 0 on process start it can be used to measure startup time.
- * On Windows it is calculated by subtracting the creation time of the process from the current system time.
- * On Linux it is calculated by subtracting the value of the system property "eclipse.startTime" from
- * System.currentTimeMillis()
- * Please note that in contrast to the CPU_TIME the elapsed time of a process is influenced by other
- * processes running in parallel.
- */
- public Dimension ELAPSED_PROCESS= InternalDimensions.ELAPSED_PROCESS;
-
- /**
- * The amount of memory used in the JVM.
- * It is calculated by subtracting <code>Runtime.freeMemory()</code> from <code>Runtime.totalMemory()</code>.
- */
- public Dimension USED_JAVA_HEAP= InternalDimensions.USED_JAVA_HEAP;
-
- // the following Dimensions not available on all platforms!
-
- /**
- * WORKING_SET_PEAK is the maximum amount of memory in the working set of this process at any point in time.
- * The working set is the set of memory pages touched recently by the threads in the process.
- * If free memory in the computer is above a threshold, pages are left in the working set of a process
- * even if they are not in use. When free memory falls below a threshold, pages are removed from working sets.
- * Currently this dimension is only available on Windows.
- */
- public Dimension WORKING_SET_PEAK= InternalDimensions.WORKING_SET_PEAK;
-
- /**
- * The total amount of committed memory (for the entire machine).
- * Committed memory is the size of virtual memory that has been committed (as opposed to simply reserved).
- * Committed memory must have backing (i.e., disk) storage available, or must be assured never to need disk
- * storage (because main memory is large enough to hold it.) Notice that this is an instantaneous count,
- * not an average over the time interval.
- * Currently this dimension is only available on Windows.
- */
- public Dimension COMITTED= InternalDimensions.COMITTED;
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/Performance.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/Performance.java
deleted file mode 100644
index 646379f..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/Performance.java
+++ /dev/null
@@ -1,312 +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.test.performance;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Platform;
-
-import org.eclipse.test.internal.performance.InternalDimensions;
-import org.eclipse.test.internal.performance.InternalPerformanceMeter;
-import org.eclipse.test.internal.performance.NullPerformanceMeter;
-import org.eclipse.test.internal.performance.OSPerformanceMeterFactory;
-import org.eclipse.test.internal.performance.PerformanceMeterFactory;
-import org.eclipse.test.internal.performance.PerformanceTestPlugin;
-import org.eclipse.test.internal.performance.data.Dim;
-import org.eclipse.test.internal.performance.eval.AbsoluteBandChecker;
-import org.eclipse.test.internal.performance.eval.AssertChecker;
-import org.eclipse.test.internal.performance.eval.Evaluator;
-import org.eclipse.test.internal.performance.eval.IEvaluator;
-import org.eclipse.test.internal.performance.eval.RelativeBandChecker;
-import org.osgi.framework.Bundle;
-
-/**
- * Helper for performance measurements. Currently provides performance meter
- * creation and checking of measurements.
- *
- * This class is not intended to be subclassed by clients.
- *
- * @since 3.1
- */
-public class Performance {
-
- /**
- * A comment kind of a comment that explains a performance degradation.
- */
- public static final int EXPLAINS_DEGRADATION_COMMENT= 1;
-
- private static final String PERFORMANCE_METER_FACTORY= "/option/performanceMeterFactory"; //$NON-NLS-1$
- private static final String PERFORMANCE_METER_FACTORY_PROPERTY= "PerformanceMeterFactory"; //$NON-NLS-1$
-
- private static Performance fgDefault;
-
- private PerformanceMeterFactory fPerformanceMeterFactory;
- private IEvaluator fDefaultEvaluator;
-
- /** Null performance meter singleton */
- private NullPerformanceMeter fNullPeformanceMeter;
-
-
- /**
- * Private constructor to block instance creation.
- */
- private Performance() {
- // empty
- }
-
- /**
- * Returns the singleton of <code>Performance</code>
- *
- * @return the singleton of <code>Performance</code>
- */
- public static Performance getDefault() {
- if (fgDefault == null)
- fgDefault= new Performance();
- return fgDefault;
- }
-
- /**
- * Asserts default properties of the measurements captured by the given
- * performance meter.
- *
- * @param performanceMeter the performance meter
- * @throws RuntimeException if the properties do not hold
- */
- public void assertPerformance(PerformanceMeter performanceMeter) {
- if (fDefaultEvaluator == null) {
- fDefaultEvaluator= new Evaluator();
- fDefaultEvaluator.setAssertCheckers(new AssertChecker[] {
- new RelativeBandChecker(InternalDimensions.ELAPSED_PROCESS, 0.0f, 1.10f),
- //new RelativeBandChecker(InternalDimensions.CPU_TIME, 0.0f, 1.10f),
- //new RelativeBandChecker(InternalDimensions.WORKING_SET, 0.0f, 3.00f),
- //new RelativeBandChecker(InternalDimensions.USED_JAVA_HEAP, 0.0f, 2.00f),
- //new RelativeBandChecker(InternalDimensions.SYSTEM_TIME, 0.0f, 1.10f)
- });
- }
- fDefaultEvaluator.evaluate(performanceMeter);
- }
-
- /**
- * Asserts that the measurement specified by the dimension captured in the given
- * performance meter is within a certain range with respect to some reference value.
- * If the performance meter doesn't provide the specified dimension, the call has no effect.
- *
- * @param performanceMeter the performance meter
- * @param dim the Dimension to check
- * @param lowerPercentage a negative number indicating the percentage the measured value is allowed to be smaller than some reference value
- * @param upperPercentage a positive number indicating the percentage the measured value is allowed to be greater than some reference value
- * @throws RuntimeException if the properties do not hold
- */
- public void assertPerformanceInRelativeBand(PerformanceMeter performanceMeter, Dimension dim, int lowerPercentage, int upperPercentage) {
- Evaluator e= new Evaluator();
- e.setAssertCheckers(new AssertChecker[] {
- new RelativeBandChecker((Dim) dim, 1.0+(lowerPercentage / 100.0), 1.0+(upperPercentage / 100.0)),
- });
- e.evaluate(performanceMeter);
- }
-
- /**
- * Asserts that the measurement specified by the dimension captured in the given
- * performance meter is within a certain range with respect to some reference value.
- * If the performance meter doesn't provide the specified dimension, the call has no effect.
- *
- * @param performanceMeter the performance meter
- * @param dim the Dimension to check
- * @param lowerBand a negative number indicating the absolute amount the measured value is allowed to be smaller than some reference value
- * @param upperBand a positive number indicating the absolute amount the measured value is allowed to be greater than some reference value
- * @throws RuntimeException if the properties do not hold
- */
- public void assertPerformanceInAbsoluteBand(PerformanceMeter performanceMeter, Dimension dim, int lowerBand, int upperBand) {
- Evaluator e= new Evaluator();
- e.setAssertCheckers(new AssertChecker[] {
- new AbsoluteBandChecker((Dim) dim, lowerBand, upperBand),
- });
- e.evaluate(performanceMeter);
- }
-
- /**
- * Creates a performance meter for the given scenario id.
- *
- * @param scenarioId the scenario id
- * @return a performance meter for the given scenario id
- * @throws IllegalArgumentException if a performance meter for the given
- * scenario id has already been created
- */
- public PerformanceMeter createPerformanceMeter(String scenarioId) {
- return getPeformanceMeterFactory().createPerformanceMeter(scenarioId);
- }
-
- /**
- * Returns the null performance meter singleton.
- *
- * @return the null performance meter singleton
- */
- public PerformanceMeter getNullPerformanceMeter() {
- if (fNullPeformanceMeter == null)
- fNullPeformanceMeter= new NullPerformanceMeter();
- return fNullPeformanceMeter;
- }
-
- /**
- * Returns a default scenario id for the given test. The test's name
- * must have been set, such that <code>test.getName()</code> is not
- * <code>null</code>.
- *
- * @param test the test
- * @return the default scenario id for the test
- */
- public String getDefaultScenarioId(TestCase test) {
- return test.getClass().getName() + '#' + test.getName() + "()"; //$NON-NLS-1$
- }
-
- /**
- * Returns a default scenario id for the given test and id. The test's
- * name must have been set, such that <code>test.getName()</code> is
- * not <code>null</code>. The id distinguishes multiple scenarios in
- * the same test.
- *
- * @param test the test
- * @param id the id
- * @return the default scenario id for the test and the id
- */
- public String getDefaultScenarioId(TestCase test, String id) {
- return getDefaultScenarioId(test) + '-' + id;
- }
-
- private PerformanceMeterFactory getPeformanceMeterFactory() {
- if (fPerformanceMeterFactory == null)
- fPerformanceMeterFactory= createPerformanceMeterFactory();
- return fPerformanceMeterFactory;
- }
-
- private PerformanceMeterFactory createPerformanceMeterFactory() {
- PerformanceMeterFactory factory;
- factory= tryInstantiate(System.getProperty(PERFORMANCE_METER_FACTORY_PROPERTY));
- if (factory != null)
- return factory;
-
- factory= tryInstantiate(Platform.getDebugOption(PerformanceTestPlugin.PLUGIN_ID + PERFORMANCE_METER_FACTORY));
- if (factory != null)
- return factory;
-
- return createDefaultPerformanceMeterFactory();
- }
-
- private PerformanceMeterFactory tryInstantiate(String className) {
- PerformanceMeterFactory instance= null;
- if (className != null && className.length() > 0) {
- try {
- int separator= className.indexOf(':');
- Bundle bundle= null;
- if (separator == -1) {
- bundle= PerformanceTestPlugin.getDefault().getBundle();
- } else {
- String bundleName= className.substring(0, separator);
- className= className.substring(separator + 1);
- bundle= Platform.getBundle(bundleName);
- }
- Class c= bundle.loadClass(className);
- instance= (PerformanceMeterFactory) c.newInstance();
- } catch (ClassNotFoundException e) {
- PerformanceTestPlugin.log(e);
- } catch (InstantiationException e) {
- PerformanceTestPlugin.log(e);
- } catch (IllegalAccessException e) {
- PerformanceTestPlugin.log(e);
- } catch (ClassCastException e) {
- PerformanceTestPlugin.log(e);
- }
- }
- return instance;
- }
-
- private PerformanceMeterFactory createDefaultPerformanceMeterFactory() {
- return new OSPerformanceMeterFactory();
- }
-
- /**
- * Mark the scenario represented by the given PerformanceMeter
- * to be included into the global and the component performance summary. The summary shows
- * the given dimension of the scenario and labels the scenario with the short name.
- *
- * @param pm the PerformanceMeter
- * @param shortName a short (shorter than 40 characters) descriptive name of the scenario
- * @param dimension the dimension to show in the summary
- */
- public void tagAsGlobalSummary(PerformanceMeter pm, String shortName, Dimension dimension) {
- tagAsGlobalSummary(pm, shortName, new Dimension[] { dimension } );
- }
-
- /**
- * Mark the scenario represented by the given PerformanceMeter
- * to be included into the global and the component performance summary. The summary shows
- * the given dimensions of the scenario and labels the scenario with the short name.
- *
- * @param pm the PerformanceMeter
- * @param shortName a short (shorter than 40 characters) descriptive name of the scenario
- * @param dimensions an array of dimensions to show in the summary
- */
- public void tagAsGlobalSummary(PerformanceMeter pm, String shortName, Dimension[] dimensions) {
- if (pm instanceof InternalPerformanceMeter) {
- InternalPerformanceMeter ipm= (InternalPerformanceMeter) pm;
- ipm.tagAsSummary(true, shortName, dimensions);
- }
- }
-
-
- /**
- * Mark the scenario represented by the given PerformanceMeter
- * to be included into the component performance summary. The summary shows
- * the given dimension of the scenario and labels the scenario with the short name.
- *
- * @param pm the PerformanceMeter
- * @param shortName a short (shorter than 40 characters) descriptive name of the scenario
- * @param dimension the dimension to show in the summary
- */
- public void tagAsSummary(PerformanceMeter pm, String shortName, Dimension dimension) {
- tagAsSummary(pm, shortName, new Dimension[] { dimension } );
- }
-
- /**
- * Mark the scenario represented by the given PerformanceMeter
- * to be included into the component performance summary. The summary shows
- * the given dimensions of the scenario and labels the scenario with the short name.
- *
- * @param pm the PerformanceMeter
- * @param shortName a short (shorter than 40 characters) descriptive name of the scenario
- * @param dimensions an array of dimensions to show in the summary
- */
- public void tagAsSummary(PerformanceMeter pm, String shortName, Dimension[] dimensions) {
- if (pm instanceof InternalPerformanceMeter) {
- InternalPerformanceMeter ipm= (InternalPerformanceMeter) pm;
- ipm.tagAsSummary(false, shortName, dimensions);
- }
- }
-
- /**
- * Set a comment for the scenario represented by the given PerformanceMeter.
- * Currently only comments with a commentKind of EXPLAINS_DEGRADATION_COMMENT are used.
- * Their commentText is shown in a hover of the performance summaries graph if a performance
- * degradation exists.
- *
- * @param pm the PerformanceMeter
- * @param commentKind kind of comment. Must be EXPLAINS_DEGRADATION_COMMENT to have an effect.
- * @param commentText the comment (shorter than 400 characters)
- */
- public void setComment(PerformanceMeter pm, int commentKind, String commentText) {
- if (commentKind == EXPLAINS_DEGRADATION_COMMENT) {
- if (pm instanceof InternalPerformanceMeter) {
- InternalPerformanceMeter ipm= (InternalPerformanceMeter) pm;
- ipm.setComment(commentKind, commentText);
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/PerformanceMeter.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/PerformanceMeter.java
deleted file mode 100644
index 86ed9c9..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/PerformanceMeter.java
+++ /dev/null
@@ -1,86 +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.test.performance;
-
-/**
- * A <code>PerformanceMeter</code> is used for doing repeated measurements of
- * an arbitrary operation.
- *
- * The kind of measurement and the retrieval of the results remain internal to
- * the implementation. Measurements can include time, CPU cycle and memory
- * consumption.
- *
- * A <code>PerformanceMeter</code> is created using the method
- * {@link Performance#createPerformanceMeter(String)}. An operation is measured
- * by calling {@link PerformanceMeter#start()} before and
- * {@link PerformanceMeter#stop()} after that operation. The measurement can be
- * repeated, for example, to let the VM warm up and to allow for statistical
- * analysis afterwards.
- *
- * After measurements are done and before an analysis of the results can be made
- * {@link PerformanceMeter#commit()} has to be called. This allows for example
- * to prepare the measurements for analysis or persist them.
- * {@link Performance#assertPerformance(PerformanceMeter)} provides a default
- * analysis of the measurements. After the <code>PerformanceMeter</code> is no
- * longer used {@link PerformanceMeter#dispose()} must be called.
- *
- * Example usage in a test case:
- * <pre>
- * public void testOpenEditor() {
- * Performance perf= Performance.getDefault();
- * PerformanceMeter performanceMeter= perf.createPerformanceMeter(perf.getDefaultScenarioId(this));
- * try {
- * for (int i= 0; i < 10; i++) {
- * performanceMeter.start();
- * openEditor();
- * performanceMeter.stop();
- * closeEditor();
- * }
- * performanceMeter.commit();
- * perf.assertPerformance(performanceMeter);
- * } finally {
- * performanceMeter.dispose();
- * }
- * }
- * </pre>
- *
- * This class is not intended to be subclassed by clients.
- */
-public abstract class PerformanceMeter {
-
- /**
- * Called immediately before the operation to measure. Must be followed
- * by a call to {@link PerformanceMeter#stop()} before subsequent calls
- * to this method or {@link PerformanceMeter#commit()}.
- */
- public abstract void start();
-
- /**
- * Called immediately after the operation to measure. Must be preceded
- * by a call to {@link PerformanceMeter#start()}, that follows any
- * previous call to this method.
- */
- public abstract void stop();
-
- /**
- * Called exactly once after repeated measurements are done and before
- * their analysis. Afterwards {@link PerformanceMeter#start()} and
- * {@link PerformanceMeter#stop()} must not be called.
- */
- public abstract void commit();
-
- /**
- * Dispose associated resources. Clients must call this method exactly
- * once. Afterwards no methods must be called on the performance meter.
- */
- public abstract void dispose();
-}
diff --git a/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/PerformanceTestCase.java b/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/PerformanceTestCase.java
deleted file mode 100644
index ce6901e..0000000
--- a/bundles/org.eclipse.test.performance/src/org/eclipse/test/performance/PerformanceTestCase.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.test.performance;
-
-import junit.framework.TestCase;
-
-/**
- * A PerformanceTestCase is a convenience class that takes care of managing
- * a <code>PerformanceMeter</code>.
- * <p>
- * Here is an example:
- * <pre>
- * public class MyPerformanceTestCase extends PeformanceTestCase {
- *
- * public void testMyOperation() {
- * for (int i= 0; i < 10; i++) {
- * startMeasuring();
- * // my operation
- * stopMeasuring();
- * }
- * commitMeasurements();
- * assertPerformance();
- * }
- * }
- */
-public class PerformanceTestCase extends TestCase {
-
- protected PerformanceMeter fPerformanceMeter;
-
- /**
- * Constructs a performance test case.
- */
- public PerformanceTestCase() {
- super();
- }
-
- /**
- * Constructs a performance test case with the given name.
- * @param name the name of the performance test case
- */
- public PerformanceTestCase(String name) {
- super(name);
- }
-
- /**
- * Overridden to create a default performance meter for this test case.
- * @throws Exception
- */
- protected void setUp() throws Exception {
- Performance performance= Performance.getDefault();
- fPerformanceMeter= performance.createPerformanceMeter(performance.getDefaultScenarioId(this));
- }
-
- /**
- * Overridden to dispose of the performance meter.
- * @throws Exception
- */
- protected void tearDown() throws Exception {
- fPerformanceMeter.dispose();
- }
-
- /**
- * Mark the scenario of this test case
- * to be included into the global and the component performance summary. The summary shows
- * the given dimension of the scenario and labels the scenario with the short name.
- *
- * @param shortName a short (shorter than 40 characters) descritive name of the scenario
- * @param dimension the dimension to show in the summary
- */
- public void tagAsGlobalSummary(String shortName, Dimension dimension) {
- Performance performance= Performance.getDefault();
- performance.tagAsGlobalSummary(fPerformanceMeter, shortName, new Dimension[] { dimension } );
- }
-
- /**
- * Mark the scenario represented by the given PerformanceMeter
- * to be included into the global and the component performance summary. The summary shows
- * the given dimensions of the scenario and labels the scenario with the short name.
- *
- * @param shortName a short (shorter than 40 characters) descritive name of the scenario
- * @param dimensions an array of dimensions to show in the summary
- */
- public void tagAsGlobalSummary(String shortName, Dimension[] dimensions) {
- Performance performance= Performance.getDefault();
- performance.tagAsGlobalSummary(fPerformanceMeter, shortName, dimensions );
- }
-
- /**
- * Mark the scenario of this test case
- * to be included into the component performance summary. The summary shows
- * the given dimension of the scenario and labels the scenario with the short name.
- *
- * @param shortName a short (shorter than 40 characters) descritive name of the scenario
- * @param dimension the dimension to show in the summary
- */
- public void tagAsSummary(String shortName, Dimension dimension) {
- Performance performance= Performance.getDefault();
- performance.tagAsSummary(fPerformanceMeter, shortName, new Dimension[] { dimension } );
- }
-
- /**
- * Mark the scenario represented by the given PerformanceMeter
- * to be included into the component performance summary. The summary shows
- * the given dimensions of the scenario and labels the scenario with the short name.
- *
- * @param shortName a short (shorter than 40 characters) descritive name of the scenario
- * @param dimensions an array of dimensions to show in the summary
- */
- public void tagAsSummary(String shortName, Dimension[] dimensions) {
- Performance performance= Performance.getDefault();
- performance.tagAsSummary(fPerformanceMeter, shortName, dimensions );
- }
-
- /**
- * Set a comment for the scenario represented by this TestCase.
- * Currently only comments with a commentKind of EXPLAINS_DEGRADATION_COMMENT are used.
- * Their commentText is shown in a hover of the performance summaries graph if a performance
- * degradation exists.
- *
- * @param commentKind kind of comment. Must be EXPLAINS_DEGRADATION_COMMENT to have an effect.
- * @param commentText the comment (shorter than 400 characters)
- */
- public void setComment(int commentKind, String commentText) {
- Performance performance= Performance.getDefault();
- performance.setComment(fPerformanceMeter, commentKind, commentText);
- }
-
- /**
- * Called from within a test case immediately before the code to measure is run.
- * It starts capturing of performance data.
- * Must be followed by a call to {@link PerformanceTestCase#stopMeasuring()} before subsequent calls
- * to this method or {@link PerformanceTestCase#commitMeasurements()}.
- */
- protected void startMeasuring() {
- fPerformanceMeter.start();
- }
-
- protected void stopMeasuring() {
- fPerformanceMeter.stop();
- }
-
- protected void commitMeasurements() {
- fPerformanceMeter.commit();
- }
-
- /**
- * Asserts default properties of the measurements captured for this test case.
- *
- * @throws RuntimeException if the properties do not hold
- */
- protected void assertPerformance() {
- Performance.getDefault().assertPerformance(fPerformanceMeter);
- }
-
- /**
- * Asserts that the measurement specified by the given dimension
- * is within a certain range with respect to some reference value.
- * If the specified dimension isn't available, the call has no effect.
- *
- * @param dim the Dimension to check
- * @param lowerPercentage a negative number indicating the percentage the measured value is allowed to be smaller than some reference value
- * @param upperPercentage a positive number indicating the percentage the measured value is allowed to be greater than some reference value
- * @throws RuntimeException if the properties do not hold
- */
- protected void assertPerformanceInRelativeBand(Dimension dim, int lowerPercentage, int upperPercentage) {
- Performance.getDefault().assertPerformanceInRelativeBand(fPerformanceMeter, dim, lowerPercentage, upperPercentage);
- }
-}
diff --git a/bundles/org.eclipse.test/.classpath b/bundles/org.eclipse.test/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/bundles/org.eclipse.test/.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/bundles/org.eclipse.test/.cvsignore b/bundles/org.eclipse.test/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.test/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.test/.project b/bundles/org.eclipse.test/.project
deleted file mode 100644
index 797ea5e..0000000
--- a/bundles/org.eclipse.test/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.test</name>
- <comment></comment>
- <projects>
- <project>org.apache.ant</project>
- <project>org.eclipse.ant.core</project>
- <project>org.eclipse.core.boot</project>
- <project>org.eclipse.core.resources</project>
- <project>org.eclipse.core.runtime</project>
- <project>org.eclipse.help</project>
- <project>org.eclipse.jface</project>
- <project>org.eclipse.jface.text</project>
- <project>org.eclipse.swt</project>
- <project>org.eclipse.ui.workbench</project>
- <project>org.eclipse.update.core</project>
- <project>org.junit</project>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.test/JUNIT.XSL b/bundles/org.eclipse.test/JUNIT.XSL
deleted file mode 100644
index b426572..0000000
--- a/bundles/org.eclipse.test/JUNIT.XSL
+++ /dev/null
@@ -1,455 +0,0 @@
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-<xsl:output method="html" indent="yes"/>
-<xsl:decimal-format decimal-separator="." grouping-separator="," />
-
-<xsl:template match="testsuites">
- <HTML>
- <HEAD>
- <style type="text/css">
- body {
- font:normal 68% verdana,arial,helvetica;
- color:#000000;
- }
- table tr td, table tr th {
- font-size: 68%;
- }
- table.details tr th{
- font-weight: bold;
- text-align:left;
- background:#a6caf0;
- }
- table.details tr td{
- background:#eeeee0;
- }
-
- p {
- line-height:1.5em;
- margin-top:0.5em; margin-bottom:1.0em;
- }
- h1 {
- margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
- }
- h2 {
- margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
- }
- h3 {
- margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
- }
- h4 {
- margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
- }
- h5 {
- margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
- }
- h6 {
- margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
- }
- .Error {
- font-weight:bold; color:red;
- }
- .Failure {
- font-weight:bold; color:purple;
- }
- .Properties {
- text-align:right;
- }
- </style>
- <script language="JavaScript">
- var TestCases = new Array();
- var cur;
- <xsl:for-each select="./testsuite">
- <xsl:apply-templates select="properties"/>
- </xsl:for-each>
-
- </script>
- <script language="JavaScript"><![CDATA[
- function displayProperties (name) {
- var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1');
- var doc = win.document.open();
- doc.write("<html><head><title>Properties of " + name + "</title>");
- doc.write("<style>")
- doc.write("body {font:normal 68% verdana,arial,helvetica; color:#000000; }");
- doc.write("table tr td, table tr th { font-size: 68%; }");
- doc.write("table.properties { border-collapse:collapse; border-left:solid 1 #cccccc; border-top:solid 1 #cccccc; padding:5px; }");
- doc.write("table.properties th { text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#eeeeee; }");
- doc.write("table.properties td { font:normal; text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#fffffff; }");
- doc.write("h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica }");
- doc.write("</style>");
- doc.write("</head><body>");
- doc.write("<h3>Properties of " + name + "</h3>");
- doc.write("<div align=\"right\"><a href=\"javascript:window.close();\">Close</a></div>");
- doc.write("<table class='properties'>");
- doc.write("<tr><th>Name</th><th>Value</th></tr>");
- for (prop in TestCases[name]) {
- doc.write("<tr><th>" + prop + "</th><td>" + TestCases[name][prop] + "</td></tr>");
- }
- doc.write("</table>");
- doc.write("</body></html>");
- doc.close();
- win.focus();
- }
- ]]>
- </script>
- </HEAD>
- <body>
- <a name="top"></a>
- <xsl:call-template name="pageHeader"/>
-
- <!-- Summary part -->
- <xsl:call-template name="summary"/>
- <hr size="1" width="95%" align="left"/>
-
- <!-- Package List part -->
- <xsl:call-template name="packagelist"/>
- <hr size="1" width="95%" align="left"/>
-
- <!-- For each package create its part -->
- <xsl:call-template name="packages"/>
- <hr size="1" width="95%" align="left"/>
-
- <!-- For each class create the part -->
- <xsl:call-template name="classes"/>
-
- </body>
- </HTML>
-</xsl:template>
-
-
-
- <!-- ================================================================== -->
- <!-- Write a list of all packages with an hyperlink to the anchor of -->
- <!-- of the package name. -->
- <!-- ================================================================== -->
- <xsl:template name="packagelist">
- <h2>Packages</h2>
- Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.
- <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
- <xsl:call-template name="testsuite.test.header"/>
- <!-- list all packages recursively -->
- <xsl:for-each select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
- <xsl:sort select="@package"/>
- <xsl:variable name="testsuites-in-package" select="/testsuites/testsuite[./@package = current()/@package]"/>
- <xsl:variable name="testCount" select="sum($testsuites-in-package/@tests)"/>
- <xsl:variable name="errorCount" select="sum($testsuites-in-package/@errors)"/>
- <xsl:variable name="failureCount" select="sum($testsuites-in-package/@failures)"/>
- <xsl:variable name="timeCount" select="sum($testsuites-in-package/@time)"/>
-
- <!-- write a summary for the package -->
- <tr valign="top">
- <!-- set a nice color depending if there is an error/failure -->
- <xsl:attribute name="class">
- <xsl:choose>
- <xsl:when test="$failureCount > 0">Failure</xsl:when>
- <xsl:when test="$errorCount > 0">Error</xsl:when>
- </xsl:choose>
- </xsl:attribute>
- <td><a href="#{@package}"><xsl:value-of select="@package"/></a></td>
- <td><xsl:value-of select="$testCount"/></td>
- <td><xsl:value-of select="$errorCount"/></td>
- <td><xsl:value-of select="$failureCount"/></td>
- <td>
- <xsl:call-template name="display-time">
- <xsl:with-param name="value" select="$timeCount"/>
- </xsl:call-template>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </xsl:template>
-
-
- <!-- ================================================================== -->
- <!-- Write a package level report -->
- <!-- It creates a table with values from the document: -->
- <!-- Name | Tests | Errors | Failures | Time -->
- <!-- ================================================================== -->
- <xsl:template name="packages">
- <!-- create an anchor to this package name -->
- <xsl:for-each select="/testsuites/testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
- <xsl:sort select="@package"/>
- <a name="{@package}"></a>
- <h3>Package <xsl:value-of select="@package"/></h3>
-
- <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
- <xsl:call-template name="testsuite.test.header"/>
-
- <!-- match the testsuites of this package -->
- <xsl:apply-templates select="/testsuites/testsuite[./@package = current()/@package]" mode="print.test"/>
- </table>
- <a href="#top">Back to top</a>
- <p/>
- <p/>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="classes">
- <xsl:for-each select="testsuite">
- <xsl:sort select="@name"/>
- <!-- create an anchor to this class name -->
- <a name="{@name}"></a>
- <h3>TestCase <xsl:value-of select="@name"/></h3>
-
- <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
- <xsl:call-template name="testcase.test.header"/>
- <!--
- test can even not be started at all (failure to load the class)
- so report the error directly
- -->
- <xsl:if test="./error">
- <tr class="Error">
- <td colspan="4"><xsl:apply-templates select="./error"/></td>
- </tr>
- </xsl:if>
- <xsl:apply-templates select="./testcase" mode="print.test"/>
- </table>
- <div class="Properties">
- <a>
- <xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute>
- Properties >>
- </a>
- </div>
- <p/>
-
- <a href="#top">Back to top</a>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="summary">
- <h2>Summary</h2>
- <xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
- <xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
- <xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
- <xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
- <xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
- <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
- <tr valign="top">
- <th>Tests</th>
- <th>Failures</th>
- <th>Errors</th>
- <th>Success rate</th>
- <th>Time</th>
- </tr>
- <tr valign="top">
- <xsl:attribute name="class">
- <xsl:choose>
- <xsl:when test="$failureCount > 0">Failure</xsl:when>
- <xsl:when test="$errorCount > 0">Error</xsl:when>
- </xsl:choose>
- </xsl:attribute>
- <td><xsl:value-of select="$testCount"/></td>
- <td><xsl:value-of select="$failureCount"/></td>
- <td><xsl:value-of select="$errorCount"/></td>
- <td>
- <xsl:call-template name="display-percent">
- <xsl:with-param name="value" select="$successRate"/>
- </xsl:call-template>
- </td>
- <td>
- <xsl:call-template name="display-time">
- <xsl:with-param name="value" select="$timeCount"/>
- </xsl:call-template>
- </td>
-
- </tr>
- </table>
- <table border="0" width="95%">
- <tr>
- <td style="text-align: justify;">
- Note: <i>failures</i> are anticipated and checked for with assertions while <i>errors</i> are unanticipated.
- </td>
- </tr>
- </table>
- </xsl:template>
-
- <!--
- Write properties into a JavaScript data structure.
- This is based on the original idea by Erik Hatcher (erik@hatcher.net)
- -->
- <xsl:template match="properties">
- cur = TestCases['<xsl:value-of select="../@package"/>.<xsl:value-of select="../@name"/>'] = new Array();
- <xsl:for-each select="property">
- <xsl:sort select="@name"/>
- cur['<xsl:value-of select="@name"/>'] = '<xsl:call-template name="JS-escape"><xsl:with-param name="string" select="@value"/></xsl:call-template>';
- </xsl:for-each>
- </xsl:template>
-
-<!-- Page HEADER -->
-<xsl:template name="pageHeader">
- <h1>Unit Test Results</h1>
- <table width="100%">
- <tr>
- <td align="left"></td>
- <td align="right">Designed for use with <a href='http://www.junit.org'>JUnit</a> and <a href='http://ant.apache.org'>Ant</a>.</td>
- </tr>
- </table>
- <hr size="1"/>
-</xsl:template>
-
-<xsl:template match="testsuite" mode="header">
- <tr valign="top">
- <th width="80%">Name</th>
- <th>Tests</th>
- <th>Errors</th>
- <th>Failures</th>
- <th nowrap="nowrap">Time(s)</th>
- </tr>
-</xsl:template>
-
-<!-- class header -->
-<xsl:template name="testsuite.test.header">
- <tr valign="top">
- <th width="80%">Name</th>
- <th>Tests</th>
- <th>Errors</th>
- <th>Failures</th>
- <th nowrap="nowrap">Time(s)</th>
- </tr>
-</xsl:template>
-
-<!-- method header -->
-<xsl:template name="testcase.test.header">
- <tr valign="top">
- <th>Name</th>
- <th>Status</th>
- <th width="80%">Type</th>
- <th nowrap="nowrap">Time(s)</th>
- </tr>
-</xsl:template>
-
-
-<!-- class information -->
-<xsl:template match="testsuite" mode="print.test">
- <tr valign="top">
- <!-- set a nice color depending if there is an error/failure -->
- <xsl:attribute name="class">
- <xsl:choose>
- <xsl:when test="@failures[.> 0]">Failure</xsl:when>
- <xsl:when test="@errors[.> 0]">Error</xsl:when>
- </xsl:choose>
- </xsl:attribute>
-
- <!-- print testsuite information -->
- <td><a href="#{@name}"><xsl:value-of select="@name"/></a></td>
- <td><xsl:value-of select="@tests"/></td>
- <td><xsl:value-of select="@errors"/></td>
- <td><xsl:value-of select="@failures"/></td>
- <td>
- <xsl:call-template name="display-time">
- <xsl:with-param name="value" select="@time"/>
- </xsl:call-template>
- </td>
- </tr>
-</xsl:template>
-
-<xsl:template match="testcase" mode="print.test">
- <tr valign="top">
- <xsl:attribute name="class">
- <xsl:choose>
- <xsl:when test="failure | error">Error</xsl:when>
- </xsl:choose>
- </xsl:attribute>
- <td><xsl:value-of select="@name"/></td>
- <xsl:choose>
- <xsl:when test="failure">
- <td>Failure</td>
- <td><xsl:apply-templates select="failure"/></td>
- </xsl:when>
- <xsl:when test="error">
- <td>Error</td>
- <td><xsl:apply-templates select="error"/></td>
- </xsl:when>
- <xsl:otherwise>
- <td>Success</td>
- <td></td>
- </xsl:otherwise>
- </xsl:choose>
- <td>
- <xsl:call-template name="display-time">
- <xsl:with-param name="value" select="@time"/>
- </xsl:call-template>
- </td>
- </tr>
-</xsl:template>
-
-
-<xsl:template match="failure">
- <xsl:call-template name="display-failures"/>
-</xsl:template>
-
-<xsl:template match="error">
- <xsl:call-template name="display-failures"/>
-</xsl:template>
-
-<!-- Style for the error and failure in the tescase template -->
-<xsl:template name="display-failures">
- <xsl:choose>
- <xsl:when test="not(@message)">N/A</xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@message"/>
- </xsl:otherwise>
- </xsl:choose>
- <!-- display the stacktrace -->
- <code>
- <p/>
- <xsl:call-template name="br-replace">
- <xsl:with-param name="word" select="."/>
- </xsl:call-template>
- </code>
- <!-- the later is better but might be problematic for non-21" monitors... -->
- <!--pre><xsl:value-of select="."/></pre-->
-</xsl:template>
-
-<xsl:template name="JS-escape">
- <xsl:param name="string"/>
- <xsl:choose><!-- something isn't right here, basically all single quotes need to be replaced with backslash-single-quote
- <xsl:when test="contains($string,''')">
- <xsl:value-of select="substring-before($string,''')"/>
- \'
- <xsl:call-template name="JS-escape">
- <xsl:with-param name="string" select="substring-after($string,''')"/>
- </xsl:call-template>
- </xsl:when> -->
- <xsl:when test="contains($string,'\')">
- <xsl:value-of select="substring-before($string,'\')"/>\\<xsl:call-template name="JS-escape">
- <xsl:with-param name="string" select="substring-after($string,'\')"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$string"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-
-<!--
- template that will convert a carriage return into a br tag
- @param word the text from which to convert CR to BR tag
--->
-<xsl:template name="br-replace">
- <xsl:param name="word"/>
- <xsl:choose>
- <xsl:when test="contains($word,'
')">
- <xsl:value-of select="substring-before($word,'
')"/>
- <br/>
- <xsl:call-template name="br-replace">
- <xsl:with-param name="word" select="substring-after($word,'
')"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$word"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template name="display-time">
- <xsl:param name="value"/>
- <xsl:value-of select="format-number($value,'0.000')"/>
-</xsl:template>
-
-<xsl:template name="display-percent">
- <xsl:param name="value"/>
- <xsl:value-of select="format-number($value,'0.00%')"/>
-</xsl:template>
-
-</xsl:stylesheet>
-
diff --git a/bundles/org.eclipse.test/META-INF/MANIFEST.MF b/bundles/org.eclipse.test/META-INF/MANIFEST.MF
deleted file mode 100644
index d55692a..0000000
--- a/bundles/org.eclipse.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.test; singleton:=true
-Bundle-Version: 3.2.0
-Bundle-ClassPath: automated.jar
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.apache.ant,
- org.junit,
- org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.ui.ide.application,
- org.eclipse.equinox.app
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.test/about.html b/bundles/org.eclipse.test/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.test/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.test/build.properties b/bundles/org.eclipse.test/build.properties
deleted file mode 100644
index b089b2e..0000000
--- a/bundles/org.eclipse.test/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-source.automated.jar =src/
-bin.includes = plugin.properties,\
- *.jar,\
- *.XSL,\
- library.xml,\
- plugin.xml,\
- doc/,\
- runtests*,\
- test.xml,\
- *.html,\
- META-INF/
diff --git a/bundles/org.eclipse.test/library.xml b/bundles/org.eclipse.test/library.xml
deleted file mode 100644
index 7d92945..0000000
--- a/bundles/org.eclipse.test/library.xml
+++ /dev/null
@@ -1,169 +0,0 @@
-<?xml version="1.0"?>
-<project name="Library" default="usage" basedir=".">
-
- <target name="usage">
- <echo message="Please refer to the testframework.html in org.eclipse.test for instructions on usage." />
- </target>
-
- <target name="init">
- <!--
- Parameters:
- (Mandatory)
- data-dir - the directory for Eclipse to write its data
- plugin-name - the name of the plugin to test
- classname - the name of the test class
-
- (Optional - overrides defaults set in script)
- vmargs - a string containing arguments to pass to the VM.
- extraVMargs - allows separate setting of VM args from separate caller.
- timeout - overrides default test timeout value (in milliseconds).
- test-output - overrides default output file produced from test run.
- plugin-path - path to root of plug-in
- useEclipseExe - property setting forces test to launch via eclipse executable.
- junit-report-output - output directory for junit reports produced for specified classname.
- -->
-
- <tstamp>
- <format property="TIMENOW" pattern="HHmmssSSSS"/>
- </tstamp>
- <!--property setting useEclipseExe launches tests using the eclipse executable-->
- <condition property="launchTarget" value="eclipse-test">
- <isset property="useEclipseExe" />
- </condition>
- <!--default launch target for launching tests-->
- <property name="launchTarget" value="java-test" />
- <property name="formatter" value="org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter"/>
-
- <!--default heap sizes when running performance tests-->
- <condition property="vmargs" value=" -Xms256M -Xmx256M">
- <equals arg1="${test.target}" arg2="performance" />
- </condition>
- <property name="extraVMargs" value=""/>
- <property name="plugin-path" value="" />
- <property name="timeout" value="7200000" />
- <property name="test-output" value="${eclipse-home}/${classname}.xml" />
- <property name="junit-report-output" value="${eclipse-home}/results" />
- <mkdir dir="${junit-report-output}"/>
- </target>
-
- <target name="core-test" description="Eclipse application used to launch HEADLESS plugin tests." depends="init">
- <antcall target="${launchTarget}">
- <param name="application" value="org.eclipse.test.coretestapplication"/>
- </antcall>
- </target>
-
- <target name="ui-test" description="Eclipse application used to launch UI plugin tests." depends="init">
- <antcall target="${launchTarget}">
- <param name="application" value="org.eclipse.test.uitestapplication"/>
- </antcall>
- </target>
-
- <target name="java-test">
- <!--default vm args-->
- <property name="vmargs" value=" -Xms40m -Xmx256m"/>
-
- <!--set default jvm to use for testing-->
- <property name="jvm" value="${java.home}/bin/java" />
-
- <echo message="Running ${classname}. Result file: ${junit-report-output}/${classname}.xml."/>
-
- <java fork="true" dir="." timeout="${timeout}" jvm="${jvm}" logError="true"
- classname="org.eclipse.core.launcher.Main" output="${junit-report-output}/${classname}.txt">
- <classpath>
- <fileset dir="${eclipse-home}/plugins">
- <include name="org.eclipse.equinox.launcher_*.jar"/>
- </fileset>
- </classpath>
- <arg line="-application ${application}"/>
- <arg line="-data ${data-dir}"/>
- <arg line="formatter=${formatter},${test-output}"/>
- <arg line="-testPluginName ${plugin-name}"/>
- <arg line="-className ${classname}"/>
- <arg line="-os ${os}"/>
- <arg line="-ws ${ws}"/>
- <arg line="-arch ${arch}"/>
- <arg line="-consolelog"/>
- <jvmarg line="${vmargs} ${extraVMargs}"/>
- <sysproperty key="PLUGIN_PATH" value="${plugin-path}"/>
- </java>
- <antcall target="collect-results" />
- </target>
-
- <target name="eclipse-test" description="Runs the specified classname as a plug-in test.">
- <property name="vmargs" value="-Xms256m -Xmx512m"/>
-
- <!--use -consolelog if launching a headless test-->
- <condition property="consolelog" value="-consolelog">
- <equals arg1="${application}" arg2="org.eclipse.test.coretestapplication"/>
- </condition>
- <property name="consolelog" value="" />
-
- <!--
- vm selection priority:
- 1. user-specified java executable via outer Ant property setting of "jvm".
- 2. java executable on path.
- -->
- <condition property="test-vm" value="-vm ${jvm}">
- <isset property="jvm" />
- </condition>
- <property name="test-vm" value="" />
-
- <!--ensure executable has execute permission-->
- <chmod file="${eclipse-home}/eclipse" perm="ugo+rx"/>
-
-
- <echo message="Running ${classname}. Result file: ${junit-report-output}/${classname}.xml."/>
-
- <exec executable="${eclipse-home}/eclipse" dir="${eclipse-home}" timeout="${timeout}" logError="true" failonerror="false" output="${junit-report-output}/${classname}.txt">
- <arg line="-data ${data-dir}"/>
- <arg line="${test-vm}"/>
- <arg line="-application ${application}"/>
- <arg line="formatter=${formatter},${test-output}"/>
- <arg line="-testPluginName ${plugin-name}"/>
- <arg line="-className ${classname}"/>
- <arg line="-nosplash"/>
- <arg line="-suppressErrors"/>
- <arg line="${consolelog}"/>
- <arg line="-vmargs ${vmargs} ${extraVMargs} -DPLUGIN_PATH=${plugin-path}"/>
- </exec>
- <antcall target="collect-results" />
- </target>
-
- <target name="collect-results">
- <dirname property="output-dir" file="${test-output}"/>
- <basename property="output-file-name" file="${test-output}"/>
- <junitreport todir="${junit-report-output}" tofile="${classname}.xml">
- <fileset dir="${output-dir}">
- <include name="${output-file-name}"/>
- </fileset>
- </junitreport>
-
- <style style="${eclipse-home}/plugins/org.eclipse.test/JUNIT.XSL"
- basedir="${junit-report-output}"
- includes="${classname}.result.xml"
- destdir="${junit-report-output}" />
-
- <!--save .log content and *.log content from configuration directory-->
- <concat destfile="${junit-report-output}/${classname}.log">
- <fileset dir="${eclipse-home}" includes="${data-dir}/.metadata/*.log"/>
- <fileset dir="${eclipse-home}" includes="configuration/*.log"/>
- </concat>
- </target>
-
- <target name="collect">
- <!--
- This target can be used to aggragate test runs from multiple test suites into a single report.
-
- Parameters to this target:
- includes - the names of the files to include
- output-file - the name of the output file to produce
- -->
- <junitreport todir="." tofile="${output-file}">
- <fileset dir=".">
- <include name="${includes}"/>
- </fileset>
- </junitreport>
- </target>
-
-</project>
-
diff --git a/bundles/org.eclipse.test/plugin.properties b/bundles/org.eclipse.test/plugin.properties
deleted file mode 100644
index 16a13b9..0000000
--- a/bundles/org.eclipse.test/plugin.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-pluginName = Eclipse Automated Testing
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.test/plugin.xml b/bundles/org.eclipse.test/plugin.xml
deleted file mode 100644
index 4a14819..0000000
--- a/bundles/org.eclipse.test/plugin.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
- <extension
- id="coretestapplication"
- point="org.eclipse.core.runtime.applications">
- <application>
- <run
- class="org.eclipse.test.CoreTestApplication">
- </run>
- </application>
- </extension>
- <extension
- id="uitestapplication"
- point="org.eclipse.core.runtime.applications">
- <application>
- <run
- class="org.eclipse.test.UITestApplication">
- <parameter
- name="productInfo"
- value="product.ini">
- </parameter>
- </run>
- </application>
- </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.test/src/org/eclipse/test/CoreTestApplication.java b/bundles/org.eclipse.test/src/org/eclipse/test/CoreTestApplication.java
deleted file mode 100644
index 2689ca1..0000000
--- a/bundles/org.eclipse.test/src/org/eclipse/test/CoreTestApplication.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test;
-
-import java.io.IOException;
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * A an application that launches tests once it is started.
- */
-public class CoreTestApplication implements IPlatformRunnable {
- /** true if workspace tests should log their deltas */
- private static boolean deltas= false;
-
- /**
- * Runs a set of tests as defined by the given command line args.
- * This is the platform application entry point.
- * @see IPlatformRunnable
- */
- public Object run(Object arguments) throws Exception {
- String[] args= Platform.getCommandLineArgs();//getCommand//processCommandLine((String[]) arguments);
- return new Integer(runTests(args));
- }
-
- protected int runTests(String[] args) throws IOException {
- return EclipseTestRunner.run(args);
- }
-
- public static boolean deltasEnabled() {
- return deltas;
- }
-
- protected String[] processCommandLine(String[] args) {
- int[] configArgs = new int[100];
- configArgs[0] = -1; // need to initialize the first element to something that could not be an index.
- int configArgIndex = 0;
- for (int i = 0; i < args.length; i++) {
- boolean found = false;
- // check for args without parameters (i.e., a flag arg)
- // see if we should be logging deltas
- if (args[i].equalsIgnoreCase("-deltas")) {
- found = true;
- deltas = true;
- }
- if (found) {
- configArgs[configArgIndex++] = i;
- continue;
- }
-
- // check for args with parameters
- if (i == args.length - 1 || args[i + 1].startsWith("-")) {
- continue;
- }
- ++i;
-
- // done checking for args. Remember where an arg was found
- if (found) {
- configArgs[configArgIndex++] = i - 1;
- configArgs[configArgIndex++] = i;
- }
- }
-
- //remove all the arguments consumed by this argument parsing
- if (configArgIndex == 0)
- return args;
- String[] passThruArgs = new String[args.length - configArgIndex];
- configArgIndex = 0;
- int j = 0;
- for (int i = 0; i < args.length; i++) {
- if (i == configArgs[configArgIndex])
- configArgIndex++;
- else
- passThruArgs[j++] = args[i];
- }
- return passThruArgs;
- }
-}
diff --git a/bundles/org.eclipse.test/src/org/eclipse/test/EclipseTestRunner.java b/bundles/org.eclipse.test/src/org/eclipse/test/EclipseTestRunner.java
deleted file mode 100644
index efd4037..0000000
--- a/bundles/org.eclipse.test/src/org/eclipse/test/EclipseTestRunner.java
+++ /dev/null
@@ -1,516 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Dictionary;
-import java.lang.reflect.Modifier;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Properties;
-import java.util.Vector;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestListener;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter;
-import org.apache.tools.ant.taskdefs.optional.junit.JUnitTest;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.ManifestElement;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.Constants;
-
-/**
- * A TestRunner for JUnit that supports Ant JUnitResultFormatters
- * and running tests inside Eclipse.
- * Example call: EclipseTestRunner -classname junit.samples.SimpleTest formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter
- */
-public class EclipseTestRunner implements TestListener {
- class TestFailedException extends Exception {
-
- private static final long serialVersionUID = 6009335074727417445L;
-
- TestFailedException(String message) {
- super(message);
- }
-
- TestFailedException(Throwable e) {
- super(e);
- }
- }
- /**
- * No problems with this test.
- */
- public static final int SUCCESS= 0;
- /**
- * Some tests failed.
- */
- public static final int FAILURES= 1;
- /**
- * An error occured.
- */
- public static final int ERRORS= 2;
-
- private static final String SUITE_METHODNAME= "suite";
- /**
- * The current test result
- */
- private TestResult fTestResult;
- /**
- * The name of the plugin containing the test
- */
- private String fTestPluginName;
- /**
- * The corresponding testsuite.
- */
- private Test fSuite;
- /**
- * Formatters from the command line.
- */
- private static Vector fgFromCmdLine= new Vector();
- /**
- * Holds the registered formatters.
- */
- private Vector formatters= new Vector();
- /**
- * Do we stop on errors.
- */
- private boolean fHaltOnError= false;
- /**
- * Do we stop on test failures.
- */
- private boolean fHaltOnFailure= false;
- /**
- * The TestSuite we are currently running.
- */
- private JUnitTest fJunitTest;
- /**
- * output written during the test
- */
- private PrintStream fSystemError;
- /**
- * Error output during the test
- */
- private PrintStream fSystemOut;
- /**
- * Exception caught in constructor.
- */
- private Exception fException;
- /**
- * Returncode
- */
- private int fRetCode= SUCCESS;
-
- /**
- * The main entry point (the parameters are not yet consistent with
- * the Ant JUnitTestRunner, but eventually they should be).
- * Parameters<pre>
- * -className: the name of the testSuite
- * -testPluginName: the name of the containing plugin
- * haltOnError: halt test on errors?
- * haltOnFailure: halt test on failures?
- * -testlistener listenerClass: deprecated
- * print a warning that this option is deprecated
- * formatter: a JUnitResultFormatter given as classname,filename.
- * If filename is ommitted, System.out is assumed.
- * </pre>
- */
- public static void main(String[] args) throws IOException {
- System.exit(run(args));
- }
- public static int run(String[] args) throws IOException {
- String className= null;
- String testPluginName= null;
-
- boolean haltError = false;
- boolean haltFail = false;
-
- Properties props = new Properties();
-
- int startArgs= 0;
- if (args.length > 0) {
- // support the JUnit task commandline syntax where
- // the first argument is the name of the test class
- if (!args[0].startsWith("-")) {
- className= args[0];
- startArgs++;
- }
- }
- for (int i= startArgs; i < args.length; i++) {
- if (args[i].toLowerCase().equals("-classname")) {
- if (i < args.length-1)
- className= args[i+1];
- i++;
- } else if (args[i].toLowerCase().equals("-testpluginname")) {
- if (i < args.length-1)
- testPluginName= args[i+1];
- i++;
- } else if (args[i].startsWith("haltOnError=")) {
- haltError= Project.toBoolean(args[i].substring(12));
- } else if (args[i].startsWith("haltOnFailure=")) {
- haltFail = Project.toBoolean(args[i].substring(14));
- } else if (args[i].startsWith("formatter=")) {
- try {
- createAndStoreFormatter(args[i].substring(10));
- } catch (BuildException be) {
- System.err.println(be.getMessage());
- return ERRORS;
- }
- } else if (args[i].startsWith("propsfile=")) {
- FileInputStream in = new FileInputStream(args[i].substring(10));
- props.load(in);
- in.close();
- } else if (args[i].equals("-testlistener")) {
- System.err.println("The -testlistener option is no longer supported\nuse the formatter= option instead");
- return ERRORS;
- }
- }
-
- if (className == null)
- throw new IllegalArgumentException("Test class name not specified");
-
- JUnitTest t= new JUnitTest(className);
-
- // Add/overlay system properties on the properties from the Ant project
- Hashtable p= System.getProperties();
- for (Enumeration _enum = p.keys(); _enum.hasMoreElements(); ) {
- Object key = _enum.nextElement();
- props.put(key, p.get(key));
- }
- t.setProperties(props);
-
- EclipseTestRunner runner= new EclipseTestRunner(t, testPluginName, haltError, haltFail);
- transferFormatters(runner);
- runner.run();
- return runner.getRetCode();
- }
-
- /**
- *
- */
- public EclipseTestRunner(JUnitTest test, String testPluginName, boolean haltOnError, boolean haltOnFailure) {
- fJunitTest= test;
- fTestPluginName= testPluginName;
- fHaltOnError= haltOnError;
- fHaltOnFailure= haltOnFailure;
-
- try {
- fSuite= getTest(test.getName());
- } catch(Exception e) {
- fRetCode = ERRORS;
- fException = e;
- }
- }
-
- /**
- * Returns the Test corresponding to the given suite.
- */
- protected Test getTest(String suiteClassName) throws TestFailedException {
- if (suiteClassName.length() <= 0) {
- clearStatus();
- return null;
- }
- Class testClass= null;
- try {
- testClass= loadSuiteClass(suiteClassName);
- } catch (ClassNotFoundException e) {
- if (e.getCause() != null) {
- runFailed(e.getCause());
- }
- String clazz= e.getMessage();
- if (clazz == null)
- clazz= suiteClassName;
- runFailed("Class not found \""+clazz+"\"");
- return null;
- } catch(Exception e) {
- runFailed(e);
- return null;
- }
- Method suiteMethod= null;
- try {
- suiteMethod= testClass.getMethod(SUITE_METHODNAME, new Class[0]);
- } catch(Exception e) {
- // try to extract a test suite automatically
- clearStatus();
- return new TestSuite(testClass);
- }
- if (!Modifier.isStatic(suiteMethod.getModifiers())) {
- runFailed("suite() method must be static");
- return null;
- }
- Test test= null;
- try {
- test= (Test)suiteMethod.invoke(null, new Class[0]); // static method
- if (test == null)
- return test;
- }
- catch (InvocationTargetException e) {
- runFailed("Failed to invoke suite():" + e.getTargetException().toString());
- return null;
- }
- catch (IllegalAccessException e) {
- runFailed("Failed to invoke suite():" + e.toString());
- return null;
- }
- clearStatus();
- return test;
- }
-
- protected void runFailed(String message) throws TestFailedException {
- System.err.println(message);
- throw new TestFailedException(message);
- }
-
- protected void runFailed(Throwable e) throws TestFailedException {
- e.printStackTrace();
- throw new TestFailedException(e);
- }
-
- protected void clearStatus() {
- }
-
- /**
- * Loads the class either with the system class loader or a
- * plugin class loader if a plugin name was specified
- */
- protected Class loadSuiteClass(String suiteClassName) throws ClassNotFoundException {
- if (fTestPluginName == null)
- return Class.forName(suiteClassName);
- Bundle bundle = Platform.getBundle(fTestPluginName);
- if (bundle == null) {
- throw new ClassNotFoundException(suiteClassName, new Exception("Could not find plugin \""
- + fTestPluginName + "\""));
- }
-
- //is the plugin a fragment?
- Dictionary headers = bundle.getHeaders();
- String hostHeader = (String) headers.get(Constants.FRAGMENT_HOST);
- if (hostHeader != null) {
- // we are a fragment for sure
- // we need to find which is our host
- ManifestElement[] hostElement = null;
- try {
- hostElement = ManifestElement.parseHeader(Constants.FRAGMENT_HOST, hostHeader);
- } catch (BundleException e) {
- throw new RuntimeException("Could not find host for fragment:" + fTestPluginName,e);
- }
- Bundle host = Platform.getBundle(hostElement[0].getValue());
- //we really want to get the host not the fragment
- bundle = host;
- }
-
- return bundle.loadClass(suiteClassName);
- }
-
- public void run() {
-// IPerformanceMonitor pm = PerfMsrCorePlugin.getPerformanceMonitor(true);
-
- fTestResult= new TestResult();
- fTestResult.addListener(this);
- for (int i= 0; i < formatters.size(); i++) {
- fTestResult.addListener((TestListener)formatters.elementAt(i));
- }
-
- long start= System.currentTimeMillis();
- fireStartTestSuite();
-
- if (fException != null) { // had an exception in the constructor
- for (int i= 0; i < formatters.size(); i++) {
- ((TestListener)formatters.elementAt(i)).addError(null, fException);
- }
- fJunitTest.setCounts(1, 0, 1);
- fJunitTest.setRunTime(0);
- } else {
- ByteArrayOutputStream errStrm = new ByteArrayOutputStream();
- fSystemError= new PrintStream(errStrm);
-
- ByteArrayOutputStream outStrm = new ByteArrayOutputStream();
- fSystemOut= new PrintStream(outStrm);
-
- try {
-// pm.snapshot(1); // before
- fSuite.run(fTestResult);
- } finally {
- // pm.snapshot(2); // after
- fSystemError.close();
- fSystemError= null;
- fSystemOut.close();
- fSystemOut= null;
- sendOutAndErr(new String(outStrm.toByteArray()), new String(errStrm.toByteArray()));
- fJunitTest.setCounts(fTestResult.runCount(), fTestResult.failureCount(), fTestResult.errorCount());
- fJunitTest.setRunTime(System.currentTimeMillis() - start);
- }
- }
- fireEndTestSuite();
-
- if (fRetCode != SUCCESS || fTestResult.errorCount() != 0) {
- fRetCode = ERRORS;
- } else if (fTestResult.failureCount() != 0) {
- fRetCode = FAILURES;
- }
-
-// pm.upload(getClass().getName());
- }
-
- /**
- * Returns what System.exit() would return in the standalone version.
- *
- * @return 2 if errors occurred, 1 if tests failed else 0.
- */
- public int getRetCode() {
- return fRetCode;
- }
-
- /*
- * @see TestListener.addFailure
- */
- public void startTest(Test t) {}
-
- /*
- * @see TestListener.addFailure
- */
- public void endTest(Test test) {}
-
- /*
- * @see TestListener.addFailure
- */
- public void addFailure(Test test, AssertionFailedError t) {
- if (fHaltOnFailure) {
- fTestResult.stop();
- }
- }
-
- /*
- * @see TestListener.addError
- */
- public void addError(Test test, Throwable t) {
- if (fHaltOnError) {
- fTestResult.stop();
- }
- }
-
- private void fireStartTestSuite() {
- for (int i= 0; i < formatters.size(); i++) {
- ((JUnitResultFormatter)formatters.elementAt(i)).startTestSuite(fJunitTest);
- }
- }
-
- private void fireEndTestSuite() {
- for (int i= 0; i < formatters.size(); i++) {
- ((JUnitResultFormatter)formatters.elementAt(i)).endTestSuite(fJunitTest);
- }
- }
-
- public void addFormatter(JUnitResultFormatter f) {
- formatters.addElement(f);
- }
-
- /**
- * Line format is: formatter=<classname>(,<pathname>)?
- */
- private static void createAndStoreFormatter(String line) throws BuildException {
- String formatterClassName= null;
- File formatterFile= null;
-
- int pos = line.indexOf(',');
- if (pos == -1) {
- formatterClassName= line;
- } else {
- formatterClassName= line.substring(0, pos);
- formatterFile= new File(line.substring(pos + 1)); // the method is package visible
- }
- fgFromCmdLine.addElement(createFormatter(formatterClassName, formatterFile));
- }
-
- private static void transferFormatters(EclipseTestRunner runner) {
- for (int i= 0; i < fgFromCmdLine.size(); i++) {
- runner.addFormatter((JUnitResultFormatter)fgFromCmdLine.elementAt(i));
- }
- }
-
- /*
- * DUPLICATED from FormatterElement, since it is package visible only
- */
- private static JUnitResultFormatter createFormatter(String classname, File outfile) throws BuildException {
- OutputStream out= System.out;
-
- if (classname == null) {
- throw new BuildException("you must specify type or classname");
- }
- Class f = null;
- try {
- f= EclipseTestRunner.class.getClassLoader().loadClass(classname);
- } catch (ClassNotFoundException e) {
- throw new BuildException(e);
- }
-
- Object o = null;
- try {
- o = f.newInstance();
- } catch (InstantiationException e) {
- throw new BuildException(e);
- } catch (IllegalAccessException e) {
- throw new BuildException(e);
- }
-
- if (!(o instanceof JUnitResultFormatter)) {
- throw new BuildException(classname+" is not a JUnitResultFormatter");
- }
-
- JUnitResultFormatter r = (JUnitResultFormatter) o;
-
- if (outfile != null) {
- try {
- out = new FileOutputStream(outfile);
- } catch (java.io.IOException e) {
- throw new BuildException(e);
- }
- }
- r.setOutput(out);
- return r;
- }
-
- private void sendOutAndErr(String out, String err) {
- for (int i=0; i<formatters.size(); i++) {
- JUnitResultFormatter formatter =
- ((JUnitResultFormatter)formatters.elementAt(i));
-
- formatter.setSystemOutput(out);
- formatter.setSystemError(err);
- }
- }
-
- protected void handleOutput(String line) {
- if (fSystemOut != null) {
- fSystemOut.println(line);
- }
- }
-
- protected void handleErrorOutput(String line) {
- if (fSystemError != null) {
- fSystemError.println(line);
- }
- }
-}
diff --git a/bundles/org.eclipse.test/src/org/eclipse/test/RegressionTest.java b/bundles/org.eclipse.test/src/org/eclipse/test/RegressionTest.java
deleted file mode 100644
index 487db1c..0000000
--- a/bundles/org.eclipse.test/src/org/eclipse/test/RegressionTest.java
+++ /dev/null
@@ -1,187 +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.test;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.util.StringTokenizer;
-import java.io.ByteArrayOutputStream;
-
-/**
- * Check the output of several tests for regressions.
- */
-public class RegressionTest {
-
- PrintStream output;
- String oldFilename, newFilename, outFilename;
- public static final String NOTHING_CHANGED_MSG
- = "All tests unchanged.";
- /**
- * Constructor for RegressionTest
- */
- public RegressionTest( String oldFilename,
- String newFilename,
- String outFilename) {
- this.oldFilename = oldFilename;
- this.newFilename = newFilename;
- this.outFilename = outFilename;
- }
-
- public static void main(String[] argv) {
- if (argv.length < 3) {
- System.err.println("Error: too few arguments");
- System.err.println("Usage: (progname) oldfile newfile outfile");
- } else {
- // ASSERT: The program has at least the correct number of arguments
- RegressionTest rt = new RegressionTest(argv[0], argv[1], argv[2]);
- rt.testRegressions();
- }
- }
-
- /**
- * Test for regressions in the test suite.
- */
- public void testRegressions() {
- // Read the old and new files
- String oldPass = "";
- String newPass = "";
- try {
- oldPass = readFile(oldFilename);
- newPass = readFile(newFilename);
- } catch (Exception e) {
- System.err.println("Error opening input file");
- System.err.println(e.getMessage());
- System.exit(-1);
- }
-
- try {
- output = new PrintStream(
- new BufferedOutputStream(
- new FileOutputStream(
- new File(outFilename))));
- } catch (Exception e) {
- System.err.println("Error opening output file");
- System.err.println(e.getMessage());
- System.exit(-1);
- }
- // Establish their relationship
- StringTokenizer oldst = new StringTokenizer(oldPass);
- StringTokenizer newst = new StringTokenizer(newPass);
-
- String[] oldTest = nextTest(oldst);
- String[] newTest = nextTest(newst);
-
- boolean nothingChanged = true;
- while (oldTest != null && newTest != null) {
-
- // Compare the two test names
- int compareName = oldTest[0].compareTo(newTest[0]);
- if (compareName == 0) {
- int compareStatus = oldTest[1].compareTo(newTest[1]);
- if (compareStatus != 0) {
- nothingChanged = false;
- output.println(testChanged(newTest));
- }
- oldTest = nextTest(oldst);
- newTest = nextTest(newst);
- } else if (compareName < 0) {
- // oldTestName comes first
- output.println(testNotRun(oldTest));
- oldTest = nextTest(oldst);
- nothingChanged = false;
- } else {
- // newTestName comes first
- output.println(testAdded(newTest));
- newTest = nextTest(newst);
- nothingChanged = false;
- }
- }
- // Make sure all tests are parsed
- while (oldTest != null) {
- // oldTestName comes first
- output.println(testNotRun(oldTest));
- oldTest = nextTest(oldst);
- nothingChanged = false;
- }
- while (newTest != null) {
- // newTestName comes first
- output.println(testAdded(newTest));
- newTest = nextTest(newst);
- nothingChanged = false;
- }
- // Make sure that there is always some output.
- if (nothingChanged) {
- output.println(NOTHING_CHANGED_MSG);
- }
- output.close();
- }
-
- /**
- * Get the message for when a test is not run.
- */
- static String testNotRun(String[] test) {
- return "Not run: " + test[0];
- }
-
- /**
- * Get the message for when a test's status changes.
- */
- static String testChanged(String[] test) {
- return "Changed: " + test[0] + ", " + test[1];
- }
-
- /**
- * Get the message for when a test is added.
- */
- static String testAdded(String[] test) {
- return "New test: " + test[0] + ", Status: " + test[1];
- }
-
- /**
- * Read the file given by s, and return its contents.
- */
- static String readFile(String s) throws IOException {
- byte[] buf = new byte[8192];
- FileInputStream r = new FileInputStream(s);
- ByteArrayOutputStream aStream = new ByteArrayOutputStream();
- int n;
- while ((n = r.read(buf)) != -1) {
- aStream.write(buf, 0, n);
- }
- r.close();
- return aStream.toString();
- }
-
-
- /**
- * Returns the next 2 tokens in st, if they exist.
- * Returns null if they do not.
- */
- static String[] nextTest(StringTokenizer st) {
- String[] test = new String[2];
- if (st.hasMoreTokens()) {
- test[0] = st.nextToken();
- } else {
- return null;
- }
- if (st.hasMoreTokens()) {
- test[1] = st.nextToken();
- } else {
- return null;
- }
- return test;
- }
-}
-
diff --git a/bundles/org.eclipse.test/src/org/eclipse/test/UITestApplication.java b/bundles/org.eclipse.test/src/org/eclipse/test/UITestApplication.java
deleted file mode 100644
index 4ed8287..0000000
--- a/bundles/org.eclipse.test/src/org/eclipse/test/UITestApplication.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.test;
-
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.testing.ITestHarness;
-import org.eclipse.ui.testing.TestableObject;
-
-/**
- * A Workbench that runs a test suite specified in the
- * command line arguments.
- */
-public class UITestApplication implements IPlatformRunnable, ITestHarness, IApplication {
-
- private static final String DEFAULT_APP_3_0 = "org.eclipse.ui.ide.workbench"; //$NON-NLS-1$
- private static final String DEFAULT_APP_PRE_3_0 = "org.eclipse.ui.workbench"; //$NON-NLS-1$
-
- private boolean fInDeprecatedMode = false;
- private TestableObject fTestableObject;
- private int fTestRunnerResult = -1;
- private IApplicationContext appContext;
-
-
- /* (non-Javadoc)
- * @see org.eclipse.core.boot.IPlatformRunnable
- */
- public Object run(final Object args) throws Exception {
- // Get the application to test
- Object application = getApplication((String[])args);
- Assert.assertNotNull(application);
-
- Object result;
- if (fInDeprecatedMode && (application instanceof IPlatformRunnable)) {
- result = runDeprecatedApplication((IPlatformRunnable)application, args);
- }
- else {
- result = runApplication(application, args);
- }
- if (!IPlatformRunnable.EXIT_OK.equals(result)) {
- System.err.println("UITestRunner: Unexpected result from running application " + application + ": " + result);
- }
- return new Integer(fTestRunnerResult);
- }
-
-
- /*
- * return the application to run, or null if not even the default application
- * is found.
- */
- private Object getApplication(String[] args) throws CoreException {
- // Assume we are in 3.0 mode.
- // Find the name of the application as specified by the PDE JUnit launcher.
- // If no application is specified, the 3.0 default workbench application
- // is returned.
- IExtension extension =
- Platform.getExtensionRegistry().getExtension(
- Platform.PI_RUNTIME,
- Platform.PT_APPLICATIONS,
- getApplicationToRun(args));
-
- // If no 3.0 extension can be found, search the registry
- // for the pre-3.0 default workbench application, i.e. org.eclipse ui.workbench
- // Set the deprecated flag to true
- if (extension == null) {
- extension = Platform.getExtensionRegistry().getExtension(
- Platform.PI_RUNTIME,
- Platform.PT_APPLICATIONS,
- DEFAULT_APP_PRE_3_0);
- fInDeprecatedMode = true;
- }
-
- Assert.assertNotNull(extension);
-
- // If the extension does not have the correct grammar, return null.
- // Otherwise, return the application object.
- IConfigurationElement[] elements = extension.getConfigurationElements();
- if (elements.length > 0) {
- IConfigurationElement[] runs = elements[0].getChildren("run"); //$NON-NLS-1$
- if (runs.length > 0) {
- Object runnable = runs[0].createExecutableExtension("class"); //$NON-NLS-1$
- if (runnable instanceof IPlatformRunnable)
- return (IPlatformRunnable) runnable;
- if (runnable instanceof IApplication)
- return (IApplication) runnable;
- }
- }
- return null;
- }
-
- /**
- * The -testApplication argument specifies the application to be run.
- * If the PDE JUnit launcher did not set this argument, then return
- * the name of the default application.
- * In 3.0, the default is the "org.eclipse.ui.ide.worbench" application.
- *
- */
- private String getApplicationToRun(String[] args) {
- for (int i = 0; i < args.length; i++) {
- if (args[i].equals("-testApplication") && i < args.length -1) //$NON-NLS-1$
- return args[i+1];
- }
- return DEFAULT_APP_3_0;
- }
-
- /**
- * In 3.0 mode
- *
- */
- private Object runApplication(Object application, Object args) throws Exception {
- fTestableObject = PlatformUI.getTestableObject();
- fTestableObject.setTestHarness(this);
- if (application instanceof IPlatformRunnable) {
- return ((IPlatformRunnable) application).run(args);
- }
- return ((IApplication) application).start(appContext);
-
- }
-
- /*
- * If we are in pre-3.0 mode, then the application to run is
- * "org.eclipse.ui.workbench" Therefore, we safely cast the runnable object
- * to IWorkbenchWindow. We add a listener to it, so that we know when the
- * window opens so that we can start running the tests. When the tests are
- * done, we explicitly call close() on the workbench.
- */
- private Object runDeprecatedApplication(
- IPlatformRunnable object,
- final Object args)
- throws Exception {
-
- Assert.assertTrue(object instanceof IWorkbench);
-
- final IWorkbench workbench = (IWorkbench) object;
- // the 'started' flag is used so that we only run tests when the window
- // is opened
- // for the first time only.
- final boolean[] started = { false };
- workbench.addWindowListener(new IWindowListener() {
- public void windowOpened(IWorkbenchWindow w) {
- if (started[0])
- return;
- w.getShell().getDisplay().asyncExec(new Runnable() {
- public void run() {
- started[0] = true;
- try {
- fTestRunnerResult = EclipseTestRunner.run((String[]) args);
- } catch (IOException e) {
- e.printStackTrace();
- }
- workbench.close();
- }
- });
- }
- public void windowActivated(IWorkbenchWindow window) {
- }
- public void windowDeactivated(IWorkbenchWindow window) {
- }
- public void windowClosed(IWorkbenchWindow window) {
- }
- });
- return ((IPlatformRunnable) workbench).run(args);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.testing.ITestHarness#runTests()
- */
- public void runTests() {
- fTestableObject.testingStarting();
- fTestableObject.runTest(new Runnable() {
- public void run() {
- try {
- fTestRunnerResult = EclipseTestRunner.run(Platform.getCommandLineArgs());
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- });
- fTestableObject.testingFinished();
- }
-
-
- public Object start(IApplicationContext context) throws Exception {
- this.appContext = context;
- String[] args = (String[]) appContext.getArguments().get("application.args");
- if (args == null)
- args = new String[0];
- return run(args);
- }
-
-
- public void stop() {
- // TODO Auto-generated method stub
-
- }
-
-}
-
diff --git a/bundles/org.eclipse.test/testframework.html b/bundles/org.eclipse.test/testframework.html
deleted file mode 100644
index e36ea0b..0000000
--- a/bundles/org.eclipse.test/testframework.html
+++ /dev/null
@@ -1,331 +0,0 @@
-<html>
-<head>
-<title>Eclipse Testing Instructions</title>
-</head>
-
-<body>
-<h1>The Eclipse Test Framework</h1><p>Last Modified: March. 8, 2007</p><p><font size="+1"><br>
- Introduction</font></p><p>The testing framework is comprised of the org.eclipse.test plugin and the org.eclipse.ant.optional.junit
- fragment. </p><p>These two projects are available from the dev.eclipse.org repository and are
- included in the eclipse-test-framework-<buildId>.zip from the eclipse.org
- downloads page.</p><p><font size="+1">Building and Installation</font></p><p>Since the org.eclipse.test plugin is stored in the repository in source-code
- form, it needs to be compiled before it can be used. The org.eclipse.ant.optional.junit
- fragment does not contain any source and can be used as is from the repository.</p><ol>
- <li>Turn of automatic builds. Window->Preferences->Workbench and uncheck "Perform
- build automatically on resource modification"</li><li>Load org.eclipse.test into your workspace.</li><li>Right-click on the org.eclipse.test project in either the Navigator or Packages
- view. Select 'Rebuild Project' from the context menu. This will compile the
- entire org.eclipse.test plugin.</li><li>Finally, copy the org.eclipse.test plugin into your target Eclipse.</li>
- <li>The org.eclipse.ant.optional.junit fragment only needs to be present in
- the environment of the Eclipse that is overseeing the test process. If you
- are running the test script from within the Workbench, this means that the
- fragments need to be present withinn your development Eclipse. If you are
- running the tests from the command line, then the fragments will need to be
- present in your target Eclipse.</li></ol>
- <p><font size="+1">Setup</font></p>
- <p>Follow the steps given above to build and install all of the neccessary plugins
- and fragments. Please note that the current version of the test framework is
- not compatible with the PDE notion of self-hosting. If you want to run the tests,
- you will need to setup a full target Eclipse so that the testing framework can
- detect everything that is needed.</p>
-<p>If you are writing tests for one or more Eclipse plugins, then you should
-create a separate plugin for tests. The test plugin will contain all of the
-tests that will be run on your development plugins, as well as defining how
-those tests get run.</p>
-
-<p>If you are not writing tests for an Eclipse plugin, then you should look into
- using JUnit on its own to test your work. JUnit is designed for testing Java
- code, and by default has no knowledge of Eclipse. There are separate mechanisms
- for using JUnit on Java code in Eclipse. See the documentation provided here:</p>
-<p> <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/jdt-ui-home/plugins/org.eclipse.jdt.junit/index.html">
-JUnit Support in Eclipse</a><br>
- <a href="http://dev.eclipse.org:8080/help/content/help:/org.eclipse.jdt.doc.user/tasks/tasks-207.htm?resultof=%6a%75%6e%69%74%20&toc=%2Forg.eclipse.jdt.doc.user%2Ftoc.xml">
- Using JUnit</a></p>
-
- <p>Once a test plugin has been created, you must then create an Ant script that
- will run all of the tests. Create a file called 'test.xml' in the root of your plug-in or bundle.
- This is an Ant file that defines how each test is going to be run. The 'test.xml'
- file is like a DOS batch file that scripts the entire testing process. Typically,
- the 'test.xml' file will contain targets for setting up the test run, executing
- the tests, cleaning up afterwards, and running the entire process.</p>
-
- <p><font size="+1">Converting existing Test Suites</font></p>
-
- <p>If you are converting an existing set of tests to use the new framework, the
-actual tests that have been written should not need much change.</p>
- <p>If you have tests in multiple plugins, move these to a single test plug-in for your component.</p>
-
- <p>Make sure that the tests are defined in a plug-in. This is probably the most
- common cause of confusion in the entire test process. Your tests need to be
- in a plug-in so that Eclipse can find them when it tries to load them.</p>
-
- <p><font size="+1">Creating new Test Suites</font></p>
-
- <p>Creating new JUnit tests for an Eclipse plugin should be no more difficult
- than writing standard JUnit tests. Since the framework allows tests to be run
- inside of a working Eclipse, any tests that you write have available to them
- any of the methods supplied by the Eclipse platform, provided that you add the
- appropriate dependencies to your tests' manifest.</p>
-
- <p><font size="+1">Performance Issues</font></p>
- <p>You should keep in mind the number of times that Eclipse needs to be
-started. Launching Eclipse has a substantial cost in terms of runtime. To
-minimize the number of times the platform is started, you should consider
-writing a TestSuite called AllTests for each of your test plugins. AllTests
-should invoke each of the tests that you want to run for a particular plugin.
-The 'test.xml' file can then run the AllTests class, which will run all of your
-tests, but the platform will only ever be started once for each of your test
-plugins.</p><p>Note: Sometimes tests involve shutting down, restarting, and testing the state
- of metadata that was written to disk. These session tests will require Eclipse
- to be launched several times in sequence, which will increase the runtime of
- your tests. This cannot be avoided.</p><p> </p>
-
- <p><font size="+1">Running the Test Suite from the UI</font></p><p>Right click on the test.xml file and select 'Run Ant...' from the pull-down
- menu. The Running Ant dialog box pops up. From the list of targets, select the
- one that runs all of your tests. If you are using the example file provided
- below, this target is called 'Run', and will be selected by default. Hit the
- 'Finish' button to start the test process.</p>
-
- <p><font size="+1">Running the Test Suite from the command line</font></p>
- <p>When the test suites are invoked automatically, they are run from command
-line. From the ${eclipse-home} directory, the command to use is:</p>
-<code>java -jar plugins\org.eclipse.equinox.launcher_<version>.jar -application org.eclipse.ant.core.antRunner -buildfile ${test-plugin-path}\test.xml
--Declipse-home=${eclipse-home} -Dos=<operating system> -Dws=<windowing system> -Darch=<architecture></code>
-
-<p>Individual tests can also be invoked directly. From the ${eclipse-home}
-directory, use the command:</p><code>java -jar plugins\org.eclipse.equinox.launcher_<version>.jar
- -application ${launcher} -os <operating system> -ws <windowing system> -arch <architecture> -dev bin -testpluginname ${plugin-name}
--classname ${test-classname} formattter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,<path to output file with .xml extension></code>
-<p>where ${launcher} is one of: <i>org.eclipse.test.uitestapplication</i> or <i>org.eclipse.test.coretestapplication</i>
- depending on whether or not you want to run your tests within an active Workbench.</p><p><font size="+1">Output</font></p><p>By default, output from each test run is logged as XML. For each test that
- is run, the output is logged into the file called ${classname}.xml. The individual
- XML files are located in the ${eclipse-home} directory. When the test run is
- finished, you can call the <b>"collect"</b> target in the library
- file, which will collect the XML into a single file. See below for an example
- of how to use this target correctly.</p>
-
-<h3>Other issues</h3><h4>Headless Testing vs. UI testing</h4><p>Many plugin tests will not need the Workbench active in order to run. Indeed,
- only the minimum number of plugins needed to run the plugin being tested need
- to be present when testing in a target Eclipse. There are two different Ant
- targets provided for running Eclipse plugin tests. One target starts the entire
- Workbench. The other starts Eclipse with the minimum number of plugins needed.
- It is up to you to decide which target is most appropriate. For examples, look
- at the <b>"ui-test"</b> and <b>"core-test"</b> targets below.</p>
-
-<h4>Disposing the Display</h4><p>Some low-level tests for the Eclipse platform take actions that are not
-normally possible inside of Eclipse. An example of this behaviour would be
-disposing the display. While this action can be performed while running the UI,
-it will also kill the UI for the copy of Eclipse that is running, and cause
-errors when the Workbench tries to shutdown. If you need to test disposing the
-display, or other similar actions, your tests should be running without a UI. </p>
-
-<h4>Tests that are not plugins</h4><p>It is very easy to forget to define your tests inside of a plugin. If your
- tests will not load properly, make sure that a plug-in manifest exists in your
- test project, and also that the plugin is being loaded by the platform. Make
- sure that all of the dependencies are satisfied for your test plugin.</p>
-
-<p><font size="+1">Interface</font></p><p>The org.eclipse.test plugin defines many useful Ant tasks/targets to aid developers
- in writing their test.xml scripts. Currently, there is only Ant targets defined,
- which can be called using Ant's built-in <ant> task. To use these targets,
- add the following line to the top of your script, and reference the ${library-file}
- property when calling <ant>:</p><code><property name="library-file"
-value="${eclipse-home}/fragments/org.eclipse.test/library.xml"/> </code>
-
-<p>The targets that are defined are: </p><ul>
- <li><b>ui-test</b> - This target runs a JUnit test suite inside of an Eclipse
- Workbench. This target is mainly for testing plugins that use the Eclipse
- UI and JFace. The output of the test pass is automatically logged in an XML
- file called ${classname}.xml. It takes four arguments: </li><ul>
- <li><i>data-dir</i> - The
- data directory of the Eclipse that gets run</li><li><i>plugin-name</i> -
- The name of the plugin that the test suite is defined in</li><li><i>classname</i> -
- The name of the class that the test suite is defined in</li><li><i>vmargs</i> - An
- optional argument string to pass to the VM running the tests</li></ul><p>For example, the following code will run the test
-org.eclipse.foo.bar.MyTest in the plugin org.eclipse.foo in a new Eclipse
-workbench. It passes the string "-Dbaz=true" to the VM. The Eclipse
-stores its metadata in the directory "data-folder".
-
-<code><pre>
-<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
- <property name="data-dir" value="data-folder"/>
- <property name="plugin-name" value="org.eclipse.foo"/>
- <property name="classname" value="org.eclipse.foo.bar.MyTest"/>
- <property name="vmargs" value="-Dbaz=true"/>
-</ant>
-</pre></code>
-
- <li><b>core-test</b> - This target runs a JUnit test suite inside of an IPlatformRunnable.
- This target is for testing plugins that use the Eclipse platform, but do not
- require a UI to be running. The output of the test pass is automatically logged
- in an XML file called ${classname}.xml. It takes four arguments: </li><ul>
- <li><i>data-dir</i> - The
- data directory of the Eclipse that gets run</li><li><i>plugin-name</i> -
- The name of the plugin that the test suite is defined in</li><li><i>classname</i> -
- The name of the class that the test suite is defined in</li><li><i>vmargs</i> - An
- optional argument string to pass to the VM running the tests</li></ul><p>For example, the following code will run the test
-org.eclipse.foo.bar.MyTest in the plugin org.eclipse.foo in a headless Eclipse.
-It passes the string "-Dbaz=true" to the VM. The Eclipse stores its
-metadata in the directory "data-folder".
-
-<code><pre>
-<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
- <property name="data-dir" value="data-folder"/>
- <property name="plugin-name" value="org.eclipse.foo"/>
- <property name="classname" value="org.eclipse.foo.bar.MyTest"/>
- <property name="vmargs" value="-Dbaz=true"/>
-</ant>
-</pre></code>
-
- <li><b>collect</b> - This
- target collects the XML files that are produced over the course of the
- test script. It takes two arguments: </li><ul>
- <li><i>includes</i> - A
- pattern matching all XML files to be included in the test report. This
- argument is typically "org*.xml"</li><li><i>output-file</i> -
- The filename where the output of the test gets stored. For the automated
- build process, this file should be ${pluginname}.xml, and be located in
- the ECLIPSE_HOME directory.</li></ul><p>For example, the following code collects all of the files
-matching the pattern "org*.xml" in the directory ${eclipse-home},
-into the file named "logfile.xml".
-
-<code><pre>
-<ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
- <property name="includes" value="org*.xml"/>
- <property name="output-file" value="logfile.xml"/>
-</ant>
-</pre></code>
-
- <li><b>test-regressions</b> - This target takes two compound XML files (after
- a collect - even if collect is only given 1 file), and produces a text file
- that contains a list of all test status changes that occur between the two
- files. It will report new tests added, old tests that weren't run, and tests
- whose status changed (pass to fail, or fail to pass). This target takes three
- arguments: </li><ul>
- <li><i>oldfile</i> - the
- baseline file to compare against</li><li><i>newfile</i> - the
- file containing the results of the most recent test run</li><li><i>outfile</i> - the
- file in which to place the results of the regression test</li></ul><p>For example, the following code compares the test runs that
-were logged into the files "old.xml" and "new.xml", and
-creates a file called "output.txt" that holds the differences between
-the two runs.
-
-<code><pre>
-<ant target="test-regressions" antfile="${library-file}" dir="${eclipse-home}">
- <property name="oldfile" value="old.xml"/>
- <property name="newfile" value="new.xml"/>
- <property name="outfile" value="output.txt"/>
-</ant>
-</pre></code>
-
- <li><b>notify</b> - This target
- sends email notification of the status of the latest test run. Typically,
- this sends the results of the latest regression test to a developer so
- that new test failures can be detected quickly. This target takes two
- parameters: </li><ul>
- <li><i>infile</i> - the
- name of the file containing the message to send</li><li><i>address</i> - the
- email address to send the file to</li></ul><p>For example, the following code will mail the contents of
-the file "output.txt" to the address "foo@bar.com".
-
-<code><pre>
-<ant target="notify" antfile="${library-file}" dir="${eclipse-home}">
- <property name="infile" value="output.txt"/>
- <property name="address" value="foo@bar.com"/>
-</ant>
-</pre></code>
-</ul><h2>Examples:</h2><p>Included is the 'test.xml' file from the org.eclipse.ui.tests plugin. This
-file controls all of the automated testing that is done for the org.eclipse.ui
-plugin. It can be run from inside of Eclipse or from the command line. It is
-intended to serve as a template file for testing any other plugin.</p><p>Notice that the structure of the file roughly mirrors that of a JUnit test.
-Targets are defined for setting up the tests, defining what needs to be done,
-cleaning up after the tests, and running everything in the right order.</p><font color="red">This example is out of date.
-<code><pre>
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
- <!-- The property ${eclipse-home} should be passed into this script -->
- <!-- Set a meaningful default value for when it is not. -->
- <property name="eclipse-home" value="${basedir}/../.."/>
-
- <!-- sets the properties eclipse-home, and library-file -->
- <property name="plugin-name" value="org.eclipse.ui.tests"/>
- <property name="library-file"
- value="${eclipse-home}/fragments/org.eclipse.test/library.xml"/>
-
- <!-- This target holds all initialization code that needs to be done for -->
- <!-- all tests that are to be run. Initialization for individual tests -->
- <!-- should be done within the body of the suite target. -->
- <target name="init">
- <tstamp/>
- <delete>
- <fileset dir="${eclipse-home}" includes="org*.xml"/>
- </delete>
- </target>
-
- <!-- This target defines the tests that need to be run. -->
- <target name="suite">
- <property name="session-folder"
- value="${eclipse-home}/ui_session_sniff_folder"/>
- <delete dir="${session-folder}" quiet="true"/>
- <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
- <property name="data-dir" value="${session-folder}"/>
- <property name="plugin-name" value="${plugin-name}"/>
- <property name="classname"
- value="org.eclipse.ui.tests.api.SessionCreateTest"/>
- </ant>
- <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
- <property name="data-dir" value="${session-folder}"/>
- <property name="plugin-name" value="${plugin-name}"/>
- <property name="classname"
- value="org.eclipse.ui.tests.api.SessionRestoreTest"/>
- </ant>
-
- <property name="sniff-folder"
- value="${eclipse-home}/ui_sniff_folder"/>
- <delete dir="${sniff-folder}" quiet="true"/>
- <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
- <property name="data-dir" value="${sniff-folder}"/>
- <property name="plugin-name" value="${plugin-name}"/>
- <property name="classname"
- value="org.eclipse.ui.tests.UiTestSuite"/>
- </ant>
- </target>
-
- <!-- This target holds code to cleanup the testing environment after -->
- <!-- after all of the tests have been run. You can use this target to -->
- <!-- delete temporary files that have been created. -->
- <target name="cleanup">
- </target>
-
- <!-- This target runs the test suite. Any actions that need to happen -->
- <!-- after all the tests have been run should go here. -->
- <target name="run" depends="init,suite,cleanup">
- <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
- <property name="includes" value="org*.xml"/>
- <property name="output-file" value="${plugin-name}.xml"/>
- </ant>
- </target>
-
-</project>
-</pre></code>
-</font>
-<h2>Known Issues:</h2><h4>Problem 1: Issues with Ant 1.3</h4><p>Ant 1.3 has some issues when used with the <style> tag and absolute
-paths. Also, any tests that use the <code>System.exit()</code> call will not
-log their output properly when using Ant 1.3.</p><h4>Problem 2: ECLIPSE_HOME</h4><p>The test suites need to know where the root of the eclipse install is on the
-file system (the ECLIPSE_HOME variable). However, this variable is only defined
-in JDT. The ${eclipse-home} property can be set to a reasonable default inside
-of the test.xml script. Then tests can be run from the standard Ant window,
-without having to specify -Declipse-home=%ECLIPSE_HOME%. If a value for
-${eclipse-home} does get passed in, the default (specified in test.xml) gets
-overridden. The parameter is passed in by the build mechanism. For most cases,
-the value "${basedir}/../.." is a reasonable default.</p><h4>Problem 3: Ugly reference to library.xml</h4><p>org.eclipse.test should provide Ant tasks, not template scripts.</p><h4>Problem 4: No console output</h4><p>When you run a TestSuite using the standard JUnit, it normally outputs a
-series of dots to the console so that you can track the TestSuite's progress.
-It is not possible to add this feature to the automated testing process at this
-point in time.</p><h4>Problem 5: Ant java task on Linux</h4><p>Ant expects there to be a java executable on the system path. Furthermore, the executable
-must be a real file, not a symbolic link. If the test framework is throwing an exception
-<code>java.io.IOException: java: not found</code>, ensure that the java executable is on
-your system path.</p><h4>Problem 6: PDE</h4><p>The testing framework currently has no knowledge of PDE. In order to run the automated
-you must be running a self hosting environment with a full development and target Eclipse.</p>
-
-</body>
-
-</html>
diff --git a/features/com.ibm.icu.base/build.properties b/features/com.ibm.icu.base/build.properties
deleted file mode 100644
index 337a2a8..0000000
--- a/features/com.ibm.icu.base/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes=feature.xml
\ No newline at end of file
diff --git a/features/com.ibm.icu.base/feature.xml b/features/com.ibm.icu.base/feature.xml
deleted file mode 100644
index 375be70..0000000
--- a/features/com.ibm.icu.base/feature.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="com.ibm.icu.base"
- version="1.0.0.qualifier">
-
- <plugin
- id="com.ibm.icu.base"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="com.ibm.icu.base.source"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
-</feature>
diff --git a/features/master-equinox/build.properties b/features/master-equinox/build.properties
deleted file mode 100644
index b25860d..0000000
--- a/features/master-equinox/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes=feature.xml
-generate.feature@org.eclipse.equinox.source=org.eclipse.equinox
\ No newline at end of file
diff --git a/features/master-equinox/feature.xml b/features/master-equinox/feature.xml
deleted file mode 100644
index e376e05..0000000
--- a/features/master-equinox/feature.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="master-equinox"
- label="build utility feature"
- version="1.0.0">
-
- <includes
- id="org.eclipse.equinox"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.equinox.source"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.equinox.cm"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.ds"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.initializer"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.wireadmin"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.supplement"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http.registry"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http.jetty"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http.servlet"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http.servletbridge"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.servletbridge"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="javax.servlet"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.commons.logging"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.mortbay.jetty"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <includes
- id="org.eclipse.equinox.jmx.common.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.equinox.jmx.client.feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.equinox.jmx.server.feature"
- version="0.0.0"/>
-
-</feature>
diff --git a/features/master-root/.project b/features/master-root/.project
deleted file mode 100644
index bdba031..0000000
--- a/features/master-root/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>master-root</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- </buildSpec>
- <natures>
- </natures>
-</projectDescription>
diff --git a/features/master-root/build.properties b/features/master-root/build.properties
deleted file mode 100644
index a60a1ce..0000000
--- a/features/master-root/build.properties
+++ /dev/null
@@ -1,278 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-configs=launcher-common,common,common&\
- launcher-win32, win32, x86 &\
- launcher-win32, wpf, x86 &\
- launcher-linux, gtk, x86 & \
- launcher-linux, gtk, x86_64 &\
- launcher-linux, gtk, ppc & \
- launcher-linux, motif, x86 & \
- launcher-solaris, gtk, sparc & \
- launcher-aix, motif, ppc & \
- launcher-hpux, motif, PA_RISC & \
- launcher-macosx, carbon, ppc& \
- \
- sdk-win32, win32, x86 &\
- sdk-win32, wpf, x86 &\
- sdk-linux, gtk, x86 & \
- sdk-linux, gtk, x86_64 &\
- sdk-linux, gtk, ppc & \
- sdk-linux, motif, x86 & \
- sdk-solaris, motif, sparc & \
- sdk-solaris, gtk, sparc & \
- sdk-aix, motif, ppc & \
- sdk-hpux, motif, PA_RISC & \
- sdk-macosx, carbon, ppc& \
- \
- platform-win32, win32, x86 &\
- platform-win32, wpf, x86 &\
- platform-linux, gtk, x86 & \
- platform-linux, gtk, x86_64 &\
- platform-linux, gtk, ppc & \
- platform-linux, motif, x86 & \
- platform-solaris, motif, sparc & \
- platform-solaris, gtk, sparc & \
- platform-aix, motif, ppc & \
- platform-hpux, motif, PA_RISC & \
- platform-macosx, carbon, ppc&\
- \
- rcp-common, common, common &\
- rcp-macosx, carbon, ppc&\
- \
- examples-common, common, common
-
-#########################################
-# root files common to all drops
-#########################################
-root=rootfiles
-
-#########################################
-# common eclipse launcher rootfiles
-#########################################
-root.launcher-common.common.common=\
- ../../features/org.eclipse.platform/rootfiles
-
-root.launcher-win32.win32.x86=\
- ../../features/org.eclipse.equinox.executable/bin/win32/win32/x86
-
-root.launcher-win32.wpf.x86=\
- ../../features/org.eclipse.equinox.executable/bin/wpf/win32/x86
-
-root.launcher-aix.motif.ppc=\
- ../../features/org.eclipse.equinox.executable/bin/motif/aix/ppc
-
-#root.launcher-hpux.motif.PA_RISC=\
-#../../features/org.eclipse.equinox.executable/bin/motif/hpux/PA_RISC
-
-root.launcher-solaris.motif.sparc=\
- ../../features/org.eclipse.equinox.executable/bin/motif/solaris/sparc
-
-root.launcher-solaris.gtk.sparc=\
- ../../features/org.eclipse.equinox.executable/bin/gtk/solaris/sparc
-
-root.launcher-linux.gtk.x86=\
- ../../features/org.eclipse.platform/about_files/linux.gtk.x86,\
- ../../features/org.eclipse.equinox.executable/bin/gtk/linux/x86,\
- file:../../plugins/org.eclipse.swt.gtk.linux.x86/libcairo-swt.so
-
-root.launcher-linux.gtk.x86_64=\
- ../../features/org.eclipse.platform/about_files/linux.gtk.x86_64,\
- ../../features/org.eclipse.equinox.executable/bin/gtk/linux/x86_64,\
- file:../../plugins/org.eclipse.swt.gtk.linux.x86_64/libcairo-swt.so
-
-root.launcher-linux.gtk.ppc=\
- ../../features/org.eclipse.equinox.executable/bin/gtk/linux/ppc
-
-#root.launcher-linux.gtk.ia64=\
-# ../../features/org.eclipse.equinox.executable/bin/gtk/linux/ia64
-
-root.launcher-linux.motif.x86=\
- ../../features/org.eclipse.equinox.executable/bin/motif/linux/x86,\
- ../../features/org.eclipse.platform/about_files/linux.motif.x86,\
- file:../../plugins/org.eclipse.swt.motif.linux.x86/libcairo-swt.so,\
- file:../../plugins/org.eclipse.swt.motif.linux.x86/libXm.so.2
-
-root.launcher-macosx.carbon.ppc=\
- ../../features/org.eclipse.equinox.executable/bin/carbon/macosx/ppc
-
-
-#########################################
-# SDK specific rootfiles
-#########################################
-
-root.sdk-win32.win32.x86=\
- ../../features/org.eclipse.sdk/win32,\
- file:../../features/org.eclipse.platform/win32/eclipse.ini
-
-root.sdk-win32.wpf.x86=\
- ../../features/org.eclipse.sdk/win32,\
- file:../../features/org.eclipse.platform/win32/eclipse.ini
-
-
-root.sdk-aix.motif.ppc=\
- ../../features/org.eclipse.sdk/motif,\
- file:../../features/org.eclipse.platform/motif/eclipse.ini
-
-#root.sdk-hpux.motif.PA_RISC=\
- #../../features/org.eclipse.sdk/motif,\
- #file:../../features/org.eclipse.platform/motif/eclipse.ini
-
-root.sdk-solaris.motif.sparc=\
- ../../features/org.eclipse.sdk/motif,\
- file:../../features/org.eclipse.platform/motif/eclipse.ini
-
-root.sdk-solaris.gtk.sparc=\
- ../../features/org.eclipse.sdk/gtk,\
- file:../../features/org.eclipse.platform/gtk/eclipse.ini
-
-root.sdk-linux.gtk.x86=\
- ../../features/org.eclipse.sdk/gtk,\
- file:../../features/org.eclipse.platform/gtk/eclipse.ini
-
-root.sdk-linux.gtk.x86_64=\
- ../../features/org.eclipse.sdk/gtk,\
- file:../../features/org.eclipse.platform/gtk/eclipse.ini
-root.sdk-linux.gtk.ppc=\
- ../../features/org.eclipse.sdk/gtk,\
- file:../../features/org.eclipse.platform/gtk/eclipse.ini
-
-root.sdk-linux.gtk.ia64=\
- ../../features/org.eclipse.sdk/gtk,\
- file:../../features/org.eclipse.platform/gtk/eclipse.ini
-
-root.sdk-hpux.motif.ia64_32=\
- ../../features/org.eclipse.sdk/motif,\
- file:../../features/org.eclipse.platform/motif/eclipse.ini
-
-root.sdk-linux.motif.x86=\
- ../../features/org.eclipse.sdk/motif,\
- file:../../features/org.eclipse.platform/motif/eclipse.ini
-
-root.sdk-macosx.carbon.ppc=\
- ../../features/org.eclipse.sdk/macosx.carbon
-
-#########################################
-# Platform specific rootfiles
-#########################################
-
-root.platform-win32.win32.x86=\
- ../../features/org.eclipse.platform/win32
-
-root.platform-win32.wpf.x86=\
- ../../features/org.eclipse.platform/win32
-
-root.platform-aix.motif.ppc=\
- ../../features/org.eclipse.platform/motif
-
-#root.platform-hpux.motif.PA_RISC=\
-#s ../../features/org.eclipse.platform/motif
-
-root.platform-solaris.motif.sparc=\
- ../../features/org.eclipse.platform/motif
-
-root.platform-solaris.gtk.sparc=\
- ../../features/org.eclipse.platform/gtk
-
-root.platform-linux.gtk.x86=\
- ../../features/org.eclipse.platform/gtk
-
-root.platform-linux.gtk.x86_64=\
- ../../features/org.eclipse.platform/gtk
-
-root.platform-linux.gtk.ppc=\
- ../../features/org.eclipse.platform/gtk
-
-root.platform-linux.gtk.ia64=\
- ../../features/org.eclipse.platform/gtk
-
-root.platform-hpux.motif.ia64_32=\
- ../../features/org.eclipse.platform/motif
-
-root.platform-linux.motif.x86=\
- ../../features/org.eclipse.platform/motif
-
-root.platform-macosx.carbon.ppc=\
- ../../features/org.eclipse.platform/macosx.carbon
-
-#########################################
-# RCP specific rootfiles
-#########################################
-
-root.rcp-common.common.common=\
- ../../features/org.eclipse.rcp/rootfiles
-
-#########################################
-# Equinox specific rootfiles
-#########################################
-root.equinox-launcher-win32.win32.x86=\
- ../../features/org.eclipse.equinox.executable/bin/win32/win32/x86,\
- ../../features/org.eclipse.rcp/rootfiles
-
-root.equinox-launcher-win32.wpf.x86=\
- ../../features/org.eclipse.equinox.executable/bin/wpf/win32/x86,\
- ../../features/org.eclipse.rcp/rootfiles
-
-
-root.equinox-launcher-aix.motif.ppc=\
- ../../features/org.eclipse.equinox.executable/bin/motif/aix/ppc,\
- ../../features/org.eclipse.rcp/rootfiles
-
-#root.equinox-launcher-hpux.motif.PA_RISC=\
-# ../../features/org.eclipse.equinox.executable/bin/motif/hpux/PA_RISC,\
-# ../../features/org.eclipse.rcp/rootfiles
-
-#root.equinox-launcher-solaris.motif.sparc=\
-# ../../features/org.eclipse.equinox.executable/bin/motif/solaris/sparc,\
-# ../../features/org.eclipse.rcp/rootfiles
-
-root.equinox-launcher-solaris.gtk.sparc=\
- ../../features/org.eclipse.equinox.executable/bin/gtk/solaris/sparc,\
- ../../features/org.eclipse.rcp/rootfiles
-
-root.equinox-launcher-linux.gtk.x86=\
- ../../features/org.eclipse.equinox.executable/bin/gtk/linux/x86,\
- ../../features/org.eclipse.rcp/rootfiles
-
-root.equinox-launcher-linux.gtk.x86_64=\
- ../../features/org.eclipse.equinox.executable/bin/gtk/linux/x86_64,\
- ../../features/org.eclipse.rcp/rootfiles
-
-root.equinox-launcher-linux.gtk.ppc=\
- ../../features/org.eclipse.equinox.executable/bin/gtk/linux/ppc,\
- ../../features/org.eclipse.rcp/rootfiles
-
-#root.equinox-launcher-linux.gtk.ia64=\
-# ../../features/org.eclipse.equinox.executable/bin/gtk/linux/ia64,\
-# ../../features/org.eclipse.rcp/rootfiles
-
-#root.equinox-launcher-linux.motif.x86=\
-# ../../features/org.eclipse.equinox.executable/bin/motif/linux/x86,\
-# ../../features/org.eclipse.rcp/rootfiles
-
-root.equinox-launcher-macosx.carbon.ppc=\
- ../../features/org.eclipse.equinox.executable/bin/carbon/macosx/ppc,\
- ../../features/org.eclipse.rcp/rootfiles
-
-root.examples-common.common.common=\
- ../../features/org.eclipse.sdk.examples/rootfiles
-
-root.permissions.755=eclipse
-root.launcher-aix.motif.ppc.permissions.755=*.so*,eclipse
-root.launcher-hpux.motif.PA_RISC.permissions.755=*.sl,eclipse
-root.launcher-solaris.motif.sparc.permissions.755=*.so*,eclipse
-root.launcher-solaris.gtk.sparc.permissions.755=*.so*,eclipse
-root.launcher-linux.gtk.x86.permissions.755=*.so*,eclipse
-root.launcher-linux.gtk.x86_64.permissions.755=*.so*,eclipse
-root.launcher-linux.gtk.ppc.permissions.755=*.so*,eclipse
-root.launcher-linux.gtk.ia64.permissions.755=*.so*,eclipse
-root.launcher-linux.motif.x86.permissions.755=*.so*,eclipse
-root.launcher-macosx.carbon.ppc.permissions.755=Eclipse.app/Contents/MacOS/eclipse,Eclipse.app/Contents/MacOS/java_swt,eclipse
-root.launcher-macosx.carbon.ppc.link=Eclipse.app/Contents/MacOS/eclipse,eclipse
diff --git a/features/master-root/feature.xml b/features/master-root/feature.xml
deleted file mode 100644
index 3534692..0000000
--- a/features/master-root/feature.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="master-root"
- version="3.2">
-</feature>
diff --git a/features/master-root/rootfiles/epl-v10.html b/features/master-root/rootfiles/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/master-root/rootfiles/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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/master-root/rootfiles/notice.html b/features/master-root/rootfiles/notice.html
deleted file mode 100644
index c6af966..0000000
--- a/features/master-root/rootfiles/notice.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/features/master/.project b/features/master/.project
deleted file mode 100644
index a83ecf0..0000000
--- a/features/master/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>master</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- </buildSpec>
- <natures>
- </natures>
-</projectDescription>
diff --git a/features/master/build.properties b/features/master/build.properties
deleted file mode 100644
index 22dd601..0000000
--- a/features/master/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-#outputUpdateJars = true
diff --git a/features/master/feature.xml b/features/master/feature.xml
deleted file mode 100644
index c32359a..0000000
--- a/features/master/feature.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="master"
- version="3.2">
-
- <includes
- id="org.eclipse.sdk"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.sdk.examples"
- version="0.0.0"/>
-
- <includes
- id="master-equinox"
- version="0.0.0"/>
-
- <includes
- id="com.ibm.icu.base"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.releng.tools"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.swt.tools"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="com.ibm.icu.source"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.swt.win32.wce_ppc.arm"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.swt.motif.solaris.sparc"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.equinox.sdk/.project b/features/org.eclipse.equinox.sdk/.project
deleted file mode 100644
index 33f510a..0000000
--- a/features/org.eclipse.equinox.sdk/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.equinox.sdk</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- </buildSpec>
- <natures>
- </natures>
-</projectDescription>
diff --git a/features/org.eclipse.equinox.sdk/build.properties b/features/org.eclipse.equinox.sdk/build.properties
deleted file mode 100644
index c5804c2..0000000
--- a/features/org.eclipse.equinox.sdk/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-generate.feature@org.eclipse.equinox.source=org.eclipse.equinox
diff --git a/features/org.eclipse.equinox.sdk/feature.xml b/features/org.eclipse.equinox.sdk/feature.xml
deleted file mode 100644
index 169cbe3..0000000
--- a/features/org.eclipse.equinox.sdk/feature.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.equinox.sdk"
- label="%featureName"
- version="3.2.0.qualifier"
- image= "eclipse_update_120.jpg"
- provider-name="%providerName">
-
- <description>
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <includes id="org.eclipse.equinox" version="0.0.0" />
- <includes id="org.eclipse.equinox.source" version="0.0.0" />
-
-
-</feature>
diff --git a/features/org.eclipse.equinox/.project b/features/org.eclipse.equinox/.project
deleted file mode 100644
index c133ea0..0000000
--- a/features/org.eclipse.equinox/.project
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.equinox</name>
- <comment></comment>
- <projects>
- </projects>
- <natures>
- </natures>
-</projectDescription>
diff --git a/features/org.eclipse.equinox/build.properties b/features/org.eclipse.equinox/build.properties
deleted file mode 100644
index 766546a..0000000
--- a/features/org.eclipse.equinox/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,license.html,epl-v10.html,license.html,feature.properties
diff --git a/features/org.eclipse.equinox/epl-v10.html b/features/org.eclipse.equinox/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.equinox/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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.equinox/feature.properties b/features/org.eclipse.equinox/feature.properties
deleted file mode 100644
index aab16cf..0000000
--- a/features/org.eclipse.equinox/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse Project Equinox bundle feature
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Equinox bundle feature
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2006 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
- IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
- - Content may be structured and packaged into modules to facilitate delivering,\n\
- extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
- plug-in fragments ("Fragments"), and features ("Features").\n\
- - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
- in a directory named "plugins".\n\
- - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
- Each Feature may be packaged as a sub-directory in a directory named "features".\n\
- Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
- numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
- - Features may also include other Features ("Included Features"). Within a Feature, files\n\
- named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
- - The top-level (root) directory\n\
- - Plug-in and Fragment directories\n\
- - Inside Plug-ins and Fragments packaged as JARs\n\
- - Sub-directories of the directory named "src" of certain Plug-ins\n\
- - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
- - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
- - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
- - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
- - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
- - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
- - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.equinox/feature.xml b/features/org.eclipse.equinox/feature.xml
deleted file mode 100644
index 9f638be..0000000
--- a/features/org.eclipse.equinox/feature.xml
+++ /dev/null
@@ -1,216 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.equinox"
- label="%featureName"
- version="3.3.0.qualifier"
- provider-name="%providerName">
-
- <description>
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <plugin
- id="javax.servlet.jsp"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.jasper"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.commons.el"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.common"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.device"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.event"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http.registry"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.jsp.jasper"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.jsp.jasper.registry"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.log"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.metatype"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.preferences"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.registry"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.useradmin"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.osgi"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.osgi.services"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.osgi.util"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.app"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.launcher"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http.jetty"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http.servlet"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.http.servletbridge"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.equinox.servletbridge"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="javax.servlet"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.apache.commons.logging"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.mortbay.jetty"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.equinox/license.html b/features/org.eclipse.equinox/license.html
deleted file mode 100644
index c6af966..0000000
--- a/features/org.eclipse.equinox/license.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/features/org.eclipse.equinox/sourceTemplateFeature/build.properties b/features/org.eclipse.equinox/sourceTemplateFeature/build.properties
deleted file mode 100644
index 8bfb90b..0000000
--- a/features/org.eclipse.equinox/sourceTemplateFeature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes =\
-epl-v10.html,\
-eclipse_update_120.jpg,\
-feature.xml,\
-feature.properties,\
-license.html
diff --git a/features/org.eclipse.equinox/sourceTemplateFeature/eclipse_update_120.jpg b/features/org.eclipse.equinox/sourceTemplateFeature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.equinox/sourceTemplateFeature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.equinox/sourceTemplateFeature/epl-v10.html b/features/org.eclipse.equinox/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.equinox/sourceTemplateFeature/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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.equinox/sourceTemplateFeature/feature.properties b/features/org.eclipse.equinox/sourceTemplateFeature/feature.properties
deleted file mode 100644
index 55025a8..0000000
--- a/features/org.eclipse.equinox/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Equinox bundle source feature
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Equinox bundle source feature
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2005, 2006 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
- IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
- - Content may be structured and packaged into modules to facilitate delivering,\n\
- extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
- plug-in fragments ("Fragments"), and features ("Features").\n\
- - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
- in a directory named "plugins".\n\
- - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
- Each Feature may be packaged as a sub-directory in a directory named "features".\n\
- Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
- numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
- - Features may also include other Features ("Included Features"). Within a Feature, files\n\
- named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
- - The top-level (root) directory\n\
- - Plug-in and Fragment directories\n\
- - Inside Plug-ins and Fragments packaged as JARs\n\
- - Sub-directories of the directory named "src" of certain Plug-ins\n\
- - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
- - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
- - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
- - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
- - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
- - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
- - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.equinox/sourceTemplateFeature/license.html b/features/org.eclipse.equinox/sourceTemplateFeature/license.html
deleted file mode 100644
index c6af966..0000000
--- a/features/org.eclipse.equinox/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/features/org.eclipse.equinox/sourceTemplatePlugin/about.html b/features/org.eclipse.equinox/sourceTemplatePlugin/about.html
deleted file mode 100644
index c207d05..0000000
--- a/features/org.eclipse.equinox/sourceTemplatePlugin/about.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>May 10, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files ("Source Zips") that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in "about.html" files ("Abouts") located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.equinox/sourceTemplatePlugin/about.ini b/features/org.eclipse.equinox/sourceTemplatePlugin/about.ini
deleted file mode 100644
index 669383f..0000000
--- a/features/org.eclipse.equinox/sourceTemplatePlugin/about.ini
+++ /dev/null
@@ -1,31 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
-
-
diff --git a/features/org.eclipse.equinox/sourceTemplatePlugin/about.mappings b/features/org.eclipse.equinox/sourceTemplatePlugin/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/features/org.eclipse.equinox/sourceTemplatePlugin/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/features/org.eclipse.equinox/sourceTemplatePlugin/about.properties b/features/org.eclipse.equinox/sourceTemplatePlugin/about.properties
deleted file mode 100644
index cd6227b..0000000
--- a/features/org.eclipse.equinox/sourceTemplatePlugin/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=Eclipse Platform Plug-in Developer Resources\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2005, 2007. All rights reserved.\n\
-Visit http://www.eclipse.org/platform
-
diff --git a/features/org.eclipse.equinox/sourceTemplatePlugin/build.properties b/features/org.eclipse.equinox/sourceTemplatePlugin/build.properties
deleted file mode 100644
index aaf701d..0000000
--- a/features/org.eclipse.equinox/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.png, plugin.properties, plugin.xml, src/**, META-INF/
-
-sourcePlugin = true
-
diff --git a/features/org.eclipse.equinox/sourceTemplatePlugin/eclipse32.gif b/features/org.eclipse.equinox/sourceTemplatePlugin/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/features/org.eclipse.equinox/sourceTemplatePlugin/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.equinox/sourceTemplatePlugin/eclipse32.png b/features/org.eclipse.equinox/sourceTemplatePlugin/eclipse32.png
deleted file mode 100644
index 568fac1..0000000
--- a/features/org.eclipse.equinox/sourceTemplatePlugin/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.equinox/sourceTemplatePlugin/plugin.properties b/features/org.eclipse.equinox/sourceTemplatePlugin/plugin.properties
deleted file mode 100644
index f9f3df9..0000000
--- a/features/org.eclipse.equinox/sourceTemplatePlugin/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-pluginName=Equinox bundle source plug-in
-providerName=Eclipse.org
diff --git a/features/org.eclipse.rcp/feature.xml b/features/org.eclipse.rcp/feature.xml
index e37a82e..be0570c 100644
--- a/features/org.eclipse.rcp/feature.xml
+++ b/features/org.eclipse.rcp/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.rcp"
label="%featureName"
- version="3.3.0.qualifier"
+ version="3.3.1.qualifier"
provider-name="%providerName"
plugin="org.eclipse.rcp"
image="eclipse_update_120.jpg">
@@ -43,13 +43,13 @@
install-size="0"
version="0.0.0"
unpack="false"/>
-
- <plugin
+
+ <plugin
id="org.eclipse.core.databinding.beans"
download-size="0"
install-size="0"
version="0.0.0"
- unpack="false"/>
+ unpack="false"/>
<plugin
id="org.eclipse.core.jobs"
@@ -71,7 +71,7 @@
install-size="0"
version="0.0.0"
unpack="false"/>
-
+
<plugin
id="org.eclipse.core.runtime.compatibility.auth"
download-size="0"
@@ -127,7 +127,7 @@
install-size="0"
version="0.0.0"
unpack="false"/>
-
+
<plugin
id="org.eclipse.ui.carbon"
os="macosx"
@@ -136,8 +136,8 @@
install-size="0"
version="0.0.0"
fragment="true"
- unpack="false"/>
-
+ unpack="false"/>
+
<plugin
id="org.eclipse.update.configurator"
download-size="0"
@@ -155,8 +155,8 @@
version="0.0.0"
fragment="true"
unpack="false"/>
-
- <plugin
+
+ <plugin
id="org.eclipse.swt.wpf.win32.x86"
os="win32"
ws="wpf"
@@ -177,8 +177,8 @@
version="0.0.0"
fragment="true"
unpack="false"/>
-
- <plugin
+
+ <plugin
id="org.eclipse.swt.gtk.linux.s390"
os="linux"
ws="gtk"
@@ -188,8 +188,8 @@
version="0.0.0"
fragment="true"
unpack="false"/>
-
- <plugin
+
+ <plugin
id="org.eclipse.swt.gtk.linux.s390x"
os="linux"
ws="gtk"
@@ -198,9 +198,9 @@
install-size="0"
version="0.0.0"
fragment="true"
- unpack="false"/>
-
- <plugin
+ unpack="false"/>
+
+ <plugin
id="org.eclipse.swt.gtk.solaris.sparc"
os="solaris"
ws="gtk"
@@ -210,8 +210,8 @@
version="0.0.0"
fragment="true"
unpack="false"/>
-
- <plugin
+
+ <plugin
id="org.eclipse.swt.gtk.solaris.x86"
os="solaris"
ws="gtk"
@@ -343,9 +343,9 @@
download-size="0"
install-size="0"
version="0.0.0"
- unpack="false"/>
+ unpack="false"/>
- <plugin
+ <plugin
id="org.eclipse.equinox.app"
download-size="0"
install-size="0"
@@ -364,8 +364,7 @@
download-size="0"
install-size="0"
version="0.0.0"
- unpack="false"/>
-
+ unpack="false"/>
<plugin
id="org.eclipse.equinox.registry"
@@ -374,13 +373,14 @@
version="0.0.0"
unpack="false"/>
- <plugin
+ <plugin
id="org.eclipse.equinox.launcher"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
- <plugin
+
+ <plugin
id="org.eclipse.equinox.launcher.gtk.solaris.sparc"
os="solaris"
ws="gtk"
@@ -388,18 +388,18 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
- <plugin
+ fragment="true"/>
+
+ <plugin
id="org.eclipse.equinox.launcher.carbon.macosx"
os="macosx"
ws="carbon"
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
- <plugin
+ fragment="true"/>
+
+ <plugin
id="org.eclipse.equinox.launcher.gtk.linux.ppc"
os="linux"
ws="gtk"
@@ -407,10 +407,9 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
-
- <plugin
+ fragment="true"/>
+
+ <plugin
id="org.eclipse.equinox.launcher.gtk.linux.x86"
os="linux"
ws="gtk"
@@ -418,10 +417,9 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
-
- <plugin
+ fragment="true"/>
+
+ <plugin
id="org.eclipse.equinox.launcher.gtk.linux.s390"
os="linux"
ws="gtk"
@@ -429,10 +427,9 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
-
- <plugin
+ fragment="true"/>
+
+ <plugin
id="org.eclipse.equinox.launcher.gtk.linux.s390x"
os="linux"
ws="gtk"
@@ -440,9 +437,8 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
-
+ fragment="true"/>
+
<plugin
id="org.eclipse.equinox.launcher.motif.linux.x86"
os="linux"
@@ -451,10 +447,9 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
-
- <plugin
+ fragment="true"/>
+
+ <plugin
id="org.eclipse.equinox.launcher.gtk.linux.x86_64"
os="linux"
ws="gtk"
@@ -462,9 +457,9 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
- <plugin
+ fragment="true"/>
+
+ <plugin
id="org.eclipse.equinox.launcher.motif.aix.ppc"
os="aix"
ws="motif"
@@ -472,9 +467,9 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
- <plugin
+ fragment="true"/>
+
+ <plugin
id="org.eclipse.equinox.launcher.motif.hpux.PA_RISC"
os="hpux"
ws="motif"
@@ -482,10 +477,9 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
-
- <plugin
+ fragment="true"/>
+
+ <plugin
id="org.eclipse.equinox.launcher.wpf.win32.x86"
os="win32"
ws="wpf"
@@ -493,10 +487,9 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
-
- <plugin
+ fragment="true"/>
+
+ <plugin
id="org.eclipse.equinox.launcher.win32.win32.x86"
os="win32"
ws="win32"
@@ -504,6 +497,6 @@
download-size="0"
install-size="0"
version="0.0.0"
- fragment="true"
- unpack="true"/>
+ fragment="true"/>
+
</feature>
diff --git a/features/org.eclipse.releng.tools/.project b/features/org.eclipse.releng.tools/.project
deleted file mode 100644
index 3ed2ecd..0000000
--- a/features/org.eclipse.releng.tools/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.releng.tools</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/features/org.eclipse.releng.tools/build.properties b/features/org.eclipse.releng.tools/build.properties
deleted file mode 100644
index cdde75f..0000000
--- a/features/org.eclipse.releng.tools/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,*.jpg,feature.properties,license.html
diff --git a/features/org.eclipse.releng.tools/eclipse_update_120.jpg b/features/org.eclipse.releng.tools/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.releng.tools/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.releng.tools/epl-v10.html b/features/org.eclipse.releng.tools/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.releng.tools/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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.releng.tools/feature.properties b/features/org.eclipse.releng.tools/feature.properties
deleted file mode 100644
index e572c1c..0000000
--- a/features/org.eclipse.releng.tools/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse Releng Tools
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Eclipse Releng Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2006 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
- IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
- - Content may be structured and packaged into modules to facilitate delivering,\n\
- extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
- plug-in fragments ("Fragments"), and features ("Features").\n\
- - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
- in a directory named "plugins".\n\
- - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
- Each Feature may be packaged as a sub-directory in a directory named "features".\n\
- Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
- numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
- - Features may also include other Features ("Included Features"). Within a Feature, files\n\
- named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
- - The top-level (root) directory\n\
- - Plug-in and Fragment directories\n\
- - Inside Plug-ins and Fragments packaged as JARs\n\
- - Sub-directories of the directory named "src" of certain Plug-ins\n\
- - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
- - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
- - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
- - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
- - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
- - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
- - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.releng.tools/feature.xml b/features/org.eclipse.releng.tools/feature.xml
deleted file mode 100644
index 0a41f5a..0000000
--- a/features/org.eclipse.releng.tools/feature.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.releng.tools"
- label="%featureName"
- version="3.2.100.qualifier"
- provider-name="%providerName"
- image="eclipse_update_120.jpg">
-
- <description>
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <url>
- <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
- <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
- </url>
-
- <plugin
- id="org.eclipse.releng.tools"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
-</feature>
diff --git a/features/org.eclipse.releng.tools/license.html b/features/org.eclipse.releng.tools/license.html
deleted file mode 100644
index c6af966..0000000
--- a/features/org.eclipse.releng.tools/license.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/features/org.eclipse.sdk.examples-feature/.project b/features/org.eclipse.sdk.examples-feature/.project
deleted file mode 100644
index f716f11..0000000
--- a/features/org.eclipse.sdk.examples-feature/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.sdk.examples-feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- </buildSpec>
- <natures>
- </natures>
-</projectDescription>
diff --git a/features/org.eclipse.sdk.examples-feature/build.properties b/features/org.eclipse.sdk.examples-feature/build.properties
deleted file mode 100644
index 120e0ea..0000000
--- a/features/org.eclipse.sdk.examples-feature/build.properties
+++ /dev/null
@@ -1,20 +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
-###############################################################################
-bin.includes =\
-epl-v10.html,\
-eclipse_update_120.jpg,\
-feature.xml,\
-feature.properties,\
-license.html
-
-generate.plugin@org.eclipse.sdk.examples.source=org.eclipse.sdk.examples
-
-root=rootfiles
diff --git a/features/org.eclipse.sdk.examples-feature/eclipse_update_120.jpg b/features/org.eclipse.sdk.examples-feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.sdk.examples-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.sdk.examples-feature/epl-v10.html b/features/org.eclipse.sdk.examples-feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.sdk.examples-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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.sdk.examples-feature/feature.properties b/features/org.eclipse.sdk.examples-feature/feature.properties
deleted file mode 100644
index 31b38c9..0000000
--- a/features/org.eclipse.sdk.examples-feature/feature.properties
+++ /dev/null
@@ -1,144 +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
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse SDK Examples
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
- IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "description" property - description of the feature
-description=Eclipse SDK examples. Used in conjunction with Eclipse Project SDK.
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
- - Content may be structured and packaged into modules to facilitate delivering,\n\
- extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
- plug-in fragments ("Fragments"), and features ("Features").\n\
- - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
- in a directory named "plugins".\n\
- - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
- Each Feature may be packaged as a sub-directory in a directory named "features".\n\
- Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
- numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
- - Features may also include other Features ("Included Features"). Within a Feature, files\n\
- named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
- - The top-level (root) directory\n\
- - Plug-in and Fragment directories\n\
- - Inside Plug-ins and Fragments packaged as JARs\n\
- - Sub-directories of the directory named "src" of certain Plug-ins\n\
- - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
- - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
- - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
- - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
- - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
- - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
- - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.sdk.examples-feature/feature.xml b/features/org.eclipse.sdk.examples-feature/feature.xml
deleted file mode 100644
index ecea193..0000000
--- a/features/org.eclipse.sdk.examples-feature/feature.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.sdk.examples"
- label="%featureName"
- version="3.1.200.qualifier"
- image= "eclipse_update_120.jpg"
- provider-name="%providerName">
-
- <description>
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <url>
- <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
- <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
- </url>
-
-
- <requires>
- <import feature="org.eclipse.jdt" version="3.0.0" match="compatible"/>
- <import feature="org.eclipse.platform" version="3.0.0" match="compatible"/>
- </requires>
-
- <plugin id="org.eclipse.compare.examples" version="0.0.0"/>
- <plugin id="org.eclipse.compare.examples.xml" version="0.0.0"/>
- <plugin id="org.eclipse.jdt.ui.examples.projects" version="0.0.0"/>
- <plugin id="org.eclipse.jface.examples.databinding" version="0.0.0" unpack="false"/>
- <plugin id="org.eclipse.swt.examples" version="0.0.0"/>
- <plugin id="org.eclipse.swt.examples.browser" version="0.0.0"/>
- <plugin id="org.eclipse.swt.examples.browser.demos" version="0.0.0"/>
- <plugin id="org.eclipse.swt.examples.controls" version="0.0.0"/>
- <plugin id="org.eclipse.swt.examples.launcher" version="0.0.0"/>
- <plugin id="org.eclipse.swt.examples.layouts" version="0.0.0"/>
- <plugin id="org.eclipse.swt.examples.paint" version="0.0.0"/>
- <plugin id="org.eclipse.ui.examples.javaeditor" version="0.0.0"/>
- <plugin id="org.eclipse.ui.examples.multipageeditor" version="0.0.0"/>
- <plugin id="org.eclipse.ui.examples.propertysheet" version="0.0.0"/>
- <plugin id="org.eclipse.ui.examples.readmetool" version="0.0.0"/>
- <plugin id="org.eclipse.ui.examples.contributions" version="0.0.0"/>
- <plugin id="org.eclipse.ui.examples.undo" version="0.0.0" unpack="false"/>
- <plugin id="org.eclipse.ui.examples.views.properties.tabbed.article" version="0.0.0" unpack="false"/>
- <plugin id="org.eclipse.ui.examples.fieldassist" version="0.0.0" unpack="false"/>
- <plugin id="org.eclipse.team.examples.filesystem" version="0.0.0"/>
- <plugin id="org.eclipse.swt.examples.ole.win32" version="0.0.0" ws="win32"/>
-
- <plugin id="org.eclipse.sdk.examples" version="0.0.0"/>
- <plugin id="org.eclipse.sdk.examples.source" version="0.0.0"/>
- <plugin fragment="true" id="org.eclipse.sdk.examples.source.win32.win32.x86" os="win32" ws="win32" arch="x86" version="0.0.0"/>
-
-</feature>
diff --git a/features/org.eclipse.sdk.examples-feature/license.html b/features/org.eclipse.sdk.examples-feature/license.html
deleted file mode 100644
index c6af966..0000000
--- a/features/org.eclipse.sdk.examples-feature/license.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/features/org.eclipse.sdk.examples-feature/rootfiles/.eclipseextension b/features/org.eclipse.sdk.examples-feature/rootfiles/.eclipseextension
deleted file mode 100644
index e69de29..0000000
--- a/features/org.eclipse.sdk.examples-feature/rootfiles/.eclipseextension
+++ /dev/null
diff --git a/features/org.eclipse.sdk.examples-feature/rootfiles/epl-v10.html b/features/org.eclipse.sdk.examples-feature/rootfiles/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.sdk.examples-feature/rootfiles/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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.sdk.examples-feature/rootfiles/notice.html b/features/org.eclipse.sdk.examples-feature/rootfiles/notice.html
deleted file mode 100644
index c6af966..0000000
--- a/features/org.eclipse.sdk.examples-feature/rootfiles/notice.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.html b/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.html
deleted file mode 100644
index c207d05..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>May 10, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files ("Source Zips") that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in "about.html" files ("Abouts") located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.ini b/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.ini
deleted file mode 100644
index 16a3801..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.ini
+++ /dev/null
@@ -1,29 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.mappings b/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.mappings
deleted file mode 100644
index 720ca87..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.properties b/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.properties
deleted file mode 100644
index 158fbc6..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/about.properties
+++ /dev/null
@@ -1,24 +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
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Eclipse SDK Examples\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright IBM Corp. and others 2000, 2007. All rights reserved.\n\
-Visit http://www.eclipse.org/eclipse
-
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/build.properties b/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/build.properties
deleted file mode 100644
index 76953dd..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.png, plugin.properties, fragment.xml, src/**,META-INF/
-sourcePlugin = true
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/eclipse32.gif b/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/plugin.properties b/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/plugin.properties
deleted file mode 100644
index 98d45f9..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplateFragment/plugin.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-pluginName=Eclipse Java Development Tools SDK
-providerName=Eclipse.org
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/about.html b/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/about.html
deleted file mode 100644
index c207d05..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/about.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>May 10, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files ("Source Zips") that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in "about.html" files ("Abouts") located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/build.properties b/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index 914b197..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = eclipse32.png, plugin.properties, plugin.xml, src/**,META-INF/
-
-sourcePlugin = true
-
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/eclipse32.gif b/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/plugin.properties b/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/plugin.properties
deleted file mode 100644
index eee6c3c..0000000
--- a/features/org.eclipse.sdk.examples-feature/sourceTemplatePlugin/plugin.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-pluginName=Eclipse Platform Plug-in Developer Resources
-providerName=Eclipse.org
diff --git a/features/org.eclipse.sdk.tests/.project b/features/org.eclipse.sdk.tests/.project
deleted file mode 100644
index 72794b1..0000000
--- a/features/org.eclipse.sdk.tests/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.sdk.tests</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- </buildSpec>
- <natures>
- </natures>
-</projectDescription>
diff --git a/features/org.eclipse.sdk.tests/build.properties b/features/org.eclipse.sdk.tests/build.properties
deleted file mode 100644
index 7937bb3..0000000
--- a/features/org.eclipse.sdk.tests/build.properties
+++ /dev/null
@@ -1,21 +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
-###############################################################################
-bin.includes =\
-epl-v10.html,\
-eclipse_update_120.jpg,\
-feature.xml,\
-feature.properties,\
-license.html
-
-
-generate.plugin@org.eclipse.sdk.tests.source=org.eclipse.sdk.tests
-
-root=rootfiles
diff --git a/features/org.eclipse.sdk.tests/eclipse_update_120.jpg b/features/org.eclipse.sdk.tests/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.sdk.tests/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.sdk.tests/epl-v10.html b/features/org.eclipse.sdk.tests/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.sdk.tests/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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.sdk.tests/feature.properties b/features/org.eclipse.sdk.tests/feature.properties
deleted file mode 100644
index 1854a54..0000000
--- a/features/org.eclipse.sdk.tests/feature.properties
+++ /dev/null
@@ -1,137 +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
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse SDK Tests
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=Eclipse.org update site
-
-# "description" property - description of the feature
-description=Eclipse SDK examples. Used in conjunction with Eclipse Project SDK.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
- IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-January 28, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments\n\
-("Fragments"), and features ("Features"). A Feature is a bundle of one or\n\
-more Plug-ins and/or Fragments and associated material. Files named\n\
-"feature.xml" may contain a list of the names and version numbers of the\n\
-Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments\n\
-are located in directories named "plugins" and Features are located in\n\
-directories named "features".\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
- - The top-level (root) directory\n\
- - Plug-in and Fragment directories\n\
- - Subdirectories of the directory named "src" of certain Plug-ins\n\
- - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE CPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
- - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
- - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
- - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
- - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
- - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
- - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.sdk.tests/feature.xml b/features/org.eclipse.sdk.tests/feature.xml
deleted file mode 100644
index f8a5cbc..0000000
--- a/features/org.eclipse.sdk.tests/feature.xml
+++ /dev/null
@@ -1,314 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.sdk.tests"
- label="%featureName"
- version="3.2.0.qualifier"
- provider-name="%providerName"
- image="eclipse_update_120.jpg">
-
- <description>
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <url>
- <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
- </url>
-
- <includes
- id="org.eclipse.test"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.sdk.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ant.tests.core"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ant.tests.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.compare.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.core.tests.harness"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.osgi.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.core.tests.runtime"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.core.tests.resources"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.core.tests.net"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jdt.apt.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <!-- <plugin
- id="org.eclipse.jdt.apt.pluggable.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/> -->
-
- <plugin
- id="org.eclipse.jdt.compiler.apt.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jdt.core.tests.builder"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jdt.core.tests.compiler"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jdt.core.tests.model"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jdt.compiler.tool.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jdt.core.tests.performance"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jdt.debug.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jdt.ui.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jdt.ui.tests.refactoring"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.core.expressions.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ltk.core.refactoring.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ltk.ui.refactoring.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.text.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jface.text.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jsch.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.core.filebuffers.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ui.workbench.texteditor.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ui.editors.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jdt.text.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.swt.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jface.tests.databinding"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.jface.examples.databinding"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ui.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ua.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ui.tests.navigator"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ui.tests.rcp"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.update.tests.core"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.pde.ui.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.pde.tools.versioning"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.releng.tests"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.team.tests.cvs.core"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.team.tests.core"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.sdk.tests.source"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ui.tests.harness"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.ui.tests.performance"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.ui.tests.views.properties.tabbed"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
-
-</feature>
diff --git a/features/org.eclipse.sdk.tests/license.html b/features/org.eclipse.sdk.tests/license.html
deleted file mode 100644
index e7d8500..0000000
--- a/features/org.eclipse.sdk.tests/license.html
+++ /dev/null
@@ -1,72 +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.org Software User Agreement</h2>
-<p>15<sup>th</sup> June, 2004</p>
-
-<h3>Usage Of Content</h3>
-
-<p>ECLIPSE.ORG MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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 Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
- ("CPL"). A copy of the CPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
- For purposes of the CPL, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<p>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features"). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features".</p>
-
-<p>Features may also include other Features ("Included Features"). Files named "feature.xml" 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 "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). 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 "src" of certain Plug-ins</li>
- <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license ("Feature Update License") 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 "license" property of files named "feature.properties".
-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 CPL 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>Eclipse Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-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>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 Eclipse.org 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/features/org.eclipse.sdk.tests/rootfiles/epl-v10.html b/features/org.eclipse.sdk.tests/rootfiles/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.sdk.tests/rootfiles/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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.sdk.tests/rootfiles/notice.html b/features/org.eclipse.sdk.tests/rootfiles/notice.html
deleted file mode 100644
index 3259fb9..0000000
--- a/features/org.eclipse.sdk.tests/rootfiles/notice.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 "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<p>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features"). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features".</p>
-
-<p>Features may also include other Features ("Included Features"). Files named "feature.xml" 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 "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). 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 "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties".
-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/features/org.eclipse.sdk/feature.xml b/features/org.eclipse.sdk/feature.xml
index c8e6ccc..18a168e 100644
--- a/features/org.eclipse.sdk/feature.xml
+++ b/features/org.eclipse.sdk/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.sdk"
label="%featureName"
- version="3.3.0.qualifier"
+ version="3.3.1.qualifier"
provider-name="%providerName"
image="eclipse_update_120.jpg">
diff --git a/features/org.eclipse.test-feature/.project b/features/org.eclipse.test-feature/.project
deleted file mode 100644
index 7acb081..0000000
--- a/features/org.eclipse.test-feature/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.test-feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- </buildSpec>
- <natures>
- </natures>
-</projectDescription>
diff --git a/features/org.eclipse.test-feature/build.properties b/features/org.eclipse.test-feature/build.properties
deleted file mode 100644
index aa85a94..0000000
--- a/features/org.eclipse.test-feature/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes =\
-epl-v10.html,\
-eclipse_update_120.jpg,\
-feature.xml,\
-feature.properties,\
-license.html
-
-
-generate.plugin@org.eclipse.test.source=org.eclipse.test
-
-root=rootfiles
diff --git a/features/org.eclipse.test-feature/eclipse_update_120.jpg b/features/org.eclipse.test-feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.test-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.test-feature/epl-v10.html b/features/org.eclipse.test-feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.test-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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.test-feature/feature.properties b/features/org.eclipse.test-feature/feature.properties
deleted file mode 100644
index 2f0a4d8..0000000
--- a/features/org.eclipse.test-feature/feature.properties
+++ /dev/null
@@ -1,144 +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 Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse Test Framework
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Eclipse Test Framework. Used in conjunction with Eclipse JUnit tests.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2006 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
- IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
- - Content may be structured and packaged into modules to facilitate delivering,\n\
- extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
- plug-in fragments ("Fragments"), and features ("Features").\n\
- - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
- in a directory named "plugins".\n\
- - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
- Each Feature may be packaged as a sub-directory in a directory named "features".\n\
- Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
- numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
- - Features may also include other Features ("Included Features"). Within a Feature, files\n\
- named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
- - The top-level (root) directory\n\
- - Plug-in and Fragment directories\n\
- - Inside Plug-ins and Fragments packaged as JARs\n\
- - Sub-directories of the directory named "src" of certain Plug-ins\n\
- - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
- - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
- - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
- - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
- - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
- - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
- - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.test-feature/feature.xml b/features/org.eclipse.test-feature/feature.xml
deleted file mode 100644
index 66f0c67..0000000
--- a/features/org.eclipse.test-feature/feature.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.test"
- label="%featureName"
- version="3.3.0.qualifier"
- provider-name="%providerName"
- image="eclipse_update_120.jpg">
-
- <description>
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <url>
- <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
- <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
- </url>
-
- <requires>
- <import plugin="org.apache.ant"/>
- <import plugin="org.eclipse.ui"/>
- <import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.eclipse.core.runtime.compatibility"/>
- </requires>
-
- <plugin
- id="org.eclipse.ant.optional.junit"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.test"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.test.source"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.eclipse.test.performance"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.test.performance.win32"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
- <plugin
- id="org.junit"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
- <plugin
- id="org.junit4"
- download-size="0"
- install-size="0"
- version="0.0.0"/>
-
-</feature>
diff --git a/features/org.eclipse.test-feature/license.html b/features/org.eclipse.test-feature/license.html
deleted file mode 100644
index c6af966..0000000
--- a/features/org.eclipse.test-feature/license.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/features/org.eclipse.test-feature/rootfiles/epl-v10.html b/features/org.eclipse.test-feature/rootfiles/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.test-feature/rootfiles/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 ("AGREEMENT"). 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'>"Contribution" 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'>"Contributor" means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Licensed Patents " 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'>"Program" means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>"Recipient" 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 ("Commercial
-Contributor") hereby agrees to defend and indemnify every other
-Contributor ("Indemnified Contributor") against any losses, damages and
-costs (collectively "Losses") 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 "AS IS" 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]> <![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.test-feature/rootfiles/notice.html b/features/org.eclipse.test-feature/rootfiles/notice.html
deleted file mode 100644
index c6af966..0000000
--- a/features/org.eclipse.test-feature/rootfiles/notice.html
+++ /dev/null
@@ -1,79 +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>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). 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
- ("EPL"). 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, "Program" 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 ("Repository") in CVS
- modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" 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 ("Feature Update License") 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 "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
-</body>
-</html>
diff --git a/oldfeatures/org.eclipse.platform-feature/feature.xml b/oldfeatures/org.eclipse.platform-feature/feature.xml
index bc9b662..0a40e5c 100644
--- a/oldfeatures/org.eclipse.platform-feature/feature.xml
+++ b/oldfeatures/org.eclipse.platform-feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.platform"
label="%featureName"
- version="3.3.0.qualifier"
+ version="3.3.1.qualifier"
provider-name="%providerName"
image="eclipse_update_120.jpg">
@@ -24,6 +24,10 @@
<discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/releases/europa"/>
</url>
+ <includes
+ id="org.eclipse.rcp"
+ version="0.0.0"/>
+
<plugin
id="com.jcraft.jsch"
download-size="0"
@@ -31,10 +35,6 @@
version="0.0.0"
unpack="false"/>
- <includes
- id="org.eclipse.rcp"
- version="0.0.0"/>
-
<plugin
id="javax.servlet"
download-size="0"
@@ -531,7 +531,7 @@
version="0.0.0"
fragment="true"
unpack="false"/>
-
+
<plugin
id="org.eclipse.core.filesystem.solaris.sparc"
os="solaris"
@@ -618,6 +618,6 @@
download-size="0"
install-size="0"
version="0.0.0"
- unpack="false"/>
+ unpack="false"/>
</feature>
diff --git a/oldfeatures/org.eclipse.platform-feature/rootfiles/readme/readme_eclipse.html b/oldfeatures/org.eclipse.platform-feature/rootfiles/readme/readme_eclipse.html
index db2244d..8674afa 100644
--- a/oldfeatures/org.eclipse.platform-feature/rootfiles/readme/readme_eclipse.html
+++ b/oldfeatures/org.eclipse.platform-feature/rootfiles/readme/readme_eclipse.html
@@ -9,8 +9,8 @@
<body>
<h1>Eclipse Project Release Notes</h1>
-<p>Release 3.3.0<br>
- Last revised June 8, 2007</p>
+<p>Release 3.3.1<br>
+ Last revised September 11, 2007</p>
<p align="left"><strong>This software is OSI Certified Open Source Software.<br>
OSI Certified is a certification mark of the Open Source Initiative. </strong></p>
<blockquote>
@@ -713,6 +713,13 @@
</ol>
When the workbench re-opens the old min/max behaviour will be restored.
</p>
+<h4>Toolbars only containing contributed controls exhibit display errors on Mac/Linux</h4>
+<p>
+Currently there is no way on the Max or Linux platforms to define the <b>height</b> for controls contributed to
+toolbars, nor will those platforms respect the size returned by the control's <code>computeSize</code> method. If you
+encounter this issue there is currently no truly viable workaround.
+(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=183003">183003</a>)
+</p>
<h3>3.1.5 <a name="I-Platform-Text">Platform - Text</a></h3>
@@ -723,31 +730,36 @@
<p>The SWT Browser widget uses a platform-specific web browser to render HTML.
The org.eclipse.swt.SWTError exception ("No more handles") is thrown
on platforms that don't meet the requirements for running the Browser widget.
-Supported platforms and prerequisites are listed on the SWT FAQ item <a href="http://www.eclipse.org/swt/faq.php#browserplatforms">"Which
-platforms support the SWT Browser?"</a>.</p>
+Supported platforms and prerequisites are listed on the SWT FAQ item <a href="http://www.eclipse.org/swt/faq.php#browserplatforms">
+"Which platforms support the SWT Browser?"</a>.</p>
-<h4>Crash when using the file dialog on Windows XP with SP2</h4>
+<h4>Crash when using the file dialog (Windows XP with SP2 only)</h4>
<p>With some versions of Synergy from Telelogic, Eclipse will crash when you try to open a file
dialog. This is due to a problem with the CMExplorer.dll. The workaround is to
-upgrade to Synergy 6.4 (or higher) or to run <code>"regsvr32 /u CMExplorer.dll"</code> and
+upgrade to Synergy 6.4 (or higher) or to run <code>regsvr32 /u CMExplorer.dll</code> and
reboot (note that this will disable Active CM).
-(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=87798">87798</a>)</p>
+(See bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=87798">87798</a> for details).</p>
-<h4>Internet Explorer sometimes freezes on PDF documents with Acrobat Reader 6.</h4>
+<h4>Opening File Dialog crashes eclipse (Vista only)</h4>
+<p>On Vista, launching eclipse using <code>-vmargs -Xmx[any size]</code> can crash eclipse when the FileDialog is opened.
+The workaround is to use the default heap size, i.e. do not use the <code>-Xmx</code> VM args.
+See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=188317">bug 188317</a> for details.</p>
+
+<h4>Internet Explorer sometimes freezes on PDF documents with Acrobat Reader 6 (Windows only)</h4>
<p>With Acrobat Reader 6 or 7, some users have experienced an unresponsive user
interface for up to two minutes when closing a browser which is displaying a PDF document.
The workaround is to disable displaying PDF in the browser. In Adobe Reader
select Edit > Preferences... > Internet and uncheck 'Display PDF in browser'.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56184">56184</a>)</p>
-<h4>Crash while editing text on Windows XP with SP2.</h4>
+<h4>Crash while editing text (Windows XP with SP2 only)</h4>
<p>Some users who have installed Service Pack 2 on Windows XP have experienced
crashes while using editors in Eclipse. The workaround is to place a working version
of Windows\System32\USP10.DLL in the Eclipse startup directory or uninstall
Service Pack 2.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56390">56390</a>)</p>
-<h4>Input Method broken on Motif</h4>
+<h4>Input Method broken (Motif only)</h4>
<p>Some versions of RedHat Linux such as Fedora Core 3 and Enterprise Linux WS
release 4 use a new technology called IIIM (Intranet/Internet Input Method
Framework) to replace the old XIM (X input method). When running on these
@@ -757,7 +769,6 @@
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=89722">89722</a>)</p>
<h4>Eclipse does not start on Linux-Motif with Xinerama and a UTF-8 locale</h4>
-
<p>The Linux-motif build of Eclipse does not launch properly when run on a
computer with Xinerama (provides support for dual head monitors) and a UTF-8
locale. The workaround for this problem is to change the locale to a non-UTF-8
@@ -776,29 +787,26 @@
encountered when copying from an Eclipse target workbench, suspending the target
workbench at a breakpoint and pasting into the hosting Eclipse workbench. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44915">44915</a>)</p>
-<h4> Unable to drag data between
-applications in simplified Chinese locale (Motif only)</h4>
+<h4> Unable to drag data between applications in simplified Chinese locale (Motif only)</h4>
<p>When configured for the simplified Chinese locale, it is not possible to
drag data between applications running on the Motif window system. This is a
known limitation of the Open Motif library. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29777">29777</a>)</p>
-<h4> Crash when attempting to
-launch file browser (AIX Motif only)</h4>
+<h4> Crash when attempting to launch file browser (AIX Motif only)</h4>
<p>There is a known AIX graphics bug affecting certain levels of AIX
releases. Ensure that the AIX install includes the necessary service updates as
described in the "Install notes/requirements for Eclipse on AIX"
-attachment to the Eclipse bug report. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34524">34524</a>)</p>
-<h4> Available colors on 8-bit
-Linux (Linux only)</h4>
+attachment to Eclipse bug report number <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34524">34524</a></p>
+
+<h4> Available colors on 8-bit Linux (Linux only)</h4>
<p>Typically, in Gnome Linux installs running with 8-bit visuals (i.e. 256
color mode), before the Eclipse application is started there are no free colors.
This may mean that Eclipse is unable to allocate the default widget background
color, causing it to display a white background. The functionality, however, is
otherwise unaffected.</p>
-<h4> List and ComboBox on Windows
-NT (Windows NT only)</h4>
-<p>On Windows NT only, you should avoid creating items in a <code>List</code>
+<h4> List and ComboBox on Windows NT (Windows NT only)</h4>
+<p>On Windows NT only, you should avoid creating items in a <code>List</code>
or <code>ComboBox</code> with strings longer than 1000 characters. Doing so may
result in a General Protection Fault. This has been fixed in more recent
versions of Windows.</p>
@@ -808,14 +816,13 @@
crash if the IME client window is left open when the parent window is disposed.
(bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=32045">32045</a>)</p>
-<h4> Using IBM J9 VM (Photon and
-AIX)</h4>
+<h4> Using IBM J9 VM (Photon and AIX)</h4>
<p>On QNX Photon and IBM AIX, the SWT library will not be found when running
with an IBM J9 1.5 VM. This is a bug in the IBM J9 class library in version 1.5.
You can workaround this problem by adding the SWT library directory to your
LD_LIBRARY_PATH environment variable.</p>
-<h4> Missing permissions for SWT
-native libraries in workspace (HP-UX only)</h4>
+
+<h4> Missing permissions for SWT native libraries in workspace (HP-UX only)</h4>
<p>When retrieving the SWT Motif fragment into an Eclipse workspace, the
permissions of the native libraries are reset. This creates a problem on HP-UX
because shared libraries need to have execute permission. Attempting to
@@ -829,11 +836,11 @@
</blockquote>
</blockquote>
<p></p>
+
<h4> gtk_init_check and X11 socket failure when using the IBM 1.4.2 JRE (GTK only)</h4>
<p>Under RHEL 3.1 with the IBM 1.4.2 JRE and a large number
of plugins, Eclipse may fail to launch with an exception from
<tt>gtk_init_check</tt> along with this error:</p>
-
<pre>
_X11TransSocketOpen: socket() failed for local
_X11TransSocketOpenCOTSClient: Unable to open socket for local
@@ -858,7 +865,7 @@
and GTK+ bug <a href="http://bugzilla.gnome.org/show_bug.cgi?id=109246">109246</a>
for more information.</p>
-<h4>Browser does not display applets on Windows and OS X</h4>
+<h4>Browser does not display applets (Windows and OS X)</h4>
<p>The Browser widget cannot be used to display pages containing Java applets on Windows
and OS X, as a result of crashes that occur when attempting to launch a second JVM for the
applet that is in-process with the main process JVM. The workaround for clients wishing
@@ -867,22 +874,36 @@
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59506">59506</a> and
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=100622">100622</a>).</p>
-<h4>System hangs on Intel Mac OS X</h4>
+<h4>Eclipse hangs with earlier versions of Quicktime (Intel Mac OS X only)</h4>
<p>Some users reported encountering system hangs while using Eclipse on Intel-based Macs.
These hangs were traced to a problem in some versions of QuickTime, which has now been fixed.
Therefore, Eclipse users on Intel-based Macs should use Quicktime's update facilities to ensure
-that their Quicktime version is at least 7.1.1. (see bug
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=142892">142892</a>).
+that their Quicktime version is at least 7.1.1. (see bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=142892">142892</a>).
</p>
-<h4>PPC crashes with IBM 1.5 VM</h4>
-<p>When running on the IBM Java 5.0 VM, Eclipse crashes while the user is typing in an editor. If using this VM you must disable the JIT
- with the -Xnojit vm argument to avoid the crashes (see bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116730">116730</a>). The command line for launching Eclipse with this vm should be:
-"eclipse -vmargs -Dosgi.locking=none -Xnojit".
+<h4>Typing in an editor crashes with IBM 1.5 VM (Linux GTK PPC only)</h4>
+<p>When running on the IBM Java 5.0 VM, Eclipse crashes while the user is typing in an editor.
+If using this VM you must disable the JIT with the -Xnojit vm argument to avoid the crashes
+(see bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=116730">116730</a>).
+The command line for launching Eclipse with this vm should be: <br>
+<code>eclipse -vmargs -Dosgi.locking=none -Xnojit</code>
</p>
-<h4>Printing on GTK</h4>
-<p>GTK 2.10 supports printing. In order for it to work properly, at least two print backends must exist on the machine: file and lpr.
+<h4>Eclipse won't start (Linux GTK PPC only)</h4>
+<p>Eclipse fails to create a lock file with reason "No locks available".
+To launch eclipse you must disable file locking using the osgi.locking property.
+For example, you could launch eclipse as follows: <br>
+<code>eclipse -vmargs -Dosgi.locking=none</code>
+</p>
+
+<h4>SWT_AWT bridge doesn't work (Mac OSX only)</h4>
+<p>In order to use the SWT_AWT bridge on the Mac, OS X jre version 1.5.0 Release 5
+(or greater) must be used.
+</p>
+
+<h4>Eclipse printing is disabled or Eclipse hangs when opening editor (GTK only)</h4>
+<p>In order to print from eclipse on GTK, you need to have GTK+ version 2.10 or later.
+In addition, at least two print backends must exist on the machine: file and lpr.
Assuming a that GTK was installed in /usr, the installed backends can be viewed at /usr/lib/gtk-2.0/2.10.0/printbackends.
</p>
@@ -1413,6 +1434,4425 @@
list of concerns do not apply since they affect the layout and interpretation
of files in the plug-in <i>project</i> but none affect the actual deployed form
of the plug-in.)</p>
+
+
+
+<h2>7. <a name="DefectsFixed"></a>Defects Fixed in Maintenance Releases</h2>
+
+<h3>7.1 Defects fixed in release 3.3.1 since 3.3</h3>
+<p>Release 3.3.1 is a maintenance release to fix serious defects present in
+release 3.3. These changes only affect some plug-ins and
+features. Modified plug-ins have version id "3.3.1"; plug-ins
+unchanged since the 3.2 release still have version id "3.3.0"; Note, however, that all features now have version
+id "3.3.1" (even if none of their plug-ins changed).</p>
+
+<p>Maintenance release 3.3.1 contains fixes for the following defects and others:</p>
+<p></p>
+
+<table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%">
+ <colgroup>
+ <col class="bz_id_column">
+ <col class="bz_short_short_desc_column">
+ </colgroup>
+
+ <tr align="left">
+ <th colspan="1" class="first-child">
+ <a href="buglist.cgi?bug_file_loc=&bug_file_loc_type=allwordssubstr&bug_id=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&bugidtype=include&chfieldfrom=&chfieldto=Now&chfieldvalue=&classification=Eclipse&email1=&email2=&emailtype1=substring&emailtype2=substring&field-1-0-0=bug_status&field-1-1-0=classification&field-1-2-0=product&field-1-3-0=resolution&field-1-4-0=target_milestone&field0-0-0=noop&keywords=&keywords_type=allwords&long_desc=&long_desc_type=allwordssubstr&product=Equinox&product=JDT&product=PDE&product=Platform&query_format=advanced&remaction=&resolution=FIXED&short_desc=&short_desc_type=allwordssubstr&status_whiteboard=&status_whiteboard_type=allwordssubstr&target_milestone=3.3.1&target_milestone=3.3.1&type-1-0-0=anyexact&type-1-1-0=anyexact&type-1-2-0=anyexact&type-1-3-0=anyexact&type-1-4-0=anyexact&type0-0-0=noop&value-1-0-0=RESOLVED%2CVERIFIED%2CCLOSED&value-1-1-0=Eclipse&value-1-2-0=Equinox%2CJDT%2CPDE%2CPlatform&value-1-3-0=FIXED&value-1-4-0=3.3.1%2C3.3.1&value0-0-0=%7C&votes=&order=bugs.bug_id&query_based_on=">ID</a>
+ </th>
+
+<th colspan="1">
+
+ <a href="buglist.cgi?bug_file_loc=&bug_file_loc_type=allwordssubstr&bug_id=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&bugidtype=include&chfieldfrom=&chfieldto=Now&chfieldvalue=&classification=Eclipse&email1=&email2=&emailtype1=substring&emailtype2=substring&field-1-0-0=bug_status&field-1-1-0=classification&field-1-2-0=product&field-1-3-0=resolution&field-1-4-0=target_milestone&field0-0-0=noop&keywords=&keywords_type=allwords&long_desc=&long_desc_type=allwordssubstr&product=Equinox&product=JDT&product=PDE&product=Platform&query_format=advanced&remaction=&resolution=FIXED&short_desc=&short_desc_type=allwordssubstr&status_whiteboard=&status_whiteboard_type=allwordssubstr&target_milestone=3.3.1&target_milestone=3.3.1&type-1-0-0=anyexact&type-1-1-0=anyexact&type-1-2-0=anyexact&type-1-3-0=anyexact&type-1-4-0=anyexact&type0-0-0=noop&value-1-0-0=RESOLVED%2CVERIFIED%2CCLOSED&value-1-1-0=Eclipse&value-1-2-0=Equinox%2CJDT%2CPDE%2CPlatform&value-1-3-0=FIXED&value-1-4-0=3.3.1%2C3.3.1&value0-0-0=%7C&votes=&order=bugs.short_desc%2Cbugs.bug_id&query_based_on=">Summary</a>
+ </th>
+
+
+ </tr>
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=13411">13411</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[CCombo] Incorrect CCombo behaviour (list gets stuck)
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P5 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66219">66219</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Contributions] ActionContributionItem always gets the cu...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=98467">98467</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[WorkbenchLauncher] [Preferences] Workspace path with comma
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=109636">109636</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Comment formatter doesn't support "&#42;/"
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=114627">114627</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help] Unable to delete bookmark in help window
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=115614">115614</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help][Context] Help contexts: Problem with entities
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=143592">143592</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Contributions] Toolbar contributions from two editors di...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=147449">147449</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[UI] Docs says extension point schemas are valid XML schemas
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P1 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=153936">153936</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Eclipse freezes when opening an editor
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160824">160824</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >SWT will crash when VoiceOver feature is turn on
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=161044">161044</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Import/Export] Error: Destination directory conflicts wi...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=164662">164662</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Workbench] Minor typo in IPageLayout
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=164755">164755</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Inconsistent z-order for ON_TOP shells between win32 and ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=166093">166093</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[search] NPE searching for references to private static m...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=167430">167430</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Unwanted Scrollbar in Open Resource Dialog
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P1 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=167562">167562</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >SIGSEGV in Tree#destroyItem()
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=171703">171703</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Eclipse cannot find source for *.class files
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=172261">172261</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Actions] When rename a file in one project's navigator, ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=174800">174800</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Headless application overrides product in PDE JUnit launc...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=175266">175266</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Sync View] Conflict for 'org.eclipse.team.ui.synchronize...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=176021">176021</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[launcher] Eclipse launcher not working OOTB on Gentoo sy...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=176508">176508</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[console] IOConsole Updater error with long output lines
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_minor bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=177904">177904</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[spell checking] Spell-checking causes errors if the JDT ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=181327">181327</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >eclipse/osgi hangs using 50% CPU during some osgi operations
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=183117">183117</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >User Library Lost
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=183417">183417</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Bidi3.3: Elements' labels in the extensions page in the ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=184227">184227</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help] Mock33: [English] Symptom Catalog Editor Context H...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=184712">184712</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Viewers] Label provider of a tree vewier is not called
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=184877">184877</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[CommonNavigator] No F1 help for Project Explorer view
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=185977">185977</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >InvalidRegistryObjectException thrown when refreshingPack...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=186114">186114</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >IMethodBinding.overrides(..) should consider static
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=186158">186158</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >FilteredItemsSelectionDialog: separator string indents on...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=187125">187125</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[DND] Image effect not showing in RTL
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=188091">188091</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[WorkbenchLauncher] org.eclipse.swt.SWTError: No more han...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=188178">188178</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Commands] workbench System.out
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=188343">188343</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[KeyBindings] NPE in Keys (Legacy) preference page
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=188559">188559</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Delete files generated by Java 6 processors during build
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=189013">189013</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >The Signed bundle does not handle additional BundleFileWr...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=189153">189153</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Improve error message when .SF file has been tampered with
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=189292">189292</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[DND] FileTransfer disables image feedback
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=189329">189329</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[refactoring] error list does not provide a label
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=189577">189577</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Sync View] NPE exception when creating CVS synchronizati...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=189799">189799</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[jsr269] Make getDocComment() behave more like javac
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=189931">189931</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[misc] Class File Editor without source: message does not...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=189956">189956</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[History View] NPE Show In->History View on class file
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=189987">189987</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[package explorer] Plug-in Dependencies in Package Explor...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=189999">189999</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[PropertiesView] [PropertiesView] Setting 1 value causes ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190023">190023</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >TVT33:TCT318: Apostrophe missing in Compare with Local hi...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P2 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190077">190077</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Welcome view sometimes badly laid out
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190190">190190</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Operations] No error dialog when branching with an exist...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190210">190210</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Update ISV Workbench doc
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190268">190268</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Need to perform a validateEdit() before setting encoding
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190399">190399</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >console command line parsing problem
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190434">190434</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[History View] NPE when closign a project while CVS Histo...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190617">190617</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[jsr269] processors not getting called on final round
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_trivial bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190622">190622</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >type binding marked as recovered but all is compiling
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190626">190626</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[SSH2] TVT33:TCT436: IW: Fingerprint filed is RTL and gar...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P2 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190633">190633</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help]TVT33:TCT441: IW: Help path in preference is RTL
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190700">190700</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[convert local] NPE in PromoteTempToFieldRefactoring.chec...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190778">190778</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Edit] Multiple NPEs during Compare
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190822">190822</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Edit] SaveableCompareEditorInput.prepareInput throws NPE...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_blocker bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190868">190868</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >On IBM JDK with opt level=cold, a Stack Overflow occurs w...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190869">190869</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >new configuration becomes dirty on arguments tab
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=190987">190987</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[build path] Project can add itself as class folder
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191046">191046</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Min/Max] View does not open 2nd time when editor max'd
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191052">191052</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Multi-project patch not using Workspace flag
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191082">191082</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >AnnotationMirror.getPosition() returns wrong value
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191123">191123</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help] Infocenter not disabling search scope correctly
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191125">191125</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[1.5] [assist] NPE in CompletionEngine.proposeType()
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191208">191208</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[JUnit] leaking in TestRoot if test run terminated by pla...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_minor bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191293">191293</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[preferences] TVT33:TCT624: pt - truncated window
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191297">191297</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[hashcode/equals] Incorrect generation of the equals meth...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191312">191312</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >details for arrays attempt source lookup for non-existant...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191349">191349</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[change method signature] error with nodeType=8;
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191368">191368</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Policy URL in preferences doesn't support UTF-8 characters
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191468">191468</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[CellEditors] Cell editors don't activate in TableViewer ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191486">191486</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[breakpoints] Alt+Enter for java breakpoint properties co...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191511">191511</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Perspecitves] Workbench.showPerspective gets NullPointer...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P2 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191591">191591</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Webapp] Missing toc files affects display of siblings
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191597">191597</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[launcher] launcher no longer brings up an exit dialog on...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191611">191611</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >NPE in FilteredItemsSelectionDialog
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_blocker bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191652">191652</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Native code is not updated during bundle update
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191694">191694</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[EFS] NPE in FileEditorInput.getPath
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P1 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191739">191739</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >"Duplicate nested type" bogus error on static class of ab...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191771">191771</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[DataBinding] Realm documentation is wrong
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191783">191783</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >NullPointerException in FeatureDownloader
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191790">191790</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Browser] Browser leaks due to COM objects
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191862">191862</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[clean up] use modifier "final" where possible removes an...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191908">191908</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[1.5][compiler] Missing strike through for deprecated dec...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191951">191951</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >NPE when attempt to set build location to workspace_loc:<...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191973">191973</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >NPE in SchemaTransformer.getSchemaCssURL
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=191974">191974</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Concurrent modification exception
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192032">192032</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[WorkbenchLauncher] WorkbenchAdvisor.eventLoopException()...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192127">192127</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Product Export on Mac always generates an "eclipse.app" a...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192272">192272</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help][Context] context xml title attribute is broken
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192285">192285</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[formatter] Java source formatter not working if class ha...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P2 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192392">192392</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[CVS] "Switch to another branch or version" does not work...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192454">192454</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[server] http.jetty's SSL support for "needclientauth" an...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192497">192497</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Cannot always find method definition, depending on cursor...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192587">192587</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[KeyBindings] Extra entries appear in Keys preference pag...
+ </td>
+
+ </tr>
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192638">192638</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[rename] Incomplete package rename refactoring
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/https://bugs.eclipse.org/bugs/show_bug.cgi?id=192722">192722</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[resolver] BundleDescription order may effect singleton s...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192735">192735</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Sync View] Could not acquire children from extension: or...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=192774">192774</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Annotation AST nodes should have unique IAnnotationBindings
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_blocker bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193076">193076</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Shared library libswt-cairo-gtk-3236.so is missing in SWT...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193265">193265</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[1.5][compiler] Incorrect ambiguous method error involvin...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_blocker bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193317">193317</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Invalid thread access starting DebugUIPlugin
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193334">193334</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >LabelUpdate ignores colors for columns with numbers > 0
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193340">193340</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Mem access violation if specify -Xmx without -Xms for Ecl...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_trivial bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193482">193482</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[working sets] Working Set Assignments dialog does not us...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193571">193571</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Dialogs] FilteredItemsSelectionDialog does not immediate...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P1 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193577">193577</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[CommonNavigator] Remaining glitches with Web project jav...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193596">193596</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[app] Starting a non main-thread application causes an ex...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193784">193784</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Proprietary licenses
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193857">193857</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[server] Use of file extension wildcards doesn't work cor...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194034">194034</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[1.5][Compiler] Inconsistency with javac: subclass does n...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194146">194146</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >CVSUIPlugin.stop not being called
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194149">194149</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Thread deadlock during Equinox startup
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194185">194185</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[search] for package declarations finds also subpackages
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194214">194214</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >MessageDialog shows a default icon when dialogTitleImage ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194221">194221</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Commands] Slow to close dialogs due to ContextAuthority....
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194261">194261</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[launcher] eclipse/jre vm not used if library not found
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194303">194303</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[launching] CME during "Compute launch button tooltip"
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194353">194353</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[DataBinding] AbstractStringToNumberValidator caches mess...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194412">194412</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[misc] jface.text has incompatible manifest
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194435">194435</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >JDT Core manifest contains invalid prereqed version
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194483">194483</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help] noexec flag no longer works with standalone help &...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194509">194509</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >infinite loop in console
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194598">194598</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >44% of time closing projects spent in LaunchManager#resou...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194702">194702</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[browser]Click URL linked to a new window, pop up two bro...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194760">194760</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[CellEditors] [Viewers] JavaDoc DialogCellEditor updateLa...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194782">194782</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >NumberFormatException when checking out project from spec...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194911">194911</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help] Uncaught exceptions - Permission denied to get pro...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194942">194942</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >org.eclipse.core.net pollutes project-specific preferences
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=194971">194971</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[browser] fires duplicate mouse events
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195046">195046</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[CommonNavigator] SWTException: "Widget is disposed" on c...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P2 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195185">195185</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Cannot debug java class
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195317">195317</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[compiler] java.lang.ClassFormatError: Invalid pc in Line...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195394">195394</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Manifest][Editors] NPE in org.eclipse.pde.internal.ui.ed...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195396">195396</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[jar exporter] Jar packager creates only jars with resources
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195405">195405</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Themes] Incorrect use of IThemeRegistry.HierarchyCompara...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P2 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195412">195412</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >NPE when opening History for remote file
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195416">195416</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[spell checking] spelling removes all other annotations
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195454">195454</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >PDE supplies -pdelaunch to IApplication launches, which i...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195468">195468</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[1.5][compiler] Eclipse compiler differs from javac with ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195509">195509</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Need to improve classpath resolution for Apache Harmony i...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195521">195521</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Actions] TeamAction leaks editors via targetPart
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195526">195526</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >org.eclipse.jdt.core.tests.compiler.regression.GenericTyp...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195566">195566</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >ContextFinder.loadClass should not by synchronous
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_CLOSED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195624">195624</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[JUnit] I can't see JUnit Test result after junit window ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195802">195802</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Name clash compile error generated if superclass is abstract
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195838">195838</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[spell checking] Edition of large files causes UI not to ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P2 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195839">195839</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >JobManager is missing aboutToRelease call, causing UI the...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195986">195986</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >NPE when setting defaultvalue attribute of the Ant Input ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196093">196093</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[rename] rename packages deletes files if subpackages are...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196157">196157</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[SyncView] "Remove from View" does not work when compare-...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196164">196164</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >IDE plugin broken due to missing dependency on runtime co...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196184">196184</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[launcher] Memory violation in Launcher when -vm is incor...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196254">196254</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Overrides wrong for wildcard parameterized methods
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196306">196306</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Commands] RegistryRadioState cannot properly initialize ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196354">196354</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >ClassCastException in package binding
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196558">196558</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >PDE tells the compiler to ignore a discouraged package if...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196635">196635</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[pull up] Internal Error with Refactor > Pull Up (ArraySt...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196646">196646</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[organize imports] import broken with * groups
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196672">196672</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Intro] SWT Welcome RSS Feed doesn't Work
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196718">196718</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[WorkbenchLauncher] Null Display using Display.getCurrent()
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196791">196791</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >SWT ToolTip does not render Arabian text tooltip correctl...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P2 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196847">196847</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Patch] Eclipse patcher does not require deletions or con...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=196889">196889</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[launcher] Eclipse 3.3 System bundle not OSGi/Minimum-1.1...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197009">197009</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[server] JSPContextFinder.loadClass should not by synchro...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197013">197013</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[server] console command line parsing problem in Framewor...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197033">197033</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[launcher] 3.3.1 launcher fragments need host version upd...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197050">197050</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[jsr269] Support -XprintRounds and -XprintProcessorInfo
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197169">197169</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Formatter expands &#64; in annotation in javadoc, creatin...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197173">197173</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >console fails if passed a set of initial commands
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197191">197191</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >timestamp are not persisted correctly
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197250">197250</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Contextual Help] If the description of a context is empt...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197639">197639</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[launcher] free called twice on exitData if default error...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197722">197722</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >5 failures in Eclipse Automated tests in org.eclipse.ltk....
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197791">197791</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[navigation] NPE when using Show In > ... in Java editor ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197817">197817</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Plug-in should be removed from Java Search when imported ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197842">197842</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >9 failures in org.eclipse.jdt.ui.tests when using IBM Jav...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197849">197849</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help][Context] Context help often does not show the view...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_blocker bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197866">197866</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Installed JRE Wizard creates duplicate system libraries w...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197945">197945</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help] XML declaration appears in help system search resu...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197951">197951</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[pull up] selecting members triggers a long operation
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197995">197995</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Reopening bug: [Workbench] Main toolbar missing when star...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=197998">197998</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Workbench refuses to show Run or Debug dialog
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198047">198047</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >TestingEnvironment.addProject should support 1.6 compliance
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198051">198051</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[1.5][compiler] Improper Polymorphic Exception Handling
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198120">198120</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[1.5][compiler] Cannot directly invoke the abstract metho...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_minor bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198153">198153</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[formatter] adds extra space before expanded numerical en...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_minor bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198362">198362</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Formatter stops working when source code contains followi...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198430">198430</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Font not set correctly in GC supplied to events of virtua...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198457">198457</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >"Open a compare editor when comparing a single file" does...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198460">198460</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help][Documentation] Dependencies are wrong
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198462">198462</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >ClassCastException: WebStartMain$BundleInfo
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198483">198483</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >BuilderTests: need expectingUniqueCompiledClasses method
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198536">198536</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Infinite Loop in IdReplaceTask if version comes before id
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198549">198549</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Dialogs] Support IColorProvider/IFontProvider in Filtere...
+ </td>
+
+ </tr>
+
+
+
+
+
+ </tr>
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198575">198575</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Intro] display problems -- standby and maximized
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198665">198665</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Viewers] FocusCell and focused row not in sync
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198810">198810</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[misc] RCP Text broken due to EFS dependency in org.eclip...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198880">198880</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[DataBinding] ObservablesManager does not dispose model
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198890">198890</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[templates] some typos in templates
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198903">198903</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[DataBinding] ComboSingleSelectionObservableValue setValu...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198904">198904</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[DataBinding] Listeners in swt Observables are not remove...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=198906">198906</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[DataBinding] SelectionProviderSingleSelectionObservableV...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_critical bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=199154">199154</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Intro] <IMG> tag ignored in Eclipse Welcome pages when l...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=199316">199316</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Flag to accommodate new provisioning work
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=199634">199634</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >IndexOutOfBoundsException during bundle resolution
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=199668">199668</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >IAE in ASTNode.setSourceRange while editing a class
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=199775">199775</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Viewers] CheckboxCellEditor flips state when tabing from...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=199798">199798</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Help] Can't include SVG in help documents
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=199799">199799</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[DataBinding] 3.3.1: JavaBeanObservableValue may cause NP...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200028">200028</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >versioning of org.eclipse.platform.doc.isv in build I200...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200067">200067</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[templates] code assist no longer suggests templates for ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200124">200124</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[jsr269] Implement createResourceFile in IDE
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200231">200231</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[app] Support creating app container without app launcher
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200252">200252</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[JFace] Use logger instead of printStackTrace() in SafeRu...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200337">200337</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Viewers] ColumnViewerEditor leaks ViewerCell instances.
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200456">200456</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[content assist] Content assist for static member of favo...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200547">200547</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[1.5][compiler] Invalid ambiguous error when calling an o...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200558">200558</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Viewers] ArrayIndexOutOfBoundsException in ColumnViewer
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200582">200582</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Launcher] Shared Memory Leak
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200604">200604</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Launcher] Allow relative path for --launcher.library
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200745">200745</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[implementation] Unable to open DefaultTextEditor on a Fi...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=200846">200846</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[CommonNavigator] ui.navigator plug-in has wrong version ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=201002">201002</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Viewers] TableViewer/TreeViewer#editElement() doesn't sc...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=201085">201085</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[spell checking] spellcheck dictionaries in fragments are...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=201104">201104</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >JavaElement of a recovered type binding should not return...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=201280">201280</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Viewers] ColumnViewer leaks ViewerCell (and model elements)
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=201415">201415</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Refactoring asks to save on non-resource related editors
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=201479">201479</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >non-source generated files deleted improperly
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=201598">201598</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >3.3.1 About says 3.3.0
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=201616">201616</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Min.Max] Need to be able to change the orientation of a ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=201640">201640</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[TabbedProperties] NullPointerException in TabbedProperty...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=201681">201681</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Manifest][Editors] Weird character representing open bra...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_VERIFIED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=202077">202077</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[doc] Link to JUnit sources not correct
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_major bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=202270">202270</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[organize imports] does not organize imports in some cases
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=202394">202394</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Viewers] Test failure for Bug2012002TableViewerTest#test...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_even ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=202531">202531</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >[Metadata] Plug-in version numbers need to be updated in ...
+ </td>
+
+ </tr>
+
+
+
+
+
+
+ <tr class="bz_bugitem
+ bz_normal bz_P3 bz_RESOLVED bz_FIXED bz_row_odd ">
+
+ <td class="first-child">
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=202533">202533</a>
+ <span style="display: none"></span>
+ </td>
+
+ <td >Plug-in version number for org.eclipse.swt in 3.3 mainten...
+ </td>
+
+ </tr>
+
+
+ </table>
+
+
+
+
+243 bugs found.
+
+
+<br>
+
+
+<p>
+Note: the above table was generated with the Bugzilla query: <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Eclipse&product=Equinox&product=JDT&product=PDE&product=Platform&target_milestone=3.3.1&target_milestone=3.3.1&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Importance&field0-0-0=noop&type0-0-0=noop&value0-0-0=|">https://bugs.eclipse.org/bugs/buglist.cgi&query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Eclipse&product=Equinox&product=JDT&product=PDE&product=Platform&target_milestone=3.3.1&target_milestone=3.3.1&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Importance&field0-0-0=noop&type0-0-0=noop&value0-0-0=|</a>
+
+</p>
+
<hr>
<p>Sun, Solaris, Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc.