This commit was manufactured by cvs2svn to create tag 'v20050217'.

Sprout from master 2005-02-17 16:28:45 UTC darins 'Bug 85590 - IndexOutOfBoundsException in the Ant preference page on loss of selection'
Cherrypick from master 2005-02-17 17:59:06 UTC Dorian Birsan <dbirsan> 'bug 85696':
    update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/SchedulerStartup.java
Delete:
    ant/org.eclipse.ant.tests.core/.classpath
    ant/org.eclipse.ant.tests.core/.cvsignore
    ant/org.eclipse.ant.tests.core/.externalToolBuilders/Ant Test Support Lib Builder.launch
    ant/org.eclipse.ant.tests.core/.project
    ant/org.eclipse.ant.tests.core/.settings/org.eclipse.jdt.core.prefs
    ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.core.prefs
    ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.prefs
    ant/org.eclipse.ant.tests.core/about.html
    ant/org.eclipse.ant.tests.core/build.properties
    ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml
    ant/org.eclipse.ant.tests.core/lib/.cvsignore
    ant/org.eclipse.ant.tests.core/plugin.properties
    ant/org.eclipse.ant.tests.core/plugin.xml
    ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntFileRunner.java
    ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java
    ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPlugin.java
    ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPropertyValueProvider.java
    ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/ProjectHelper.java
    ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/inputHandlers/AntTestInputHandler.java
    ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask.java
    ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.java
    ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildListener.java
    ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java
    ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/types/AntTestPath.java
    ant/org.eclipse.ant.tests.core/test.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/Bug32551.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/Bug34663.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/Bug42926.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/Bug73602.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/ClasspathOrdering.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/CustomTask.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/CustomType.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointTask.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointType.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/MissingDefault.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/NoDefault.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/TestForEcho.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/build.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/echoing.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/failingTarget.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/input.xml
    ant/org.eclipse.ant.tests.core/testbuildfiles/javac.xml
    ant/org.eclipse.ant.tests.core/testlib/classpathOrdering1.jar
    ant/org.eclipse.ant.tests.core/testlib/classpathOrdering2.jar
    ant/org.eclipse.ant.tests.core/testlib/taskFolder/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.class
    ant/org.eclipse.ant.tests.core/testresources/AntTestTask.java
    ant/org.eclipse.ant.tests.core/testresources/taskdefs.properties
    ant/org.eclipse.ant.tests.core/testresources/test.properties
    ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AbstractAntTest.java
    ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AutomatedSuite.java
    ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/ProjectCreationDecorator.java
    ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/FrameworkTests.java
    ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/OptionTests.java
    ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/ProjectTests.java
    ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TargetTests.java
    ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TaskTests.java
    ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TypeTests.java
    ant/org.eclipse.ant.tests.ui/.classpath
    ant/org.eclipse.ant.tests.ui/.cvsignore
    ant/org.eclipse.ant.tests.ui/.externalToolBuilders/Build Test Support JAR.launch
    ant/org.eclipse.ant.tests.ui/.project
    ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.jdt.core.prefs
    ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.core.prefs
    ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.prefs
    ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/AbstractAntDebugTest.java
    ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementEventWaiter.java
    ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementKindEventDetailWaiter.java
    ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DeferredBreakpointTests.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/dtd/dumper.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/AntEditorContentOutlineTests.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/AntEditorTests.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/CodeCompletionTest.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/TaskDescriptionProviderTest.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/FormattingPreferencesTest.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlDocumentFormatterTest.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlFormatterTest.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/EditorTestHelper.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/NonInitialTypingTest.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/OpenAntEditorTest.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestLocationProvider.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestProblemRequestor.java
    ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestTextCompletionProcessor.java
    ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildPerformanceTest.java
    ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildTest.java
    ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java
    ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/BuildTests.java
    ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/OpenLaunchConfigurationDialogTests.java
    ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/SeparateVMTests.java
    ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/separateVM/SeparateVMTests.java
    ant/org.eclipse.ant.tests.ui/External Tools/org/eclipse/ant/tests/ui/externaltools/MigrationTests.java
    ant/org.eclipse.ant.tests.ui/about.html
    ant/org.eclipse.ant.tests.ui/build.properties
    ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml
    ant/org.eclipse.ant.tests.ui/icons/ant.gif
    ant/org.eclipse.ant.tests.ui/lib/.cvsignore
    ant/org.eclipse.ant.tests.ui/plugin.properties
    ant/org.eclipse.ant.tests.ui/plugin.xml
    ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java
    ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUIPerformanceTests.java
    ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITestPlugin.java
    ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITests.java
    ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ConsoleLineTracker.java
    ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugElementKindEventWaiter.java
    ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugEventWaiter.java
    ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectCreationDecorator.java
    ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectHelper.java
    ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/inputHandlers/TestSWTInputHandler.java
    ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask.java
    ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask2.java
    ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/NestElementTask.java
    ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/types/AntTestPath.java
    ant/org.eclipse.ant.tests.ui/test.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/74840.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/antUITestsSupport.jar
    ant/org.eclipse.ant.tests.ui/testbuildfiles/bad.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/badproject.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/breakpoints.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/build.Cp1251.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/build.UTF8.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/build.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.properties
    ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest2.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/customBoolean.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/dependencytest.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/echoing.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/empty.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/environmentVar.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointSepVM.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTaskSepVM.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTypeSepVM.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/failingTarget.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_source01.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target01.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target02.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target03.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/importRequiringUserProp.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/input.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/javac.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/macrodef.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/mixed.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/nestedElementAttributes.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/outline_select_test_build.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/performance/build.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/postRun.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/preRun.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/projectOnly.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/refid.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/russianbuild.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/taskdef.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/test1.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/test2.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/test3.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/test4.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/test5.xml
    ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImported.xml
    ant/org.eclipse.ant.tests.ui/testresources/Test2.java
    platform/org.eclipse.platform/.classpath
    platform/org.eclipse.platform/.cvsignore
    platform/org.eclipse.platform/.project
    platform/org.eclipse.platform/SplashFinal_500x330.psd
    platform/org.eclipse.platform/about.html
    platform/org.eclipse.platform/about.ini
    platform/org.eclipse.platform/about.mappings
    platform/org.eclipse.platform/about.properties
    platform/org.eclipse.platform/build.properties
    platform/org.eclipse.platform/cheatsheets/CVS_1.xml
    platform/org.eclipse.platform/css/graphics/contentpage/background.jpg
    platform/org.eclipse.platform/css/graphics/contentpage/backgroundcurve.gif
    platform/org.eclipse.platform/css/graphics/contentpage/content_background.jpg
    platform/org.eclipse.platform/css/graphics/contentpage/overview_wtr.jpg
    platform/org.eclipse.platform/css/graphics/contentpage/samples_wtr.jpg
    platform/org.eclipse.platform/css/graphics/contentpage/section1.gif
    platform/org.eclipse.platform/css/graphics/contentpage/section2.gif
    platform/org.eclipse.platform/css/graphics/contentpage/section3.gif
    platform/org.eclipse.platform/css/graphics/contentpage/section4.gif
    platform/org.eclipse.platform/css/graphics/contentpage/tutorials_wtr.jpg
    platform/org.eclipse.platform/css/graphics/contentpage/whatsnew_wtr.jpg
    platform/org.eclipse.platform/css/graphics/contentpage/wordmark.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/overview48.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/overview48sel.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/overview72.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/samples48.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/samples48sel.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/samples72.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials48.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials48sel.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials72.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/wb48.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew48.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew48sel.gif
    platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew72.gif
    platform/org.eclipse.platform/css/graphics/icons/dtool/back.gif
    platform/org.eclipse.platform/css/graphics/icons/dtool/forward.gif
    platform/org.eclipse.platform/css/graphics/icons/dtool/overview.gif
    platform/org.eclipse.platform/css/graphics/icons/dtool/restore_welcome.gif
    platform/org.eclipse.platform/css/graphics/icons/dtool/samples.gif
    platform/org.eclipse.platform/css/graphics/icons/dtool/tutorials.gif
    platform/org.eclipse.platform/css/graphics/icons/dtool/whatsnew.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/back.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/forward.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/overview.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/overview48.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/overview48sel.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/overview72.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/restore_welcome.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/samples.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/samples48.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/samples48sel.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/samples72.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/tutorials.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/tutorials48.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/tutorials48sel.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/tutorials72.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/wb48.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew48.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew48sel.gif
    platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew72.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/community_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/communityhov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/features_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/featureshov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/javaapp_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/javaapphov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/javaapplet_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/javaapplethov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/javadev_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/javadevhov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/migrate_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/migratehov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/new_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/newhov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/plugin_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/pluginhov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/rcpapp_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/rcpapphov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/samplepurp_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/samplepurphov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/samplered_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/sampleredhov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/script_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/scripthov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/swtapp_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/swtapphov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/teamsup_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/teamsuphov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/updates_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/updateshov_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/wbbasics_obj.gif
    platform/org.eclipse.platform/css/graphics/icons/obj48/wbbasicshov_obj.gif
    platform/org.eclipse.platform/css/graphics/rootpage/background.jpg
    platform/org.eclipse.platform/css/graphics/rootpage/brandmark.gif
    platform/org.eclipse.platform/css/graphics/rootpage/dots.gif
    platform/org.eclipse.platform/css/graphics/swt/form_banner.gif
    platform/org.eclipse.platform/css/overview/overview.css
    platform/org.eclipse.platform/css/overview/swt.properties
    platform/org.eclipse.platform/css/root.css
    platform/org.eclipse.platform/css/root_swt.properties
    platform/org.eclipse.platform/css/samples/samples.css
    platform/org.eclipse.platform/css/samples/swt.properties
    platform/org.eclipse.platform/css/shared.css
    platform/org.eclipse.platform/css/standby_root.css
    platform/org.eclipse.platform/css/standby_swt.properties
    platform/org.eclipse.platform/css/tutorials/swt.properties
    platform/org.eclipse.platform/css/tutorials/tutorials.css
    platform/org.eclipse.platform/css/whatsnew/swt.properties
    platform/org.eclipse.platform/css/whatsnew/whatsnew.css
    platform/org.eclipse.platform/eclipse.gif
    platform/org.eclipse.platform/eclipse32.gif
    platform/org.eclipse.platform/eclipse_lg.gif
    platform/org.eclipse.platform/intro.gif
    platform/org.eclipse.platform/introContent.xml
    platform/org.eclipse.platform/plugin.properties
    platform/org.eclipse.platform/plugin.xml
    platform/org.eclipse.platform/plugin_customization.ini
    platform/org.eclipse.platform/plugin_customization.properties
    platform/org.eclipse.platform/splash.bmp
    platform/org.eclipse.platform/src-intro/org/eclipse/platform/internal/CheatSheetStandbyContent.java
    platform/org.eclipse.platform/src/META-INF/MANIFEST.MF
    platform/org.eclipse.platform/src/org/eclipse/core/launcher/Main.java
    platform/org.eclipse.platform/src/org/eclipse/core/launcher/WebStartMain.java
    platform/org.eclipse.platform/src/org/eclipse/core/launcher/package.html
    platform/org.eclipse.platform/welcome.xml
    platform/org.eclipse.sdk/.project
    platform/org.eclipse.sdk/about.html
    platform/org.eclipse.sdk/about.ini
    platform/org.eclipse.sdk/about.mappings
    platform/org.eclipse.sdk/about.properties
    platform/org.eclipse.sdk/build.properties
    platform/org.eclipse.sdk/eclipse32.gif
    platform/org.eclipse.sdk/plugin.properties
    platform/org.eclipse.sdk/plugin.xml
    update/org.eclipse.update.configurator/.classpath
    update/org.eclipse.update.configurator/.cvsignore
    update/org.eclipse.update.configurator/.options
    update/org.eclipse.update.configurator/.project
    update/org.eclipse.update.configurator/about.html
    update/org.eclipse.update.configurator/build.properties
    update/org.eclipse.update.configurator/plugin.properties
    update/org.eclipse.update.configurator/plugin.xml
    update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/ConfiguratorUtils.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfiguration.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfigurationFactory.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/package.html
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/BootDescriptor.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/BundleManifest.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Configuration.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationActivator.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationParser.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FeatureEntry.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FeatureParser.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FullFeatureParser.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/IConfigurationConstants.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker_JavaIo.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker_JavaNio.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Messages.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfigurationFactory.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginEntry.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginParser.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ProductProvider.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SiteEntry.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SitePolicy.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/UpdateURLDecoder.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Utils.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/VersionedIdentifier.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/XMLPrintHandler.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/AboutInfo.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IBundleGroupConstants.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IProductConstants.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IniFileReader.java
    update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/messages.properties
    update/org.eclipse.update.core.linux/.classpath
    update/org.eclipse.update.core.linux/.cvsignore
    update/org.eclipse.update.core.linux/.project
    update/org.eclipse.update.core.linux/about.html
    update/org.eclipse.update.core.linux/build.properties
    update/org.eclipse.update.core.linux/fragment.xml
    update/org.eclipse.update.core.linux/os/linux/x86/libupdate.so
    update/org.eclipse.update.core.linux/src/build.xml
    update/org.eclipse.update.core.linux/src/update.c
    update/org.eclipse.update.core.linux/src/update.h
    update/org.eclipse.update.core.win32/.project
    update/org.eclipse.update.core.win32/about.html
    update/org.eclipse.update.core.win32/build.properties
    update/org.eclipse.update.core.win32/fragment.xml
    update/org.eclipse.update.core.win32/os/win32/x86/update.dll
    update/org.eclipse.update.core.win32/src/build.xml
    update/org.eclipse.update.core.win32/src/update.cpp
    update/org.eclipse.update.core.win32/src/update.h
    update/org.eclipse.update.core/.classpath
    update/org.eclipse.update.core/.cvsignore
    update/org.eclipse.update.core/.options
    update/org.eclipse.update.core/.project
    update/org.eclipse.update.core/Scrapbook.jpage
    update/org.eclipse.update.core/about.html
    update/org.eclipse.update.core/build.properties
    update/org.eclipse.update.core/plugin.properties
    update/org.eclipse.update.core/plugin.xml
    update/org.eclipse.update.core/preferences.ini
    update/org.eclipse.update.core/schema/featureTypes.exsd
    update/org.eclipse.update.core/schema/installHandlers.exsd
    update/org.eclipse.update.core/schema/siteTypes.exsd
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/IActivity.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/IConfiguredSite.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/IConfiguredSiteChangedListener.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallConfiguration.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallConfigurationChangedListener.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallDeltaHandler.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSite.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSiteChangedListener.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSystemInfoListener.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/IProblemHandler.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/ISessionDelta.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/IVolume.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/LocalSystemInfo.java
    update/org.eclipse.update.core/src/org/eclipse/update/configuration/package.html
    update/org.eclipse.update.core/src/org/eclipse/update/core/ArchiveReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/BaseFeatureFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/BaseInstallHandler.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/BaseSiteFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/Category.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/ContentReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/Feature.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureContentProvider.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IArchiveReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/ICategory.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IFeature.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureContentProvider.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IImport.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IIncludedFeatureReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IInstallHandler.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IInstallHandlerEntry.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/INonPluginEntry.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IPlatformEnvironment.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IPluginEntry.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/ISite.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteContentProvider.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFactoryExtension.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFeatureReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteWithMirrors.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IURLEntry.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IUpdateConstants.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IVerificationListener.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IVerificationResult.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IVerifier.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/Import.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/IncludedFeatureReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/InstallHandlerEntry.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/InstallMonitor.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/JarContentReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/JarEntryContentReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/NonPluginEntry.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/PluginEntry.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/SiteContentProvider.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/SiteFeatureReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/SiteFeatureReferenceModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/SiteManager.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/URLEntry.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/Utilities.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/Verifier.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/VersionedIdentifier.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/ArchiveReferenceModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/CategoryModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/ContentEntryModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/DefaultFeatureParser.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/DefaultSiteParser.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureModelFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureReferenceModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/ImportModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/IncludedFeatureReferenceModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/InstallAbortedException.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/InstallHandlerEntryModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/InvalidSiteTypeException.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/ModelObject.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/NonPluginEntryModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/PluginEntryModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/SiteModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/SiteModelFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/URLEntryModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/core/model/package.html
    update/org.eclipse.update.core/src/org/eclipse/update/core/package.html
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Assert.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/BaseSiteLocalFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationActivity.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationPolicy.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfiguredSite.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConnectionThreadManager.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DefaultInstallHandler.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DeltaInstallHandler.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ErrorRecoveryLog.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureDownloadException.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableContentProvider.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackagedContentProvider.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackagedFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePlugin.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureTypeFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FileFragment.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FileResponse.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FragmentEntry.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/HttpResponse.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ISiteContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/IStatusCodes.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/IWritable.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallConfiguration.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallHandlerProxy.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallLogParser.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallRegistry.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InternalSiteManager.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ListenersList.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/NonPluginEntryContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/OtherResponse.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/PatchedFeature.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/PluginEntryContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Policy.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Response.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFile.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileContentProvider.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileNonPluginContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFilePackedPluginContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFilePluginContentConsumer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteReconciler.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteStatusAnalyzer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteTypeFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteURLContentProvider.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteURLFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/TargetFeature.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/URLEncoder.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/URLKey.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateCore.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateManagerLogWriter.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateManagerUtils.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdatePreferencesInitializer.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateSiteFeatureReference.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Volume.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties
    update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorSite.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorSiteFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/model/BundleManifest.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationActivityModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationPolicyModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfiguredSiteModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/model/DefaultPluginParser.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/model/InstallConfigurationModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/model/InstallConfigurationParser.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteLocalModel.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteLocalParser.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/BatchInstallOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ConfigOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/DuplicateConflictsValidator.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureHierarchyElement.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureStatus.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/InstallOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/JobRoot.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/Operation.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/OperationFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/OperationValidator.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/PatchCleaner.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ReplaceFeatureVersionOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/RevertConfigurationOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ToggleSiteOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UnconfigOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UninstallOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UpdateUtils.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/search/BaseSearchCategory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/search/OptionalFeatureSearchCategory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/search/QueryUpdateSiteAdapter.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/search/SiteSearchCategory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatePolicy.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdateSiteAdapter.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatesSearchCategory.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/security/CertificatePair.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerificationResult.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerifier.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/security/KeyStores.java
    update/org.eclipse.update.core/src/org/eclipse/update/internal/security/KeystoreHandle.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IBatchOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IConfigFeatureOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IFeatureOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IInstallFeatureOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationFactory.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationListener.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationValidator.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IReplaceFeatureVersionOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IRevertConfigurationOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IToggleSiteOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IUnconfigFeatureOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IUninstallFeatureOperation.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/IUpdateModelChangedListener.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/OperationsManager.java
    update/org.eclipse.update.core/src/org/eclipse/update/operations/package.html
    update/org.eclipse.update.core/src/org/eclipse/update/search/BackLevelFilter.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/BaseFilter.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/EnvironmentFilter.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/IQueryUpdateSiteAdapter.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchCategory.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchFilter.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchQuery.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchResultCollector.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchResultCollectorFromMirror.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchSite.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSiteAdapter.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/UpdateSearchRequest.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/UpdateSearchScope.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/VersionedIdentifiersFilter.java
    update/org.eclipse.update.core/src/org/eclipse/update/search/package.html
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/AddSiteCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/CmdLineArgs.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/DisableCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/EnableCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/InstallCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/ListFeaturesCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/RemoveSiteCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/ScriptedCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/SearchCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/StandaloneUpdateApplication.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/UninstallCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/UpdateCommand.java
    update/org.eclipse.update.core/src/org/eclipse/update/standalone/package.html
    update/org.eclipse.update.examples/.classpath
    update/org.eclipse.update.examples/.cvsignore
    update/org.eclipse.update.examples/.project
    update/org.eclipse.update.examples/Scrapbook2.jpage
    update/org.eclipse.update.examples/about.html
    update/org.eclipse.update.examples/build.properties
    update/org.eclipse.update.examples/plugin.properties
    update/org.eclipse.update.examples/plugin.xml
    update/org.eclipse.update.examples/site/features/com.reddot.reddot_1.0.0.jar
    update/org.eclipse.update.examples/site/features/com.reddot.reddot_2.0.0.jar
    update/org.eclipse.update.examples/site/info/images/redDot.jpg
    update/org.eclipse.update.examples/site/info/siteInfo.html
    update/org.eclipse.update.examples/site/plugins/com.reddot.reddot_1.0.0.jar
    update/org.eclipse.update.examples/site/plugins/com.reddot.reddot_2.0.0.jar
    update/org.eclipse.update.examples/site/site.xml
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipConverter.java
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureContentProvider.java
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureFactory.java
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureParser.java
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipPluginParser.java
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipSiteContentProvider.java
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipSiteFactory.java
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/DefaultModelWriter.java
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/Test.java
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/java.page.jpage
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/freeform/FreeFormSiteContentProvider.java
    update/org.eclipse.update.examples/src/org/eclipse/update/examples/freeform/FreeFormSiteFactory.java
    update/org.eclipse.update.tests.core/.classpath
    update/org.eclipse.update.tests.core/.cvsignore
    update/org.eclipse.update.tests.core/.project
    update/org.eclipse.update.tests.core/about.html
    update/org.eclipse.update.tests.core/build.properties
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/features/feature3/feature.xml
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/Pde_core.jar
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/help.jar
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/junit_3.7.jar
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/feature3/feature.xml
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/helpFeature.jar
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/org.eclipse.pde.feature_1.0.0.jar
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/img/top_titlsm.gif
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/img/wel_ml.jpg
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/siteInfo.html
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/Pde_core.jar
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/help.jar
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/junit_3.7.jar
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
    update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/site.xml
    update/org.eclipse.update.tests.core/data/FTPLikeSite/site.xml
    update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site1/features/feature3/feature.xml
    update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site1/site.xml
    update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site2/features/feature3/features2.jarfile
    update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site2/site.xml
    update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site3/features/feature3/features2.jarfile
    update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site3/site.xml
    update/org.eclipse.update.tests.core/data/Site with space/features space/helpFeature.jar
    update/org.eclipse.update.tests.core/data/Site with space/features space/space feature.jar
    update/org.eclipse.update.tests.core/data/Site with space/info/img/top_titlsm.gif
    update/org.eclipse.update.tests.core/data/Site with space/info/img/wel_ml.jpg
    update/org.eclipse.update.tests.core/data/Site with space/info/siteInfo.html
    update/org.eclipse.update.tests.core/data/Site with space/install/features space/feature3/feature.xml
    update/org.eclipse.update.tests.core/data/Site with space/plugins space/Pde_core.jar
    update/org.eclipse.update.tests.core/data/Site with space/plugins space/help.jar
    update/org.eclipse.update.tests.core/data/Site with space/plugins space/junit_3.7.jar
    update/org.eclipse.update.tests.core/data/Site with space/plugins space/org.eclipse.update.plugin1_1.1.1/plugin.xml
    update/org.eclipse.update.tests.core/data/Site with space/plugins space/org.eclipse.update.plugin1_1.1.1/src.jar
    update/org.eclipse.update.tests.core/data/Site with space/site.xml
    update/org.eclipse.update.tests.core/data/SiteTypeExamples/site1/features/feature3/features2.jarfile
    update/org.eclipse.update.tests.core/data/SiteTypeExamples/site1/site.xml
    update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/features/helpFeature.jar
    update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/features/org.eclipse.pde.feature_1.0.0.jar
    update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/Pde_core.jar
    update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/help.jar
    update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/junit_3.7.jar
    update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/img/top_titlsm.gif
    update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/img/wel_ml.jpg
    update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/siteInfo.html
    update/org.eclipse.update.tests.core/data/SiteURLTest/data/site.xml
    update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/file1.zip
    update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/install/features/feature3/feature.xml
    update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/site.xml
    update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/features/features3.jar
    update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/non data/another file.zip
    update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/site.xml
    update/org.eclipse.update.tests.core/data/features/features2.jar
    update/org.eclipse.update.tests.core/data/features/org.eclipse.test.feature_1.0.0.jar
    update/org.eclipse.update.tests.core/data/features/org.eclipse.update.core.tests.feature1_1.0.4.jar
    update/org.eclipse.update.tests.core/data/features/org.eclipse_test_feature.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/.project
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/.sitebuild/build.log
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/.sitebuild/sitebuild.xml
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature1_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature2_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature3_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin1_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin2_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin3_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin4_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site1/site.xml
    update/org.eclipse.update.tests.core/data/mirrors/update-site2/.project
    update/org.eclipse.update.tests.core/data/mirrors/update-site2/.sitebuild/build.log
    update/org.eclipse.update.tests.core/data/mirrors/update-site2/.sitebuild/sitebuild.xml
    update/org.eclipse.update.tests.core/data/mirrors/update-site2/features/update.feature1_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site2/features/update.feature2_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site2/plugins/com.plugin1_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site2/plugins/com.plugin2_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site2/site.xml
    update/org.eclipse.update.tests.core/data/mirrors/update-site3/.project
    update/org.eclipse.update.tests.core/data/mirrors/update-site3/.sitebuild/build.log
    update/org.eclipse.update.tests.core/data/mirrors/update-site3/.sitebuild/sitebuild.xml
    update/org.eclipse.update.tests.core/data/mirrors/update-site3/features/update.feature1b_2.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site3/features/update.feature2b_2.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin1_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin1a_1.0.1.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin2_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin2a_1.0.1.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site3/site.xml
    update/org.eclipse.update.tests.core/data/mirrors/update-site4/.project
    update/org.eclipse.update.tests.core/data/mirrors/update-site4/.sitebuild/build.log
    update/org.eclipse.update.tests.core/data/mirrors/update-site4/.sitebuild/sitebuild.xml
    update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1_1.0.1.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1b_2.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1c_3.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site4/plugins/com.plugin1_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site4/plugins/com.plugin1a_1.0.1.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site4/site.xml
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/.project
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/.sitebuild/build.log
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/.sitebuild/sitebuild.xml
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1_1.0.1.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1b_2.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1c_3.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2b_2.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2c_3.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin1_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin1a_1.0.1.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin2_1.0.0.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin2a_1.0.1.jar
    update/org.eclipse.update.tests.core/data/mirrors/update-site5/site.xml
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/features/org.eclipse.update.core.tests.childrenfeature_2.0.0.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/features/rootfeature.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/site.xml
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/features/childrenfeature.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/features/rootfeature.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/site.xml
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/features/childrenfeature.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/features/rootfeature.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
    update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/site.xml
    update/org.eclipse.update.tests.core/data/parsertests/feature1.xml
    update/org.eclipse.update.tests.core/data/parsertests/feature1bis.xml
    update/org.eclipse.update.tests.core/data/parsertests/feature2.xml
    update/org.eclipse.update.tests.core/data/parsertests/feature3.xml
    update/org.eclipse.update.tests.core/data/parsertests/feature4.xml
    update/org.eclipse.update.tests.core/data/parsertests/reddot.xml
    update/org.eclipse.update.tests.core/data/parsertests/reddot1.xml
    update/org.eclipse.update.tests.core/data/parsertests/site.properties
    update/org.eclipse.update.tests.core/data/parsertests/site.xml
    update/org.eclipse.update.tests.core/data/parsertests/site10.xml
    update/org.eclipse.update.tests.core/data/parsertests/site2.xml
    update/org.eclipse.update.tests.core/data/parsertests/site3.xml
    update/org.eclipse.update.tests.core/data/parsertests/site4.xml
    update/org.eclipse.update.tests.core/data/parsertests/site7.xml
    update/org.eclipse.update.tests.core/data/parsertests/site8.xml
    update/org.eclipse.update.tests.core/data/parsertests/site9.xml
    update/org.eclipse.update.tests.core/data/parsertests/siteftp.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/.classpath
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/.project
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/FeatureWithInstallHandler_1.0.0.jar
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/bin/HandlerWithUI$1.class
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/bin/HandlerWithUI.class
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/build.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/handler.jar
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/src/HandlerWithUI.java
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/.project
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/.project
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/.project
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/.project
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/.project
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/.project
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/.project
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/license.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/cpl-v10.html
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/eclipse_update_120.jpg
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/feature.properties
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/license.html
    update/org.eclipse.update.tests.core/data/perf/platform.xml
    update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.feature1.plugin1_1.1.1.jar
    update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.feature2.plugin2_2.2.2.jar
    update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.dummy_7.9.8.jar
    update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
    update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
    update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
    update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
    update/org.eclipse.update.tests.core/data/reconciliationSites/site1/install/features/feature3/feature.xml
    update/org.eclipse.update.tests.core/data/reconciliationSites/site1/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
    update/org.eclipse.update.tests.core/data/reconciliationSites/site1/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
    update/org.eclipse.update.tests.core/data/reconciliationSites/site2/install/features/feature3/feature.xml
    update/org.eclipse.update.tests.core/data/reconciliationSites/site2/plugins/org.eclipse.update.core_2.0.0/plugin.xml
    update/org.eclipse.update.tests.core/data/reconciliationSites/site2/plugins/org.eclipse.update.core_2.0.0/src.jar
    update/org.eclipse.update.tests.core/data/resources.properties
    update/org.eclipse.update.tests.core/data/site.xml
    update/org.eclipse.update.tests.core/data/site2/site.xml
    update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleAndPluginManifests_1.0.3/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleAndPluginManifests_1.0.3/plugin.xml
    update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleManifest_1.0.1/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.0/plugin.xml
    update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.0/src.jar
    update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.1/plugin.xml
    update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.1/src.jar
    update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/notBundleManifest_1.0.2/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/data/testAPI/features/feature3/feature.xml
    update/org.eclipse.update.tests.core/data/testAPI/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
    update/org.eclipse.update.tests.core/data/testAPI/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
    update/org.eclipse.update.tests.core/data/testAPI/site.xml
    update/org.eclipse.update.tests.core/data/validation/site2/.eclipseproduct
    update/org.eclipse.update.tests.core/data/validation/site3/.eclipseextension
    update/org.eclipse.update.tests.core/data/validation/site4/eclipse/.eclipseextension
    update/org.eclipse.update.tests.core/data/validation/site5/.eclipseUM
    update/org.eclipse.update.tests.core/data/validation/site5/eclipse/.eclipseextension
    update/org.eclipse.update.tests.core/data/validation/site6/.eclipseUM
    update/org.eclipse.update.tests.core/data/validation/site6/children/children/eclipse/.eclipseextension
    update/org.eclipse.update.tests.core/data/xmls/apitests/org.eclipse.test.feature_1.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/xmls/apitests/org.eclipse_test_feature/feature.xml
    update/org.eclipse.update.tests.core/data/xmls/feature_1.0.0/feature.xml
    update/org.eclipse.update.tests.core/data/xmls/feature_1.0.0/feature1.gif
    update/org.eclipse.update.tests.core/data/xmls/site1/site.xml
    update/org.eclipse.update.tests.core/plugin.properties
    update/org.eclipse.update.tests.core/plugin.xml
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/AllTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/UpdateManagerTestCase.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/UpdateTestsPlugin.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/AllAPITests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/DefaultFeature.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/MyURLEntry.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestDefaultExecutableFeatureAPI.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestDefaultPackageFeatureAPI.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestFeatureContentProvider_FileFilterAPI.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestLocalSiteAPI.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestNestedFeatureAPI.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestPluginContainerAPI.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestSiteAPI.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestSiteManagerAPI.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestUpdateManagerUtilsAPI.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/AllBrandingTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/BundleProviderTest.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/ProductTest.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/AllConfigurationsTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/TestBackward.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/TestRevert.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/AllPlatformConfigurationTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/PlatformConfigurationTestCase.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/TestPlatCfgAPI.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/TestPlatCfgDefault.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/implementation/SiteFTP.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/implementation/SiteFTPFactory.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/AllMirrorTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/MirrorManagerTestCase.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteDoubleEmbeddedFeatureMirror.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteEmbeddedFeatureMirror.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteFeatureVersionMirror.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/AllModelTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/FeatureMain.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/SiteMain.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/feature.xml
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site.xml
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site_old_format.xml
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site_with_type.xml
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/test.properties
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nativeTests/TestLocalSystemInfo.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nestedfeatures/AllNestedTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nestedfeatures/TestInstall.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/AllParserTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestCategories.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestFeatureParse.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestSiteParse.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/perfms/AllPerformanceTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/perfms/TestStartup.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/reconciliation/AllReconciliationTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/reconciliation/TestSiteReconciliation.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/AllRegularInstallTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/MultipleTestLocalSite.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestDataEntryInstall.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestExecutableInstall.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestExecutablePackagedInstall.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestGetFeature.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestInstall.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestInstallURLSIteXML.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestLocalSite.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestSpaceInInstall.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularRemove/AllRegularRemoveTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularRemove/TestRemove.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/sitevalidation/AllSiteValidationTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/sitevalidation/TestSiteValidation.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/AllStandaloneTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/StandaloneManagerTestCase.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestBundlesInstall.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureDisable.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureEnable.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureInstall.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureUninstall.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureUpdate.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/AllTypesTests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/TestFeatureType.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/TestSiteType.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/uivalues/AllCoreUITests.java
    update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/uivalues/TestUILabel.java
    update/org.eclipse.update.tests.core/test.xml
    update/org.eclipse.update.tests.core/test_with_mail.xml
    update/org.eclipse.update.tests.core/webserver/Site with space/features space/helpFeature.jar
    update/org.eclipse.update.tests.core/webserver/Site with space/features space/space feature.jar
    update/org.eclipse.update.tests.core/webserver/Site with space/info/img/top_titlsm.gif
    update/org.eclipse.update.tests.core/webserver/Site with space/info/img/wel_ml.jpg
    update/org.eclipse.update.tests.core/webserver/Site with space/info/siteInfo.html
    update/org.eclipse.update.tests.core/webserver/Site with space/install/features space/feature3/feature.xml
    update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/Pde_core.jar
    update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/help.jar
    update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/junit_3.7.jar
    update/org.eclipse.update.tests.core/webserver/Site with space/site.xml
    update/org.eclipse.update.tests.core/webserver/UpdateManager/features/helpFeature.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager/features/org.eclipse.pde.feature_1.0.0.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager/info/img/top_titlsm.gif
    update/org.eclipse.update.tests.core/webserver/UpdateManager/info/img/wel_ml.jpg
    update/org.eclipse.update.tests.core/webserver/UpdateManager/info/siteInfo.html
    update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/Pde_core.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/help.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/junit_3.7.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager/site.xml
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/features2.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse.test.feature_1.0.0.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse.update.core.tests.feature1_1.0.4.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse_test_feature.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/features/org.eclipse.update.core.tests.childrenfeature_2.0.0.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/features/rootfeature.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/site.xml
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.feature1.plugin1_1.1.1.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.feature2.plugin2_2.2.2.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.dummy_7.9.8.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/site.properties
    update/org.eclipse.update.tests.core/webserver/UpdateManager2/site.xml
    update/org.eclipse.update.tests.core/webserver/WEB-INF/web.xml
    update/org.eclipse.update.tests.core/webserver/bundleSite/features/com.example.bundle.feature_1.0.0.jar
    update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.budle.fragment.ui_1.0.0.jar
    update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.fragment_1.0.0.jar
    update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.plugin.ui_2.0.0.jar
    update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.plugin_1.0.0.jar
    update/org.eclipse.update.tests.core/webserver/bundleSite/site.xml
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.classpath
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.project
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.template
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/build.properties
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/fragment.xml
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/.project
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/build.properties
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/feature.xml
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.classpath
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.project
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.template
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/build.properties
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/fragment.xml
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.classpath
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.project
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.template
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/bin/com/example/bundle/plugin/ui/UiPlugin.class
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/build.properties
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/plugin.xml
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/src/com/example/bundle/plugin/ui/UiPlugin.java
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.classpath
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.project
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.template
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/META-INF/MANIFEST.MF
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/bin/com/example/bundle/plugin/PluginPlugin.class
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/build.properties
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/plugin.xml
    update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/src/com/example/bundle/plugin/PluginPlugin.java
    update/org.eclipse.update.ui.forms/.classpath
    update/org.eclipse.update.ui.forms/.cvsignore
    update/org.eclipse.update.ui.forms/.project
    update/org.eclipse.update.ui.forms/about.html
    update/org.eclipse.update.ui.forms/build.properties
    update/org.eclipse.update.ui.forms/plugin.properties
    update/org.eclipse.update.ui.forms/plugin.xml
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/AbstractForm.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/AbstractSectionForm.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/CustomWorkbook.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ExpandableGroup.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormButton.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormEntry.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormLabel.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormSection.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormWidgetFactory.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormsPlugin.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormsPluginResources.properties
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HTMLTableLayout.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkAdapter.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkHandler.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkSettings.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IForm.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormPage.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormSelectionListener.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormTextListener.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormWorkbook.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IHyperlinkListener.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ILayoutExtension.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/NoTabsWorkbook.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ScrollableSectionForm.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SectionChangeManager.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SectionForm.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SelectableControl.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SelectableFormLabel.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/TableData.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/TableLayoutTest.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ToggleControl.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/WebForm.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/BulletParagraph.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/FormEngine.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/FormEngineLayout.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HTTPAction.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HyperlinkAction.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HyperlinkSegment.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IBulletParagraph.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IHyperlinkSegment.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IImageSegment.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IObjectReference.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IParagraph.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IParagraphSegment.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ITextModel.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ITextSegment.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ImageSegment.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Locator.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Paragraph.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ParagraphSegment.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/TextModel.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/TextSegment.java
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/image1.gif
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/index.xml
    update/org.eclipse.update.ui.win32/.classpath
    update/org.eclipse.update.ui.win32/.cvsignore
    update/org.eclipse.update.ui.win32/.project
    update/org.eclipse.update.ui.win32/about.html
    update/org.eclipse.update.ui.win32/build.properties
    update/org.eclipse.update.ui.win32/icons/full/clcl16/backward_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/clcl16/forward_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/clcl16/go_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/clcl16/hierarchicalLayout.gif
    update/org.eclipse.update.ui.win32/icons/full/clcl16/home_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/clcl16/refresh_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/clcl16/show_unconf.gif
    update/org.eclipse.update.ui.win32/icons/full/clcl16/stop_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/cview16/browser.gif
    update/org.eclipse.update.ui.win32/icons/full/dlcl16/backward_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/dlcl16/forward_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/dlcl16/go_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/dlcl16/hierarchicalLayout.gif
    update/org.eclipse.update.ui.win32/icons/full/dlcl16/home_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/dlcl16/refresh_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/dlcl16/show_unconf.gif
    update/org.eclipse.update.ui.win32/icons/full/dlcl16/stop_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/elcl16/backward_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/elcl16/collapseall.gif
    update/org.eclipse.update.ui.win32/icons/full/elcl16/forward_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/elcl16/go_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/elcl16/hierarchicalLayout.gif
    update/org.eclipse.update.ui.win32/icons/full/elcl16/home_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/elcl16/refresh_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/elcl16/show_unconf.gif
    update/org.eclipse.update.ui.win32/icons/full/elcl16/stop_nav.gif
    update/org.eclipse.update.ui.win32/icons/full/eview16/browser.gif
    update/org.eclipse.update.ui.win32/icons/full/forms/def_provider.jpg
    update/org.eclipse.update.ui.win32/icons/full/forms/form_banner.gif
    update/org.eclipse.update.ui.win32/icons/full/forms/form_banner.jpg
    update/org.eclipse.update.ui.win32/icons/full/forms/form_underline.jpg
    update/org.eclipse.update.ui.win32/icons/full/forms/form_underline2.jpg
    update/org.eclipse.update.ui.win32/icons/full/forms/topic.gif
    update/org.eclipse.update.ui.win32/icons/sample.gif
    update/org.eclipse.update.ui.win32/plugin.properties
    update/org.eclipse.update.ui.win32/plugin.xml
    update/org.eclipse.update.ui.win32/schema/welcomePages.exsd
    update/org.eclipse.update.ui.win32/schema/welcomeSections.exsd
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/ShowWelcomePageAction.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortal.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortalImages.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortalResources.properties
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/actions/TipsAndTricksContentProvider.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/actions/WelcomeContentProvider.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/HelpSection.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IFormContentObserver.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IFormContentProvider.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IPortalSectionForm.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/PortalSection.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/SectionDescriptor.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditor.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditorInput.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditorInputFactory.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalForm.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalPage.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalPart.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomeTitleArea.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/BrowserControlSite.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/GlobalActionHandler.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/IEmbeddedWebBrowser.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/IWebBrowserListener.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowser.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditor.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorContributor.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorInput.java
    update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorInputFactory.java
    update/org.eclipse.update.ui/.classpath
    update/org.eclipse.update.ui/.cvsignore
    update/org.eclipse.update.ui/.project
    update/org.eclipse.update.ui/Graphics_update.html
    update/org.eclipse.update.ui/about.html
    update/org.eclipse.update.ui/build.properties
    update/org.eclipse.update.ui/icons/dlcl16/collapseall.gif
    update/org.eclipse.update.ui/icons/dlcl16/hierarchicalLayout.gif
    update/org.eclipse.update.ui/icons/dlcl16/show_unconf.gif
    update/org.eclipse.update.ui/icons/dtool16/config_wiz.gif
    update/org.eclipse.update.ui/icons/dtool16/install_wiz.gif
    update/org.eclipse.update.ui/icons/dtool16/uninstall_wiz.gif
    update/org.eclipse.update.ui/icons/dtool16/update_wiz.gif
    update/org.eclipse.update.ui/icons/elcl16/collapseall.gif
    update/org.eclipse.update.ui/icons/elcl16/hierarchicalLayout.gif
    update/org.eclipse.update.ui/icons/elcl16/show_unconf.gif
    update/org.eclipse.update.ui/icons/etool16/config_wiz.gif
    update/org.eclipse.update.ui/icons/etool16/install_wiz.gif
    update/org.eclipse.update.ui/icons/etool16/uninstall_wiz.gif
    update/org.eclipse.update.ui/icons/etool16/update_wiz.gif
    update/org.eclipse.update.ui/icons/eview16/configs.gif
    update/org.eclipse.update.ui/icons/eview16/preview.gif
    update/org.eclipse.update.ui/icons/forms/def_provider.jpg
    update/org.eclipse.update.ui/icons/forms/form_banner.gif
    update/org.eclipse.update.ui/icons/forms/form_banner.jpg
    update/org.eclipse.update.ui/icons/forms/form_underline.jpg
    update/org.eclipse.update.ui/icons/forms/topic.gif
    update/org.eclipse.update.ui/icons/obj16/app_obj.gif
    update/org.eclipse.update.ui/icons/obj16/bfolder_obj.gif
    update/org.eclipse.update.ui/icons/obj16/category_obj.gif
    update/org.eclipse.update.ui/icons/obj16/config_obj.gif
    update/org.eclipse.update.ui/icons/obj16/efix2_obj.gif
    update/org.eclipse.update.ui/icons/obj16/efix_obj.gif
    update/org.eclipse.update.ui/icons/obj16/error_st_obj.gif
    update/org.eclipse.update.ui/icons/obj16/esite_obj.gif
    update/org.eclipse.update.ui/icons/obj16/feature_obj.gif
    update/org.eclipse.update.ui/icons/obj16/history_obj.gif
    update/org.eclipse.update.ui/icons/obj16/lsite_obj.gif
    update/org.eclipse.update.ui/icons/obj16/notinstalled_feature_obj.gif
    update/org.eclipse.update.ui/icons/obj16/ok_st_obj.gif
    update/org.eclipse.update.ui/icons/obj16/psite_obj.gif
    update/org.eclipse.update.ui/icons/obj16/site_obj.gif
    update/org.eclipse.update.ui/icons/obj16/unconf_feature_obj.gif
    update/org.eclipse.update.ui/icons/obj16/updates_obj.gif
    update/org.eclipse.update.ui/icons/obj16/usearch_obj.gif
    update/org.eclipse.update.ui/icons/obj16/web_bkmrk_obj.gif
    update/org.eclipse.update.ui/icons/ovr16/add_stat.gif
    update/org.eclipse.update.ui/icons/ovr16/current_co.gif
    update/org.eclipse.update.ui/icons/ovr16/del_stat.gif
    update/org.eclipse.update.ui/icons/ovr16/error_co.gif
    update/org.eclipse.update.ui/icons/ovr16/installable_co.gif
    update/org.eclipse.update.ui/icons/ovr16/linked_co.gif
    update/org.eclipse.update.ui/icons/ovr16/mod_co.gif
    update/org.eclipse.update.ui/icons/ovr16/unconfigured_co.gif
    update/org.eclipse.update.ui/icons/ovr16/updated_co.gif
    update/org.eclipse.update.ui/icons/ovr16/warning_co.gif
    update/org.eclipse.update.ui/icons/wizban/config_wiz.gif
    update/org.eclipse.update.ui/icons/wizban/def_wizban.jpg
    update/org.eclipse.update.ui/icons/wizban/install_wiz.gif
    update/org.eclipse.update.ui/icons/wizban/uninstall_wiz.gif
    update/org.eclipse.update.ui/icons/wizban/update_wiz.gif
    update/org.eclipse.update.ui/plugin.properties
    update/org.eclipse.update.ui/plugin.xml
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/ConfigurationManagerWindow.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/RestartDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateJob.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateLabelProvider.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUI.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIImages.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginResources.properties
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/BookmarkFolder.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/BookmarkUtil.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ConfiguredFeatureAdapter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ConfiguredSiteAdapter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/DiscoveryFolder.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/FeatureAdapter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/FeatureReferenceAdapter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredFeatureAdapter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredSiteAdapter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredSiteContext.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IFeatureAdapter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ISiteAdapter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/MissingFeature.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/NamedModelObject.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SimpleFeatureAdapter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SiteBookmark.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SiteCategory.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/UIModelObject.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/UpdateModel.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/AbstractOverlayIcon.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/DefaultContentProvider.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/ImageOverlayIcon.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/OverlayIcon.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/PixelConverter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/SWTUtil.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/SharedLabelProvider.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/preferences/MainPreferencePage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/preferences/UpdateSettingsPreferencePage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/ConfiguredSitePropertyPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureCopyrightPropertyPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureGeneralPropertyPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureLicensePropertyPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureStatusPropertyPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/InstallConfigurationPropertyPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/Authentication.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationService.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/UpdateManagerAuthenticator.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/UserValidationDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationPreview.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationView.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FeatureStateAction.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FindUpdatesAction.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/IPreviewTask.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/InstallOptionalFeatureAction.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/InstallationHistoryAction.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/NewExtensionLocationAction.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ReplaceVersionAction.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/RevertConfigurationAction.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ShowActivitiesAction.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/SiteStateAction.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UninstallFeatureAction.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ActivitiesTableViewer.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/BannerPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ContainerCheckedTreeViewer.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/DuplicateConflictsDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/EditSiteDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureSorter.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/IDynamicPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ISearchProvider.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard2.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LicensePage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LocalSiteSelector.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/MirrorsDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ModeSelectionPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdateSiteDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewWebSiteDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/OptionalFeaturesPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReplaceFeatureVersionWizard.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReplaceFeatureVersionWizardPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ResizableInstallWizardDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/RevertConfigurationWizard.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/RevertConfigurationWizardPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReviewPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ShowActivitiesDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitePage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitesImportExport.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TableLayoutComposite.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetPage.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetSiteDialog.java
    update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/UIProblemHandler.java
    update/org.eclipse.update.ui/src/org/eclipse/update/ui/UpdateManagerUI.java
    update/org.eclipse.update.ui/src_webapp/org/eclipse/update/internal/ui/servlets/InstallServlet.java
    update/org.eclipse.update.ui/src_webapp/org/eclipse/update/internal/ui/servlets/ServletsUtil.java
    update/org.eclipse.update.ui/webapp/WEB-INF/.cvsignore
    update/org.eclipse.update.ui/webapp/WEB-INF/lib/.cvsignore
    update/org.eclipse.update.ui/webapp/WEB-INF/web.xml
    update/org.eclipse.update.ui/webapp/images/backward_nav.gif
    update/org.eclipse.update.ui/webapp/images/form_banner.jpg
    update/org.eclipse.update.ui/webapp/images/form_underline.jpg
    update/org.eclipse.update/.classpath
    update/org.eclipse.update/.cvsignore
    update/org.eclipse.update/.project
    update/org.eclipse.update/.vcm_meta
diff --git a/ant/org.eclipse.ant.tests.core/.classpath b/ant/org.eclipse.ant.tests.core/.classpath
deleted file mode 100644
index 0b19baf..0000000
--- a/ant/org.eclipse.ant.tests.core/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="test plugin"/>
-	<classpathentry kind="src" path="tests"/>
-	<classpathentry output="test_support_bin" kind="src" path="test support"/>
-	<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/ant/org.eclipse.ant.tests.core/.cvsignore b/ant/org.eclipse.ant.tests.core/.cvsignore
deleted file mode 100644
index 0b48495..0000000
--- a/ant/org.eclipse.ant.tests.core/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-lib
-test_support_bin
diff --git a/ant/org.eclipse.ant.tests.core/.externalToolBuilders/Ant Test Support Lib Builder.launch b/ant/org.eclipse.ant.tests.core/.externalToolBuilders/Ant Test Support Lib Builder.launch
deleted file mode 100644
index 601d4a0..0000000
--- a/ant/org.eclipse.ant.tests.core/.externalToolBuilders/Ant Test Support Lib Builder.launch
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean"/>
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.core/test support/org&quot; type=&quot;2&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml&quot; type=&quot;1&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
-<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.core&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml}"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_RUN_IN_BACKGROUND" value="false"/>
-</launchConfiguration>
diff --git a/ant/org.eclipse.ant.tests.core/.project b/ant/org.eclipse.ant.tests.core/.project
deleted file mode 100644
index 75985e8..0000000
--- a/ant/org.eclipse.ant.tests.core/.project
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ant.tests.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.externalToolBuilders/Ant Test Support Lib Builder.launch</value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.jdt.core.prefs b/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 4067439..0000000
--- a/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Aug 02 09:29:34 GMT-08:00 2004

-org.eclipse.jdt.core.compiler.problem.unusedImport=warning

-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore

-eclipse.preferences.version=1

diff --git a/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.core.prefs b/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index f01a374..0000000
--- a/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu May 27 14:48:43 PDT 2004

-eclipse.preferences.version=1

-selfhosting.binExcludes=/org.eclipse.ant.tests.core/test_support_bin

diff --git a/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.prefs b/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index f345b78..0000000
--- a/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Wed Nov 24 22:36:24 GMT-08:00 2004

-compilers.p.unused-element-or-attribute=1

-compilers.p.unresolved-ex-points=0

-compilers.p.deprecated=1

-compilers.p.unknown-element=0

-compilers.p.unknown-resource=1

-compilers.p.unknown-class=1

-compilers.p.unknown-attribute=0

-compilers.p.no-required-att=0

-eclipse.preferences.version=1

-compilers.p.unresolved-import=0

-compilers.p.not-externalized-att=1

-compilers.p.illegal-att-value=0

-compilers.use-project=true

diff --git a/ant/org.eclipse.ant.tests.core/about.html b/ant/org.eclipse.ant.tests.core/about.html
deleted file mode 100644
index d57b432..0000000
--- a/ant/org.eclipse.ant.tests.core/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>16th October, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/build.properties b/ant/org.eclipse.ant.tests.core/build.properties
deleted file mode 100644
index a6804c3..0000000
--- a/ant/org.eclipse.ant.tests.core/build.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 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
-###############################################################################
-bin.includes = plugin.xml,\
-			   plugin.properties,\
-               test.xml,\
-               about.html,\
-               testbuildfiles/,\
-               testresources/,\
-               testlib/,\
-               lib/,\
-               lib/*.jar,\
-               *.jar
-               
-source.anttestscore.jar = test plugin/,\
-                         tests/,\
-                         buildfiles/
-source.lib/antTestsSupport.jar = test support/
-jars.compile.order=anttestscore.jar,lib/antTestsSupport.jar
diff --git a/ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml b/ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml
deleted file mode 100644
index 0e05c2d..0000000
--- a/ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="build tests support jar" default="build" basedir="..">
-
-	<property name="bootclasspath" value=""/>
-
-	<target name="build" description="Removes all build artifacts, recreates the support jar, and refreshes this plugin's resources" depends="clean, lib/antTestsSupport.jar"/>
-
-	<target name="init" depends="properties">
-		<property name="version.suffix" value="_3.1.0"/>
-		<property name="version.suffix.old" value="_3.0.0"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}"/>
-	</target>
-
-	<target name="properties" if="eclipse.running">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-	</target>
-
-	<target name="lib/antTestsSupport.jar" depends="init" description= "Builds the support JAR">
-		<property name="destdir" value="${temp.folder}/lib/antTestsSupport.jar.bin"/>
-		<delete dir="${temp.folder}/lib/antTestsSupport.jar.bin"/>
-		<mkdir dir="${temp.folder}/lib/antTestsSupport.jar.bin"/>
-		<!-- compile the source code -->
-		<javac target="1.1" destdir="${temp.folder}/lib/antTestsSupport.jar.bin" failonerror="false" verbose="false" debug="on" includeAntRuntime="yes" bootclasspath="${bootclasspath}" 
-			classpath="${basedir}/../org.eclipse.core.runtime/bin;
-			${eclipse.home}/plugins/org.eclipse.core.runtime${version.suffix}/runtime.jar;
-			${basedir}/bin;
-			${eclipse.home}/plugins/org.eclipse.ant.core${version.suffix}/antsupport.jar;
-			${basedir}/../org.eclipse.ant.core/bin">
-			<src path="test support/"/>
-		</javac>
-		<mkdir dir="${build.result.folder}/lib"/>
-		<jar destfile="${build.result.folder}/lib/antTestsSupport.jar" basedir="${temp.folder}/lib/antTestsSupport.jar.bin"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${build.result.folder}/lib/antTestsSupport.jar"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/lib/.cvsignore b/ant/org.eclipse.ant.tests.core/lib/.cvsignore
deleted file mode 100644
index 3740b60..0000000
--- a/ant/org.eclipse.ant.tests.core/lib/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-antTestsSupport.jar
diff --git a/ant/org.eclipse.ant.tests.core/plugin.properties b/ant/org.eclipse.ant.tests.core/plugin.properties
deleted file mode 100644
index a815294..0000000
--- a/ant/org.eclipse.ant.tests.core/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 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
-###############################################################################
-
-pluginName=Ant Core Test Plugin
-providerName=Eclipse.org
diff --git a/ant/org.eclipse.ant.tests.core/plugin.xml b/ant/org.eclipse.ant.tests.core/plugin.xml
deleted file mode 100644
index 759293c..0000000
--- a/ant/org.eclipse.ant.tests.core/plugin.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.ant.tests.core"
-   name="%pluginName"
-   version="3.1.0"
-   provider-name="%providerName"
-   class="org.eclipse.ant.tests.core.testplugin.AntTestPlugin">
-
-   <runtime>
-      <library name="anttestscore.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui.ide" optional="true"/>
-      <import plugin="org.apache.ant"/>
-      <import plugin="org.junit"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.ant.core"/>
-      <import plugin="org.eclipse.core.runtime"/>
-   </requires>
-
-
-   <extension
-         point="org.eclipse.ant.core.extraClasspathEntries">
-      <extraClasspathEntry
-            library="lib/antTestsSupport.jar">
-      </extraClasspathEntry>
-   </extension>
-   
-   <extension point="org.eclipse.ant.core.antTasks">
-	    <antTask 
-	    	name="coolTask" 
-	    	class="org.eclipse.ant.tests.core.support.tasks.AntTestTask"
-	    	library="lib/antTestsSupport.jar"
-	    	headless="false">
-	    </antTask>
-   </extension>
-
-	<extension point="org.eclipse.ant.core.antTypes">
-	    <antType 
-	    	name="coolType" 
-	    	class="org.eclipse.ant.tests.core.support.types.AntTestPath"
-	    	library="lib/antTestsSupport.jar"
-	    	headless="false">
-	    </antType>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ant.core.antProperties">
-      <antProperty
-            name="property.testing"
-            value="true">
-      </antProperty>
-       <antProperty
-            name="property.testing2"
-            value="hey"
-            class= "org.eclipse.does.not.exist">
-      </antProperty>
-      <antProperty
-            name="property.testing3"
-            class= "org.eclipse.ant.tests.core.testplugin.AntTestPropertyValueProvider">
-      </antProperty>
-       <antProperty
-            name="property.headless"
-            value="headless"
-            headless= "false">
-      </antProperty>
-   </extension>
-
-</plugin>
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntFileRunner.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntFileRunner.java
deleted file mode 100644
index 64e8216..0000000
--- a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntFileRunner.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core.testplugin;
-
-
-import org.eclipse.ant.core.AntRunner;
-import org.eclipse.ant.tests.core.AbstractAntTest;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Responsible for running test ant build files.
- */
-public class AntFileRunner {
-	
-	private static final String BASE_DIR_PREFIX = "-Dbasedir="; //$NON-NLS-1$
-
-	public void run(IFile buildFile, String[] targets, String[] args, String baseDir, boolean captureOutput) throws CoreException {
-	
-		AntRunner runner = new AntRunner();
-
-		String[] runnerArgs = args;
-
-		if (baseDir.length() > 0) {
-			// Ant requires the working directory to be specified
-			// as one of the arguments, so it needs to be appended.
-			int length = 1;
-			if (args != null) {
-				length = args.length + 1;
-			} 
-			
-			runnerArgs = new String[length];
-			if (args != null) {
-				System.arraycopy(args, 0, runnerArgs, 0, args.length);
-			}
-			runnerArgs[length - 1] = BASE_DIR_PREFIX + baseDir;
-		}
-		runner.setArguments(runnerArgs);
-
-		if (buildFile != null) {
-			runner.setBuildFileLocation(buildFile.getLocation().toFile().toString());
-		}
-		if (targets != null && targets.length > 0) {
-			runner.setExecutionTargets(targets);
-		}
-		if (captureOutput) {
-			runner.addBuildLogger(AbstractAntTest.ANT_TEST_BUILD_LOGGER);
-		}
-
-		runner.run(null);
-	}
-	
-	public void run(String[] args, String baseDir) throws Exception {
-	
-		AntRunner runner = new AntRunner();
-
-		String[] runnerArgs = args;
-
-		if (baseDir.length() > 0) {
-			// Ant requires the working directory to be specified
-			// as one of the arguments, so it needs to be appended.
-			runnerArgs = new String[args.length + 1];
-			System.arraycopy(args, 0, runnerArgs, 0, args.length);
-			runnerArgs[args.length] = BASE_DIR_PREFIX + baseDir;
-		}
-		runner.setArguments(runnerArgs);
-
-		runner.run(args);
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java
deleted file mode 100644
index ccc5816..0000000
--- a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core.testplugin;
-
-
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
-public class AntTestChecker {
-	
-	private static AntTestChecker deflt= null;
-	
-	private int taskStartedCount;
-	
-	private int taskFinishedCount;
-	
-	private int targetsStartedCount;
-	
-	private int targetsFinishedCount;
-	
-	private int buildsStartedCount;
-	
-	private int buildsFinishedCount;
-	
-	private List messages= new ArrayList();
-	
-	private List targets= new ArrayList();
-	
-	private List tasks= new ArrayList();
-	
-	private List projects= new ArrayList();
-	
-	private Hashtable userProperties;
-	
-	private List nameOfListeners= new ArrayList();
-	
-	private AntTestChecker()  {
-	}
-	
-	/**
-	 * Returns the singleton AntTestChecker
-	 */
-	public static AntTestChecker getDefault() {
-		if (deflt == null) {
-			deflt= new AntTestChecker();
-		}
-		return deflt;
-	}
-	
-	/**
-	 * Resets the singleton AntTestChecker
-	 */
-	public static void reset() {
-		if (deflt != null) {
-			deflt.resetState();
-		}
-	}
-	/**
-	 * @see org.apache.tools.ant.BuildListener#buildFinished(org.apache.tools.ant.BuildEvent)
-	 */
-	public void buildFinished() {
-		buildsFinishedCount++;
-	}
-
-	
-	public void buildStarted(String projectName) {
-		buildsStartedCount++;
-		projects.add(projectName);
-	}
-
-	
-	public void messageLogged(String message) {
-		messages.add(message);
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#targetFinished(org.apache.tools.ant.BuildEvent)
-	 */
-	public void targetFinished() {
-		targetsFinishedCount++;
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#targetStarted(org.apache.tools.ant.BuildEvent)
-	 */
-	public void targetStarted(String targetName) {
-		targetsStartedCount++;
-		targets.add(targetName);
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#taskFinished(org.apache.tools.ant.BuildEvent)
-	 */
-	public void taskFinished() {
-		taskFinishedCount++;
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#taskStarted(org.apache.tools.ant.BuildEvent)
-	 */
-	public void taskStarted(String taskName) {
-		taskStartedCount++;
-		tasks.add(taskName);
-	}
-	
-	/**
-	 * Returns the buildsFinishedCount.
-	 * @return int
-	 */
-	public int getBuildsFinishedCount() {
-		return buildsFinishedCount;
-	}
-
-	/**
-	 * Returns the buildsStartedCount.
-	 * @return int
-	 */
-	public int getBuildsStartedCount() {
-		return buildsStartedCount;
-	}
-
-	/**
-	 * Returns the messagesLoggedCount.
-	 * @return int
-	 */
-	public int getMessagesLoggedCount() {
-		return messages.size();
-	}
-
-	/**
-	 * Returns the targetsFinishedCount.
-	 * @return int
-	 */
-	public int getTargetsFinishedCount() {
-		return targetsFinishedCount;
-	}
-
-	/**
-	 * Returns the targetsStartedCount.
-	 * @return int
-	 */
-	public int getTargetsStartedCount() {
-		return targetsStartedCount;
-	}
-
-	/**
-	 * Returns the taskFinishedCount.
-	 * @return int
-	 */
-	public int getTaskFinishedCount() {
-		return taskFinishedCount;
-	}
-
-	/**
-	 * Returns the taskStartedCount.
-	 * @return int
-	 */
-	public int getTaskStartedCount() {
-		return taskStartedCount;
-	}
-	
-	protected void resetState() {
-		taskStartedCount= 0;
-		taskFinishedCount= 0;
-		targetsStartedCount= 0;
-		targetsFinishedCount= 0;
-		buildsStartedCount= 0;
-		buildsFinishedCount= 0;
-		messages= new ArrayList();
-		tasks= new ArrayList();
-		targets= new ArrayList();
-		projects= new ArrayList();
-		userProperties= null;
-		nameOfListeners= new ArrayList();
-	}
-	
-	/**
-     * Return the message n from the last:
-     * e.g. getLoggedMessage(0) returns the most recent message
-     * 
-	 * @param n message index
-	 * @return the nth last message
-	 */
-    public String getLoggedMessage(int n) {
-        n = messages.size() - (n + 1);
-        if ((n < 0) || (n >= messages.size())) {
-            return null;
-        }
-        return (String) messages.get(n);
-    }
-
-    public String getLastMessageLogged() {
-        return getLoggedMessage(0);
-    }
-	
-	public void setUserProperties(Hashtable userProperties) {
-		this.userProperties= userProperties;
-	}
-
-	public String getUserProperty(String name) {
-		return (String)userProperties.get(name);
-	}
-	
-	public List getMessages() {
-		return messages;
-	}
-	
-	public List getListeners() {
-		return nameOfListeners;
-	}
-	
-	public String getLastListener() {
-		return (String)nameOfListeners.get(nameOfListeners.size() - 1);
-	}
-
-
-	public void addNameOfListener(String nameOfListener) {
-		this.nameOfListeners.add(nameOfListener);
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPlugin.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPlugin.java
deleted file mode 100644
index 8ab76ab..0000000
--- a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPlugin.java
+++ /dev/null
@@ -1,59 +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 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.ant.tests.core.testplugin;
-
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.Bundle;
-
-
-public class AntTestPlugin extends AbstractUIPlugin {
-	
-	private static AntTestPlugin deflt;
-	
-	public AntTestPlugin() {
-		super();
-		deflt= this;
-	}
-	
-	public static AntTestPlugin getDefault() {
-		return deflt;
-	}
-	
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-	
-	public static void enableAutobuild(boolean enable) throws CoreException {
-		// disable auto build
-		IWorkspace workspace= AntTestPlugin.getWorkspace();
-		IWorkspaceDescription desc= workspace.getDescription();
-		desc.setAutoBuilding(enable);
-		workspace.setDescription(desc);
-	}
-	
-	public File getFileInPlugin(IPath path) {
-		try {
-			Bundle bundle = getDefault().getBundle();
-			URL installURL= new URL(bundle.getEntry("/"), path.toString());
-			URL localURL= Platform.asLocalURL(installURL);
-			return new File(localURL.getFile());
-		} catch (IOException e) {
-			return null;
-		}
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPropertyValueProvider.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPropertyValueProvider.java
deleted file mode 100644
index 7d9ac88..0000000
--- a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPropertyValueProvider.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 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.ant.tests.core.testplugin;
-
-import org.eclipse.ant.core.IAntPropertyValueProvider;
-
-public class AntTestPropertyValueProvider implements IAntPropertyValueProvider {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ant.core.IAntPropertyValueProvider#getAntPropertyValue(java.lang.String)
-	 */
-	public String getAntPropertyValue(String antPropertyName) {
-		return "AntTestPropertyValueProvider";
-	}
-
-}
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/ProjectHelper.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/ProjectHelper.java
deleted file mode 100644
index fecbbef..0000000
--- a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/ProjectHelper.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core.testplugin;
-
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.wizards.datatransfer.*;
-
-/**
- * Helper methods to set up an IProject.
- */
-public class ProjectHelper {
-	
-	public static final IPath TEST_BUILDFILES_DIR= new Path("testbuildfiles");
-	public static final IPath TEST_RESOURCES_DIR= new Path("testresources");	
-	public static final IPath TEST_LIB_DIR= new Path("testlib");
-	
-	/**
-	 * Creates a IProject.
-	 */	
-	public static IProject createProject(String projectName) throws CoreException {
-		IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
-		IProject project= root.getProject(projectName);
-		if (!project.exists()) {
-			project.create(null);
-		} else {
-			project.refreshLocal(IResource.DEPTH_INFINITE, null);
-		}
-		
-		if (!project.isOpen()) {
-			project.open(null);
-		}
-		
-		return project;
-	}
-	
-	/**
-	 * Removes an IProject.
-	 */		
-	public static void delete(IProject project) throws CoreException {
-		project.delete(true, true, null);
-	}
-
-
-	/**
-	 * Adds a folder to an IProject.
-	 */		
-	public static IFolder addFolder(IProject project, String containerName) throws CoreException {
-		
-			IFolder folder= project.getFolder(containerName);
-			if (!folder.exists()) {
-				folder.create(false, true, null);
-			}
-		
-		return folder;
-		
-	}
-	
-	public static void importFilesFromDirectory(File rootDir, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException, IOException {		
-		IImportStructureProvider structureProvider = FileSystemStructureProvider.INSTANCE;
-		List files = new ArrayList(100);
-		addFiles(rootDir, files);
-		try {
-			ImportOperation op= new ImportOperation(destPath, rootDir, structureProvider, new ImportOverwriteQuery(), files);
-			op.setCreateContainerStructure(false);
-			op.run(monitor);
-		} catch (InterruptedException e) {
-			// should not happen
-		}
-	}	
-	
-	private static void addFiles(File dir, List collection) throws IOException {
-		File[] files = dir.listFiles();
-		List subDirs = new ArrayList(2);
-		for (int i = 0; i < files.length; i++) {
-			if (files[i].isFile()) {
-				collection.add(files[i]);
-			} else if (files[i].isDirectory()) {
-				subDirs.add(files[i]);
-			}
-		}
-		Iterator iter = subDirs.iterator();
-		while (iter.hasNext()) {
-			File subDir = (File)iter.next();
-			addFiles(subDir, collection);
-		}
-	}
-	
-	private static class ImportOverwriteQuery implements IOverwriteQuery {
-		public String queryOverwrite(String file) {
-			return ALL;
-		}	
-	}			
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/inputHandlers/AntTestInputHandler.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/inputHandlers/AntTestInputHandler.java
deleted file mode 100644
index 34d77d4..0000000
--- a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/inputHandlers/AntTestInputHandler.java
+++ /dev/null
@@ -1,36 +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 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.ant.tests.core.support.inputHandlers;
-
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.input.DefaultInputHandler;
-import org.apache.tools.ant.input.InputRequest;
-
-/**
- * A test input handler when using Ant within Eclipse.
- * This is the class that will respond to <input> requests from
- * within an Ant build file.
- * If the build is occurring in Ant 1.6.0 and the -noinput option has been specified
- * this input handler will fail.
- */
-public class AntTestInputHandler extends DefaultInputHandler {
-	
-	/* (non-Javadoc)
-	 * @see org.apache.tools.ant.input.InputHandler#handleInput(org.apache.tools.ant.input.InputRequest)
-	 */
-	public void handleInput(InputRequest request) throws BuildException {
-		if (System.getProperty("eclipse.ant.noInput") != null) { //$NON-NLS-1$
-			throw new BuildException("Unable to respond to input request likely as a result of specifying the -noinput command");
-		}
-		request.setInput("testing handling input requests");
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask.java
deleted file mode 100644
index c73c836..0000000
--- a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core.support.tasks;
-
-
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Echo;
-
-
-public class AntTestTask extends Task {
-	
-	public AntTestTask() {
-		super();
-	}
-	
-	/**
-	 * @see org.apache.tools.ant.Task#execute()
-	 */
-	public void execute() throws BuildException {
-		Echo echo= new Echo();
-		echo.setProject(getProject());
-		echo.setMessage("Testing Ant in Eclipse with a custom task");
-		echo.execute();
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.java
deleted file mode 100644
index 59dddc7..0000000
--- a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 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.ant.tests.core.support.tasks;
-
-
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Echo;
-
-
-public class AntTestTask2 extends Task {
-	
-	public AntTestTask2() {
-		super();
-	}
-	
-	/**
-	 * @see org.apache.tools.ant.Task#execute()
-	 */
-	public void execute() throws BuildException {
-		Echo echo= new Echo();
-		echo.setProject(getProject());
-		echo.setMessage("Testing Ant in Eclipse with a custom task");
-		echo.execute();
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildListener.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildListener.java
deleted file mode 100644
index 30d4ddf..0000000
--- a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildListener.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core.support.testloggers;
-
-
-import org.apache.tools.ant.BuildEvent;
-import org.apache.tools.ant.BuildListener;
-import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
-
-
-public class TestBuildListener implements BuildListener {
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#buildFinished(org.apache.tools.ant.BuildEvent)
-	 */
-	public void buildFinished(BuildEvent event) {
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#buildStarted(org.apache.tools.ant.BuildEvent)
-	 */
-	public void buildStarted(BuildEvent event) {
-		AntTestChecker.getDefault().addNameOfListener(this.getClass().getName());
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#messageLogged(org.apache.tools.ant.BuildEvent)
-	 */
-	public void messageLogged(BuildEvent event) {
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#targetFinished(org.apache.tools.ant.BuildEvent)
-	 */
-	public void targetFinished(BuildEvent event) {
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#targetStarted(org.apache.tools.ant.BuildEvent)
-	 */
-	public void targetStarted(BuildEvent event) {
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#taskFinished(org.apache.tools.ant.BuildEvent)
-	 */
-	public void taskFinished(BuildEvent event) {
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#taskStarted(org.apache.tools.ant.BuildEvent)
-	 */
-	public void taskStarted(BuildEvent event) {
-	}
-
-}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java
deleted file mode 100644
index da7dbf2..0000000
--- a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java
+++ /dev/null
@@ -1,178 +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
- *******************************************************************************/
-package org.eclipse.ant.tests.core.support.testloggers;
-
-
-import java.io.PrintStream;
-
-import org.apache.tools.ant.BuildEvent;
-import org.apache.tools.ant.BuildLogger;
-import org.apache.tools.ant.Project;
-import org.eclipse.ant.core.AntSecurityException;
-import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
-import org.eclipse.core.runtime.OperationCanceledException;
-
-public class TestBuildLogger implements BuildLogger {
-
-	private int fMessageOutputLevel= Project.MSG_INFO;
-	private PrintStream fErr= null;
-	private PrintStream fOut= null;
-    private boolean fSetProperties= true;
-	
-	/**
-	 * An exception that has already been logged.
-	 */
-	private Throwable fHandledException= null;
-	
-	
-	public TestBuildLogger() {
-	}
-	
-	/**
-	 * @see org.apache.tools.ant.BuildLogger#setMessageOutputLevel(int)
-	 */
-	public void setMessageOutputLevel(int level) {
-		fMessageOutputLevel= level;
-	}
-	
-	protected int getMessageOutputLevel() {
-		return fMessageOutputLevel;
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildLogger#setEmacsMode(boolean)
-	 */
-	public void setEmacsMode(boolean emacsMode) {
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#buildStarted(org.apache.tools.ant.BuildEvent)
-	 */
-	public void buildStarted(BuildEvent event) {
-		AntTestChecker.getDefault().buildStarted(event.getProject().getName());
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#buildFinished(org.apache.tools.ant.BuildEvent)
-	 */
-	public void buildFinished(BuildEvent event) {
-		handleException(event);
-		fHandledException= null;
-		AntTestChecker.getDefault().buildFinished();
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#targetStarted(org.apache.tools.ant.BuildEvent)
-	 */
-	public void targetStarted(BuildEvent event) {
-		AntTestChecker.getDefault().targetStarted(event.getTarget().getName());
-        if (fSetProperties) {
-            fSetProperties= false;
-            AntTestChecker.getDefault().setUserProperties(event.getProject().getProperties());
-        }
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#targetFinished(org.apache.tools.ant.BuildEvent)
-	 */
-	public void targetFinished(BuildEvent event) {
-		handleException(event);
-		AntTestChecker.getDefault().targetFinished();
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#taskStarted(org.apache.tools.ant.BuildEvent)
-	 */
-	public void taskStarted(BuildEvent event) {
-		AntTestChecker.getDefault().taskStarted(event.getTask().getTaskName());
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildListener#taskFinished(org.apache.tools.ant.BuildEvent)
-	 */
-	public void taskFinished(BuildEvent event) {
-		handleException(event);
-		AntTestChecker.getDefault().targetFinished();
-	}
-
-	/**
-	 * @see BuildListener#messageLogged(BuildEvent)
-	 */
-	public void messageLogged(BuildEvent event) {
-		if (event.getPriority() > getMessageOutputLevel()) {
-			return;
-		}
-		logMessage(event.getMessage(), event.getPriority());
-		AntTestChecker.getDefault().messageLogged(event.getMessage());
-	}
-
-	protected PrintStream getErrorPrintStream() {
-		return fErr;
-	}
-	
-	protected PrintStream getOutputPrintStream() {
-		return fOut;
-	}
-	
-	/**
-	 * @see org.apache.tools.ant.BuildLogger#setErrorPrintStream(java.io.PrintStream)
-	 */
-	public void setErrorPrintStream(PrintStream err) {
-		//this build logger logs to "null" unless
-		//the user has explicitly set a logfile to use
-		if (err == System.err) {
-			fErr= null;
-		} else {
-			fErr= err;
-		}
-	}
-
-	/**
-	 * @see org.apache.tools.ant.BuildLogger#setOutputPrintStream(java.io.PrintStream)
-	 */
-	public void setOutputPrintStream(PrintStream output) {
-		//this build logger logs to "null" unless
-		//the user has explicitly set a logfile to use
-		if (output == System.out) {
-			fOut= null;
-		} else {
-			fOut= output;
-		}
-	}
-	
-	protected void logMessage(String message, int priority) {
-		if (priority > getMessageOutputLevel()) {
-			return;
-		}
-		
-		if (priority == Project.MSG_ERR) {
-			if (getErrorPrintStream() != null && getErrorPrintStream() != System.err) {
-				//user has designated to log to a logfile
-				getErrorPrintStream().println(message);
-			}
-		} else {
-			if (getOutputPrintStream() != null && getOutputPrintStream() != System.out) {
-				//user has designated to log to a logfile
-				getOutputPrintStream().println(message);
-			} 
-		}
-	}
-	
-	protected void handleException(BuildEvent event) {
-		Throwable exception = event.getException();
-		if (exception == null || exception == fHandledException
-		|| exception instanceof OperationCanceledException
-		|| exception instanceof AntSecurityException) {
-			return;
-		}
-		fHandledException= exception;
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/types/AntTestPath.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/types/AntTestPath.java
deleted file mode 100644
index 408ac4a..0000000
--- a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/types/AntTestPath.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core.support.types;
-
-
-
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.Path;
-
-public class AntTestPath extends Path {
-	
-	String message;
-	
-	public AntTestPath(Project project) {
-		super(project);
-	}
-	
-	public void setMessage(String message) {
-		this.message= message;
-	}
-	
-	public String getMessage() {
-		return message;
-	}
-	
-}
diff --git a/ant/org.eclipse.ant.tests.core/test.xml b/ant/org.eclipse.ant.tests.core/test.xml
deleted file mode 100644
index 4f6daa5..0000000
--- a/ant/org.eclipse.ant.tests.core/test.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
-  <!-- sets the properties eclipse-home, and library-file -->
-  <!-- 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}\..\.."/>
-<property name="plugin-name" value="org.eclipse.ant.tests.core"/>
-  <property name="library-file"
-            value="${eclipse-home}/plugins/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="jdt-folder" 
-              value="${eclipse-home}/jdt_folder"/>
-    <delete dir="${jdt-folder}" quiet="true"/>
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${jdt-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" 
-                value="org.eclipse.ant.tests.core.AutomatedSuite"/>
-    </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>
-
-  <!-- This target runs the performance test suites. -->
-  <target name="performance">
-  </target>	
-	
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug32551.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug32551.xml
deleted file mode 100644
index e543997..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug32551.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<project name="bug" default="all">
- <path id="myclasspath">
- 	<fileset dir="..\lib">
-  		<include name="antTestsSupport.jar" /> 
-  	</fileset>
-  </path>
-  
- <taskdef name="hello" classname="org.eclipse.ant.tests.core.support.tasks.AntTestTask">
-  	<classpath refid="myclasspath" /> 
-  </taskdef>
-  
- <target name="all">
-  	<hello /> 
-  </target>
-  </project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug34663.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug34663.xml
deleted file mode 100644
index 2479f90..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug34663.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<project name="34663.xml" default="echoP">
-
-<taskdef file="${ROOTDIR}/taskdefs.properties" />
- 
- <target name="echoP">
- 	<myEchoProperties/>
- </target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug42926.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug42926.xml
deleted file mode 100644
index 3bb86a2..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug42926.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<project default="all">
-	<path id="someclasspath">
-		<fileset dir="${ant.home}/lib" includes="sometask.jar"/>
-	</path>
-
-	<taskdef name="sometask" classname="com.foo.SomeTask"
-classpathref="someclasspath"/>
-
-	<target name="all">
-		<echo>Hello ${ant.home}</echo>
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug73602.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug73602.xml
deleted file mode 100644
index 505a2bd..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug73602.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<project name="main" default="all">
-    <taskdef resource="taskdefs.properties"/>
-    <hello/>
-    <target name="all">
-        <echo>Hello</echo>
-    </target>
-	<target name="all3">
-	        <echo>Hello</echo>
-	    </target>
-	<target name="all4">
-	        <echo>Hello</echo>
-	    </target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/ClasspathOrdering.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/ClasspathOrdering.xml
deleted file mode 100644
index c99b65e..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/ClasspathOrdering.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<project name="ClasspathOrdering" default="ordered" basedir="..">
-
-	<target name="ordered">
-		<java classname= "ClasspathOrdering"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomTask.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomTask.xml
deleted file mode 100644
index 53525c8..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomTask.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<project name="Custom Task" default="Custom Task" basedir=".">
-	<target name="init">
-		<tstamp/>
-	</target>
-
-	<target name="Custom Task" description= "Test adding a custom task" depends="init">
-		<AntTestTask/>
-	</target>
-	
-	<target name="Custom Task from Entry" description= "Test adding a custom task">
-		<AntTestTask2/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomType.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomType.xml
deleted file mode 100644
index 1ae1ef5..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomType.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<project name="Custom Type" default="Custom Type" basedir=".">
-
-	<anttestpath id="compile.classpath">
-      <fileset dir="lib">
-        <include name="**/*.jar"/>
-      </fileset>
-    </anttestpath>
-    
-	<target name="init">
-		<tstamp/>
-	</target>
-
-	<target name="Custom Type" description= "Test adding a custom type" depends="init">
-		<echo message="Test adding a custom type"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointTask.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointTask.xml
deleted file mode 100644
index 10a3140..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointTask.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<project name="Extension Point Task" default="Extension Point Task" basedir=".">
-	<target name="Extension Point Task" description= "Ensure that an extension point defined task is present">
-		<coolTask/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointType.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointType.xml
deleted file mode 100644
index abaaaec..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointType.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<project name="Extension Point Type" default="Extension Point Type" basedir=".">
-
-	<coolType id="compile.classpath">
-      <fileset dir="lib">
-        <include name="**/*.jar"/>
-      </fileset>
-    </coolType>
-    
-	<target name="Extension Point Type" description= "Ensure that an extension point defined type is present">
-		<echo message="Ensure that an extension point defined type is present"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/MissingDefault.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/MissingDefault.xml
deleted file mode 100644
index 305d7e9..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/MissingDefault.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<project name= "Testing" default="build">
-
-	<target name= "test">
-		<echo message="testing"/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/NoDefault.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/NoDefault.xml
deleted file mode 100644
index 77c914a..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/NoDefault.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<project name= "Testing">
-	<target name= "test">
-		<echo message="testing"/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/TestForEcho.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/TestForEcho.xml
deleted file mode 100644
index 2213e5e..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/TestForEcho.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<project name="Echo Test" default="Test for Echo" basedir=".">
-	<target name="init">
-		<tstamp/>
-	</target>
-
-	<target name="Test for Echo" description= "Calls other echos" depends="init">
-		<ant antfile="buildfiles/echoing.xml" dir="../../AntTests" target="echo1"/>
-		<ant antfile="buildfiles/echoing.xml" dir="../../AntTests" target="echo2"/>
-		<ant antfile="buildfiles/echoing.xml" dir="../../AntTests" target="echo3"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/build.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/build.xml
deleted file mode 100644
index 7638a53..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/build.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<project name="Eching" default="echo1" basedir="..">
-
-	<target name="echo1">
-		<echo message="echo1"/>
-	</target>
-	
-	<target name="echo2">
-		<echo message="echo2"/>
-	</target>
-	
-	<target name="echo3" description= "An echo3!">
-		<echo message="echo3"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/echoing.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/echoing.xml
deleted file mode 100644
index 5cdd64d..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/echoing.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<project name="Echoing" default="echo1" basedir="..">
-
-	<target name="echo1">
-		<echo message="echo1"/>
-	</target>
-	
-	<target name="echo2">
-		<echo message="echo2"/>
-	</target>
-	
-	<target name="echo3" description= "An echo3!">
-		<echo message="echo3"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/failingTarget.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/failingTarget.xml
deleted file mode 100644
index 04418e0..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/failingTarget.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<project default="all">
-	<target name="all" depends="fails, echos"/>
-	<target name="fails">
-		<jar jarfile="jar16.jar" basedir="doesNotExist"/>
-	</target>
-	<target name="echos">
-		<echo>Still echo on failure</echo>
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/input.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/input.xml
deleted file mode 100644
index 8d70ab5..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/input.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<project name="input testing" default= "input test">
-	<target name="input test">
-		<input message="Enter for echo" addproperty= "inputTest">
-		</input>
-		<echo message="${inputTest}"/>
-	</target>	
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/javac.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/javac.xml
deleted file mode 100644
index 42f0225..0000000
--- a/ant/org.eclipse.ant.tests.core/testbuildfiles/javac.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.ant.core" default="build" basedir="..">
-
-	
-	<target name="init" depends="properties">
-		<property name="plugin" value="AntTests"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}"/>
-	</target>
-	
-	<target name="properties" if="use.eclipse.JDTCompiler">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-	</target>
-	
-	<target name="build" depends="init">
-		<property name="destdir" value="${temp.folder}/javac.bin"/>
-		<delete dir="${temp.folder}/javac.bin"/>
-		<mkdir dir="${temp.folder}/javac.bin"/>
-		<!-- compile the source code -->
-		<javac destdir="${temp.folder}/javac.bin" failonerror="false" verbose="false" debug="on" includeAntRuntime="yes">
-			<src path="resources"/>
-		</javac>
-	</target>
-	
-	<target name="clean" depends="init">
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="refresh" depends="init" if="eclipse.running">
-		<eclipse.refreshLocal resource="${plugin}" depth="infinite"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering1.jar b/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering1.jar
deleted file mode 100644
index b10cb7f..0000000
--- a/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering1.jar
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering2.jar b/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering2.jar
deleted file mode 100644
index 6816741..0000000
--- a/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering2.jar
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.tests.core/testlib/taskFolder/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.class b/ant/org.eclipse.ant.tests.core/testlib/taskFolder/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.class
deleted file mode 100644
index 6a37eb5..0000000
--- a/ant/org.eclipse.ant.tests.core/testlib/taskFolder/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.class
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.tests.core/testresources/AntTestTask.java b/ant/org.eclipse.ant.tests.core/testresources/AntTestTask.java
deleted file mode 100644
index bc4f602..0000000
--- a/ant/org.eclipse.ant.tests.core/testresources/AntTestTask.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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
- *******************************************************************************/
-
-
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Echo;
-
-
-public class AntTestTask extends Task {
-	
-	public AntTestTask() {
-		super();
-	}
-	
-	/**
-	 * @see org.apache.tools.ant.Task#execute()
-	 */
-	public void execute() throws BuildException {
-		Echo echo= new Echo();
-		echo.setProject(getProject());
-		echo.setMessage("Testing Ant in Eclipse with a custom task");
-		echo.execute();
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/testresources/taskdefs.properties b/ant/org.eclipse.ant.tests.core/testresources/taskdefs.properties
deleted file mode 100644
index 9f1bfcb..0000000
--- a/ant/org.eclipse.ant.tests.core/testresources/taskdefs.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-myEchoProperties=org.apache.tools.ant.taskdefs.optional.EchoProperties
-hello=org.eclipse.ant.tests.core.support.tasks.AntTestTask
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testresources/test.properties b/ant/org.eclipse.ant.tests.core/testresources/test.properties
deleted file mode 100644
index 7eacd3a..0000000
--- a/ant/org.eclipse.ant.tests.core/testresources/test.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 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
-###############################################################################
-AntTests=testing from properties file
-eclipse.is.cool=Yep
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AbstractAntTest.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AbstractAntTest.java
deleted file mode 100644
index 710454a..0000000
--- a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AbstractAntTest.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core;
-
-
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ant.core.AntCorePlugin;
-import org.eclipse.ant.core.AntCorePreferences;
-import org.eclipse.ant.core.AntRunner;
-import org.eclipse.ant.core.IAntClasspathEntry;
-import org.eclipse.ant.core.Property;
-import org.eclipse.ant.core.TargetInfo;
-import org.eclipse.ant.core.Task;
-import org.eclipse.ant.core.Type;
-import org.eclipse.ant.tests.core.testplugin.AntFileRunner;
-import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
-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.Path;
-
-
- 
-/**
- * Tests for Ant core
- */
-public abstract class AbstractAntTest extends TestCase {
-	
-	protected static final String BUILD_SUCCESSFUL= "BUILD SUCCESSFUL";
-	public static final String ANT_TEST_BUILD_LOGGER = "org.eclipse.ant.tests.core.support.testloggers.TestBuildLogger"; //$NON-NLS-1$
-	public static final String ANT_TEST_BUILD_LISTENER= "org.eclipse.ant.tests.core.support.testloggers.TestBuildListener";
-	
-	/**
-	 * Returns the 'AntTests' project.
-	 * 
-	 * @return the test project
-	 */
-	protected IProject getProject() {
-		return ResourcesPlugin.getWorkspace().getRoot().getProject("AntTests");
-	}
-	
-	public static IProject project;
-	
-	
-	public AbstractAntTest(String name) {
-		super(name);
-	}
-	
-	protected IFile getBuildFile(String buildFileName) {
-		IFile file = getProject().getFolder("buildfiles").getFile(buildFileName);
-		assertTrue("Could not find build file named: " + buildFileName, file.exists());
-		return file;
-	}
-	
-	protected IFolder getWorkingDirectory(String workingDirectoryName) {
-		IFolder folder = getProject().getFolder(workingDirectoryName);
-		assertTrue("Could not find the working directory named: " + workingDirectoryName, folder.exists());
-		return folder;
-	}
-	
-	protected IFile checkFileExists(String fileName) throws CoreException {
-		getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
-		IFile file = getProject().getFolder("buildfiles").getFile(fileName);
-		assertTrue("Could not find file named: " + fileName, file.exists());
-		return file;
-	}
-	
-	public void run(String buildFileName) throws CoreException {
-		run(buildFileName, null, false);
-	}
-	
-	public void run(String buildFileName, String[] args) throws CoreException {
-		run(buildFileName, args, false);
-	}
-	
-	public void run(String buildFileName, String[] args, boolean retrieveTargets) throws CoreException {
-		run(buildFileName, args, retrieveTargets, "");
-	}
-	
-	public void run(String buildFileName, String[] args, boolean retrieveTargets, String workingDir) throws CoreException {
-		AntTestChecker.reset();
-		IFile buildFile= null;
-		if (buildFileName != null) {
-			buildFile= getBuildFile(buildFileName);
-		}
-		AntFileRunner runner= new AntFileRunner();
-		String[] targets= null;
-		if (retrieveTargets) {
-			targets= getTargetNames(buildFileName);
-		}
-		if (workingDir.length() > 0) {
-			workingDir= getWorkingDirectory(workingDir).getLocation().toFile().getAbsolutePath();
-		} 
-		runner.run(buildFile, targets, args, workingDir, true);
-		assertTrue("Build starts did not equal build finishes", AntTestChecker.getDefault().getBuildsStartedCount() == AntTestChecker.getDefault().getBuildsFinishedCount());
-	}
-	
-	protected TargetInfo[] getTargets(String buildFileName) throws CoreException {
-		IFile buildFile= getBuildFile(buildFileName);
-		
-		AntRunner runner = new AntRunner();
-		runner.setBuildFileLocation(buildFile.getLocation().toFile().getAbsolutePath());
-	 	return runner.getAvailableTargets();
-	}
-	
-	protected String[] getTargetNames(String buildFileName) throws CoreException {
-		TargetInfo[] infos= getTargets(buildFileName);
-		String[] names= new String[infos.length];
-		for (int i = 0; i < infos.length; i++) {
-			TargetInfo info = infos[i];
-			names[i]= info.getName();
-		}
-		return names;
-	}
-	
-	protected String[] getTargetDescriptions(String buildFileName) throws CoreException {
-		TargetInfo[] infos= getTargets(buildFileName);
-		String[] descriptions= new String[infos.length];
-		for (int i = 0; i < infos.length; i++) {
-			TargetInfo info = infos[i];
-			descriptions[i]= info.getDescription();
-		}
-		return descriptions;
-	}
-	
-	/**
-	 * Returns the name of the project containing the given target in the given build file or
-	 * <code>null</code> if no project name can be found.
-	 */
-	protected String getProjectName(String buildFileName, String targetName) throws CoreException {
-		TargetInfo info= getTarget(buildFileName, targetName);
-		if (info != null) {
-			return info.getProject().getName();
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns the dependencies of the target with the given name in the given build file or <code>null</code>
-	 * if no such target can be found.
-	 */
-	protected String[] getDependencies(String buildFileName, String targetName) throws CoreException {
-		TargetInfo info= getTarget(buildFileName, targetName);
-		if (info != null) {
-			return info.getDependencies();
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns the target with the given name in the given build file or <code>null</code>
-	 * if no such target can be found.
-	 */
-	protected TargetInfo getTarget(String buildFileName, String targetName) throws CoreException {
-		TargetInfo[] infos= getTargets(buildFileName);
-		for (int i= 0, numTargets= infos.length; i < numTargets; i++) {
-			if (infos[i].getName().equals(targetName)) {
-				return infos[i];
-			}
-		}
-		return null;
-	}
-    
-    /**
-     * Return the log message n from the last:
-     * e.g. getLoggedMessage(0) returns the most recent message
-     * 
-     * @param n message index
-     * @return the nth last message
-     */
-    protected String getLoggedMessage(int n) {
-        return AntTestChecker.getDefault().getLoggedMessage(n);
-    }
-	
-	protected String getLastMessageLogged() {
-		return getLoggedMessage(0);
-	}
-	
-	protected void assertSuccessful() {
-		List messages= AntTestChecker.getDefault().getMessages();
-		String success= (String)messages.get(messages.size() - 1);
-		assertTrue("Build was not flagged as successful: " + success, BUILD_SUCCESSFUL.equals(success));
-	}
-	
-	protected String getPropertyFileName() {
-		return getProject().getFolder("resources").getFile("test.properties").getLocation().toFile().getAbsolutePath();
-	}
-	
-	protected void restorePreferenceDefaults() {
-		AntCorePreferences prefs= AntCorePlugin.getPlugin().getPreferences();
-		IAntClasspathEntry toolsEntry= prefs.getToolsJarEntry();
-		IAntClasspathEntry[] additionalEntries;
-		if (toolsEntry == null) {
-			additionalEntries= new IAntClasspathEntry[]{};
-		} else {
-			additionalEntries= new IAntClasspathEntry[] {toolsEntry};
-		}
-		prefs.setAdditionalClasspathEntries(additionalEntries);
-		prefs.setAntHomeClasspathEntries(prefs.getDefaultAntHomeEntries());
-		prefs.setCustomTasks(new Task[]{});
-		prefs.setCustomTypes(new Type[]{});
-		prefs.setCustomPropertyFiles(new String[]{});
-		prefs.setCustomProperties(new Property[]{});
-		prefs.setAntHome(prefs.getDefaultAntHome());
-	}
-	
-	protected String getAntHome() {
-		AntCorePreferences prefs= AntCorePlugin.getPlugin().getPreferences();
-		IAntClasspathEntry[] entries= prefs.getAntHomeClasspathEntries();
-		IAntClasspathEntry antjar= entries[0];
-		IPath antHomePath= new Path(antjar.getEntryURL().getFile());
-		antHomePath= antHomePath.removeLastSegments(1);
-		return antHomePath.toFile().getAbsolutePath();
-	}
-}
-
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AutomatedSuite.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AutomatedSuite.java
deleted file mode 100644
index 1547350..0000000
--- a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AutomatedSuite.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core;
-
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ant.tests.core.tests.FrameworkTests;
-import org.eclipse.ant.tests.core.tests.OptionTests;
-import org.eclipse.ant.tests.core.tests.ProjectTests;
-import org.eclipse.ant.tests.core.tests.TargetTests;
-import org.eclipse.ant.tests.core.tests.TaskTests;
-import org.eclipse.ant.tests.core.tests.TypeTests;
-
-/**
- * Test all areas of Ant.
- * 
- * To run this test suite:
- * <ol>
- * <li>Create a new JUnit plugin test launch configuration</li>
- * <li>Set the Test class to "org.eclipse.ant.tests.core.AutomatedSuite"</li>
- * <li>Set the Project to "org.eclipse.ant.tests.core"</li>
- * <li>Run the launch configuration. Output from the tests will be displayed in a JUnit view</li>
- * </ol>
- */
-public class AutomatedSuite extends TestSuite {
-	
-	/**
-	 * Flag that indicates test are in progress
-	 */
-	protected boolean testing = true;
-
-	/**
-	 * Returns the suite.  This is required to
-	 * use the JUnit Launcher.
-	 */
-	public static Test suite() {
-		return new AutomatedSuite();
-	}
-
-	/**
-	 * Construct the test suite.
-	 */
-	public AutomatedSuite() {
-		addTest(new TestSuite(ProjectCreationDecorator.class));
-		addTest(new TestSuite(FrameworkTests.class));
-		addTest(new TestSuite(TargetTests.class));
-		addTest(new TestSuite(ProjectTests.class));
-		addTest(new TestSuite(OptionTests.class));
-		addTest(new TestSuite(TaskTests.class));
-		addTest(new TestSuite(TypeTests.class));
-	}
-
-	/**
-	 * Runs the tests and collects their result in a TestResult without blocking.
-	 * the UI thread. Not normally needed but nice to have to check on the state of
-	 * environment during a test run.
-	 */
-//	public void run(final TestResult result) {
-//		final Display display = Display.getCurrent();
-//		Thread thread = null;
-//		try {
-//			Runnable r = new Runnable() {
-//				public void run() {
-//					for (Enumeration e= tests(); e.hasMoreElements(); ) {
-//				  		if (result.shouldStop() )
-//				  			break;
-//						Test test= (Test)e.nextElement();
-//						runTest(test, result);
-//					}					
-//					testing = false;
-//					display.wake();
-//				}
-//			};
-//			thread = new Thread(r);
-//			thread.start();
-//		} catch (Exception e) {
-//			e.printStackTrace();
-//		}
-//				
-//		while (testing) {
-//			try {
-//				if (!display.readAndDispatch())
-//					display.sleep();
-//			} catch (Throwable e) {
-//				e.printStackTrace();
-//			}			
-//		}		
-//	}
-}
-
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/ProjectCreationDecorator.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/ProjectCreationDecorator.java
deleted file mode 100644
index 8d5d64e..0000000
--- a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/ProjectCreationDecorator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core;
-
-
-import java.io.File;
-
-import org.eclipse.ant.tests.core.testplugin.AntTestPlugin;
-import org.eclipse.ant.tests.core.testplugin.ProjectHelper;
-import org.eclipse.core.resources.*;
-
-/**
- * Test to close the workbench, since debug tests do not run in the UI
- * thread.
- */
-public class ProjectCreationDecorator extends AbstractAntTest {
-	
-	public ProjectCreationDecorator(String name) {
-		super(name);
-	}
-	
-	public void testProjectCreation() throws Exception {
-		// delete any pre-existing project
-		IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject("AntTests");
-		if (pro.exists()) {
-			pro.delete(true, true, null);
-		}
-		// create project and import buildfiles and support files
-		project = ProjectHelper.createProject("AntTests");
-		IFolder folder = ProjectHelper.addFolder(project, "buildfiles");
-		File root = AntTestPlugin.getDefault().getFileInPlugin(ProjectHelper.TEST_BUILDFILES_DIR);
-		ProjectHelper.importFilesFromDirectory(root, folder.getFullPath(), null);
-		
-		folder = ProjectHelper.addFolder(project, "resources");
-		root = AntTestPlugin.getDefault().getFileInPlugin(ProjectHelper.TEST_RESOURCES_DIR);
-		ProjectHelper.importFilesFromDirectory(root, folder.getFullPath(), null);
-		
-		folder = ProjectHelper.addFolder(project, "lib");
-		root = AntTestPlugin.getDefault().getFileInPlugin(ProjectHelper.TEST_LIB_DIR);
-		ProjectHelper.importFilesFromDirectory(root, folder.getFullPath(), null);
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/FrameworkTests.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/FrameworkTests.java
deleted file mode 100644
index 1e77acb..0000000
--- a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/FrameworkTests.java
+++ /dev/null
@@ -1,258 +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 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.ant.tests.core.tests;
-
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.ant.core.AntCorePlugin;
-import org.eclipse.ant.core.AntCorePreferences;
-import org.eclipse.ant.core.AntRunner;
-import org.eclipse.ant.core.IAntClasspathEntry;
-import org.eclipse.ant.core.Property;
-import org.eclipse.ant.core.TargetInfo;
-import org.eclipse.ant.internal.core.AntClasspathEntry;
-import org.eclipse.ant.tests.core.AbstractAntTest;
-import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-public class FrameworkTests extends AbstractAntTest {
-	
-	public FrameworkTests(String name) {
-		super(name);
-	}
-	
-	/**
-	 * Ensures that the deprecated means of setting the classpath still works correctly
-	 * Do not fix deprecations unless the deprecated methods are being removed.
-	 * @throws MalformedURLException
-	 * @throws CoreException
-	 */
-	public void testClasspathOrderingDeprecated() throws MalformedURLException, CoreException {
-		AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-		
-		String path= getProject().getFolder("lib").getFile("classpathOrdering1.jar").getLocation().toFile().getAbsolutePath();
-		URL url= new URL("file:" + path);
-		
-		path= getProject().getFolder("lib").getFile("classpathOrdering2.jar").getLocation().toFile().getAbsolutePath();
-		URL url2= new URL("file:" + path);
-		
-		URL urls[] = prefs.getCustomURLs();
-		URL newUrls[] = new URL[urls.length + 2];
-		System.arraycopy(urls, 0, newUrls, 0, urls.length);
-		newUrls[urls.length] = url;
-		newUrls[urls.length + 1] = url2;
-		prefs.setCustomURLs(newUrls);
-		
-		prefs.updatePluginPreferences();
-		
-		run("ClasspathOrdering.xml");
-		String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-		assertTrue("Message incorrect: " + msg, msg.equals("classpathOrdering1"));
-		assertSuccessful();
-		
-		restorePreferenceDefaults();
-		
-		urls = prefs.getCustomURLs();
-		newUrls = new URL[urls.length + 2];
-		System.arraycopy(urls, 0, newUrls, 0, urls.length);
-		newUrls[urls.length] = url2;
-		newUrls[urls.length + 1] = url;
-		prefs.setCustomURLs(newUrls);
-		
-		prefs.updatePluginPreferences();
-		
-		run("ClasspathOrdering.xml");
-		msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-		assertTrue("Message incorrect: " + msg, msg.equals("classpathOrdering2"));
-		assertSuccessful();
-		restorePreferenceDefaults();
-	}
-	
-	public void testClasspathOrdering() throws CoreException {
-		AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-		
-		String path= getProject().getFolder("lib").getFile("classpathOrdering1.jar").getLocation().toFile().getAbsolutePath();
-		IAntClasspathEntry entry= new AntClasspathEntry(path);
-		
-		path= getProject().getFolder("lib").getFile("classpathOrdering2.jar").getLocation().toFile().getAbsolutePath();
-		IAntClasspathEntry entry2= new AntClasspathEntry(path);
-		
-		IAntClasspathEntry entries[] = prefs.getAdditionalClasspathEntries();
-		IAntClasspathEntry newEntries[] = new IAntClasspathEntry[entries.length + 2];
-		System.arraycopy(entries, 0, newEntries, 0, entries.length);
-		newEntries[entries.length] = entry;
-		newEntries[entries.length + 1] = entry2;
-		prefs.setAdditionalClasspathEntries(newEntries);
-		
-		prefs.updatePluginPreferences();
-		
-		run("ClasspathOrdering.xml");
-		String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-		assertTrue("Message incorrect: " + msg, msg.equals("classpathOrdering1"));
-		assertSuccessful();
-		
-		restorePreferenceDefaults();
-		
-		entries = prefs.getAdditionalClasspathEntries();
-		newEntries = new IAntClasspathEntry[entries.length + 2];
-		System.arraycopy(entries, 0, newEntries, 0, entries.length);
-		newEntries[entries.length] = entry2;
-		newEntries[entries.length + 1] = entry;
-		prefs.setAdditionalClasspathEntries(newEntries);
-		
-		prefs.updatePluginPreferences();
-		
-		run("ClasspathOrdering.xml");
-		msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-		assertTrue("Message incorrect: " + msg, msg.equals("classpathOrdering2"));
-		assertSuccessful();
-		restorePreferenceDefaults();
-	}
-	
-	public void testMissingDefaultTarget() {
-		try {
-			run("MissingDefault.xml", new String[]{"test"}, false);
-		} catch (CoreException e) {
-			String msg= e.getMessage();
-			assertTrue("Message incorrect: " + msg, msg.equals("Default target 'build' does not exist in this project"));
-			return;
-		}
-		assertTrue("Build files with no default targets should not be accepted", false);
-	}
-    
-    public void testNoDefaultTarget() throws CoreException {
-        run("NoDefault.xml");
-        assertSuccessful();
-    }
-	
-	/**
-	 * Ensures that tasks like javac work when includeAntRuntime is specified
-	 * bug 20857.
-	 * This test will just return if the tests are conducted on a JRE (no tools.jar).
-	 */
-	public void testIncludeAntRuntime() throws CoreException {
-		IAntClasspathEntry toolsEntry= AntCorePlugin.getPlugin().getPreferences().getToolsJarEntry();
-		if (toolsEntry == null) {
-			//running on a JRE where tools.jar could not be found
-			return;
-		}
-		run("javac.xml", new String[]{"build","refresh"}, false); //standard compiler
-		assertSuccessful();
-		IFile classFile= getProject().getFolder("temp.folder").getFolder("javac.bin").getFile("AntTestTask.class");
-		assertTrue("Class file was not generated", classFile.exists());
-		run("javac.xml", new String[]{"-Duse.eclipse.compiler=true", "clean", "build", "refresh"}, false); //JDTCompiler
-		assertSuccessful();
-		classFile= getProject().getFolder("temp.folder").getFolder("javac.bin").getFile("AntTestTask.class");
-		assertTrue("Class file was not generated", classFile.exists());
-	}
-	
-	/**
-	 * Tests the properties added using a global property file
-	 */
-	public void testGlobalPropertyFile() throws CoreException {
-		
-		AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-		
-		String path= getPropertyFileName();
-		prefs.setCustomPropertyFiles(new String[]{path});
-		
-		run("TestForEcho.xml", new String[]{});
-		assertSuccessful();
-		assertTrue("eclipse.is.cool should have been set as Yep", "Yep".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool")));
-		assertTrue("AntTests should have a value of testing", "testing from properties file".equals(AntTestChecker.getDefault().getUserProperty("AntTests")));
-		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name"));
-		
-		restorePreferenceDefaults();
-	}
-	
-	/**
-	 * Tests the properties added using a global property
-	 */
-	public void testGlobalProperty() throws CoreException {
-		
-		AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-		prefs.setCustomProperties(new Property[]{new Property("eclipse.is.cool", "Yep"), new Property("JUnitTest", "true")});
-		
-		run("TestForEcho.xml", new String[]{});
-		assertSuccessful();
-		assertTrue("eclipse.is.cool should have been set as Yep", "Yep".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool")));
-		assertTrue("JUnitTests should have a value of true", "true".equals(AntTestChecker.getDefault().getUserProperty("JUnitTest")));
-		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name"));
-		
-		restorePreferenceDefaults();
-	}
-	
-	public void testGlobalPropertyFileWithMinusDTakingPrecedence() throws CoreException {
-		AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-		
-		String path= getPropertyFileName();
-		prefs.setCustomPropertyFiles(new String[]{path});
-		
-		run("echoing.xml", new String[]{"-DAntTests=testing", "-Declipse.is.cool=true"}, false);
-		assertSuccessful();
-		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool")));
-		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests")));
-		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name"));
-		restorePreferenceDefaults();
-	}
-	
-	/**
-	 * Tests that the default ANT_HOME is set and that it can be changed
-	 */
-	public void testSettingAntHome() throws CoreException {
-		try {
-			AntCorePreferences prefs= AntCorePlugin.getPlugin().getPreferences();
-			run("echoing.xml");
-			assertTrue("ANT_HOME not set correctly", prefs.getDefaultAntHome().equals(System.getProperty("ant.home")));
-			File antLibDir= new File(prefs.getDefaultAntHome(), "lib"); //$NON-NLS-1$
-			assertTrue("ant.library.dir not set correctly", antLibDir.getAbsolutePath().equals(System.getProperty("ant.library.dir")));
-			prefs.setAntHome("");
-			run("echoing.xml");
-			assertTrue("ANT_HOME not set correctly", null == System.getProperty("ant.home"));
-			assertTrue("ant.library.dir not set correctly", null == System.getProperty("ant.library.dir"));
-		} finally {
-			restorePreferenceDefaults();
-		}	
-	}
-	
-	/**
-	 * Tests retrieving target info using AntRunner
-     * Covers bug 73602 at the same time
-	 */
-	public void testGetTargets() throws CoreException {
-	  
-			AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-			
-			String path= getProject().getFolder("resources").getLocation().toFile().getAbsolutePath();
-			IAntClasspathEntry entry= new AntClasspathEntry(path);
-			
-			
-			IAntClasspathEntry entries[] = prefs.getAdditionalClasspathEntries();
-			IAntClasspathEntry newEntries[] = new IAntClasspathEntry[entries.length + 1];
-			System.arraycopy(entries, 0, newEntries, 0, entries.length);
-			newEntries[entries.length] = entry;
-			prefs.setAdditionalClasspathEntries(newEntries);
-			
-			prefs.updatePluginPreferences();
-			
-			AntRunner runner= new AntRunner();
-			IFile buildFile= getBuildFile("Bug73602.xml");
-			if (buildFile != null) {
-				runner.setBuildFileLocation(buildFile.getLocation().toFile().toString());
-			}
-			TargetInfo[] infos= runner.getAvailableTargets();
-			assertTrue("incorrect number of targets retrieved", infos != null && infos.length == 3);
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/OptionTests.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/OptionTests.java
deleted file mode 100644
index 55248f8..0000000
--- a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/OptionTests.java
+++ /dev/null
@@ -1,622 +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
- *******************************************************************************/
-package org.eclipse.ant.tests.core.tests;
-
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.List;
-import org.eclipse.ant.core.AntCorePlugin;
-import org.eclipse.ant.tests.core.AbstractAntTest;
-import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-public class OptionTests extends AbstractAntTest {
-	
-	protected static final String UNKNOWN_ARG= "Unknown argument: ";
-	protected static final String START_OF_HELP= "ant [options] [target [target2 [target3] ...]]";
-	protected static final String VERSION= "Apache Ant version 1.6.2 compiled on July 16 2004";
-	protected static final String PLUGIN_VERSION= "org.apache.ant_1.6.2";
-	 
-	public OptionTests(String name) {
-		super(name);
-	}
-	
-	/**
-	 * Tests the "-help" option
-	 */
-	public void testHelp() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-help"});
-		assertTrue("One message should have been logged", AntTestChecker.getDefault().getMessagesLoggedCount() == 1);
-		assertTrue("Help is incorrect", getLastMessageLogged() != null && getLastMessageLogged().startsWith(START_OF_HELP));
-	}
-	
-	/**
-	 * Tests the "-h" option (help)
-	 */
-	public void testMinusH() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-h"});
-		assertTrue("One message should have been logged, was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 1);
-		assertTrue("Help is incorrect", getLastMessageLogged() != null && getLastMessageLogged().startsWith(START_OF_HELP));
-	}
-	
-	/**
-	 * Tests the "-version" option
-	 */
-	public void testVersion() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-version"});
-		assertTrue("One message should have been logged", AntTestChecker.getDefault().getMessagesLoggedCount() == 1);
-		assertTrue("Version is incorrect", VERSION.equals(getLastMessageLogged()));
-	}
-	
-	/**
-	 * Tests the "-projecthelp" option
-	 */
-	public void testProjecthelp() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-projecthelp"});
-		assertTrue("5 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 5);
-		assertTrue("Project help is incorrect", getLastMessageLogged().startsWith("Subtargets:"));
-	}
-	
-	/**
-	 * Tests the "-p" option (project help)
-	 */
-	public void testMinusP() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-p"});
-		assertTrue("5 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 5);
-		assertTrue("Project help is incorrect", getLastMessageLogged().startsWith("Subtargets:"));
-	}
-	
-	/**
-	 * Tests the "-projecthelp" option when it will not show (quite mode)
-	 */
-	public void testProjecthelpQuiet() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-projecthelp", "-q"});
-		assertTrue("no messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 0);
-	}
-	
-	/**
-	 * Tests the "-listener" option with a listener that is not an instance of BuildListener
-	 */
-	public void testListenerBad() {
-		try {
-			run("TestForEcho.xml", new String[]{"-listener", "java.lang.String"});
-		} catch (CoreException ce) {
-			String msg= ce.getMessage();
-			assertTrue("Message incorrect!: " + msg, msg.equals("java.lang.String which was specified to be a build listener is not an instance of org.apache.tools.ant.BuildListener."));
-			return;
-		}
-		assertTrue("A core exception should have occurred wrappering a class cast exception", false);
-	}
-	
-	/**
-	 * Tests passing an unrecognized argument
-	 */
-	public void testUnknownArg() throws CoreException {	
-		run("TestForEcho.xml", new String[]{"-listenr"});
-        assertTrue("Unrecognized option message should have been logged before successful build",
-					(AntTestChecker.getDefault().getMessagesLoggedCount() == 6)
-					 && (getLoggedMessage(5).startsWith(UNKNOWN_ARG))
-                     && (getLastMessageLogged().startsWith(BUILD_SUCCESSFUL)));
-	}
-	
-	/**
-	 * Tests specifying the -logfile with no arg
-	 */
-	public void testLogFileWithNoArg() {
-		try {
-			run("TestForEcho.xml", new String[]{"-logfile"});
-		} catch (CoreException ce) {
-			return;
-		}
-		assertTrue("You must specify a log file when using the -log argument", false);
-	}
-	
-	/**
-	 * Tests specifying the -logfile
-	 */
-	public void testLogFile() throws CoreException, IOException {
-		run("TestForEcho.xml", new String[]{"-logfile", "TestLogFile.txt"});
-		IFile file= checkFileExists("TestLogFile.txt");
-		InputStream stream =file.getContents();
-		
-		InputStreamReader in= null;
-		try {		
-			in= new InputStreamReader(new BufferedInputStream(stream));
-			StringBuffer buffer= new StringBuffer();
-			char[] readBuffer= new char[2048];
-			int n= in.read(readBuffer);
-			while (n > 0) {
-				buffer.append(readBuffer, 0, n);
-				n= in.read(readBuffer);
-			}
-			assertTrue("File should have started with Buildfile", buffer.toString().startsWith("Buildfile"));
-		} finally {
-			in.close();
-			stream.close();
-		}
-		
-	}
-	
-	/**
-	 * Tests specifying the -logger with no arg
-	 */
-	public void testLoggerWithNoArg() {
-		try {
-			run("TestForEcho.xml", new String[]{"-logger"});
-		} catch (CoreException ce) {
-			return;
-		}
-		assertTrue("You must specify a classname when using the -logger argument", false);
-	}
-	
-	/**
-	 * Tests the "-logger" option with a logger that is not an instance of BuildLogger
-	 */
-	public void testLoggerBad() {
-		try {
-			run("TestForEcho.xml", new String[]{"-logger", "java.lang.String"});
-		} catch (CoreException ce) {
-			return;
-		}
-		assertTrue("A core exception should have occurred wrappering a class cast exception", false);
-	}
-	
-	/**
-	 * Tests the "-logger" option with two loggers specified...only one is allowed
-	 */
-	public void testTwoLoggers() {
-		try {
-			run("TestForEcho.xml", new String[]{"-logger", "java.lang.String", "-q", "-logger", "java.lang.String"});
-		} catch (CoreException ce) {
-			return;
-		}
-		assertTrue("As only one logger can be specified", false);
-	}
-	
-	/**
-	 * Tests specifying the -listener with no arg
-	 */
-	public void testListenerWithNoArg() {
-		try {
-			run("TestForEcho.xml", new String[]{"-listener"});
-		} catch (CoreException ce) {
-			return;
-		}
-		assertTrue("You must specify a listeners when using the -listener argument ", false);
-	}
-	
-	/**
-	 * Tests specifying the -listener with a class that will not be found
-	 */
-	public void testListenerClassNotFound() {
-		try {
-			run("TestForEcho.xml", new String[]{"-listener", "TestBuildListener"});
-		} catch (CoreException e) {
-			String message= e.getStatus().getException().getMessage();
-			assertTrue("Should be ClassNotFoundException", "java.lang.ClassNotFoundException: TestBuildListener".equals(message));
-			return;
-		}
-		assertTrue("A CoreException should have occurred as the listener class will not be found", false);
-		
-	}
-	
-	/**
-	 * Tests specifying the -listener option
-	 */
-	public void testListener() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-listener", ANT_TEST_BUILD_LISTENER});
-		assertSuccessful();
-		assertTrue("A listener should have been added named: " + ANT_TEST_BUILD_LISTENER, ANT_TEST_BUILD_LISTENER.equals(AntTestChecker.getDefault().getLastListener()));
-	}
-	
-	/**
-	 * Tests specifying the XmlLogger as a listener (bug 80435)
-	 */
-	public void testXmlLoggerListener() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-listener", "org.apache.tools.ant.XmlLogger"});
-		assertSuccessful();
-		
-		//find the log file generated by the xml logger
-		IFile file= checkFileExists("log.xml");
-		InputStream stream= file.getContents();
-		try {
-			assertTrue(stream.available() != 0);
-		} catch (IOException e) {
-			assertTrue(false);
-		}
-	}
-	
-	/**
-	 * Tests specifying the -listener option multiple times...which is allowed
-	 */
-	public void testListenerMultiple() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-listener", ANT_TEST_BUILD_LISTENER, "-listener", ANT_TEST_BUILD_LISTENER});
-		assertSuccessful();
-		assertTrue("A listener should have been added named: " + ANT_TEST_BUILD_LISTENER, ANT_TEST_BUILD_LISTENER.equals(AntTestChecker.getDefault().getLastListener()));
-		assertTrue("Two listeners should have been added", AntTestChecker.getDefault().getListeners().size() == 2);
-	}
-	
-	/**
-	 * Tests specifying the -listener option multiple times, with one missing the arg
-	 */
-	public void testListenerMultipleWithBad() {
-		try {
-			run("TestForEcho.xml", new String[]{"-listener", ANT_TEST_BUILD_LISTENER, "-q", "-listener", "-verbose"});
-		} catch(CoreException e) {
-			//You must specify a listener for all -listener arguments
-			return;
-		}
-		assertTrue("You must specify a listener for all -listener arguments ", false);
-	}
-	
-	/**
-	 * Tests specifying the -buildfile with no arg
-	 */
-	public void testBuildFileWithNoArg() {
-		try {
-			run("TestForEcho.xml", new String[]{"-buildfile"});
-		} catch (CoreException ce) {
-			//You must specify a buildfile when using the -buildfile argument
-			return;
-		}
-		assertTrue("You must specify a buildfile when using the -buildfile argument", false);
-	}
-	
-	/**
-	 * Tests specifying the -buildfile
-	 */
-	public void testBuildFile() throws CoreException {
-		String buildFileName= getProject().getFolder("buildfiles").getFile("echoing.xml").getLocation().toFile().getAbsolutePath();
-		run("TestForEcho.xml", new String[]{"-buildfile", buildFileName}, false, "buildfiles");
-		
-		assertTrue("Should have been 1 tasks, was: " + AntTestChecker.getDefault().getTaskStartedCount(), AntTestChecker.getDefault().getTaskStartedCount() == 1);
-	}
-	
-	/**
-	 * Tests specifying a target at the command line that does not exist.
-	 */
-	public void testSpecifyBadTargetAsArg() {
-		try {
-			run("TestForEcho.xml", new String[]{"echo2"}, false);
-		} catch (CoreException ce) {
-			return;
-		}
-		assertTrue("A core exception should have occurred as the target does not exist", false);
-	}
-	
-	/**
-	 * Tests specifying a target at the command line
-	 */
-	public void testSpecifyTargetAsArg() throws CoreException {
-		run("echoing.xml", new String[]{"echo3"}, false);
-		assertTrue("3 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 3);
-		assertSuccessful();
-	}
-	
-	/**
-	 * Tests specifying a target at the command line with other options
-	 */
-	public void testSpecifyTargetAsArgWithOtherOptions() throws CoreException {
-		run("echoing.xml", new String[]{"-logfile", "TestLogFile.txt", "echo3"}, false);
-		assertTrue("4 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 4);
-		List messages= AntTestChecker.getDefault().getMessages();
-		//ensure that echo3 target executed and only that target
-		assertTrue("echo3 target not executed", messages.get(2).equals("echo3"));
-		assertSuccessful();
-	}
-	
-	/**
-	 * Tests specifying targets at the command line with other options
-	 */
-	public void testSpecifyTargetsAsArgWithOtherOptions() throws CoreException {
-		run("echoing.xml", new String[]{"-logfile", "TestLogFile.txt", "echo2", "echo3"}, false);
-		assertTrue("5 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 5);
-		List messages= AntTestChecker.getDefault().getMessages();
-		//ensure that echo2 target executed
-		assertTrue("echo2 target not executed", messages.get(2).equals("echo2"));
-		assertSuccessful();
-	}
-	
-	/**
-	 * Tests specifying a target at the command line and quiet reporting
-	 */
-	public void testSpecifyTargetAsArgAndQuiet() throws CoreException {
-		run("echoing.xml", new String[]{"-logfile", "TestLogFile.txt", "echo3", "-quiet"}, false);
-		assertTrue("2 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 2);
-	}
-	
-	/**
-	 * Tests properties using "-D"
-	 */
-	public void testMinusD() throws CoreException {
-		run("echoing.xml", new String[]{"-DAntTests=testing", "-Declipse.is.cool=true"}, false);
-		assertSuccessful();
-		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool")));
-		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests")));
-		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name"));
-		
-	}
-	
-	/**
-	 * Tests properties using "-D" and "-d" to specify debug
-	 */
-	public void testMinusDMinusd() throws CoreException {
-		run("echoing.xml", new String[]{"-d", "-DAntTests=testing", "-Declipse.is.cool=true"}, false);
-		assertSuccessful();
-		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool")));
-		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests")));
-		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name"));
-	
-	}
-	
-	public void testMinusDAndGlobalProperties() throws CoreException {
-		run("echoing.xml", new String[]{"-DAntTests=testing", "-Declipse.is.cool=true"}, false);
-		assertSuccessful();
-		assertTrue("eclipse.running should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.running")));
-		assertNotNull("eclipse.home should have been set", AntTestChecker.getDefault().getUserProperty("eclipse.home"));
-	}
-	
-	/**
-	 * Tests specifying a property such as "-D=emptyStringIsMyName
-	 * Bug 37007
-	 */
-	public void testMinusDEmpty() throws CoreException {
-		run("echoing.xml", new String[]{"-D=emptyStringIsMyName", "-Declipse.is.cool=true"}, false);
-		assertSuccessful();
-		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool")));
-		assertTrue("\"\" should have a value of emptyStringIsMyName", "emptyStringIsMyName".equals(AntTestChecker.getDefault().getUserProperty("")));
-		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name"));
-	}
-	
-	/**
-	 * Tests specifying properties that contain spaces
-	 * Bug 37094
-	 */
-	public void testMinusDWithSpaces() throws CoreException {
-		run("echoing.xml", new String[]{"-DAntTests= testing", "-Declipse.is.cool=    true"}, false);
-		assertSuccessful();
-		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool")));
-		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests")));
-		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name"));
-	}
-	
-	/**
-	 * Tests specifying properties when the user has incorrectly specified "-Debug"
-	 * Bug 40935
-	 */
-	public void testPropertiesWithMinusDebug() throws CoreException {
-		run("echoing.xml", new String[]{"-Debug", "-DAntTests= testing", "-Declipse.is.cool=    true"}, false);
-		assertTrue("\"-Debug\" should be flagged as an unknown argument", "Unknown argument: -Debug".equals(AntTestChecker.getDefault().getMessages().get(0)));
-		assertSuccessful();
-		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool")));
-		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests")));
-		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name"));
-	}
-	
-	/**
-	 * Tests when the user has incorrectly specified "-Debug"
-	 * Bug 40935
-	 */
-	public void testMinusDebug() throws CoreException {
-		run("echoing.xml", new String[]{"-Debug"});
-		assertTrue("\"-Debug\" should be flagged as an unknown argument", "Unknown argument: -Debug".equals(AntTestChecker.getDefault().getMessages().get(0)));
-		assertSuccessful();
-	}
-	
-	public void testPropertyFileWithNoArg() {
-		try {
-			run("TestForEcho.xml", new String[]{"-propertyfile"});
-		} catch (CoreException ce) {
-			String msg= (String)AntTestChecker.getDefault().getMessages().get(0);
-			assertTrue("Message incorrect!: " + msg, msg.equals("You must specify a property filename when using the -propertyfile argument"));
-			return;
-		}
-		assertTrue("You must specify a property filename when using the -propertyfile argument", false);
-	}
-	
-	/**
-	 * A build should succeed when a property file is not found.
-	 * The error is reported and the build continues.
-	 */
-	public void testPropertyFileFileNotFound() throws CoreException {
-		
-		run("TestForEcho.xml", new String[]{"-propertyfile", "qq.txt"});
-		assertSuccessful();
-		String msg= (String)AntTestChecker.getDefault().getMessages().get(0);
-		assertTrue("Message incorrect!: " + msg, msg.startsWith("Could not load property file:"));
-	}
-	
-	public void testPropertyFile() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-propertyfile", getPropertyFileName()});
-		assertSuccessful();
-		assertTrue("eclipse.is.cool should have been set as Yep", "Yep".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool")));
-		assertTrue("AntTests should have a value of testing", "testing from properties file".equals(AntTestChecker.getDefault().getUserProperty("AntTests")));
-		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name"));
-	}
-	
-	public void testPropertyFileWithMinusDTakingPrecedence() throws CoreException {
-		run("echoing.xml", new String[]{"-propertyfile", getPropertyFileName(), "-DAntTests=testing", "-Declipse.is.cool=true"}, false);
-		assertSuccessful();
-		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool")));
-		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests")));
-		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name"));
-	}
-	
-	public void testInputHandlerWithNoArg() {
-		try {
-			run("TestForEcho.xml", new String[]{"-inputhandler"});
-		} catch (CoreException ce) {
-			String msg= ce.getMessage();
-			assertTrue("Message incorrect!: " + msg, msg.equals("You must specify a classname when using the -inputhandler argument"));
-			return;
-		}
-		assertTrue("You must specify a classname when using the -inputhandler argument", false);
-	}
-	
-	/**
-	 * Tests the "-inputhandler" option with two handlers specified...only one is allowed
-	 */
-	public void testInputHandlerMultiple() {
-		try {
-			run("TestForEcho.xml", new String[]{"-inputhandler", "org.apache.tools.ant.input.DefaultInputHandler", "-q", "-inputhandler", "org.apache.tools.ant.input.DefaultInputHandler"});
-		} catch (CoreException ce) {
-			String msg= ce.getMessage();
-			assertTrue("Message incorrect!: " + msg, msg.equals("Only one input handler class may be specified."));
-			return;
-		}
-		assertTrue("As only one input handler can be specified", false);
-	}
-	
-	/**
-	 * Tests the "-inputhandler" option with a input handler that is not an instance of InputHandler
-	 */
-	public void testInputHandlerBad() {
-		try {
-			run("TestForEcho.xml", new String[]{"-inputhandler", "java.lang.StringBuffer"});
-		} catch (CoreException ce) {
-			String msg= ce.getMessage();
-			assertTrue("Message incorrect!: " + msg, msg.equals("The specified input handler class java.lang.StringBuffer does not implement the org.apache.tools.ant.input.InputHandler interface"));
-			return;
-		}
-		assertTrue("Incorrect inputhandler", false);
-	}
-	
-	/**
-	 * Tests the "-inputhandler" option with a input handler that is not a defined class
-	 */
-	public void testInputHandlerBad2() {
-		try {
-			run("TestForEcho.xml", new String[]{"-inputhandler", "ja.lang.StringBuffer"});
-		} catch (CoreException ce) {
-			String msg= ce.getMessage();
-			assertTrue("Message incorrect!: " + msg, msg.startsWith("Unable to instantiate specified input handler class ja.lang.StringBuffer"));
-			return;
-		}
-		assertTrue("Incorrect inputhandler", false);
-	}
-	
-	/**
-	 * Tests the "-inputhandler" option with a test input handler and the -noinput option
-	 */
-	public void testInputHandlerWithMinusNoInput() {
-		try {
-			run("input.xml", new String[]{"-inputhandler", "org.eclipse.ant.tests.core.support.inputHandlers.AntTestInputHandler", "-noinput"});
-		} catch (CoreException ce) {
-			assertTrue("Message incorrect: " + ce.getMessage(), ce.getMessage().endsWith("Unable to respond to input request likely as a result of specifying the -noinput command"));
-			return;
-		}
-		
-		assertTrue("Build should have failed", false);
-	}
-	
-	/**
-	 * Tests the -noinput option with the default input handler
-	 */
-	public void testMinusNoInput() {
-		try {
-			run("input.xml", new String[]{"-noinput"});
-		} catch (CoreException ce) {
-			assertTrue("Message incorrect: " + ce.getMessage(), ce.getMessage().endsWith("Failed to read input from Console."));
-			return;
-		}
-	
-		assertTrue("Build should have failed", false);
-	}
-	
-	/**
-	 * Tests the "-inputhandler" option with a test input handler
-	 * Order after the noinput tests so that we test we are resetting the system property
-	 */
-	public void testInputHandler() throws CoreException {
-		
-		run("input.xml", new String[]{"-inputhandler", "org.eclipse.ant.tests.core.support.inputHandlers.AntTestInputHandler"});
-		assertSuccessful();
-		String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-		assertTrue("Message incorrect: " + msg, msg.equals("testing handling input requests"));
-		
-	}
-	
-	/**
-	 * Tests the "-diagnostics" option with no ANT_HOME set
-	 * bug 25693
-	 */
-	public void testDiagnosticsWithNoAntHome() throws CoreException {
-		try {
-			AntCorePlugin.getPlugin().getPreferences().setAntHome(null);
-			run("input.xml", new String[]{"-diagnostics"});
-		
-			String msg= (String)AntTestChecker.getDefault().getMessages().get(0);
-			assertTrue("Message incorrect: " + msg, msg.equals("------- Ant diagnostics report -------"));
-		} finally {
-			restorePreferenceDefaults();
-		}
-	}
-		
-	/**
-	 * Tests the "-diagnostics" option with ANT_HOME set
-	 * bug 25693
-	 */
-	public void testDiagnostics() throws CoreException {
-	
-		try {
-			run("input.xml", new String[]{"-diagnostics"});
-		} finally {
-			restorePreferenceDefaults();
-		}
-		
-		String msg= (String)AntTestChecker.getDefault().getMessages().get(12);
-		//msg depends on whether self hosting testing or build testing
-		assertTrue("Message incorrect: " + msg, msg.endsWith("org.apache.ant") || msg.endsWith(PLUGIN_VERSION));
-	}
-	
-	/**
-	 * Tests the "-quiet" still reports build successful
-	 * bug 34488
-	 */
-	public void testMinusQuiet() throws CoreException {
-		run("TestForEcho.xml", new String[]{"-quiet"});
-		assertSuccessful();	
-	}
-
-	/**
-	 * Tests the "-keep-going" option
-	 */
-	public void testMinusKeepGoing() {
-		try {
-			run("failingTarget.xml", new String[]{"-keep-going"}, false);
-		} catch (CoreException be) {
-			assertTrue("4 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 4);
-			assertTrue("Incorrect message:"  + AntTestChecker.getDefault().getLoggedMessage(1), "Still echo on failure".equals(AntTestChecker.getDefault().getLoggedMessage(1)));
-			return;
-		}
-		
-		assertTrue("The build should have failed", false);
-	}
-	
-	/**
-	 * Tests the "-k" option
-	 */
-	public void testMinusK() {
-		try {
-			run("failingTarget.xml", new String[]{"-k"}, false);
-		} catch (CoreException be) {
-			assertTrue("4 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 4);
-			assertTrue("Incorrect message:"  + AntTestChecker.getDefault().getLoggedMessage(1), "Still echo on failure".equals(AntTestChecker.getDefault().getLoggedMessage(1)));
-			return;
-		}
-		
-		assertTrue("The build should have failed", false);
-	}
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/ProjectTests.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/ProjectTests.java
deleted file mode 100644
index b477eb4..0000000
--- a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/ProjectTests.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core.tests;
-
-
-import org.eclipse.ant.core.AntCorePlugin;
-import org.eclipse.ant.tests.core.AbstractAntTest;
-import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-
-public class ProjectTests extends AbstractAntTest {
-	
-	public ProjectTests(String name) {
-		super(name);
-	}
-	
-	/**
-	 * Tests that the three properties that should always be set are correct
-	 */
-	public void testBasePropertiesSet() throws CoreException {
-		String buildFileName="TestForEcho.xml"; 
-		run(buildFileName);
-		IFile buildFile= getBuildFile(buildFileName);
-		String fullName= buildFile.getLocation().toFile().getAbsolutePath();
-		assertTrue("eclipse.running should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.running")));
-		assertTrue("ant.file should have been set as the build file name", fullName.equals(AntTestChecker.getDefault().getUserProperty("ant.file")));
-		assertNotNull("ant.java.version should have been set", AntTestChecker.getDefault().getUserProperty("ant.java.version"));
-		assertNotNull("ant.version should have been set", AntTestChecker.getDefault().getUserProperty("ant.version"));
-		assertNotNull("eclipse.home should have been set", AntTestChecker.getDefault().getUserProperty("eclipse.home"));
-	}
-
-	public void testValue() throws CoreException {
-		String buildFileName="TestForEcho.xml"; 
-		run(buildFileName);
-		assertTrue("property.testing should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("property.testing")));
-	}
-
-	public void testValueWithClass() throws CoreException {
-		
-		String buildFileName="TestForEcho.xml"; 
-		run(buildFileName);
-		assertTrue("property.testing2 should have been set as hey", "hey".equals(AntTestChecker.getDefault().getUserProperty("property.testing2")));
-	}
-
-	public void testClass() throws CoreException {
-		String buildFileName="TestForEcho.xml"; 
-		run(buildFileName);
-		assertTrue("property.testing3 should have been set as AntTestPropertyProvider", "AntTestPropertyValueProvider".equals(AntTestChecker.getDefault().getUserProperty("property.testing3")));
-	}
-	
-	public void testHeadless() throws CoreException {
-		try {
-			AntCorePlugin.getPlugin().setRunningHeadless(true);
-			String buildFileName="TestForEcho.xml"; 
-			run(buildFileName);
-			assertNull("property.headless should not have been set as AntTestPropertyProvider", AntTestChecker.getDefault().getUserProperty("property.headless"));
-		} finally {
-			AntCorePlugin.getPlugin().setRunningHeadless(false);
-		}
-	}
-	
-	public void testNotHeadless() throws CoreException {
-		String buildFileName="TestForEcho.xml"; 
-		run(buildFileName);
-		assertTrue("property.headless should have been set as AntTestPropertyProvider", "headless".equals(AntTestChecker.getDefault().getUserProperty("property.headless")));
-	}
-}
-
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TargetTests.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TargetTests.java
deleted file mode 100644
index 20df72b..0000000
--- a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TargetTests.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.core.tests;
-
-
-import java.io.File;
-
-import org.eclipse.ant.core.TargetInfo;
-import org.eclipse.ant.tests.core.AbstractAntTest;
-import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
-import org.eclipse.core.runtime.CoreException;
-
-
-public class TargetTests extends AbstractAntTest {
-	
-	public TargetTests(String name) {
-		super(name);
-	}
-	
-	/**
-	 * Ensures that a default target is found
-	 */
-	public void testDefaultTarget() throws CoreException {
-		TargetInfo[] targets= getTargets("TestForEcho.xml");
-		assertTrue("Should be two targets in TestForEcho.xml", targets.length == 2);
-		assertTrue("Test for Echo should be the default target", targets[1].isDefault());
-	}
-	
-	/**
-	 * Ensures that targets are found in a build file with data types
-	 */
-	public void testGetTargetsWithDataTypes() throws CoreException {
-		TargetInfo[] targets= getTargets("Bug32551.xml");
-		assertTrue("Should be one targets in Bug32551.xml", targets.length == 1);
-	}
-	
-	/**
-	 * Ensures that targets are found in a buildfile with a fileset based on ant_home
-	 * (that ant_home is set at parse time)
-	 * Bug 42926.
-	 */
-	public void testGetTargetsWithAntHome() {
-		System.getProperties().remove("ant.home");
-		try {
-			getTargets("Bug42926.xml");
-		} catch (CoreException ce) {
-			//classpathref was successful but the task is not defined
-			ce.getMessage().equals("file:c:/runtime-test-workspace/AntTests/buildfiles/Bug42926.xml:7: taskdef class com.foo.SomeTask cannot be found");
-		}
-	}
-	
-	/**
-	 * Ensures that target names are retrieved properly
-	 */
-	public void testTargetNames() throws CoreException {
-		String[] targetNames= getTargetNames("TestForEcho.xml");
-		assertTrue("Should be two targets in TestForEcho.xml", targetNames.length == 2);
-		assertTrue("First name should be init", targetNames[0].equals("init"));
-		assertTrue("Second name should be Test for Echo", targetNames[1].equals("Test for Echo"));
-	}
-	
-	/**
-	 * Ensures that target descriptions are retrieved properly
-	 */
-	public void testTargetDescription() throws CoreException {
-		String[] targetDescriptions= getTargetDescriptions("TestForEcho.xml");
-		assertTrue("Should be two targets in TestForEcho.xml", targetDescriptions.length == 2);
-		assertNull("First description should be null", targetDescriptions[0]);
-		assertTrue("Second description should be Calls other targets", targetDescriptions[1].equals("Calls other echos"));
-	}
-	
-	/**
-	 * Ensures that target projects are retrieved properly
-	 */
-	public void testTargetProject() throws CoreException {
-		String targetProject= getProjectName("TestForEcho.xml", "Test for Echo");
-		assertTrue("Project name should be Echo Test", "Echo Test".equals(targetProject));
-	}
-	
-	/**
-	 * Ensures that target dependencies are retrieved properly
-	 */
-	public void testTargetDependencies() throws CoreException {
-		String[] dependencies= getDependencies("TestForEcho.xml", "Test for Echo");
-		assertNotNull("Dependencies should not be null", dependencies);
-		assertTrue("Should be one dependency in Test for Echo", dependencies.length == 1);
-		assertTrue("First dependency should be init", "init".equals(dependencies[0]));
-	}
-	
-	/**
-	 * Runs an Ant build and ensure that the build file location is logged
-	 */
-	public void testRunScript() throws CoreException {
-		run("TestForEcho.xml");
-		String message= (String)AntTestChecker.getDefault().getMessages().get(0);
-		assertTrue("Build file location should be logged as the first message", message != null && message.endsWith("AntTests" + File.separator + "buildfiles" + File.separator + "TestForEcho.xml"));
-		assertSuccessful();
-	}
-}
-
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TaskTests.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TaskTests.java
deleted file mode 100644
index 37bfe88..0000000
--- a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TaskTests.java
+++ /dev/null
@@ -1,143 +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 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.ant.tests.core.tests;
-
-import java.io.File;
-import java.net.URL;
-
-import org.eclipse.ant.core.AntCorePlugin;
-import org.eclipse.ant.core.AntCorePreferences;
-import org.eclipse.ant.core.IAntClasspathEntry;
-import org.eclipse.ant.core.Property;
-import org.eclipse.ant.core.Task;
-import org.eclipse.ant.internal.core.AntClasspathEntry;
-import org.eclipse.ant.tests.core.AbstractAntTest;
-import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
-import org.eclipse.core.runtime.CoreException;
-
-public class TaskTests extends AbstractAntTest {
-
-	
-	public TaskTests(String name) {
-		super(name);
-	}
-	
-	/**
-	 * Testing the old deprecated API
-	 * @throws CoreException
-	 */
-	public void testAddTaskSettingLibrary() throws CoreException {
-		AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-		URL[] urls= prefs.getExtraClasspathURLs();
-		Task newTask= new Task();
-		newTask.setLibrary(urls[0]);
-		newTask.setTaskName("AntTestTask");
-		newTask.setClassName("org.eclipse.ant.tests.core.support.tasks.AntTestTask");
-		prefs.setCustomTasks(new Task[]{newTask});
-		
-		prefs.updatePluginPreferences();
-		
-		run("CustomTask.xml", new String[0], false);
-		String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-		assertTrue("Message incorrect: " + msg, msg.equals("Testing Ant in Eclipse with a custom task"));
-		assertSuccessful();
-	}
-	
-	public void testAddTaskSettingLibraryEntry() throws CoreException {
-		AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-		URL[] urls= prefs.getExtraClasspathURLs();
-		Task newTask= new Task();
-		newTask.setLibraryEntry(new AntClasspathEntry(urls[0]));
-		newTask.setTaskName("AntTestTask2");
-		newTask.setClassName("org.eclipse.ant.tests.core.support.tasks.AntTestTask");
-		prefs.setCustomTasks(new Task[]{newTask});
-		
-		prefs.updatePluginPreferences();
-		
-		run("CustomTask.xml", new String[] {"Custom Task from Entry"}, false);
-		String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-		assertTrue("Message incorrect: " + msg, msg.equals("Testing Ant in Eclipse with a custom task"));
-		assertSuccessful();
-	}
-	
-	public void testRemoveTask() {
-		AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-		prefs.setCustomTasks(new Task[]{});
-		try {
-			run("CustomTask.xml");
-		} catch (CoreException ce) {
-			assertTrue("Exception from undefined task is incorrect", ce.getMessage().endsWith("as this is not an Ant bug."));
-			return;
-		} finally {
-			restorePreferenceDefaults();	
-		}
-		assertTrue("Build should have failed as task no longer defined", false);
-	}
-	
-	public void testAddTaskFromFolder() throws CoreException {
-		try {
-			AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-			Task newTask= new Task();
-			String path= getProject().getFolder("lib").getFile("taskFolder").getLocation().toFile().getAbsolutePath();
-			IAntClasspathEntry entry= new AntClasspathEntry(path + File.separatorChar);
-			IAntClasspathEntry entries[] = prefs.getAdditionalClasspathEntries();
-			IAntClasspathEntry newEntries[] = new IAntClasspathEntry[entries.length + 1];
-			System.arraycopy(entries, 0, newEntries, 0, entries.length);
-			newEntries[entries.length] = entry;
-			prefs.setAdditionalClasspathEntries(newEntries);
-		
-			newTask.setLibraryEntry(entry);
-			newTask.setTaskName("AntTestTask");
-			newTask.setClassName("org.eclipse.ant.tests.core.support.tasks.AntTestTask2");
-			prefs.setCustomTasks(new Task[]{newTask});
-		
-			prefs.updatePluginPreferences();
-		
-			run("CustomTask.xml", new String[0], false);
-			String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-			assertTrue("Message incorrect: " + msg, msg.equals("Testing Ant in Eclipse with a custom task"));
-			assertSuccessful();
-		} finally {
-			restorePreferenceDefaults();
-		}
-	}
-		
-	public void testTasksDefinedInPropertyFile() throws CoreException {
-		try {
-			AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-			Property newProp= new Property("ROOTDIR", "..//resources");
-			prefs.setCustomProperties(new Property[]{newProp});
-			run("Bug34663.xml");
-		} finally {
-			restorePreferenceDefaults();
-		}
-	}
-	
-	public void testTaskDefinedInExtensionPoint() throws CoreException {
-		run("ExtensionPointTask.xml");
-		String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-		assertTrue("Message incorrect: " + msg, msg.equals("Testing Ant in Eclipse with a custom task"));
-		assertSuccessful();
-	}
-		
-	public void testTaskDefinedInExtensionPointHeadless() {
-		AntCorePlugin.getPlugin().setRunningHeadless(true);
-		try {
-			run("ExtensionPointTask.xml");
-		} catch (CoreException ce) {
-			assertTrue("Exception from undefined task is incorrect", ce.getMessage().endsWith("as this is not an Ant bug."));
-			return;
-		} finally {
-			AntCorePlugin.getPlugin().setRunningHeadless(false);
-		}
-		assertTrue("Build should have failed as task was not defined to run in headless", false);
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TypeTests.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TypeTests.java
deleted file mode 100644
index 56941af..0000000
--- a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TypeTests.java
+++ /dev/null
@@ -1,80 +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 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.ant.tests.core.tests;
-
-
-import java.net.URL;
-
-import org.eclipse.ant.core.AntCorePlugin;
-import org.eclipse.ant.core.AntCorePreferences;
-import org.eclipse.ant.core.Type;
-import org.eclipse.ant.internal.core.AntClasspathEntry;
-import org.eclipse.ant.tests.core.AbstractAntTest;
-import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
-import org.eclipse.core.runtime.CoreException;
-
-public class TypeTests extends AbstractAntTest {
-
-	public TypeTests(String name) {
-		super(name);
-	}
-	
-	public void testAddType() throws CoreException {
-		AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-		URL[] urls= prefs.getExtraClasspathURLs();
-		Type newType= new Type();
-		newType.setLibraryEntry(new AntClasspathEntry(urls[0]));
-		newType.setTypeName("anttestpath");
-		newType.setClassName("org.eclipse.ant.tests.core.support.types.AntTestPath");
-		prefs.setCustomTypes(new Type[]{newType});
-		
-		run("CustomType.xml");
-		String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-		assertTrue("Message incorrect: " + msg, msg.equals("Test adding a custom type"));
-		assertSuccessful();
-	}
-	
-	public void testRemoveType() {
-		AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
-		prefs.setCustomTypes(new Type[]{});
-		try {
-			run("CustomType.xml");
-		} catch (CoreException ce) {
-			assertTrue("Exception from undefined type is incorrect: "+ ce.getMessage(), ce.getMessage().endsWith("as this is not an Ant bug."));
-			return;
-		} finally {
-			restorePreferenceDefaults();	
-		}
-		assertTrue("Build should have failed as type no longer defined", false);
-		
-	}
-	
-	public void testTypeDefinedInExtensionPoint() throws CoreException {
-		run("ExtensionPointType.xml");
-		String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
-		assertTrue("Message incorrect: " + msg, msg.equals("Ensure that an extension point defined type is present"));
-		assertSuccessful();
-	}
-	
-	public void testTypeDefinedInExtensionPointHeadless() {
-		AntCorePlugin.getPlugin().setRunningHeadless(true);
-		try {
-			run("ExtensionPointType.xml");
-		} catch (CoreException ce) {
-			assertTrue("Exception from undefined type is incorrect: " + ce.getMessage(), ce.getMessage().endsWith("as this is not an Ant bug."));
-			return;
-		} finally {
-			AntCorePlugin.getPlugin().setRunningHeadless(false);
-		}
-		assertTrue("Build should have failed as type was not defined to run in headless", false);
-	}
-	
-}
diff --git a/ant/org.eclipse.ant.tests.ui/.classpath b/ant/org.eclipse.ant.tests.ui/.classpath
deleted file mode 100644
index fdb3769..0000000
--- a/ant/org.eclipse.ant.tests.ui/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Ant Editor Tests"/>
-	<classpathentry kind="src" path="Ant Debug Tests"/>
-	<classpathentry kind="src" path="test plugin"/>
-	<classpathentry kind="src" path="Ant Tests"/>
-	<classpathentry kind="src" path="External Tools"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry output="test_support_bin" kind="src" path="test support"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/ant/org.eclipse.ant.tests.ui/.cvsignore b/ant/org.eclipse.ant.tests.ui/.cvsignore
deleted file mode 100644
index 4e3b0f0..0000000
--- a/ant/org.eclipse.ant.tests.ui/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-test_support_bin
diff --git a/ant/org.eclipse.ant.tests.ui/.externalToolBuilders/Build Test Support JAR.launch b/ant/org.eclipse.ant.tests.ui/.externalToolBuilders/Build Test Support JAR.launch
deleted file mode 100644
index 71fd1f3..0000000
--- a/ant/org.eclipse.ant.tests.ui/.externalToolBuilders/Build Test Support JAR.launch
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.ui/test support&quot; type=&quot;2&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean"/>
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.ui&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml}"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-</launchConfiguration>
diff --git a/ant/org.eclipse.ant.tests.ui/.project b/ant/org.eclipse.ant.tests.ui/.project
deleted file mode 100644
index c76ccf5..0000000
--- a/ant/org.eclipse.ant.tests.ui/.project
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ant.tests.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.externalToolBuilders/Build Test Support JAR.launch</value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.jdt.core.prefs b/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 04050fe..0000000
--- a/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Aug 02 09:29:28 GMT-08:00 2004

-org.eclipse.jdt.core.compiler.problem.unusedImport=warning

-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore

-eclipse.preferences.version=1

diff --git a/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.core.prefs b/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 0f654cf..0000000
--- a/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu May 27 14:48:38 PDT 2004

-eclipse.preferences.version=1

-selfhosting.binExcludes=/org.eclipse.ant.tests.ui/test_support_bin

diff --git a/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.prefs b/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 6203220..0000000
--- a/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Wed Nov 24 22:36:20 GMT-08:00 2004

-compilers.p.unused-element-or-attribute=1

-compilers.p.unresolved-ex-points=0

-compilers.p.deprecated=1

-compilers.p.unknown-element=0

-compilers.p.unknown-resource=1

-compilers.p.unknown-class=1

-compilers.p.unknown-attribute=0

-compilers.p.no-required-att=0

-eclipse.preferences.version=1

-compilers.p.unresolved-import=0

-compilers.p.not-externalized-att=1

-compilers.p.illegal-att-value=0

-compilers.use-project=true

diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/AbstractAntDebugTest.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/AbstractAntDebugTest.java
deleted file mode 100644
index 2509ab0..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/AbstractAntDebugTest.java
+++ /dev/null
@@ -1,706 +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 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.ant.tests.ui.debug;
-
-import org.eclipse.ant.internal.ui.debug.model.AntDebugTarget;
-import org.eclipse.ant.internal.ui.debug.model.AntLineBreakpoint;
-import org.eclipse.ant.internal.ui.debug.model.AntStackFrame;
-import org.eclipse.ant.internal.ui.debug.model.AntThread;
-import org.eclipse.ant.tests.ui.AbstractAntUIBuildTest;
-import org.eclipse.ant.tests.ui.testplugin.DebugElementKindEventWaiter;
-import org.eclipse.ant.tests.ui.testplugin.DebugEventWaiter;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.core.model.ILineBreakpoint;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.IThread;
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.IHyperlink;
-import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
-
- 
-/**
- * Tests for launch configurations
- */
-public abstract class AbstractAntDebugTest extends AbstractAntUIBuildTest {
-	
-	public static final int DEFAULT_TIMEOUT = 20000;
-	
-	/**
-	 * The last relevent event set - for example, that caused
-	 * a thread to suspend
-	 */
-	protected DebugEvent[] fEventSet;
-	
-	public AbstractAntDebugTest(String name) {
-		super(name);
-		// set error dialog to non-blocking to avoid hanging the UI during test
-		ErrorDialog.AUTOMATED_MODE = true;
-		SafeRunnable.setIgnoreErrors(true);
-	}
-	
-	/**
-	 * Sets the last relevant event set
-	 *
-	 * @param set event set
-	 */
-	protected void setEventSet(DebugEvent[] set) {
-		fEventSet = set;
-	}
-	
-	/**
-	 * Returns the last relevant event set
-	 * 
-	 * @return event set
-	 */
-	protected DebugEvent[] getEventSet() {
-		return fEventSet;
-	}
-	
-	/**
-	 * Returns the breakpoint manager
-	 * 
-	 * @return breakpoint manager
-	 */
-	protected IBreakpointManager getBreakpointManager() {
-		return DebugPlugin.getDefault().getBreakpointManager();
-	}	
-	
-	/**
-	 * Returns the source folder with the given name in the given project.
-	 * 
-	 * @param project
-	 * @param name source folder name
-	 * @return package fragment root
-	 */
-	protected IPackageFragmentRoot getPackageFragmentRoot(IJavaProject project, String name) {
-		IProject p = project.getProject();
-		return project.getPackageFragmentRoot(p.getFolder(name));
-	}
-	
-	protected IHyperlink getHyperlink(int offset, IDocument doc) {
-		if (offset >= 0 && doc != null) {
-			Position[] positions = null;
-			try {
-				positions = doc.getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
-			} catch (BadPositionCategoryException ex) {
-				// no links have been added
-				return null;
-			}
-			for (int i = 0; i < positions.length; i++) {
-				Position position = positions[i];
-				if (offset >= position.getOffset() && offset <= (position.getOffset() + position.getLength())) {
-					return ((ConsoleHyperlinkPosition)position).getHyperLink();
-				}
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Launches the given configuration and waits for an event. Returns the
-	 * source of the event. If the event is not received, the launch is
-	 * terminated and an exception is thrown.
-	 * 
-	 * @param configuration the configuration to launch
-	 * @param waiter the event waiter to use
-	 * @return Object the source of the event
-	 * @exception Exception if the event is never received.
-	 */
-	protected Object launchAndWait(ILaunchConfiguration configuration, DebugEventWaiter waiter) throws CoreException {
-	    return launchAndWait(configuration, waiter, true);
-	}
-	
-	/**
-	 * Launches the given configuration and waits for an event. Returns the
-	 * source of the event. If the event is not received, the launch is
-	 * terminated and an exception is thrown.
-	 * 
-	 * @param configuration the configuration to launch
-	 * @param waiter the event waiter to use
-	 * @param register whether to register the launch
-	 * @return Object the source of the event
-	 * @exception Exception if the event is never received.
-	 */
-	protected Object launchAndWait(ILaunchConfiguration configuration, DebugEventWaiter waiter, boolean register) throws CoreException {
-		ILaunch launch = configuration.launch(ILaunchManager.DEBUG_MODE, null, false, register);
-		Object suspendee= waiter.waitForEvent();
-		if (suspendee == null) {
-			try {
-				launch.terminate();
-			} catch (CoreException e) {
-				e.printStackTrace();
-				fail("Program did not suspend, and unable to terminate launch.");
-			}
-		}
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not suspend, launch terminated.", suspendee);
-		return suspendee;		
-	}	
-	
-	/**
-	 * Launches the build file with the given name, and waits for a
-	 * suspend event in that program. Returns the thread in which the suspend
-	 * event occurred.
-	 * 
-	 * @param buildFileName the buildfile to launch
-	 * @return thread in which the first suspend event occurred
-	 */
-	protected AntThread launchAndSuspend(String buildFileName) throws Exception {
-		ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
-		assertNotNull("Could not locate launch configuration for " + buildFileName, config);
-		return launchAndSuspend(config);
-	}
-
-	/**
-	 * Launches the given configuration in debug mode, and waits for a 
-	 * suspend event in that program. Returns the thread in which the suspend
-	 * event occurred.
-	 * 
-	 * @param config the configuration to launch
-	 * @return thread in which the first suspend event occurred
-	 */	
-	protected AntThread launchAndSuspend(ILaunchConfiguration config) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.SUSPEND, AntThread.class);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-		Object suspendee = launchAndWait(config, waiter);
-		return (AntThread)suspendee;		
-	}
-	
-	/**
-	 * Launches the buildfile with the given name, and waits for a breakpoint-caused 
-	 * suspend event in that program. Returns the thread in which the suspend
-	 * event occurred.
-	 * 
-	 * @param buildFileName the buildfile to launch
-	 * @return thread in which the first suspend event occurred
-	 */
-	protected AntThread launchToBreakpoint(String buildFileName) throws Exception {
-		return launchToBreakpoint(buildFileName, true);
-	}
-	
-	/**
-	 * Launches the buildfile with the given name, and waits for a breakpoint-caused 
-	 * suspend event in that program. Returns the thread in which the suspend
-	 * event occurred.
-	 * 
-	 * @param buildFileName the buildfile to launch
-	 * @param register whether to register the launch
-	 * @return thread in which the first suspend event occurred
-	 */
-	protected AntThread launchToBreakpoint(String buildFileName, boolean register) throws Exception {
-		ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
-		assertNotNull("Could not locate launch configuration for " + buildFileName, config);
-		return launchToBreakpoint(config, register);
-	}	
-
-	/**
-	 * Launches the given configuration in debug mode, and waits for a breakpoint-caused 
-	 * suspend event in that program. Returns the thread in which the suspend
-	 * event occurred.
-	 * 
-	 * @param config the configuration to launch
-	 * @return thread in which the first suspend event occurred
-	 */	
-	protected AntThread launchToBreakpoint(ILaunchConfiguration config) throws CoreException {
-	    return launchToBreakpoint(config, true);
-	}
-	
-	/**
-	 * Launches the given configuration in debug mode, and waits for a breakpoint-caused 
-	 * suspend event in that program. Returns the thread in which the suspend
-	 * event occurred.
-	 * 
-	 * @param config the configuration to launch
-	 * @param whether to register the launch
-	 * @return thread in which the first suspend event occurred
-	 */	
-	protected AntThread launchToBreakpoint(ILaunchConfiguration config, boolean register) throws CoreException {
-		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, AntThread.class, DebugEvent.BREAKPOINT);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-
-		Object suspendee= launchAndWait(config, waiter, register);
-		assertTrue("suspendee was not an AntThread", suspendee instanceof AntThread);
-		return (AntThread)suspendee;		
-	}	
-	
-	/**
-	 * Launches the buildfile with the given name, and waits for a terminate
-	 * event in that program. Returns the debug target in which the suspend
-	 * event occurred.
-	 * 
-	 * @param buildFileName the buildfile to execute
-	 * @param timeout the number of milliseconds to wait for a terminate event
-	 * @return debug target in which the terminate event occurred
-	 */
-	protected AntDebugTarget launchAndTerminate(String buildFileName) throws Exception {
-		ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
-		assertNotNull("Could not locate launch configuration for " + buildFileName, config);
-		return debugLaunchAndTerminate(config, DEFAULT_TIMEOUT);
-	}
-
-	/**
-	 * Launches the given configuration in debug mode, and waits for a terminate
-	 * event in that program. Returns the debug target in which the terminate
-	 * event occurred.
-	 * 
-	 * @param config the configuration to launch
-	 * @param timeout the number of milliseconds to wait for a terminate event
-	 * @return thread in which the first suspend event occurred
-	 */	
-	protected AntDebugTarget debugLaunchAndTerminate(ILaunchConfiguration config, int timeout) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.TERMINATE, AntDebugTarget.class);
-		waiter.setTimeout(timeout);
-
-		Object terminatee = launchAndWait(config, waiter);		
-		assertNotNull("Program did not terminate.", terminatee);
-		assertTrue("terminatee is not an AntDebugTarget", terminatee instanceof AntDebugTarget);
-		AntDebugTarget debugTarget = (AntDebugTarget) terminatee;
-		assertTrue("debug target is not terminated", debugTarget.isTerminated() || debugTarget.isDisconnected());
-		return debugTarget;		
-	}
-	
-	/**
-	 * Launches the buildfile with the given name, and waits for a line breakpoint suspend
-	 * event in that program. Returns the thread in which the suspend
-	 * event occurred.
-	 * 
-	 * @param buildFileName the buildfile to execute
-	 * @param bp the breakpoint that should cause a suspend event
-	 * @return thread in which the first suspend event occurred
-	 */
-	protected AntThread launchToLineBreakpoint(String buildFileName, ILineBreakpoint bp) throws Exception {
-		ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
-		assertNotNull("Could not locate launch configuration for " + buildFileName, config);
-		return launchToLineBreakpoint(config, bp);
-	}
-
-	/**
-	 * Launches the given configuration in debug mode, and waits for a line breakpoint 
-	 * suspend event in that program. Returns the thread in which the suspend
-	 * event occurred.
-	 * 
-	 * @param config the configuration to launch
-	 * @param bp the breakpoint that should cause a suspend event
-	 * @return thread in which the first suspend event occurred
-	 */	
-	protected AntThread launchToLineBreakpoint(ILaunchConfiguration config, ILineBreakpoint bp) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, AntThread.class, DebugEvent.BREAKPOINT);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-
-		Object suspendee= launchAndWait(config, waiter);
-		assertTrue("suspendee was not an AntThread", suspendee instanceof AntThread);
-		AntThread thread = (AntThread) suspendee;
-		IBreakpoint hit = getBreakpoint(thread);
-		assertNotNull("suspended, but not by breakpoint", hit);
-		assertTrue("hit un-registered breakpoint", bp.equals(hit));
-		assertTrue("suspended, but not by line breakpoint", hit instanceof ILineBreakpoint);
-		ILineBreakpoint breakpoint= (ILineBreakpoint) hit;
-		int lineNumber = breakpoint.getLineNumber();
-		int stackLine = thread.getTopStackFrame().getLineNumber();
-		assertTrue("line numbers of breakpoint and stack frame do not match", lineNumber == stackLine);
-		
-		return thread;		
-	}
-	
-	/**
-	 * Resumes the given thread, and waits for another breakpoint-caused suspend event.
-	 * Returns the thread in which the suspend event occurs.
-	 * 
-	 * @param thread thread to resume
-	 * @return thread in which the first suspend event occurs
-	 */
-	protected AntThread resume(AntThread thread) throws Exception {
-	    return resume(thread, DEFAULT_TIMEOUT);
-	}	
-	
-	/**
-	 * Resumes the given thread, and waits for another breakpoint-caused suspend event.
-	 * Returns the thread in which the suspend event occurs.
-	 * 
-	 * @param thread thread to resume
-	 * @param timeout timeout in ms
-	 * @return thread in which the first suspend event occurs
-	 */
-	protected AntThread resume(AntThread thread, int timeout) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, AntThread.class, DebugEvent.BREAKPOINT);
-		waiter.setTimeout(timeout);
-		
-		thread.resume();
-
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not suspend.", suspendee);
-		return (AntThread)suspendee;
-	}	
-	
-	/**
-	 * Resumes the given thread, and waits for a suspend event caused by the specified
-	 * line breakpoint.  Returns the thread in which the suspend event occurs.
-	 * 
-	 * @param thread thread to resume
-	 * @return thread in which the first suspend event occurs
-	 */
-	protected AntThread resumeToLineBreakpoint(AntThread resumeThread, ILineBreakpoint bp) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, AntThread.class, DebugEvent.BREAKPOINT);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
-		resumeThread.resume();
-
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not suspend.", suspendee);
-		assertTrue("suspendee was not an AntThread", suspendee instanceof AntThread);
-		AntThread thread = (AntThread) suspendee;
-		IBreakpoint hit = getBreakpoint(thread);
-		assertNotNull("suspended, but not by breakpoint", hit);
-		assertTrue("hit un-registered breakpoint", bp.equals(hit));
-		assertTrue("suspended, but not by line breakpoint", hit instanceof ILineBreakpoint);
-		ILineBreakpoint breakpoint= (ILineBreakpoint) hit;
-		int lineNumber = breakpoint.getLineNumber();
-		int stackLine = thread.getTopStackFrame().getLineNumber();
-		assertTrue("line numbers of breakpoint and stack frame do not match", lineNumber == stackLine);
-		
-		return (AntThread)suspendee;
-	}	
-	
-	/**
-	 * Resumes the given thread, and waits for the debug target
-	 * to terminate (i.e. finish/exit the program).
-	 * 
-	 * @param thread thread to resume
-	 */
-	protected void exit(AntThread thread) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.TERMINATE, IProcess.class);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
-		thread.resume();
-
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not terminate.", suspendee);
-	}	
-		
-	/**
-	 * Resumes the given thread, and waits the associated debug
-	 * target to terminate.
-	 * 
-	 * @param thread thread to resume
-	 * @return the terminated debug target
-	 */
-	protected AntDebugTarget resumeAndExit(AntThread thread) throws Exception {
-		DebugEventWaiter waiter= new DebugElementEventWaiter(DebugEvent.TERMINATE, thread.getDebugTarget());
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
-		thread.resume();
-
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not terminate.", suspendee);
-		AntDebugTarget target = (AntDebugTarget)suspendee;
-		assertTrue("program should have exited", target.isTerminated() || target.isDisconnected());
-		return target;
-	}	
-	
-	protected IResource getBreakpointResource(String typeName) throws Exception {
-		IJavaElement element = getJavaProject().findElement(new Path(typeName + ".java"));
-		IResource resource = element.getCorrespondingResource();
-		if (resource == null) {
-			resource = getJavaProject().getProject();
-		}		
-		return resource;
-	}
-	
-	/**
-	 * Creates and returns a line breakpoint at the given line number in the given buildfile
-	 * 
-	 * @param lineNumber line number
-	 * @param file the buildfile
-	 */
-	protected AntLineBreakpoint createLineBreakpoint(int lineNumber, IFile file) throws Exception {
-		return new AntLineBreakpoint(file, lineNumber);
-	}
-		
-	/**
-	 * Terminates the given thread and removes its launch
-	 */
-	protected void terminateAndRemove(AntThread thread) {
-		if (thread != null) {
-			terminateAndRemove((AntDebugTarget)thread.getDebugTarget());
-		}
-	}
-	
-	/**
-	 * Terminates the given debug target and removes its launch.
-	 * 
-	 * NOTE: all breakpoints are removed, all threads are resumed, and then
-	 * the target is terminated. This avoids defunct processes on linux.
-	 */
-	protected void terminateAndRemove(AntDebugTarget debugTarget) {
-	  
-		if (debugTarget != null && !(debugTarget.isTerminated() || debugTarget.isDisconnected())) {
-			DebugEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.TERMINATE, debugTarget);
-			try {
-				removeAllBreakpoints();
-				IThread[] threads = debugTarget.getThreads();
-				for (int i = 0; i < threads.length; i++) {
-					IThread thread = threads[i];
-					try {
-						if (thread.isSuspended()) {
-							thread.resume();
-						}
-					} catch (CoreException e) {
-					}
-				}
-				debugTarget.terminate();
-				waiter.waitForEvent();
-                getLaunchManager().removeLaunch(debugTarget.getLaunch());
-			} catch (CoreException e) {
-			}
-		}
-
-        // ensure event queue is flushed
-        DebugEventWaiter waiter = new DebugElementEventWaiter(DebugEvent.MODEL_SPECIFIC, this);
-        DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[]{new DebugEvent(this, DebugEvent.MODEL_SPECIFIC)});
-        waiter.waitForEvent();
-	}
-	
-	/**
-	 * Deletes all existing breakpoints
-	 */
-	protected void removeAllBreakpoints() {
-		IBreakpoint[] bps = getBreakpointManager().getBreakpoints();
-		try {
-			getBreakpointManager().removeBreakpoints(bps, true);
-		} catch (CoreException e) {
-		}
-	}
-	
-	/**
-	 * Returns the first breakpoint the given thread is suspended
-	 * at, or <code>null</code> if none.
-	 * 
-	 * @return the first breakpoint the given thread is suspended
-	 * at, or <code>null</code> if none
-	 */
-	protected IBreakpoint getBreakpoint(IThread thread) {
-		IBreakpoint[] bps = thread.getBreakpoints();
-		if (bps.length > 0) {
-			return bps[0];
-		}
-		return null;
-	}
-	
-	/**
-	 * Performs a step over in the given stack frame and returns when complete.
-	 * 
-	 * @param frame stack frame to step in
-	 */
-	protected AntThread stepOver(AntStackFrame frame) throws Exception {
-		org.eclipse.ant.tests.ui.testplugin.DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, AntThread.class, DebugEvent.STEP_END);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
-		frame.stepOver();
-		
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not suspend.", suspendee);
-		return (AntThread) suspendee;
-	}
-
-	/**
-	 * Performs a step into in the given stack frame and returns when complete.
-	 * 
-	 * @param frame stack frame to step in
-	 */
-	protected AntThread stepInto(AntStackFrame frame) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, AntThread.class, DebugEvent.STEP_END);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
-		frame.stepInto();
-		
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not suspend.", suspendee);
-		return (AntThread) suspendee;		
-	}
-	
-	/**
-	 * Performs a step return in the given stack frame and returns when complete.
-	 * 
-	 * @param frame stack frame to step return from
-	 */
-	protected AntThread stepReturn(AntStackFrame frame) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventDetailWaiter(DebugEvent.SUSPEND, AntThread.class, DebugEvent.STEP_END);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
-		frame.stepReturn();
-		
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not suspend.", suspendee);
-		return (AntThread) suspendee;
-	}	
-	
-	/**
-	 * Performs a step into with filters in the given stack frame and returns when
-	 * complete.
-	 * 
-	 * @param frame stack frame to step in
-	 */
-	protected AntThread stepIntoWithFilters(AntStackFrame frame) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.SUSPEND, AntThread.class);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
-		// turn filters on
-		try {
-			DebugUITools.setUseStepFilters(true);
-			frame.stepInto();
-		} finally {
-			// turn filters off
-			DebugUITools.setUseStepFilters(false);
-		}
-		
-		
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not suspend.", suspendee);
-		return (AntThread) suspendee;		
-	}	
-
-	/**
-	 * Performs a step return with filters in the given stack frame and returns when
-	 * complete.
-	 * 
-	 * @param frame stack frame to step in
-	 */
-	protected AntThread stepReturnWithFilters(AntStackFrame frame) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.SUSPEND, AntThread.class);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
-		// turn filters on
-		try {
-			DebugUITools.setUseStepFilters(true);
-			frame.stepReturn();
-		} finally {
-			// turn filters off
-			DebugUITools.setUseStepFilters(false);
-		}
-		
-		
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not suspend.", suspendee);
-		return (AntThread) suspendee;		
-	}	
-	
-	/**
-	 * Performs a step over with filters in the given stack frame and returns when
-	 * complete.
-	 * 
-	 * @param frame stack frame to step in
-	 */
-	protected AntThread stepOverWithFilters(AntStackFrame frame) throws Exception {
-		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.SUSPEND, AntThread.class);
-		waiter.setTimeout(DEFAULT_TIMEOUT);
-		
-		// turn filters on
-		try {
-			DebugUITools.setUseStepFilters(true);
-			frame.stepOver();
-		} finally {
-			// turn filters off
-			DebugUITools.setUseStepFilters(false);
-		}
-		
-		
-		Object suspendee= waiter.waitForEvent();
-		setEventSet(waiter.getEventSet());
-		assertNotNull("Program did not suspend.", suspendee);
-		return (AntThread) suspendee;		
-	}	
-    
-	/**
-	 * Returns the compilation unit with the given name.
-	 * 
-	 * @param project the project containing the CU
-	 * @param root the name of the source folder in the project
-	 * @param pkg the name of the package (empty string for default package)
-	 * @param name the name of the CU (ex. Something.java)
-	 * @return compilation unit
-	 */
-	protected ICompilationUnit getCompilationUnit(IJavaProject project, String root, String pkg, String name) {
-		IProject p = project.getProject();
-		IResource r = p.getFolder(root);
-		return project.getPackageFragmentRoot(r).getPackageFragment(pkg).getCompilationUnit(name);
-	}
-    
-//	protected AntProperty findProperty(AntStackFrame frame, String name) throws DebugException {
-//        AntProperty variable = frame.findVariable(name);
-//        if (variable == null) {
-//            // dump visible variables
-//            IDebugModelPresentation presentation = DebugUIPlugin.getModelPresentation();
-//            System.out.println("Could not find variable '" + name + "' in frame: " + presentation.getText(frame));
-//            System.out.println("Visible variables are:");
-//            IVariable[] variables = frame.getVariables();
-//            for (int i = 0; i < variables.length; i++) {
-//                IVariable variable2 = variables[i];
-//                System.out.println("\t" + presentation.getText(variable2));
-//            }
-//            if (!frame.isStatic()) {
-//                variables = frame.getThis().getVariables();
-//                for (int i = 0; i < variables.length; i++) {
-//                    IVariable variable2 = variables[i];
-//                    System.out.println("\t" + presentation.getText(variable2));
-//                }
-//            }
-//        }
-//        return variable;
-//    }
-    
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp() throws Exception {
-        DebugUIPlugin.getStandardDisplay().syncExec(new Runnable() {
-            public void run() {
-                IWorkbench workbench = PlatformUI.getWorkbench();
-                IPerspectiveDescriptor descriptor = workbench.getPerspectiveRegistry().findPerspectiveWithId(IDebugUIConstants.ID_DEBUG_PERSPECTIVE);
-                workbench.getActiveWorkbenchWindow().getActivePage().setPerspective(descriptor);
-            }
-        });
-    }
-}
-
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementEventWaiter.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementEventWaiter.java
deleted file mode 100644
index 3ad276d..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementEventWaiter.java
+++ /dev/null
@@ -1,33 +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 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.ant.tests.ui.debug;
-
-import org.eclipse.ant.tests.ui.testplugin.DebugEventWaiter;
-import org.eclipse.debug.core.DebugEvent;
-
-/**
- * Waits for an event on a specific element
- */
-
-public class DebugElementEventWaiter extends DebugEventWaiter {
-	
-	protected Object fElement;
-	
-	public DebugElementEventWaiter(int kind, Object element) {
-		super(kind);
-		fElement = element;
-	}
-	
-	public boolean accept(DebugEvent event) {
-		return super.accept(event) && fElement == event.getSource();
-	}
-
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementKindEventDetailWaiter.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementKindEventDetailWaiter.java
deleted file mode 100644
index 10309f7..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementKindEventDetailWaiter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.ui.debug;
-
-import org.eclipse.ant.tests.ui.testplugin.DebugElementKindEventWaiter;
-import org.eclipse.debug.core.DebugEvent;
-
-/**
- * Wait for the specified event with the specified from the specified element.
- */
-public class DebugElementKindEventDetailWaiter extends DebugElementKindEventWaiter {
-
-	protected int fDetail;
-
-	public DebugElementKindEventDetailWaiter(int eventKind, Class elementClass, int detail) {
-		super(eventKind, elementClass);
-		fDetail = detail;
-	}
-	
-	public boolean accept(DebugEvent event) {
-		return super.accept(event) && fDetail == event.getDetail();
-	}
-	
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DeferredBreakpointTests.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DeferredBreakpointTests.java
deleted file mode 100644
index e576b08..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DeferredBreakpointTests.java
+++ /dev/null
@@ -1,117 +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 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.ant.tests.ui.debug;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.ant.internal.ui.debug.model.AntDebugTarget;
-import org.eclipse.ant.internal.ui.debug.model.AntThread;
-import org.eclipse.ant.internal.ui.launchConfigurations.IAntLaunchConfigurationConstants;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.core.model.ILineBreakpoint;
-
-/**
- * Tests deferred Ant breakpoints.
- */
-public class DeferredBreakpointTests extends AbstractAntDebugTest {
-	
-	public DeferredBreakpointTests(String name) {
-		super(name);
-	}
-
-	public void testDeferredBreakpoints() throws Exception {
-		String fileName = "breakpoints";
-        IFile file= getIFile(fileName + ".xml");
-		List bps = new ArrayList();
-		bps.add(createLineBreakpoint(5, file));
-		bps.add(createLineBreakpoint(14, file));
-		AntThread thread= null;
-		try {
-			thread= launchToBreakpoint(fileName);
-			assertNotNull("Breakpoint not hit within timeout period", thread);
-			while (!bps.isEmpty()) {
-				IBreakpoint hit = getBreakpoint(thread);
-				assertNotNull("suspended, but not by breakpoint", hit);
-				assertTrue("hit un-registered breakpoint", bps.contains(hit));
-				assertTrue("suspended, but not by line breakpoint", hit instanceof ILineBreakpoint);
-				ILineBreakpoint breakpoint= (ILineBreakpoint) hit;
-				int lineNumber = breakpoint.getLineNumber();
-				int stackLine = thread.getTopStackFrame().getLineNumber();
-				assertEquals("line numbers of breakpoint and stack frame do not match", lineNumber, stackLine);
-				bps.remove(breakpoint);
-				breakpoint.delete();
-				if (!bps.isEmpty()) {
-					thread = resume(thread);
-				}
-			}
-		} finally {
-			terminateAndRemove(thread);
-			removeAllBreakpoints();
-		}		
-	}
-
-	public void testDisabledBreakpoint() throws Exception {
-        String fileName = "breakpoints";
-        IFile file= getIFile(fileName + ".xml");
-		ILineBreakpoint bp = createLineBreakpoint(5, file);
-		bp.setEnabled(false);
-		
-		AntDebugTarget debugTarget = null;
-		try {
-			debugTarget= launchAndTerminate(fileName);
-		} finally {
-			terminateAndRemove(debugTarget);
-			removeAllBreakpoints();
-		}				
-	}
-
-	public void testEnableDisableBreakpoint() throws Exception {
-        String fileName = "breakpoints";
-        IFile file= getIFile(fileName + ".xml");
-		ILineBreakpoint bp = createLineBreakpoint(4, file);
-		bp.setEnabled(true);
-		
-		AntThread thread = null;
-		try {
-            ILaunchConfiguration config= getLaunchConfiguration(fileName);
-            ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-            copy.setAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_TARGETS, "entry1, entry2");
-			thread= launchToLineBreakpoint(fileName, bp);
-			bp.setEnabled(false);
-			resumeAndExit(thread);
-		} finally {
-			terminateAndRemove(thread);
-			removeAllBreakpoints();
-		}				
-	}
-	
-	public void testSkipLineBreakpoint() throws Exception {
-        String fileName = "breakpoints";
-        IFile file= getIFile(fileName + ".xml");
-		ILineBreakpoint bp = createLineBreakpoint(4, file);
-		createLineBreakpoint(15, file);
-		
-		AntThread thread = null;
-		try {
-		    thread= launchToLineBreakpoint(fileName, bp);
-		    getBreakpointManager().setEnabled(false);
-		    resumeAndExit(thread);
-		} finally {
-			terminateAndRemove(thread);
-			removeAllBreakpoints();
-			getBreakpointManager().setEnabled(true);
-		}			    
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/dtd/dumper.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/dtd/dumper.java
deleted file mode 100644
index ecdc486..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/dtd/dumper.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2003 Object Factory Inc.
- * 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:
- *     Object Factory Inc. - Initial implementation
- *******************************************************************************/
-
-package org.eclipse.ant.tests.ui.dtd;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Map;
-
-import org.eclipse.ant.internal.ui.dtd.IDfm;
-import org.eclipse.ant.internal.ui.dtd.IElement;
-import org.eclipse.ant.internal.ui.dtd.IModel;
-import org.eclipse.ant.internal.ui.dtd.ISchema;
-import org.eclipse.ant.internal.ui.dtd.ParseError;
-import org.eclipse.ant.internal.ui.dtd.Parser;
-
-/**
- * This class is intended to be used from the command line (hence the
- * uncapitalized class name).
- * @author Bob Foster
- */
-public class dumper {
-
-	public static int main(String[] args) {
-
-		if (args.length <= 0) {
-			System.out.println("Usage: java DTDMerger URL");
-			return 0;
-		}
-		String document = args[0];
-
-		Parser parser = new Parser();
-		
-		ISchema schema;
-		try {
-			schema = parser.parse(document);
-		} catch (ParseError e) {
-			System.out.println(e.getMessage());
-			e.printStackTrace();
-			return 1;
-		} catch (IOException e) {
-			e.printStackTrace();
-			return 1;
-		}
-		System.out.println("DTD successfully parsed");
-		dumpSchema(schema);
-		return 0;
-	}
-	
-	/**
-	 * Write schema contents to standard output.
-	 */
-	private static void dumpSchema(ISchema schema) {
-		IElement[] elements = schema.getElements();
-		System.out.println(""+elements.length+" elements defined");
-		for (int i = 0; i < elements.length; i++) {
-			IElement element = elements[i];
-			IModel model = element.getContentModel();
-			System.out.println("ELEMENT "+element.getName()
-				+'"'+model.stringRep()+'"');
-			dumpDfm(element.getDfm());
-		}
-	}
-
-	/**
-	 * Dump dfm as a series of states.
-	 * <pre>
-	 * S0  a=>S1 b=>S2 
-	 * S1  c=>S2
-	 * S2* d=>S2
-	 * </pre>
-	 * Where * indicates accepting state.
-	 * @param dfm to dump
-	 */
-	private static void dumpDfm(IDfm dfm) {
-		HashMap map = new HashMap();
-		dumpDfm(dfm, map, 0);
-		LinkedList list = new LinkedList();
-		Iterator it = map.entrySet().iterator();
-		while (it.hasNext()) {
-			Map.Entry entry = (Map.Entry) it.next();
-			list.add(new State((IDfm)entry.getKey(), (Integer)entry.getValue()));
-		}
-		State[] states = (State[]) list.toArray(new State[list.size()]);
-		Arrays.sort(states);
-		for (int i = 0; i < states.length; i++) {
-			print(states[i], map);
-		}
-	}
-
-	private static void print(State state, HashMap map) {
-		System.out.print("  S"+state.n.intValue()
-			+(state.dfm.isAccepting() ? "*  " : "  "));
-		String[] accepts = state.dfm.getAccepts();
-		for (int i = 0; i < accepts.length; i++) {
-			String accept = accepts[i];
-			IDfm next = state.dfm.advance(accept);
-			int n = ((Integer)map.get(next)).intValue();
-			System.out.print(" "+accept+"=>S"+n);
-		}
-		System.out.println();
-	}
-	
-	private static int dumpDfm(IDfm dfm, HashMap map, int num) {
-		if (!map.containsKey(dfm)) {
-			map.put(dfm, new Integer(num++));
-			String[] accepts = dfm.getAccepts();
-			for (int i = 0; i < accepts.length; i++) {
-				IDfm next = dfm.advance(accepts[i]);
-				num = dumpDfm(next, map, num);
-			}
-		}
-		return num;
-	}
-	
-	private static class State implements Comparable {
-		public IDfm dfm;
-		public Integer n;
-		public State(IDfm dfm, Integer n) {
-			this.dfm = dfm;
-			this.n = n;
-		}
-		/**
-		 * @see java.lang.Comparable#compareTo(java.lang.Object)
-		 */
-		public int compareTo(Object o) {
-			State other = (State) o;
-			return n.intValue() < other.n.intValue()
-				? -1 
-				: (n.intValue() == other.n.intValue() 
-					? 0 
-					: 1);
-		}
-
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/AntEditorContentOutlineTests.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/AntEditorContentOutlineTests.java
deleted file mode 100644
index 4625058..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/AntEditorContentOutlineTests.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2003 GEBIT Gesellschaft fuer EDV-Beratung
- * und Informatik-Technologien mbH, 
- * Berlin, Duesseldorf, Frankfurt (Germany) 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:
- *     GEBIT Gesellschaft fuer EDV-Beratung und Informatik-Technologien mbH - initial implementation
- * 	   IBM Corporation - additional tests
- *******************************************************************************/
-
-package org.eclipse.ant.tests.ui.editor;
-
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ant.internal.ui.model.AntElementNode;
-import org.eclipse.ant.internal.ui.model.AntModel;
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-import org.eclipse.jface.text.BadLocationException;
-
-/**
- * Tests the correct creation of the outline for an xml file.
- * 
- */
-public class AntEditorContentOutlineTests extends AbstractAntUITest {
-    
-    public AntEditorContentOutlineTests(String name) {
-        super(name);
-    }
-   
-    /**
-     * Tests the creation of the AntElementNode, that includes parsing a file
-     * and determining the correct location of the tags.
-     */
-    public void testCreationOfOutlineTree() throws BadLocationException {
-		AntModel model= getAntModel("buildtest1.xml");
-        
-		AntElementNode rootProject= model.getProjectNode();
-       
-        assertNotNull(rootProject);
-        
-        // Get the content as string
-        String wholeDocumentString = getCurrentDocument().get();
-        
-        // <project>
-        assertEquals(2, getStartingRow(rootProject));
-        assertEquals(2, getStartingColumn(rootProject));
-        int offset = wholeDocumentString.indexOf("project");
-	    assertEquals(offset, rootProject.getOffset());
-        
-        List children = rootProject.getChildNodes();
-		
-		// <property name="propD">
-		AntElementNode element = (AntElementNode)children.get(0);
-		assertEquals(3, getStartingRow(element));
-		assertEquals(3, getStartingColumn(element)); // with tab in file
-		assertEquals(3, getEndingRow(element));
-		assertEquals(39, getEndingColumn(element));  // with tab in file
-
-        offset = wholeDocumentString.indexOf("property");
-        assertEquals(offset, element.getOffset());
-        int length = "<property name=\"propD\" value=\"valD\" />".length();
-        assertEquals(length- 1, element.getLength()); //we do not include the first '<'
-		
-		// <property file="buildtest1.properties">
-		element = (AntElementNode)children.get(1);
-		assertEquals(4, getStartingRow(element));
-		assertEquals(6, getStartingColumn(element)); // no tab
-		assertEquals(4, getEndingRow(element));
-		assertEquals(45, getEndingColumn(element));
-
-		// <property name="propV">
-		element = (AntElementNode)children.get(2);
-		assertEquals(5, getStartingRow(element));
-		assertEquals(6, getStartingColumn(element));
-		assertEquals(5, getEndingRow(element));
-		assertEquals(42, getEndingColumn(element));
-		
-		// <target name="main">
-		element = (AntElementNode)children.get(3);
-		assertEquals(6, getStartingRow(element));
-		assertEquals(6, getStartingColumn(element));
-		assertEquals(9, getEndingRow(element));
-		assertEquals(13, getEndingColumn(element));
-		
-		// <property name="property_in_target">
-		element = (AntElementNode)element.getChildNodes().get(0);
-		assertEquals(7, getStartingRow(element));
-		assertEquals(10, getStartingColumn(element));
-		assertEquals(7, getEndingRow(element));
-		assertEquals(57, getEndingColumn(element));
-        offset = wholeDocumentString.indexOf("property name=\"property_in_target\"");
-        assertEquals(offset, element.getOffset());
-		
-        assertEquals(21, getEndingRow(rootProject));
-        assertEquals(10, getEndingColumn(rootProject));
-    }
-    
-    private int getColumn(int offset, int line) throws BadLocationException {
-    	return offset - getCurrentDocument().getLineOffset(line - 1) + 1;
-    }
-    
-    private int getStartingRow(AntElementNode element) throws BadLocationException {
-    	return getCurrentDocument().getLineOfOffset(element.getOffset()) + 1;
-    }
-    
-    private int getEndingRow(AntElementNode element) throws BadLocationException {
-    	return getCurrentDocument().getLineOfOffset(element.getOffset() + element.getLength() - 1) + 1;
-    }
-    
-    private int getStartingColumn(AntElementNode element) throws BadLocationException {
-    	return getColumn(element.getOffset(), getStartingRow(element));
-    }
-    
-    private int getEndingColumn(AntElementNode element) throws BadLocationException {
-    	return getColumn(element.getOffset() + element.getLength() - 1, getEndingRow(element));
-    }
-
-    /**
-     * Tests the creation of the AntElementNode, that includes parsing a non-valid 
-     * file.
-     */
-    public void testParsingOfNonValidFile() throws BadLocationException {
-		AntModel model= getAntModel("buildtest2.xml");
-        
-		AntElementNode root= model.getProjectNode();
-   		assertNotNull(root);
-
-        List children = root.getChildNodes();
-
-		// <target name="main">
-		AntElementNode element = (AntElementNode)children.get(2);
-		assertEquals(5, getStartingRow(element));
-		assertEquals(3, getStartingColumn(element)); // with tab in file
-		assertEquals(5, getEndingRow(element));
-		//main has no ending column as the element is not closed
-        int offset = getCurrentDocument().get().indexOf("target name=\"main\"");
-        assertEquals(offset, element.getOffset()); 
-    }
-
-	
-	/**
-	 * Tests whether the outline can handle a build file with only the <project></project> tags.
-	 */
-	public void testWithProjectOnlyBuildFile() {
-		AntModel model= getAntModel("projectOnly.xml");
-		AntElementNode rootProject= model.getProjectNode();
-		assertNotNull(rootProject);
-	}
-	
-	/**
-	 * Tests whether the outline can handle an empty build file.
-	 */
-	public void testWithEmptyBuildFile() {
-		AntModel model= getAntModel("empty.xml");
-		AntElementNode rootProject= model.getProjectNode();
-		assertTrue(rootProject == null);
-	}		
-
-	/**
-	 * Some testing of getting the right location of tags.
-	 */
-	public void testAdvancedTaskLocation() throws BadLocationException {
-		AntModel model= getAntModel("outline_select_test_build.xml");
-        
-        AntElementNode rootProject= model.getProjectNode();
-        // Get the content as string
-        String wholeDocumentString = getCurrentDocument().get();
-        
-        // <project>
-        assertNotNull(rootProject);
-        assertEquals(2, getStartingRow(rootProject));
-        assertEquals(2, getStartingColumn(rootProject));
-        int offset = wholeDocumentString.indexOf("project");
-        
-	    assertEquals(offset, rootProject.getOffset());
-        
-		// <target name="properties">
-        AntElementNode element = (AntElementNode)rootProject.getChildNodes().get(1);
-        assertNotNull(element);
-        assertEquals("properties", element.getLabel());
-        assertEquals(16, getStartingRow(element));
-        assertEquals(3, getStartingColumn(element));
-        offset = wholeDocumentString.indexOf("target name=\"properties\"");
-      
-	    assertEquals(offset, element.getOffset());
-	}
-
-    public static Test suite() {
-		return new TestSuite(AntEditorContentOutlineTests.class);
-    }
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/AntEditorTests.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/AntEditorTests.java
deleted file mode 100644
index 5417e3d..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/AntEditorTests.java
+++ /dev/null
@@ -1,259 +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 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.ant.tests.ui.editor;
-
-import java.io.File;
-import org.eclipse.ant.internal.ui.editor.AntEditor;
-import org.eclipse.ant.internal.ui.editor.text.XMLTextHover;
-import org.eclipse.ant.tests.ui.editor.performance.EditorTestHelper;
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.ui.PartInitException;
-
-public class AntEditorTests extends AbstractAntUITest {
-
-    public AntEditorTests(String name) {
-        super(name);
-    }
-    
-    public void testHoverForPath() throws PartInitException, BadLocationException {
-        try {
-            IFile file= getIFile("refid.xml");
-            AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-            XMLTextHover hover= new XMLTextHover(editor);
-            int offset= getOffsetWithinLine(editor, 9, 20);
-            IRegion region= hover.getHoverRegion(editor.getViewer(), offset);
-            String hoverText= hover.getHoverInfo(editor.getViewer(), region);
-            String correctResult= "<html><body text=\"#000000\" bgcolor=\"#FFFF88\"><font size=-1><h5>Path Elements:</h5><ul><li>";
-            assertTrue("Expected the following hover text to start with: " + correctResult, hoverText.startsWith(correctResult));
-            
-        } finally {
-            EditorTestHelper.closeAllEditors();    
-        }
-    }
-    
-    public void testHoverForProperty() throws PartInitException, BadLocationException {
-        try {
-            IFile file= getIFile("refid.xml");
-            AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-            XMLTextHover hover= new XMLTextHover(editor);
-            int offset= getOffsetWithinLine(editor, 42, 13);
-            IRegion region= hover.getHoverRegion(editor.getViewer(), offset);
-            String hoverText= hover.getHoverInfo(editor.getViewer(), region);
-            String correctResult= "<html><body text=\"#000000\" bgcolor=\"#FFFF88\"><font size=-1><p>value with spaces</font></body></html>";
-            assertTrue("Expected the following hover text to start with: " + correctResult, correctResult.equals(hoverText));
-        } finally {
-            EditorTestHelper.closeAllEditors();    
-        }
-    }
-    
-    public void testPropertyOpenDeclaration() throws PartInitException, BadLocationException {
-        try {
-            IFile file= getIFile("refid.xml");
-            AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-            int offset = getOffsetWithinLine(editor, 42, 12);
-            editor.selectAndReveal(offset, 2);
-            
-            editor.openReferenceElement();
-            ITextSelection selection= (ITextSelection) editor.getSelectionProvider().getSelection();
-            assertTrue("Selection is not correct: " + selection.getText(), "property".equals(selection.getText()));
-        } finally {
-            EditorTestHelper.closeAllEditors();    
-        }
-    }
-    
-    public void testPatternSetHover() throws PartInitException, BadLocationException {
-        try {
-            IFile file= getIFile("refid.xml");
-            AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-            XMLTextHover hover= new XMLTextHover(editor);
-            int offset= getOffsetWithinLine(editor, 45, 25);
-            IRegion region= hover.getHoverRegion(editor.getViewer(), offset);
-            String hoverText= hover.getHoverInfo(editor.getViewer(), region);
-            String correctResult= "<html><body text=\"#000000\" bgcolor=\"#FFFF88\"><font size=-1><h5>Includes: </h5><li>*.xml</li><p><p><h5>Excludes: </h5><li>**/*Test*</li></font></body></html>";
-            assertTrue("Expected the following hover text to start with: " + correctResult, hoverText.startsWith(correctResult));
-            
-        } finally {
-            EditorTestHelper.closeAllEditors();    
-        }
-    }
-    
-    public void testBadPatternSetHover() throws PartInitException, BadLocationException {
-        try {
-            IFile file= getIFile("refid.xml");
-            AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-            XMLTextHover hover= new XMLTextHover(editor);
-            int offset= getOffsetWithinLine(editor, 46, 25);
-            IRegion region= hover.getHoverRegion(editor.getViewer(), offset);
-            String hoverText= hover.getHoverInfo(editor.getViewer(), region);
-            String correctResult= "Ant UI Tests" + File.separatorChar + "buildfiles" + File.separatorChar + "nothere not found.";
-            assertTrue("Expected the following hover text to ends with: " + correctResult, hoverText.endsWith(correctResult));
-            
-        } finally {
-            EditorTestHelper.closeAllEditors();    
-        }
-    }
-    
-    public void testFileSetHover() throws PartInitException, BadLocationException {
-        try {
-            IFile file= getIFile("refid.xml");
-            AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-            XMLTextHover hover= new XMLTextHover(editor);
-            int offset= getOffsetWithinLine(editor, 44, 20);
-            IRegion region= hover.getHoverRegion(editor.getViewer(), offset);
-            String hoverText= hover.getHoverInfo(editor.getViewer(), region);
-            
-            String correctResult= "<html><body text=\"#000000\" bgcolor=\"#FFFF88\"><font size=-1><h5>Includes: </h5><li>include</li><p><p><h5>Excludes: </h5><li>exclude</li><li>**" + 
-            	File.separatorChar + "*~</li><li>**" 
-            	+ File.separatorChar
-            	+ "#*#</li><li>**" + 
-            	File.separatorChar + 
-            	".#*</li><li>**" +
-            	File.separatorChar + 
-            	"%*%</li><li>**" + 
-            	File.separatorChar +
-            	"._*</li><li>**" + 
-            	File.separatorChar + 
-            	"CVS</li><li>**" +
-            	File.separatorChar + 
-            	"CVS" + File.separatorChar + "**</li><li>**" + 
-            	File.separatorChar + ".cvsignore</li><li>**" + 
-            	File.separatorChar + "SCCS</li><li>**" + File.separatorChar + 
-            	"SCCS" + File.separatorChar + "**</li><li>**" + File.separatorChar + 
-            	"vssver.scc</li><li>**" + File.separatorChar + 
-            	".svn</li><li>**" + File.separatorChar + ".svn" + File.separatorChar + 
-            	"**</li><li>**" + File.separatorChar + ".DS_Store</li></font></body></html>";
-            assertTrue("Expected the following hover text to be: " + correctResult + " Was " + hoverText, correctResult.equals(hoverText));
-            
-        } finally {
-            EditorTestHelper.closeAllEditors();    
-        }
-    }
-    
-    
-    public void testTaskdefOpenDeclaration() throws PartInitException, BadLocationException {
-        try {
-            IFile file= getIFile("taskdef.xml");
-            AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-            int offset = getOffsetWithinLine(editor, 9, 3);
-            editor.selectAndReveal(offset, 0);
-            
-            editor.openReferenceElement();
-            ITextSelection selection= (ITextSelection) editor.getSelectionProvider().getSelection();
-            assertTrue("Selection is not correct: " + selection.getText(), "taskdef".equals(selection.getText()));
-            
-            offset = getOffsetWithinLine(editor, 9, 10);
-            editor.selectAndReveal(offset, 3);
-            
-            editor.openReferenceElement();
-            selection= (ITextSelection) editor.getSelectionProvider().getSelection();
-            assertTrue("Selection is not correct: " + selection.getText(), "taskdef".equals(selection.getText()));
-        } finally {
-            EditorTestHelper.closeAllEditors();    
-        }
-    }
-    
-    public void testMacroDefOpenDeclaration() throws PartInitException, BadLocationException {
-    	try {
-    		IFile file= getIFile("macrodef.xml");
-    		AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-    		int offset = getOffsetWithinLine(editor, 12, 9);
-    		editor.selectAndReveal(offset, 0);
-    		
-    		editor.openReferenceElement();
-    		ITextSelection selection= (ITextSelection) editor.getSelectionProvider().getSelection();
-    		assertTrue("Selection is not correct: " + selection.getText(), "macrodef".equals(selection.getText()));
-    		
-    		offset = getOffsetWithinLine(editor, 14, 9);
-     		editor.selectAndReveal(offset, 1);
-     		
-     		editor.openReferenceElement();
-    		selection= (ITextSelection) editor.getSelectionProvider().getSelection();
-    		assertTrue("Selection is not correct: " + selection.getText(), "macrodef".equals(selection.getText()));
-    	} finally {
-    		EditorTestHelper.closeAllEditors();    
-    	}
-    }
-    
-    public void testMacroDefAttributeOpenDeclaration() throws PartInitException, BadLocationException {
-    	try {
-    		IFile file= getIFile("macrodef.xml");
-    		AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-    		int offset = getOffsetWithinLine(editor, 12, 16);
-    		editor.selectAndReveal(offset, 1);
-    		
-    		editor.openReferenceElement();
-    		ITextSelection selection= (ITextSelection) editor.getSelectionProvider().getSelection();
-    		assertTrue("Selection is not correct: " + selection.getText(), "attribute".equals(selection.getText()));
-    	} finally {
-    		EditorTestHelper.closeAllEditors();    
-    	}
-    }
-    
-    public void testRefOpenDeclaration() throws PartInitException, BadLocationException {
-    	try {
-    		IFile file= getIFile("refid.xml");
-    		AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-    		int offset = getOffsetWithinLine(editor, 9, 20);
-    		editor.selectAndReveal(offset, 2);
-    		
-    		editor.openReferenceElement();
-    		ITextSelection selection= (ITextSelection) editor.getSelectionProvider().getSelection();
-    		assertTrue("Selection is not correct: " + selection.getText(), "path".equals(selection.getText()));
-    	} finally {
-    		EditorTestHelper.closeAllEditors();    
-    	}
-    }
-    
-    public void testTargetOpenDeclaration() throws PartInitException, BadLocationException {
-    	try {
-    		IFile file= getIFile("refid.xml");
-    		AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-    		int offset = getOffsetWithinLine(editor, 0, 18);
-    		editor.selectAndReveal(offset, 1);
-    		
-    		editor.openReferenceElement();
-    		ITextSelection selection= (ITextSelection) editor.getSelectionProvider().getSelection();
-    		assertTrue("Selection is not correct: " + selection.getText(), "target".equals(selection.getText()));
-    	} finally {
-    		EditorTestHelper.closeAllEditors();    
-    	}
-    }
-    
-    public void testHoverRegionWithSpaces() throws PartInitException, BadLocationException {
-        try {
-            IFile file= getIFile("refid.xml");
-            AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, "org.eclipse.ant.ui.internal.editor.AntEditor", true);
-            XMLTextHover hover= new XMLTextHover(editor);
-            //in the middle of the "compile" target of the depends attribute
-            int offset= getOffsetWithinLine(editor, 22, 39);
-            IRegion region= hover.getHoverRegion(editor.getViewer(), offset);
-            
-            assertNotNull(region);
-            IDocument doc= editor.getDocumentProvider().getDocument(editor.getEditorInput());
-            String text= doc.get(region.getOffset(), region.getLength());
-            assertTrue("Region incorrect. Expected length of 7 and text of \"compile\", length was " + region.getLength() + " and text was " + text, region.getLength() == 7 && "compile".equals(text));
-            
-        } finally {
-            EditorTestHelper.closeAllEditors();    
-        }
-    }
-
-	private int getOffsetWithinLine(AntEditor editor, int lineNumber, int offsetInLine) throws BadLocationException {
-		IDocument document= editor.getDocumentProvider().getDocument(editor.getEditorInput());
-		int offset= document.getLineOffset(lineNumber) + offsetInLine;
-		return offset;
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/CodeCompletionTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/CodeCompletionTest.java
deleted file mode 100644
index 37d9fc0..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/CodeCompletionTest.java
+++ /dev/null
@@ -1,997 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 GEBIT Gesellschaft fuer EDV-Beratung
- * und Informatik-Technologien mbH, 
- * Berlin, Duesseldorf, Frankfurt (Germany) 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:
- *     GEBIT Gesellschaft fuer EDV-Beratung und Informatik-Technologien mbH - initial implementation
- * 	   IBM Corporation - additional tests
- *******************************************************************************/
-
-package org.eclipse.ant.tests.ui.editor;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ant.core.AntCorePlugin;
-import org.eclipse.ant.core.AntCorePreferences;
-import org.eclipse.ant.core.Property;
-import org.eclipse.ant.internal.ui.editor.AntEditor;
-import org.eclipse.ant.tests.ui.editor.performance.EditorTestHelper;
-import org.eclipse.ant.tests.ui.editor.support.TestTextCompletionProcessor;
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.ui.PartInitException;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Comment;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * Tests everything about code completion and code assistance.
- * 
- */
-public class CodeCompletionTest extends AbstractAntUITest {
-
-    /**
-     * Constructor for CodeCompletionTest.
-     * @param name
-     */
-    public CodeCompletionTest(String name) {
-        super(name);
-    }
-    
-	public static Test suite() {
-		return new TestSuite(CodeCompletionTest.class);
-	}
-
-    /**
-     * Tests the code completion for attributes of tasks.
-     */
-    public void testAttributeProposals() {
-        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-
-        ICompletionProposal[] proposals = processor.getAttributeProposals("contains", "ca");
-        assertEquals(1, proposals.length);
-        assertEquals("casesensitive - (true | false | on | off | yes | no)", proposals[0].getDisplayString());
-
-        proposals = processor.getAttributeProposals("move", "");
-        assertEquals(17, proposals.length);
-        ICompletionProposal proposal = proposals[0];
-        String displayString = proposal.getDisplayString();
-        assertTrue(displayString.equals("id") 
-        || displayString.equals("taskname")
-        || displayString.equals("description")
-        || displayString.equals("file")
-        || displayString.equals("preservelastmodified - (true | false | on | off | yes | no)")
-        || displayString.equals("tofile")
-        || displayString.equals("todir")
-        || displayString.equals("overwrite - (true | false | on | off | yes | no)")
-        || displayString.equals("filtering - (true | false | on | off | yes | no)")
-        || displayString.equals("flatten - (true | false | on | off | yes | no)")
-        || displayString.equals("includeemptydirs")
-        || displayString.equals("failonerror - (true | false | on | off | yes | no)")
-        || displayString.equals("verbose - (true | false | on | off | yes | no)")
-        || displayString.equals("encoding")
-        || displayString.equals("outputencoding")
-        || displayString.equals("enablemultiplemapping - (true | false | on | off | yes | no)")
-		|| displayString.equals("granularity"));
-        
-        proposals = processor.getAttributeProposals("move", "to");
-        assertEquals(2, proposals.length);
-
-        proposals = processor.getAttributeProposals("reference", "idl");
-        assertEquals(0, proposals.length);
-
-        proposals = processor.getAttributeProposals("reference", "id");
-        assertEquals(1, proposals.length);
-        assertEquals("id", proposals[0].getDisplayString());
-
-        proposals = processor.getAttributeProposals("reference", "i");
-        //id includesfile includes
-        assertEquals(3, proposals.length);
-        displayString= proposals[0].getDisplayString();
-        assertTrue(displayString.equals("id") 
-        		||  displayString.equals("includeFile")
-				|| displayString.equals("includes"));
-
-        proposals = processor.getAttributeProposals("project", "de");
-        assertEquals(1, proposals.length);
-    }
-    
-    /**
-     * Test the code completion for properties, including unquoted (bug 40871)
-     */
-    public void testPropertyProposals() throws BadLocationException {
-    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-
-    	int lineNumber= 7;
-    	int columnNumber= 16;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber);
-    	assertTrue(proposals.length >= 1);
-    	assertContains("prop1", proposals);
-    	
-    	lineNumber= 18;
-    	columnNumber= 25;
-    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber);
-    	assertTrue(proposals.length >= 1);
-    	assertContains("prop2", proposals);
-    }
-    
-    /**
-     * Tests the code completion for nested elements that no templates are presented
-     * Bug 76414
-     */
-	public void testPropertyTemplateProposals() throws BadLocationException, PartInitException {
-		try {
-			IFile file= getIFile("buildtest1.xml");
-			AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
-			TestTextCompletionProcessor processor= new TestTextCompletionProcessor(editor);
-			int lineNumber= 7;
-	    	int columnNumber= 16;
-	    	int lineOffset= editor.getDocumentProvider().getDocument(editor.getEditorInput()).getLineOffset(lineNumber);
-	    	processor.setLineNumber(lineNumber);
-	    	processor.setColumnNumber(columnNumber);
-	    	processor.setCursorPosition(lineOffset + columnNumber);
-	    	
-	    	ICompletionProposal[] proposals= processor.determineTemplateProposals();
-	    	assertTrue("No templates are relevant at the current position. Found: " + proposals.length, proposals.length == 0);
-		} finally {
-			EditorTestHelper.closeAllEditors();
-		}
-	}
-    
-    /**
-     * Test the code completion for "system" properties
-     */
-    public void testSystemPropertyProposals() throws BadLocationException {
-    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-    	
-    	int lineNumber= 18;
-    	int columnNumber= 25;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber);
-    	assertTrue(proposals.length >= 1);
-    	assertContains("java.home", proposals);
-    }
-    
-    /**
-     * Test the code completion for "built-in" properties
-     */
-    public void testBuiltInPropertyProposals() throws BadLocationException {
-    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-    	
-    	int lineNumber= 18;
-    	int columnNumber= 25;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber);
-    	assertTrue(proposals.length >= 1);
-    	assertContains("ant.file", proposals);
-    	assertContains("ant.version", proposals);
-    	assertContains("ant.project.name", proposals);
-    	assertContains("basedir", proposals);
-        assertContains("ant.home", proposals);
-        assertContains("ant.library.dir", proposals);
-    }
-    
-    /**
-     * Test the code completion for extension point / preference properties
-     */
-    public void testPreferencePropertyProposals() throws BadLocationException {
-    	AntCorePreferences prefs= AntCorePlugin.getPlugin().getPreferences();
-    	try {
-    		
-    		prefs.setCustomProperties(new Property[] {new Property("test", "result")});
-    		prefs.updatePluginPreferences();
-    		
-    		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-    		
-    		int lineNumber= 18;
-    		int columnNumber= 25;
-    		int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    		processor.setLineNumber(lineNumber);
-    		processor.setColumnNumber(columnNumber);
-    		processor.setCursorPosition(lineOffset + columnNumber);
-    		ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber);
-    		assertTrue(proposals.length >= 3);
-    		assertContains("eclipse.home", proposals); //contributed
-    		assertContains("property.ui.testing2", proposals); //contributed
-    		assertContains("test", proposals);
-    	} finally {
-    		prefs.setCustomProperties(new Property[]{});
-    		prefs.updatePluginPreferences();
-    	}
-    }
-    
-    /**
-     * Test the code completion for the depend attribute of a target.
-     */
-    public void testTargetDependProposals() throws BadLocationException {
-    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-    	//simple depends
-    	int lineNumber= 10;
-    	int columnNumber= 34;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset + columnNumber), "", "depends");
-    	assertTrue(proposals.length == 7);
-    	assertContains("pretest", proposals);
-    	assertContains("testMoreDepends", proposals);
-    	//comma separated depends
-    	lineNumber= 17;
-    	columnNumber= 53;
-    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset + columnNumber), "", "depends");
-    	assertTrue(proposals.length == 6);
-    	assertContains("main", proposals);
-    	assertDoesNotContain("pretest", proposals);
-    	
-    }
-    
-    /**
-     * Test the code completion for the if attribute of a target.
-     */
-    public void testTargetIfProposals() throws BadLocationException {
-    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-
-    	int lineNumber= 15;
-    	int columnNumber= 31;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset + columnNumber), "", "if");
-    	assertTrue(proposals.length >= 1);
-    	assertContains("prop1", proposals);
-    }
-    
-    /**
-     * Test the code completion for the unless attribute of a target.
-     */
-    public void testTargetUnlessProposals() throws BadLocationException {
-    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-
-    	int lineNumber= 16;
-    	int columnNumber= 43;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset + columnNumber), "prop", "unless");
-    	assertTrue(proposals.length >= 1);
-    	assertContains("prop1", proposals);
-
-    }
-    
- 	/**
- 	 * Asserts that <code>displayString</code> is in one of the 
- 	 * completion proposals.
- 	 */
-    private void assertContains(String displayString, ICompletionProposal[] proposalArray) {
-        boolean found = false;
-        for (int i = 0; i < proposalArray.length; i++) {
-            ICompletionProposal proposal = proposalArray[i];
-            String proposalDisplayString = proposal.getDisplayString();
-            if(displayString.equals(proposalDisplayString)) {
-                found = true;
-                break;
-            }
-        }
-        assertEquals("Did not find displayString: " + displayString, true, found);
-    }        
-    
-    /**
- 	 * Asserts that <code>displayString</code> is not in one of the 
- 	 * completion proposals.
- 	 */
-    private void assertDoesNotContain(String displayString, ICompletionProposal[] proposalArray) {
-        boolean found = false;
-        for (int i = 0; i < proposalArray.length; i++) {
-            ICompletionProposal proposal = proposalArray[i];
-            String proposalDisplayString = proposal.getDisplayString();
-            if(displayString.equals(proposalDisplayString)) {
-                found = true;
-                break;
-            }
-        }
-        assertEquals("Found displayString: " + displayString, false, found);
-    }        
-
-	/**
-	 * Tests the property proposals for the case that they are defined in
-	 * a dependent targets.
-	 */
-    public void testPropertyProposalDefinedInDependantTargets() throws FileNotFoundException {
-        TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("dependencytest.xml"));
-
-        File file= getBuildFile("dependencytest.xml");
-        processor.setEditedFile(file);
-		String documentText = getFileContentAsString(file);
-
-		processor.setLineNumber(35);
-		processor.setColumnNumber(41);
-		int cursorPosition = documentText.lastIndexOf("${");
-		assertTrue(cursorPosition != -1);
-        ICompletionProposal[] proposals = processor.getPropertyProposals(new org.eclipse.jface.text.Document(documentText), "", cursorPosition+2);
-		assertContains("init_prop", proposals);
-		assertContains("main_prop", proposals);
-		assertContains("prop_prop", proposals);
-		assertContains("do_not_compile", proposals);
-		assertContains("adit_prop", proposals);
-		assertContains("compile_prop", proposals);
-    }
-    
-    /**
-     * Tests the code completion for tasks that have been defined in the buildfile
-     */
-	public void testCustomTaskProposals() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("taskdef.xml"));
-
-		ICompletionProposal[] proposals = processor.getTaskProposals(getCurrentDocument(), "target", "min");
-		assertEquals(1, proposals.length);
-		ICompletionProposal proposal = proposals[0];
-		assertEquals("mine", proposal.getDisplayString());
-	}
-    
-    /**
-     * Tests the code completion for tasks that have been defined via the task extension point
-     */
-	public void testExtensionPointTaskProposals() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("taskdef.xml"));
-
-		ICompletionProposal[] proposals = processor.getTaskProposals(getCurrentDocument(), "target", "cool");
-		assertEquals(4, proposals.length);
-		assertContains("coolUITask", proposals);
-	}
-    
-    /**
-     * Tests the code completion for tasks that have been defined via macrodef in the buildfile
-     */
-	public void testMacrodefProposals() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("macrodef.xml"));
-
-		ICompletionProposal[] proposals = processor.getTaskProposals(getCurrentDocument(), "target", "eclipsema");
-		assertEquals(1, proposals.length);
-		ICompletionProposal proposal = proposals[0];
-		assertEquals("eclipseMacro", proposal.getDisplayString());
-        
-	}
-	
-	/**
-     * Tests the code completion for nested element attributes
-     */
-	public void testMacrodefNestedElementAttributeProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("macrodef.xml"));
-		int lineNumber= 5;
-    	int columnNumber= 11;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	assertTrue(proposals.length == 5);
-    	assertContains("description", proposals);
-    	assertContains("implicit - (true | false | on | off | yes | no)", proposals);
-    	assertContains("name", proposals);
-	}
-	
-	/**
-     * Tests the code completion for tasks that have been defined via macrodef in the buildfile
-     */
-	public void testMacrodefAttributeProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("macrodef.xml"));
-		int lineNumber= 12;
-    	int columnNumber= 16;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	assertTrue(proposals.length == 2);
-    	assertContains("v", proposals);
-    	assertContains("eclipse", proposals);
-    	assertTrue("Additional proposal information not correct", proposals[1].getAdditionalProposalInfo().startsWith("Testing Eclipse"));
-	}
-	
-	/**
-     * Tests the code completion for elements that have been defined via macrodef in the buildfile
-     */
-	public void testMacrodefElementProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("macrodef.xml"));
-		int lineNumber= 13;
-    	int columnNumber= 3;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	assertTrue(proposals.length == 1);
-    	assertTrue("Proposal not correct", proposals[0].getDisplayString().equals("some-tasks"));
-    	assertTrue("Additional proposal information not correct", proposals[0].getAdditionalProposalInfo().endsWith("Not required"));
-	}
-
-    /**
-     * Tests the code completion for tasks having parent tasks.
-     */
-    public void testTaskProposals() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-
-       
-        ICompletionProposal[] proposals = processor.getTaskProposals("         <", "rename", "");
-        assertEquals(0, proposals.length);
-
-        proposals = processor.getTaskProposals("       <cl", "property", "cl");
-        assertEquals(1, proposals.length);
-        ICompletionProposal proposal = proposals[0];
-        assertEquals("classpath", proposal.getDisplayString());
-
-        proposals = processor.getTaskProposals("       <pr", "property", "");
-        assertEquals(1, proposals.length);
-        proposal = proposals[0];
-        assertEquals("classpath", proposal.getDisplayString());
-        
-        // "<project><target><mk"
-        proposals = processor.getTaskProposals("<project><target><mk", "target", "mk");
-        assertEquals(1, proposals.length);
-        proposal = proposals[0];
-        assertEquals("mkdir", proposal.getDisplayString());
-        
-    }
-    
-    /**
-     * Tests the code completion for the fail task
-     * bug 73637
-     */
-    public void testFailProposals() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-
-		ICompletionProposal[] proposals = processor.getAttributeProposals("fail", "");
-        assertEquals(6, proposals.length);
-        
-        assertContains("message", proposals);
-        assertContains("if", proposals);
-        assertContains("unless", proposals);
-    }
-    
-	/**
-	 * Test for bug 40951
-	 */
-	public void testMixedElements() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("mixed.xml"));
-		//String string = "<project><target><sql driver=\"\" password=\"\" url=\"\" userid=\"\"></sql><concat></concat>";
-		ICompletionProposal[] proposals = processor.getTaskProposals(getCurrentDocument(), processor.getParentName(getCurrentDocument(), 0, 62), "t");
-		assertEquals(1, proposals.length);
-		ICompletionProposal proposal = proposals[0];
-		assertEquals("transaction", proposal.getDisplayString());
-		
-		proposals = processor.getTaskProposals(getCurrentDocument(), processor.getParentName(getCurrentDocument(), 0, 76), "");
-		//filelist fileset filterchain footer header path
-		assertEquals(6, proposals.length);
-		proposal = proposals[0];
-		assertEquals("filelist", proposal.getDisplayString());
-	}
-	
-    /**
-     * Tests the algorithm for finding a child as used by the processor.
-     */
-    public void testFindChildElement() throws ParserConfigurationException {
-        
-        // Create the test data
-        DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-        Document doc = docBuilder.newDocument();
-        Element parentElement = doc.createElement("parent");
-        Attr attribute = doc.createAttribute("att1");
-        parentElement.setAttributeNode(attribute);
-        Comment comment = doc.createComment("lakjjflsakdfj");
-        parentElement.appendChild(comment);
-        Element childElement = doc.createElement("child");
-        parentElement.appendChild(childElement);
-        childElement = doc.createElement("secondchild");
-        parentElement.appendChild(childElement);
-        
-        // Create the processor
-        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-        
-        // Test it!
-        childElement = processor.findChildElementNamedOf(parentElement, "jkl");
-        assertNull(childElement);
-        childElement = processor.findChildElementNamedOf(parentElement, "secondchild");
-        assertNotNull(childElement);
-        assertEquals("secondchild", childElement.getTagName());
-    }
-    
-    /**
-     * Tests that the processor correctly determines the attribute proposal mode
-     */
-    public void testDeterminingAttributeProposalMode() {
-        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-        int mode = processor.determineProposalMode("<project><property ta", 21, "ta");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-        mode = processor.determineProposalMode("<project><property ", 19, "");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-        mode = processor.determineProposalMode("<project><property   ", 21, "");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-        mode = processor.determineProposalMode("<property id=\"hu\" ", 18, "");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-        mode = processor.determineProposalMode("<property id=\"hu\" \r\n ", 21, "");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-        mode = processor.determineProposalMode("<property\n", 10, "");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-    }
-    
-    /**
-     * Tests that the processor correctly determines the attribute value proposal mode
-     */
-    public void testDeterminingAttributeValueProposalMode() {
-        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-        int mode = processor.determineProposalMode("<project><property take=\"", 25, "");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
-        mode = processor.determineProposalMode("<property id=\"hu\" ", 14, "");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
-        mode = processor.determineProposalMode("<property id=\"hu\" \r\n ", 16, "hu");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
-        mode = processor.determineProposalMode("<property \n\t\tid=\"hu\" \r\n ", 19, "hu");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
-    }
-    
-	/**
-	* Tests how the processor determines the proposal mode.
-	*/
-   public void testDeterminingPropertyProposalMode() {
-	   TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-	   int mode =processor.determineProposalMode("<project><target name=\"$\"", 24, "");
-	   assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
-	   mode = processor.determineProposalMode("<project><target name=\"${\"", 25, "");
-	   assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
-	   mode = processor.determineProposalMode("<project><target name=\"${ja.bl\"", 30, "ja.bl");
-	   assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
-	  
-		mode = processor.determineProposalMode("<project><target><echo>${", 25, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
-   }
-    
-	/**
-	 * Tests how the processor determines the proposal mode.
-	 */
-	public void testDeterminingTaskProposalMode() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-    
-		int mode = processor.determineProposalMode("<project><prop", 14, "prop");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project> hjk", 13, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project> hjk<", 14, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode); // allow this case though it is not valid with Ant
-		mode = processor.determineProposalMode("<project>", 9, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project> ", 10, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project></", 11, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL_CLOSING, mode);
-		mode = processor.determineProposalMode("<project>< </project>", 10, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project default=\"hey\"><target name=\"hey\">a</target></project>", 44, "a");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project default=\"hey\"><target name=\"hey\"></target></project>", 43, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project default=\"hey\"><target name=\"hey\"><a</target></project>", 45, "<a");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<target name=\"main\"><zip><size></size></zip></", 46, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL_CLOSING, mode);
-		mode = processor.determineProposalMode("", 0, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_BUILDFILE, mode);
-		mode= processor.determineProposalMode("<project default=\"hey\"><target name=\"hey\"><javac>a</javac></target></project>", 51, "a");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project> hjk", 13, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
-	}
-	
-	/**
-	 * Tests how the processor determines the proposal mode.
-	 */
-	public void testDeterminingTaskClosingProposalMode() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-	
-		int mode = processor.determineProposalMode("<target name=\"main\"><zip><size></size></zip></", 46, "");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL_CLOSING, mode);
-	}
-
-    /**
-     * Tests how the prefix will be determined.
-     */
-    public void testDeterminingPrefix() {
-        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-
-        // cursor after ${
-        String prefix = processor.getPrefixFromDocument("<project><target name=\"${}\"", 25);
-        assertEquals("", prefix);
-
-        // cursor after $
-        prefix = processor.getPrefixFromDocument("<project><target name=\"${\"", 24);
-        assertEquals("", prefix);
-
-        // cursor after ${ja.
-        prefix = processor.getPrefixFromDocument("<project><target name=\"${ja.\"", 28);
-        assertEquals("ja.", prefix);
-        
-        // cursor after <
-		prefix = processor.getPrefixFromDocument("<project><", 10);
-		assertEquals("", prefix);
-		
-		prefix = processor.getPrefixFromDocument("<project name= \"test\"><tar", 26);
-		assertEquals("tar", prefix);
-		
-		prefix = processor.getPrefixFromDocument("pro", 3);
-		assertEquals("pro", prefix);
-    }    
-    
-    /**
-     * Tests how the processor determines the proposal mode.
-     */
-    public void testDeterminingNoneProposalMode() {
-        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-
-        int mode = processor.determineProposalMode("<project><prop bla", 18, "bla");
-        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_NONE, mode);
-		mode= processor.determineProposalMode("<project default=\"hey\"><target name=", 37, "name=");
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_NONE, mode);
-	}
-    
-    /**
-     * Tests the code completion for tasks in an empty build file (no parent).
-     */
-    public void testTaskProposalsForEmptyBuildFile() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("empty.xml"));
-
-        ICompletionProposal[] proposals = processor.getBuildFileProposals("", "");
-        assertEquals(1, proposals.length);
-        assertEquals("project", proposals[0].getDisplayString());
-        
-        proposals = processor.getBuildFileProposals("            jl", "jl");
-        assertEquals(0, proposals.length);
-        
-        proposals = processor.getBuildFileProposals("    \n<project></project>", "");
-        assertEquals(1, proposals.length);
-    }
-    
-    /**
-     * Tests the code completion for refids (Bug 49830)
-     */
-    public void testRefidProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("refid.xml"));
-
-		int lineNumber= 9;
-    	int columnNumber= 16;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	//for sure should have project.class.path and project.class.path2 but project.class.path2 
-    	//should not present itself as a possible reference
-    	assertTrue(proposals.length >= 2);
-    	assertContains("project.class.path", proposals);
-    	assertDoesNotContain("project.class.path2", proposals);
-    }
-    
-    /**
-     * Tests the code completion for custom task that has a boolean attribute
-     */
-    public void testCustomBooleanProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("customBoolean.xml"));
-
-		int lineNumber= 2;
-    	int columnNumber= 44;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	//true false yes no on off
-    	assertTrue(proposals.length == 6);
-    	assertContains("true", proposals);
-    	assertContains("no", proposals);
-    }
-    
-     /**
-     * Tests the code completion for custom task that has an enumerated attribute
-     */
-    public void testCustomEnumeratedProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("extensionPointTaskSepVM.xml"));
-		int lineNumber= 2;
-    	int columnNumber= 24;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "c");
-    	assertEquals("Incorrect number of proposals", 2, proposals.length);
-    	assertContains("cool", proposals);
-    	assertContains("chillin", proposals);
-    	assertDoesNotContain("awesome", proposals);
-    }
-    
-    /**
-     * Tests the code completion for custom task that have a reference attribute
-     */
-    public void testCustomReferenceProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("extensionPointTaskSepVM.xml"));
-		int lineNumber= 2;
-    	int columnNumber= 41;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "e");
-    	assertEquals("Incorrect number of proposals", 1, proposals.length);
-    	//the reference to the project by name
-    	assertContains("Extension Point Task", proposals);
-    }
-    
-    /**
-     * Tests the code completion for nested element attributes of custom tasks
-     */
-	public void testNestedElementAttributeProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("nestedElementAttributes.xml"));
-		int lineNumber= 4;
-    	int columnNumber= 18;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	assertTrue(proposals.length == 1);
-    	assertContains("works", proposals);
-	}
-	
-	/**
-     * Tests the code completion for nested elements
-     */
-	public void testNestedElementProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("nestedElementAttributes.xml"));
-		int lineNumber= 4;
-    	int columnNumber= 3;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	assertTrue(proposals.length == 1);
-    	assertContains("nestedelement", proposals);
-	}
-	
-	/**
-     * Tests the code completion for nested elements that no templates are presented
-     * Bug 76414
-     */
-	public void testNestedElementTemplateProposals() throws BadLocationException, PartInitException {
-		try {
-			IFile file= getIFile("nestedElementAttributes.xml");
-			AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
-			TestTextCompletionProcessor processor= new TestTextCompletionProcessor(editor);
-			int lineNumber= 4;
-	    	int lineOffset= editor.getDocumentProvider().getDocument(editor.getEditorInput()).getLineOffset(lineNumber);
-	    	
-	    	editor.getSelectionProvider().setSelection(new TextSelection(lineOffset, 0));
-	    	
-	    	ICompletionProposal[] proposals= processor.computeCompletionProposals(lineOffset);
-	    	
-	    	assertTrue("No templates are relevant at the current position. Found: " + proposals.length, proposals.length == 1);
-		} finally {
-			EditorTestHelper.closeAllEditors();
-		}
-	}
-	
-	/**
-     * Tests the code completion for nested element attribute values of custom tasks
-     */
-	public void testNestedElementAttributeValueProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("nestedElementAttributes.xml"));
-    	int lineNumber= 4;
-    	int columnNumber= 25;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	assertTrue(proposals.length == 6); //the boolean proposals
-    	assertContains("true", proposals);
-	}
-	
-	/**
-     * Tests the code completion when a parse error occurs in the project definition
-     * bug 63151
-     */
-	public void testBadProjectProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("badproject.xml"));
-    	int lineNumber= 0;
-    	int columnNumber= 10;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "n");
-    	assertTrue(proposals.length == 1); 
-    	assertContains("name", proposals);
-	}
-	
-	/**
-     * Tests the code completion for attribute value proposals both with and without leading whitespace
-     */
-	public void testAttributeValueProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("javac.xml"));
-    	int lineNumber= 2;
-    	int columnNumber= 29;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	assertTrue(proposals.length == 6); //boolean proposals 
-    	assertContains("false", proposals);
-    	
-    	lineNumber= 3;
-    	columnNumber= 19;
-    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	assertTrue(proposals.length == 6); //boolean proposals 
-    	assertContains("true", proposals);
-    	
-    	lineNumber= 4;
-    	columnNumber= 22;
-    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	assertTrue(proposals.length == 6); //boolean proposals 
-    	assertContains("no", proposals);
-	}
-	
-	/**
-     * Tests the code completion for an empty buildfile
-     */
-	public void testEmptyBuildfileProposals() throws PartInitException {
-		try {
-			IFile file= getIFile("empty.xml");
-			AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
-			TestTextCompletionProcessor processor= new TestTextCompletionProcessor(editor);
-			
-	    	editor.getSelectionProvider().setSelection(TextSelection.emptySelection());
-	    	
-	    	ICompletionProposal[] proposals= processor.computeCompletionProposals(0);
-	    	assertTrue("Two proposals are relevant at the current position. Found: " + proposals.length, proposals.length == 2);
-	    	assertContains("project", proposals);
-	    	assertContains("Buildfile template - simple buildfile with two targets", proposals);
-		} finally {
-			EditorTestHelper.closeAllEditors();
-		}
-	}
-	
-	 /**
-     * Tests the code completion for refids (Bug 65480)
-     */
-    public void testJavacReferencesProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("refid.xml"));
-
-		int lineNumber= 16;
-    	int columnNumber= 24;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	//for sure should have project.class.path and project.class.path2
-    	assertTrue(proposals.length >= 2);
-    	assertContains("project.class.path", proposals);
-    	assertContains("project.class.path2", proposals);
-    	
-    	lineNumber= 17;
-    	columnNumber= 25;
-    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	//for sure should have project.class.path and project.class.path2
-    	assertTrue(proposals.length >= 2);
-    	assertContains("project.class.path", proposals);
-    	assertContains("project.class.path2", proposals);
-    	
-    	lineNumber= 18;
-    	columnNumber= 26;
-    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	//for sure should have project.class.path and project.class.path2
-    	assertTrue(proposals.length >= 2);
-    	assertContains("project.class.path", proposals);
-    	assertContains("project.class.path2", proposals);
-    }
-    
-	 /**
-     * Tests the code completion for the default target of a project (Bug 78030)
-     */
-    public void testProjectDefaultProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-
-		int lineNumber= 1;
-    	int columnNumber= 49;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	//includes all the public targets
-    	assertTrue(proposals.length == 8);
-    	assertContains("main", proposals);
-    	assertContains("testUnless", proposals);
-    }
-    
-    /**
-     * Tests the code completion for project attributes (bug 82031)
-     */
-    public void testProjectAttributeProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml"));
-
-		int lineNumber= 1;
-    	int columnNumber= 9;
-    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "");
-    	//includes all the project attributes
-    	assertTrue(proposals.length == 3);
-    	assertContains("name", proposals);
-    	assertContains("default", proposals);
-    	assertContains("basedir", proposals);
-    	
-    	columnNumber= 10;
-    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
-    	processor.setLineNumber(lineNumber);
-    	processor.setColumnNumber(columnNumber);
-    	processor.setCursorPosition(lineOffset + columnNumber);
-    	proposals = processor.getProposalsFromDocument(getCurrentDocument(), "n");
-    	assertTrue(proposals.length == 1);
-    	assertContains("name", proposals);
-    }
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/TaskDescriptionProviderTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/TaskDescriptionProviderTest.java
deleted file mode 100644
index 521ecdd..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/TaskDescriptionProviderTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2003 GEBIT Gesellschaft fuer EDV-Beratung
- * und Informatik-Technologien mbH, 
- * Berlin, Duesseldorf, Frankfurt (Germany).
- * 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:
- *     GEBIT Gesellschaft fuer EDV-Beratung und Informatik-Technologien mbH - initial implementation
- *******************************************************************************/
-
-package org.eclipse.ant.tests.ui.editor;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-import org.eclipse.ant.internal.ui.editor.TaskDescriptionProvider;
-
-/**
- * Tests the tasks description provider.
- * 
- */
-public class TaskDescriptionProviderTest extends AbstractAntUITest {
-
-    public TaskDescriptionProviderTest(String name) {
-        super(name);
-    }
-
-    /** 
-     * Tests getting the description of a task.
-     */
-    public void testGettingTaskDescription() {
-        TaskDescriptionProvider provider = TaskDescriptionProvider.getDefault();
-        String description = provider.getDescriptionForTask("apply");
-        assertNotNull(description);
-        assertTrue(description.length() > 0);
-    }
-
-    /**
-     * Tests getting the description of an attribute.
-     */
-    public void testGettingAttribute() {
-        TaskDescriptionProvider provider = TaskDescriptionProvider.getDefault();
-        String description = provider.getDescriptionForTaskAttribute("apply", "executable");
-        assertNotNull(description);
-        assertTrue(description.length() > 0);
-    }
-    
-    /**
-     * Tests getting the required value of an attribute.
-     */
-    public void testGettingRequired() {
-        TaskDescriptionProvider provider = TaskDescriptionProvider.getDefault();
-        String required = provider.getRequiredAttributeForTaskAttribute("apply", "executable");
-        assertNotNull(required);
-        assertEquals("yes", required);
-    }
-
-    public static Test suite() {
-		return new TestSuite(TaskDescriptionProviderTest.class);
-    }
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/FormattingPreferencesTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/FormattingPreferencesTest.java
deleted file mode 100644
index 3c33fcc..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/FormattingPreferencesTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 John-Mason P. Shackelford 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:
- *     John-Mason P. Shackelford - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ant.tests.ui.editor.formatter;
-
-import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences;
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-
-public class FormattingPreferencesTest extends AbstractAntUITest {
-
-    public FormattingPreferencesTest(String name) {
-        super(name);
-    }
-
-    public final void testGetCanonicalIndent() {
-     
-        FormattingPreferences prefs;
-        
-        // test spaces 
-        prefs = new FormattingPreferences(){
-            public int getTabWidth() {                
-                return 3;
-            }
-            public boolean useSpacesInsteadOfTabs() {
-                return true;
-            }
-        };        
-        assertEquals("   ",prefs.getCanonicalIndent());
-        
-        // ensure the value is not hard coded
-        prefs = new FormattingPreferences(){
-            public int getTabWidth() {                
-                return 7;
-            }
-            public boolean useSpacesInsteadOfTabs() {
-                return true;
-            }
-        };        
-        assertEquals("       ",prefs.getCanonicalIndent());
-        
-        // use tab character
-        prefs = new FormattingPreferences(){
-            public int getTabWidth() {                
-                return 7;
-            }
-            public boolean useSpacesInsteadOfTabs() {
-                return false;
-            }
-        };        
-        assertEquals("\t",prefs.getCanonicalIndent());
-    }
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlDocumentFormatterTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlDocumentFormatterTest.java
deleted file mode 100644
index bd0cb47..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlDocumentFormatterTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 John-Mason P. Shackelford 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:
- *     John-Mason P. Shackelford - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ant.tests.ui.editor.formatter;
-
-import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences;
-import org.eclipse.ant.internal.ui.editor.formatter.XmlDocumentFormatter;
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-
-public class XmlDocumentFormatterTest extends AbstractAntUITest {
-
-    public XmlDocumentFormatterTest(String name) {
-        super(name);
-    }
-
-    /**
-     * General Test 
-     */
-    public final void testGeneralFormat() throws Exception {
-        FormattingPreferences prefs = new FormattingPreferences(){
-            public int getTabWidth() {                
-                return 3;
-            }
-            public boolean stripBlankLines() {
-                return false;
-            }
-            public boolean useSpacesInsteadOfTabs() {
-                return true;
-            }
-        };
-        simpleTest("formatTest_source01.xml","formatTest_target01.xml",prefs);        
-    }
-
-    /**
-     * Insure that tab width is not hard coded
-     */
-    public final void testTabWidth() throws Exception {
-        FormattingPreferences prefs = new FormattingPreferences(){
-            public int getTabWidth() {                
-                return 7;
-            }
-            public boolean stripBlankLines() {
-                return false;
-            }
-            public boolean useSpacesInsteadOfTabs() {
-                return true;
-            }
-        };
-        simpleTest("formatTest_source01.xml","formatTest_target02.xml",prefs);        
-    }
-
-    
-    /**
-     * Test with tab characters instead of spaces.
-     */
-    public final void testTabsInsteadOfSpaces() throws Exception {
-        FormattingPreferences prefs = new FormattingPreferences(){
-            public int getTabWidth() {                
-                return 3;
-            }
-            public boolean stripBlankLines() {
-                return false;
-            }
-            public boolean useSpacesInsteadOfTabs() {
-                return false;
-            }
-        };
-        simpleTest("formatTest_source01.xml","formatTest_target03.xml",prefs);        
-    }
-    
-    /**
-     * @param sourceFileName - file to format
-     * @param targetFileName - the source file after a properly executed format
-     * @param prefs - given the included preference instructions
-     * @throws Exception
-     */
-    private void simpleTest(String sourceFileName, String targetFileName, FormattingPreferences prefs) throws Exception {
-        
-        XmlDocumentFormatter xmlFormatter = new XmlDocumentFormatter();
-        String result = xmlFormatter.format(getFileContentAsString(getBuildFile(sourceFileName)),prefs);
-        String expectedResult = getFileContentAsString(getBuildFile(targetFileName));
-        
-        assertEquals(expectedResult, result);
-    }
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlFormatterTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlFormatterTest.java
deleted file mode 100644
index 5b48d11..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlFormatterTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 John-Mason P. Shackelford 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:
- *     John-Mason P. Shackelford - initial API and implementation
- *     IBM Corporation - bug 84342
- *******************************************************************************/
-package org.eclipse.ant.tests.ui.editor.formatter;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ant.internal.ui.AntUIPlugin;
-import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences;
-import org.eclipse.ant.internal.ui.editor.formatter.XmlFormatter;
-import org.eclipse.ant.internal.ui.preferences.AntEditorPreferenceConstants;
-import org.eclipse.core.runtime.Preferences;
-
-public class XmlFormatterTest extends TestCase {
-
-    public final void testFormatUsingPreferenceStore() {
-        Preferences prefs = AntUIPlugin.getDefault().getPluginPreferences();
-        prefs.setValue(AntEditorPreferenceConstants.FORMATTER_WRAP_LONG, true);
-        prefs.setValue(AntEditorPreferenceConstants.FORMATTER_MAX_LINE_LENGTH, 40);
-        prefs.setValue(AntEditorPreferenceConstants.FORMATTER_ALIGN, false);
-        prefs.setValue(AntEditorPreferenceConstants.FORMATTER_TAB_CHAR, true);
-        prefs.setValue(AntEditorPreferenceConstants.FORMATTER_TAB_SIZE, 4);
-        String lineSep= System.getProperty("line.separator");
-        String xmlDoc = "<project default=\"go\"><target name=\"go\" description=\"Demonstrate the wrapping of long tags.\"><echo>hi</echo></target></project>";
-        String formattedDoc = XmlFormatter.format(xmlDoc);
-        String expected = "<project default=\"go\">" + lineSep + "\t<target name=\"go\"" + lineSep + "\t        description=\"Demonstrate the wrapping of long tags.\">" + lineSep + "\t\t<echo>hi</echo>" + lineSep + "\t</target>" + lineSep + "</project>";
-        assertEquals(expected, formattedDoc);
-    }
-
-    public final void testFormatWithPreferenceParameter() {
-        FormattingPreferences prefs = new FormattingPreferences() {
-            public boolean wrapLongTags() { return true;}
-            public int getMaximumLineWidth() { return 40;}
-            public boolean alignElementCloseChar() { return false;}
-            public boolean useSpacesInsteadOfTabs() { return true;}
-            public int getTabWidth() { return 6;}
-        };
-        String lineSep= System.getProperty("line.separator");
-        String xmlDoc = "<project default=\"go\"><target name=\"go\" description=\"Demonstrate the wrapping of long tags.\"><echo>hi</echo></target></project>";
-        String formattedDoc = XmlFormatter.format(xmlDoc, prefs);
-        String expected = "<project default=\"go\">" + lineSep + "      <target name=\"go\"" + lineSep + "              description=\"Demonstrate the wrapping of long tags.\">" + lineSep + "            <echo>hi</echo>" + lineSep + "      </target>" + lineSep + "</project>";
-        assertEquals(expected, formattedDoc);
-    }
-    
-    /**
-     * Bug 84342
-     */
-    public final void testFormatMaintainingLineSeparators() {
-        FormattingPreferences prefs = new FormattingPreferences() {
-            public boolean wrapLongTags() { return true;}
-            public int getMaximumLineWidth() { return 40;}
-            public boolean alignElementCloseChar() { return false;}
-            public boolean useSpacesInsteadOfTabs() { return true;}
-            public int getTabWidth() { return 6;}
-        };
-        String lineSep= System.getProperty("line.separator");
-        String xmlDoc = "<project default=\"go\"><target name=\"go\" description=\"Demonstrate the wrapping of long tags.\"><echo>hi</echo></target>" + lineSep + lineSep + "</project>";
-        String formattedDoc = XmlFormatter.format(xmlDoc, prefs);
-        String expected = "<project default=\"go\">" + lineSep + "      <target name=\"go\"" + lineSep + "              description=\"Demonstrate the wrapping of long tags.\">" + lineSep + "            <echo>hi</echo>" + lineSep + "      </target>" + lineSep + lineSep + "</project>";
-        assertEquals(expected, formattedDoc);
-    }
-
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java
deleted file mode 100644
index bc36320..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 John-Mason P. Shackelford 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:
- *     John-Mason P. Shackelford - initial API and implementation
- *     IBM Corporation - Bug 84342
- *******************************************************************************/
-package org.eclipse.ant.tests.ui.editor.formatter;
-
-import java.util.List;
-
-import org.eclipse.ant.internal.ui.editor.formatter.XmlTagFormatter;
-import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences;
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-
-public class XmlTagFormatterTest extends AbstractAntUITest {
-
-    // TODO This test is too low level and too tightly coupled to internals.
-
-    /* ---------------- Test Fixture ---------------- */
-    // In case anyone wonders why many people recommend against testing
-    // privates, I produce this example...
-    private static class InnerClassFactory extends XmlTagFormatter {
-
-        public static class ParseException extends XmlTagFormatter.ParseException {
-
-			private static final long serialVersionUID = 1L;
-
-			public ParseException(String message) {
-                super(message);
-            }
-        }
-
-        public static class Tag extends XmlTagFormatter.Tag {
-        }
-
-        public static class TagFormatter extends XmlTagFormatter.TagFormatter {
-
-            public boolean lineRequiresWrap(String line, int lineWidth,
-                    int tabWidth) {
-                return super.lineRequiresWrap(line, lineWidth, tabWidth);
-            }
-
-            public int tabExpandedLineWidth(String line, int tabWidth) {
-                return super.tabExpandedLineWidth(line, tabWidth);
-            }
-
-            public String wrapTag(Tag tag, FormattingPreferences prefs,
-                    String indent, String lineDelimiter) {
-                return super.wrapTag(tag, prefs, indent, lineDelimiter);
-            }
-        }
-
-        public static class TagParser extends XmlTagFormatter.TagParser {
-
-            public String getElementName(String tagText)
-                    throws XmlTagFormatter.ParseException {
-                return super.getElementName(tagText);
-            }
-
-            public List getAttibutes(String elementText)
-                    throws XmlTagFormatter.ParseException {
-                return super.getAttibutes(elementText);
-            }
-        }
-
-        public static Tag createTag() {
-            return new Tag();
-        }
-
-        public static TagFormatter createTagFormatter() {
-            return new TagFormatter();
-        }
-
-        public static TagParser createTagParser() {
-            return new TagParser();
-        }
-
-        public static void validateAttributePair(Object attributePair, String attribute, String value) {
-            XmlTagFormatter.AttributePair pair = (XmlTagFormatter.AttributePair) attributePair;
-            assertEquals(attribute, pair.getAttribute());
-            assertEquals(value, pair.getValue());
-        }
-    }
-
-    public XmlTagFormatterTest(String name) {
-        super(name);
-    }
-
-    private FormattingPreferences getPreferences(final boolean wrapLongTags,
-            final boolean alignCloseChar, final int maxLineWidth) {
-
-        return new FormattingPreferences() {
-
-            public boolean alignElementCloseChar() {
-                return alignCloseChar;
-            }
-
-            public boolean wrapLongTags() {
-                return wrapLongTags;
-            }
-
-            public int getMaximumLineWidth() {
-                return maxLineWidth;
-            }
-        };
-    }
-
-    private void simpleTest(String source, String target,
-            FormattingPreferences prefs, String indent, String lineDelimiter) throws Exception {
-    	
-        String result = XmlTagFormatter.format(source, prefs, indent, lineDelimiter);
-        assertEquals(target, result);
-    }
-
-    /* ---------------- Test Methods ---------------- */
-
-    public void testParserGetElementName() throws Exception {
-
-        InnerClassFactory.TagParser tagParser = InnerClassFactory
-                .createTagParser();
-
-        String elementFixture1 = "<myElement attribute1=\"value1\" attribute2=\"value2\" />"; //$NON-NLS-1$
-        assertEquals("myElement", tagParser.getElementName(elementFixture1)); //$NON-NLS-1$
-
-        String elementFixture2 = "<myElement\t\nattribute1=\"value1\" attribute2=\"value2\" />"; //$NON-NLS-1$
-        assertEquals("myElement", tagParser.getElementName(elementFixture2)); //$NON-NLS-1$
-
-        assertEquals("x", tagParser.getElementName("<x/>")); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals("x", tagParser.getElementName("<x>")); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals("x:y", tagParser.getElementName("<x:y/>")); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals("x:y", tagParser.getElementName("<x:y abc/>")); //$NON-NLS-1$ //$NON-NLS-2$
-
-        Exception e1 = null;
-        try {
-            tagParser.getElementName("<>"); //$NON-NLS-1$
-        } catch (Exception e) {
-            e1 = e;
-        }
-        assertNotNull(e1);
-        assertTrue(e1.getClass().isAssignableFrom(
-                InnerClassFactory.ParseException.class));
-
-        Exception e2 = null;
-        try {
-            tagParser.getElementName("<>"); //$NON-NLS-1$
-        } catch (Exception e) {
-            e2 = e;
-        }
-        assertNotNull(e2);
-        assertTrue(e2.getClass().isAssignableFrom(
-                InnerClassFactory.ParseException.class));
-
-    }
-
-    public void testParserGetAttributes() throws Exception {
-        InnerClassFactory.TagParser tagParser = InnerClassFactory
-                .createTagParser();
-
-        List attributePairs;
-
-        // test normal situation
-        attributePairs = tagParser
-                .getAttibutes("<myElement attribute1=\"value1\" attribute2=\"value2\" />"); //$NON-NLS-1$
-
-        assertEquals(2, attributePairs.size());
-        InnerClassFactory.validateAttributePair(attributePairs.get(0),
-                "attribute1", "value1"); //$NON-NLS-1$ //$NON-NLS-2$
-        InnerClassFactory.validateAttributePair(attributePairs.get(1),
-                "attribute2", "value2"); //$NON-NLS-1$ //$NON-NLS-2$
-
-        
-        // test with extra whitespace and funny quotes
-        attributePairs = tagParser
-                .getAttibutes("<myElement \nattribute1 =  'value1\"'\nattribute2\t=\"value2'\" />"); //$NON-NLS-1$
-
-        assertEquals(2, attributePairs.size());
-        InnerClassFactory.validateAttributePair(attributePairs.get(0),
-                "attribute1", "value1\""); //$NON-NLS-1$ //$NON-NLS-2$
-        InnerClassFactory.validateAttributePair(attributePairs.get(1),
-                "attribute2", "value2'"); //$NON-NLS-1$ //$NON-NLS-2$
-
-// TODO attributes which contain whitespace should throw a parse error
-//       
-//        // test parse errors - whitespace in attribute name
-//        Exception e1 = null;
-//        try {
-//            attributePairs = tagParser
-//                    .getAttibutes("<myElement at tribute1 = \"value1\" attribute2=\"value2\" />");
-//        } catch (Exception e) {
-//            e1 = e;
-//        }
-//        assertNotNull(e1);
-//        assertTrue(e1.getClass().isAssignableFrom(
-//                InnerClassFactory.ParseException.class));
-        
-        
-        // test parse errors - equals in the wrong place
-        Exception e2 = null;
-        try {
-            attributePairs = tagParser
-                    .getAttibutes("<myElement attribute1=\"value1\" = attribute2=\"value2\" />"); //$NON-NLS-1$
-        } catch (Exception e) {
-            e2 = e;
-        }
-        assertNotNull(e2);
-        assertTrue(e2.getClass().isAssignableFrom(
-                InnerClassFactory.ParseException.class));
-        
-        
-        // test parse errors - quotes in the wrong place
-        Exception e3 = null;
-        try {
-            attributePairs = tagParser
-                    .getAttibutes("<myElement attribute1=\"\"value1\"  attribute2=\"value2\" />"); //$NON-NLS-1$
-        } catch (Exception e) {
-            e3 = e;
-        }
-        assertNotNull(e3);
-        assertTrue(e3.getClass().isAssignableFrom(InnerClassFactory.ParseException.class));
-    }
-
-    public void testFormat01() throws Exception {
-    	String lineSep= System.getProperty("line.separator");
-        String indent = "\t"; //$NON-NLS-1$
-        String source = "<target name=\"myTargetName\" depends=\"a,b,c,d,e,f,g\" description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
-        String target = "<target name=\"myTargetName\"" + lineSep //$NON-NLS-1$
-                + indent
-                + "        depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
-                + indent
-                + "        description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
-
-        simpleTest(source, target, getPreferences(true, false, 60), indent, lineSep);
-    }
-
-    public void testFormat02() throws Exception {
-    	String lineSep= System.getProperty("line.separator");
-        String indent = "\t"; //$NON-NLS-1$
-        String source = "<target name=\"myTargetName\" depends=\"a,b,c,d,e,f,g\" description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
-        String target = "<target name=\"myTargetName\"" + lineSep //$NON-NLS-1$
-                + indent
-                + "        depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
-                + indent
-                + "        description=\"This is a very long element which ought to be wrapped.\"" + lineSep //$NON-NLS-1$
-                + indent + ">"; //$NON-NLS-1$
-
-        simpleTest(source, target, getPreferences(true, true, 60), indent, lineSep);
-    }
-    
-    public void testBug73411() throws Exception {
-    	String lineSep= System.getProperty("line.separator");
-        String indent = "\t"; //$NON-NLS-1$
-        String source = "<target name='myTargetName' depends=\"a,b,c,d,e,f,g\" description=\'This is a very long element which ought to be \"wrapped\".'>"; //$NON-NLS-1$
-        String target = "<target name='myTargetName'" + lineSep //$NON-NLS-1$
-                + indent
-                + "        depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
-                + indent
-                + "        description='This is a very long element which ought to be \"wrapped\".'" + lineSep //$NON-NLS-1$
-                + indent + ">"; //$NON-NLS-1$
-
-        simpleTest(source, target, getPreferences(true, true, 60), indent, lineSep);
-    }
-
-    public void testLineRequiresWrap() throws Exception {
-
-        InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory.createTagFormatter();
-
-        boolean shouldWrap = tagFormatter.lineRequiresWrap(
-                        "\t\t  <myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
-                        70, 8);
-        boolean shouldNotWrap = tagFormatter.lineRequiresWrap(
-                        "\t\t <myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
-                        70, 8);
-        assertTrue(shouldWrap);
-        assertTrue(!shouldNotWrap);
-
-    }
-
-    public void testTabExpandedLineWidth() throws Exception {
-
-        InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory.createTagFormatter();
-
-        assertEquals(20, tagFormatter.tabExpandedLineWidth("\t  1234567890", 8)); //$NON-NLS-1$
-        assertEquals(10, tagFormatter.tabExpandedLineWidth("1234567890", 8)); //$NON-NLS-1$
-        assertEquals(19, tagFormatter.tabExpandedLineWidth("\t1\t2	34567890", 3)); //$NON-NLS-1$
-    }
-
-    public void testTabToStringAndMinimumLength() throws Exception {
-        InnerClassFactory.Tag tag = InnerClassFactory.createTag();
-
-        tag.setElementName("myElement"); //$NON-NLS-1$
-        tag.setClosed(false);
-        assertEquals("<myElement>", tag.toString()); //$NON-NLS-1$
-        assertEquals(tag.toString().length(), tag.minimumLength());
-
-        tag.setClosed(true);
-        assertEquals("<myElement />", tag.toString()); //$NON-NLS-1$
-        assertEquals(tag.toString().length(), tag.minimumLength());
-
-        tag.addAttribute("attribute1", "value1", '"'); //$NON-NLS-1$ //$NON-NLS-2$
-        tag.addAttribute("attribute2", "value2", '"'); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(
-                "<myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
-                tag.toString());
-        assertEquals(tag.toString().length(), tag.minimumLength());
-
-        tag.setClosed(false);
-        assertEquals("<myElement attribute1=\"value1\" attribute2=\"value2\">", //$NON-NLS-1$
-                tag.toString());
-        assertEquals(tag.toString().length(), tag.minimumLength());
-    }
-
-    public void testWrapTag() throws Exception {
-
-        InnerClassFactory.Tag tag = InnerClassFactory.createTag();
-
-        InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory
-                .createTagFormatter();
-
-        FormattingPreferences dontAlignCloseChar = new FormattingPreferences() {
-
-            public boolean alignElementCloseChar() {
-                return false;
-            }
-        };
-        FormattingPreferences doAlignCloseChar = new FormattingPreferences() {
-
-            public boolean alignElementCloseChar() {
-                return true;
-            }
-        };
-
-        tag.setElementName("myElement"); //$NON-NLS-1$
-        tag.addAttribute("attribute1", "value1", '"'); //$NON-NLS-1$ //$NON-NLS-2$
-        tag.addAttribute("attribute2", "value2", '"'); //$NON-NLS-1$ //$NON-NLS-2$
-
-        tag.setClosed(true);
-
-        String lineSep= System.getProperty("line.separator");
-        assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
-                + "\t\t             attribute2=\"value2\" />", tagFormatter //$NON-NLS-1$
-                .wrapTag(tag, dontAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
-
-        assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
-                + "\t\t             attribute2=\"value2\"" + lineSep + "\t\t  />", //$NON-NLS-1$
-                tagFormatter.wrapTag(tag, doAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
-
-        tag.setClosed(false);
-
-        assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
-                + "\t\t             attribute2=\"value2\">", tagFormatter //$NON-NLS-1$
-                .wrapTag(tag, dontAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
-
-        assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
-                + "\t\t             attribute2=\"value2\"" + lineSep + "\t\t  >", //$NON-NLS-1$
-                tagFormatter.wrapTag(tag, doAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
-
-    }
-
-    public void testBug63558() throws Exception {
-		
-		// Ordinarily the double space after the element name would be repaired
-		// but if the formatter is working correctly these examples will be
-		// considered malformed and will be passed through untouched.
-    	 String lineSep= System.getProperty("line.separator");
-		String source1 = "<echo  file=\"foo\">" + lineSep + "&lt;html>&lt;body>&lt;pre>" //$NON-NLS-1$
-				+ "${compilelog}&lt;/pre>&lt;/body>&lt;/html>"; //$NON-NLS-1$
-		FormattingPreferences prefs = getPreferences(true, false, 60); //$NON-NLS-1$
-		simpleTest(source1, source1, prefs, "\t", lineSep);
-	
-		String source2 = "<echo  file=\"foo\"/bar/baz></echo>"; //$NON-NLS-1$		
-		simpleTest(source2, source2, prefs, "\t", lineSep);
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/EditorTestHelper.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/EditorTestHelper.java
deleted file mode 100644
index 690d62b..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/EditorTestHelper.java
+++ /dev/null
@@ -1,149 +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 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.ant.tests.ui.editor.performance;
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.IJobManager;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-
-/**
- * @since 3.1
- */
-public class EditorTestHelper {
-
-	public static IEditorPart openInEditor(IFile file, boolean runEventLoop) throws PartInitException {
-		IEditorPart part= IDE.openEditor(getActivePage(), file);
-		if (runEventLoop)
-			runEventQueue(part);
-		return part;
-	}
-
-	public static IEditorPart openInEditor(IFile file, String editorId, boolean runEventLoop) throws PartInitException {
-		IEditorPart part= IDE.openEditor(getActivePage(), file, editorId);
-		if (runEventLoop)
-			runEventQueue(part);
-		return part;
-	}
-
-	public static IDocument getDocument(ITextEditor editor) {
-		IDocumentProvider provider= editor.getDocumentProvider();
-		IEditorInput input= editor.getEditorInput();
-		return provider.getDocument(input);
-	}
-
-	public static void revertEditor(ITextEditor editor, boolean runEventQueue) {
-		editor.doRevertToSaved();
-		if (runEventQueue)
-			runEventQueue(editor);
-	}
-	
-	public static void closeAllEditors() {
-		IWorkbenchPage page= getActivePage();
-		if (page != null)
-			page.closeAllEditors(false);
-	}
-	
-	public static void runEventQueue() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window != null)
-			runEventQueue(window.getShell());
-	}
-	
-	public static void runEventQueue(IWorkbenchPart part) {
-		runEventQueue(part.getSite().getShell());
-	}
-	
-	public static void runEventQueue(Shell shell) {
-		while (shell.getDisplay().readAndDispatch());
-	}
-	
-	public static void runEventQueue(long minTime) {
-		long nextCheck= System.currentTimeMillis() + minTime;
-		while (System.currentTimeMillis() < nextCheck) {
-			runEventQueue();
-			sleep(1);
-		}
-	}
-	
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-	}
-
-	public static IWorkbenchPage getActivePage() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		return window != null ? window.getActivePage() : null;
-	}
-
-	public static Display getActiveDisplay() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		return window != null ? window.getShell().getDisplay() : null;
-	}
-
-	public static boolean calmDown(long minTime, long maxTime, long intervalTime) {
-		long startTime= System.currentTimeMillis() + minTime;
-		runEventQueue();
-		while (System.currentTimeMillis() < startTime)
-			runEventQueue(intervalTime);
-		
-		long endTime= maxTime > 0 ? System.currentTimeMillis() + maxTime : Long.MAX_VALUE;
-		boolean calm= isCalm();
-		while (!calm && System.currentTimeMillis() < endTime) {
-			runEventQueue(intervalTime);
-			calm= isCalm();
-		}
-//		System.out.println("--------------------------------------------------");
-		return calm;
-	}
-
-	public static void sleep(int intervalTime) {
-		try {
-			Thread.sleep(intervalTime);
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-
-	public static boolean isCalm() {
-		IJobManager jobManager= Platform.getJobManager();
-		Job[] jobs= jobManager.find(null);
-		for (int i= 0; i < jobs.length; i++) {
-			Job job= jobs[i];
-			int state= job.getState();
-//			System.out.println(job.getName() + ": " + getStateName(state));
-			if (state == Job.RUNNING || state == Job.WAITING) {
-//				System.out.println();
-				return false;
-			}
-		}
-//		System.out.println();
-		return true;
-	}
-
-	public static void bringToTop() {
-		getActiveWorkbenchWindow().getShell().forceActive();
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/NonInitialTypingTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/NonInitialTypingTest.java
deleted file mode 100644
index 762e3f9..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/NonInitialTypingTest.java
+++ /dev/null
@@ -1,94 +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 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.ant.tests.ui.editor.performance;
-
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-
-/**
- * Measures the time to type in one single target into a large buildfile
- * @since 3.1
- */
-public class NonInitialTypingTest extends AbstractAntUITest {
-	
-	public NonInitialTypingTest(String name) {
-		super(name);
-	}
-
-//	private ITextEditor fEditor;
-//	
-//	private static final char[] TARGET= ("<target name=\"newTarget\" >\r" +
-//			"<echo>\"New Target\"</echo>\r" +
-//			"</target>\r").toCharArray();
-//
-//	private PerformanceMeter fMeter;
-//
-//	private KeyboardProbe fKeyboardProbe;
-//
-//	protected void setUp() throws PartInitException, BadLocationException {
-//		EditorTestHelper.runEventQueue();
-//		IFile file= getProject().getFolder("buildfiles").getFolder("performance").getFile("build.xml");	
-//		fEditor= (ITextEditor) EditorTestHelper.openInEditor(file, true);
-//		// dirty editor to avoid initial dirtying / validate edit costs
-//		dirtyEditor();
-//		Performance performance= Performance.getDefault();
-//		fMeter= performance.createPerformanceMeter(performance.getDefaultScenarioId(this));
-//		fKeyboardProbe= new KeyboardProbe();
-//
-//		int offset= getInsertPosition();
-//		fEditor.getSelectionProvider().setSelection(new TextSelection(offset, 0));
-//		EditorTestHelper.runEventQueue();
-//		sleep(1000);
-//	}
-//	
-//	private void dirtyEditor() {
-//		fEditor.getSelectionProvider().setSelection(new TextSelection(0, 0));
-//		EditorTestHelper.runEventQueue();
-//		sleep(1000);
-//		
-//		Display display= EditorTestHelper.getActiveDisplay();
-//		fKeyboardProbe.pressChar('{', display);
-//		SWTEventHelper.pressKeyCode(display, SWT.BS);
-//		sleep(1000);
-//	}
-//
-//	protected void tearDown() throws Exception {
-//		sleep(1000);
-//		EditorTestHelper.revertEditor(fEditor, true);
-//		EditorTestHelper.closeAllEditors();
-//		
-//		fMeter.commit();
-//	}
-//
-//	public void testTypeAMethod() {
-//		Display display= EditorTestHelper.getActiveDisplay();
-//		
-//		fMeter.start();
-//		for (int i= 0; i < TARGET.length; i++) {
-//			fKeyboardProbe.pressChar(TARGET[i], display);
-//		}
-//		fMeter.stop();
-//	}
-//
-//	private synchronized void sleep(int time) {
-//		try {
-//			wait(time);
-//		} catch (InterruptedException e) {
-//		}
-//	}
-//	
-//	private int getInsertPosition() throws BadLocationException {
-//		IDocument document= EditorTestHelper.getDocument(fEditor);
-//		int lines= document.getNumberOfLines();
-//		int offset= document.getLineOffset(lines - 2);
-//		return offset;
-//	}
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/OpenAntEditorTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/OpenAntEditorTest.java
deleted file mode 100644
index b270c98..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/OpenAntEditorTest.java
+++ /dev/null
@@ -1,100 +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 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.ant.tests.ui.editor.performance;
-
-import java.io.File;
-
-import org.eclipse.ant.internal.ui.AntUIPlugin;
-import org.eclipse.ant.internal.ui.preferences.AntEditorPreferenceConstants;
-import org.eclipse.ant.tests.ui.testplugin.ProjectHelper;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.PerformanceTestCase;
-import org.eclipse.ui.PartInitException;
-
-public class OpenAntEditorTest extends PerformanceTestCase {
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		EditorTestHelper.runEventQueue();
-	}
-
-	public void testOpenAntEditor1() throws PartInitException {
-		// cold run
-		IFile file= getIFile("build.xml");
-		measureOpenInEditor(file);
-	}
-	
-	public void testOpenAntEditor2() throws PartInitException {
-		// warm run
-		IFile file= getIFile("build.xml");
-		tagAsGlobalSummary("Open Ant Editor", Dimension.CPU_TIME);
-		measureOpenInEditor(file);
-	}
-	
-	public void testOpenAntEditorNoFolding() throws PartInitException {
-	    IPreferenceStore store= AntUIPlugin.getDefault().getPreferenceStore();
-	    try {
-		IFile file= getIFile("build.xml");
-		store.setValue(AntEditorPreferenceConstants.EDITOR_FOLDING_ENABLED, false);
-		tagAsSummary("Open Ant Editor; No folding", Dimension.CPU_TIME);
-		measureOpenInEditor(file);
-	    } finally {
-	        store.setToDefault(AntEditorPreferenceConstants.EDITOR_FOLDING_ENABLED);
-	    }
-	}
-	
-	protected IFile getIFile(String buildFileName) {
-		return getProject().getFolder("buildfiles").getFolder("performance").getFile(buildFileName);	
-	}
-	
-	protected File getBuildFile(String buildFileName) {
-		IFile file = getIFile(buildFileName);
-		assertTrue("Could not find build file named: " + buildFileName, file.exists());
-		return file.getLocation().toFile();
-	}
-	
-	/**
-	 * Returns the 'AntUITests' project.
-	 * 
-	 * @return the test project
-	 */
-	protected IProject getProject() {
-		return ResourcesPlugin.getWorkspace().getRoot().getProject(ProjectHelper.PROJECT_NAME);
-	}
-	
-	protected void measureOpenInEditor(IFile file) throws PartInitException {
-		try {
-			for (int i= 0; i < 15; i++) {
-				startMeasuring();
-				EditorTestHelper.openInEditor(file, true);
-				stopMeasuring();
-				EditorTestHelper.closeAllEditors();
-				sleep(2000); // NOTE: runnables posted from other threads, while the main thread waits here, are executed and measured only in the next iteration
-			}
-			 commitMeasurements();
-	 		 assertPerformance();
-		} finally {
-			EditorTestHelper.closeAllEditors();
-		}
-	}
-	
-	private synchronized void sleep(int time) {
-		try {
-			wait(time);
-		} catch (InterruptedException e) {
-		}
-	}
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestLocationProvider.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestLocationProvider.java
deleted file mode 100644
index 75bde52..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestLocationProvider.java
+++ /dev/null
@@ -1,36 +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 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.ant.tests.ui.editor.support;
-
-import java.io.File;
-
-import org.eclipse.ant.internal.ui.model.LocationProvider;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-
-public class TestLocationProvider extends LocationProvider {
-
-	private File buildFile;
-	
-	public TestLocationProvider(File buildFile) {
-		super(null);
-		this.buildFile= buildFile;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ant.internal.ui.editor.outline.ILocationProvider#getLocation()
-	 */
-	public IPath getLocation() {
-		return new Path(buildFile.getAbsolutePath());
-	}
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestProblemRequestor.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestProblemRequestor.java
deleted file mode 100644
index 4208ac6..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestProblemRequestor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 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.ant.tests.ui.editor.support;
-
-import org.eclipse.ant.internal.ui.model.IProblem;
-import org.eclipse.ant.internal.ui.model.IProblemRequestor;
-
-public class TestProblemRequestor implements IProblemRequestor {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ant.internal.ui.editor.outline.IProblemRequestor#acceptProblem(org.eclipse.ant.internal.ui.editor.outline.IProblem)
-	 */
-	public void acceptProblem(IProblem problem) {
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ant.internal.ui.editor.outline.IProblemRequestor#beginReporting()
-	 */
-	public void beginReporting() {
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ant.internal.ui.editor.outline.IProblemRequestor#endReporting()
-	 */
-	public void endReporting() {
-
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestTextCompletionProcessor.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestTextCompletionProcessor.java
deleted file mode 100644
index 5834508..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestTextCompletionProcessor.java
+++ /dev/null
@@ -1,181 +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 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.ant.tests.ui.editor.support;
-
-import java.io.File;
-import java.io.IOException;
-
-import junit.framework.Assert;
-
-import org.eclipse.ant.internal.ui.editor.AntEditor;
-import org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor;
-import org.eclipse.ant.internal.ui.model.AntModel;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.w3c.dom.Element;
-
-public class TestTextCompletionProcessor extends AntEditorCompletionProcessor {
-
-	public final static int TEST_PROPOSAL_MODE_NONE = AntEditorCompletionProcessor.PROPOSAL_MODE_NONE;
-	public final static int TEST_PROPOSAL_MODE_BUILDFILE = AntEditorCompletionProcessor.PROPOSAL_MODE_BUILDFILE;
-	public final static int TEST_PROPOSAL_MODE_TASK_PROPOSAL = AntEditorCompletionProcessor.PROPOSAL_MODE_TASK_PROPOSAL;
-	public final static int TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL = AntEditorCompletionProcessor.PROPOSAL_MODE_PROPERTY_PROPOSAL;
-	public final static int TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL = AntEditorCompletionProcessor.PROPOSAL_MODE_ATTRIBUTE_PROPOSAL;
-	public final static int TEST_PROPOSAL_MODE_TASK_PROPOSAL_CLOSING = AntEditorCompletionProcessor.PROPOSAL_MODE_TASK_PROPOSAL_CLOSING;
-	public final static int TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL = AntEditorCompletionProcessor.PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL;
-	
-	private File fEditedFile;
-	private ISourceViewer fViewer;
-
-	public TestTextCompletionProcessor(AntModel model) {
-		super(model);
-	}
-	
-	public TestTextCompletionProcessor(AntEditor editor) {
-		super(editor.getAntModel());
-		fViewer= editor.getViewer();
-	}
-	
-	public TestTextCompletionProcessor() {
-		super(null);
-	}
-	
-    public ICompletionProposal[] getAttributeProposals(String taskName, String prefix) {
-    	if (cursorPosition == -1) {
-    		cursorPosition= taskName.length();
-    	}
-        return super.getAttributeProposals(taskName, prefix);
-    }
-
-    public Element findChildElementNamedOf(Element anElement, String childElementName) {
-        return super.findChildElementNamedOf(anElement, childElementName);
-    }
-
-    public ICompletionProposal[] getTaskProposals(String text, String parentName, String prefix) {
-    	cursorPosition= Math.max(0, text.length() - 1);
-        return super.getTaskProposals(new Document(text), parentName, prefix);
-    }
-    
-    public ICompletionProposal[] getTaskProposals(IDocument document, String parentName, String aPrefix) {
-    	cursorPosition= Math.max(0, document.getLength() - 1);
-    	return super.getTaskProposals(document, parentName, aPrefix);
-    }
-
-    public int determineProposalMode(String text, int theCursorPosition, String prefix) {
-        return super.determineProposalMode(new Document(text), theCursorPosition, prefix);
-    }
-
-    public String getParentName(String text, int aLineNumber, int aColumnNumber) {
-        return super.getParentName(new Document(text), aLineNumber, aColumnNumber);
-    }
-    
-    public String getParentName(IDocument doc, int aLineNumber, int aColumnNumber) {
-    	return super.getParentName(doc, aLineNumber, aColumnNumber);
-    }
-
-    public String getPrefixFromDocument(String aDocumentText, int anOffset) {
-        String prefix= super.getPrefixFromDocument(aDocumentText, anOffset);
-        currentPrefix= null;
-        return prefix;
-    }
-
-    public ICompletionProposal[] getPropertyProposals(IDocument document, String prefix, int cursorPos) {
-        return super.getPropertyProposals(document, prefix, cursorPos);
-    }
-
-    /**
-     * Returns the edited File that org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor sets or a temporary 
-     * file, which only serves as a dummy.
-     * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#getEditedFile()
-     */
-	public File getEditedFile() {
-		if (fEditedFile != null){
-			return fEditedFile;
-		}
-		File tempFile = null;
-        try {
-            tempFile = File.createTempFile("test", null);
-        } catch (IOException e) {
-            Assert.fail(e.getMessage());
-        }
-        tempFile.deleteOnExit();
-        return tempFile;
-    }
-
-	public void setLineNumber(int aLineNumber) {
-    	lineNumber = aLineNumber;
-    }
-
-	public void setColumnNumber(int aColumnNumber) {
-    	columnNumber = aColumnNumber;
-    }
-	
-	public void setCursorPosition(int cursorPosition) {
-		this.cursorPosition = cursorPosition;
-	}
-    
-	public void setEditedFile(File aFile) {
-		fEditedFile= aFile;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#getTargetAttributeValueProposals(org.eclipse.jface.text.IDocument, java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public ICompletionProposal[] getTargetAttributeValueProposals(IDocument document, String textToSearch, String prefix, String attributeName) {
-		return super.getTargetAttributeValueProposals(document, textToSearch, prefix, attributeName);
-	}
-	/**
-	 * Since the testing occurs without necessarily having an associated viewer, return
-	 * a dummy value.
-	 */
-	protected char getPreviousChar() {
-		return '?';
-	}
-	
-	 /**
-     * Returns whether the specified task name is known.
-     */
-    protected boolean isKnownElement(String elementName) {
-    	if (antModel != null) {
-    		return super.isKnownElement(elementName);
-    	} 
-    	return getDtd().getElement(elementName) != null ;
-    }
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#getProposalsFromDocument(org.eclipse.jface.text.IDocument, java.lang.String)
-	 */
-	public ICompletionProposal[] getProposalsFromDocument(IDocument document, String prefix) {
-		return super.getProposalsFromDocument(document, prefix);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#getBuildFileProposals(org.eclipse.jface.text.IDocument, java.lang.String)
-	 */
-	public ICompletionProposal[] getBuildFileProposals(String text, String prefix) {
-		return super.getBuildFileProposals(new Document(text), prefix);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#determineTemplateProposals(org.eclipse.jface.text.ITextViewer, int)
-	 */
-	public ICompletionProposal[] determineTemplateProposals() {
-		return super.determineTemplateProposals(fViewer, cursorPosition);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeCompletionProposals(org.eclipse.jface.text.ITextViewer, int)
-	 */
-	public ICompletionProposal[] computeCompletionProposals(int documentOffset) {
-		return super.computeCompletionProposals(fViewer, documentOffset);
-	}
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildPerformanceTest.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildPerformanceTest.java
deleted file mode 100644
index f7f4503..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildPerformanceTest.java
+++ /dev/null
@@ -1,142 +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.ant.tests.ui;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceMeter;
-
-public class AbstractAntUIBuildPerformanceTest extends AbstractAntUIBuildTest {
-
-	protected PerformanceMeter fPerformanceMeter;
-
-	/**
-	 * Constructs a performance test case with the given name.
-	 * @param name the name of the performance test case
-	 */
-	public AbstractAntUIBuildPerformanceTest(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 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 of this test case
-	 * to be included into the 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 global 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 );
-	}
-	
-	/**
-	 * 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);
-	}
-	
-	/**
-	 * Launches the Ant build for this config.
-	 * Waits for all of the lines to be appended to the console.
-	 * 
-	 * @param config the launch configuration to execute
-	 * @param i the number of times to perform the launch
-	 */
-	protected void launch(ILaunchConfiguration config, int i) throws CoreException {
-		startMeasuring();
-		for (int j = 0; j < i; j++) {
-		    super.launch(config);    
-        }
-		stopMeasuring();
-	}
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildTest.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildTest.java
deleted file mode 100644
index 972ae88..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildTest.java
+++ /dev/null
@@ -1,100 +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 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.ant.tests.ui;
-
-import junit.framework.TestResult;
-
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.console.IHyperlink;
-
-
-public abstract class AbstractAntUIBuildTest extends AbstractAntUITest {
-
-	/**
-	 * Flag that indicates test are in progress
-	 */
-	protected boolean testing = true;
-		
-	public AbstractAntUIBuildTest(String name) {
-		super(name);
-	}
-	
-	/**
-	 * Runs the test and collects the result in a TestResult without blocking
-	 * the UI thread.
-	 */
-	public void run(final TestResult result) {
-		final Display display = Display.getCurrent();
-		Thread thread = null;
-		try {
-			Runnable r = new Runnable() {
-				public void run() {
-					AbstractAntUIBuildTest.super.run(result);		
-					testing = false;
-					display.wake();
-				}
-			};
-			thread = new Thread(r);
-			thread.start();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		
-		while (testing) {
-			try {
-				if (!display.readAndDispatch())
-					display.sleep();
-			} catch (Throwable e) {
-				e.printStackTrace();
-			}			
-		}		
-	}
-	
-	/**
-	 * Launches the Ant build with the buildfile name (no extension).
-	 * Waits for all of the lines to be appended to the console.
-	 * 
-	 * @param buildFileName the buildfile to execute
-	 * @return thread in which the first suspend event occurred
-	 */
-	protected void launch(String buildFileName) throws CoreException {
-		super.launch(buildFileName);
-	}
-	
-	/**
-	 * Launches the launch configuration
-	 * Waits for all of the lines to be appended to the console.
-	 * 
-	 * @param config the config to execute
-	 * @return thread in which the first suspend event occurred
-	 */
-	protected void launch(ILaunchConfiguration config) throws CoreException {
-	    launchAndTerminate(config, 20000);
-	}
-	
-	protected void activateLink(final IHyperlink link) {
-		Display.getDefault().asyncExec(new Runnable() {
-			public void run() {
-				link.linkActivated();
-			}
-		});
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest#launch(java.lang.String, java.lang.String)
-	 */
-	protected void launch(String buildFileName, String arguments) throws CoreException {
-		super.launch(buildFileName, arguments);
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java
deleted file mode 100644
index 7f92643..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java
+++ /dev/null
@@ -1,128 +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.ant.tests.ui;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.ant.internal.ui.AntUtil;
-import org.eclipse.ant.internal.ui.launchConfigurations.IAntLaunchConfigurationConstants;
-import org.eclipse.ant.internal.ui.model.AntTargetNode;
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-public class AntUtilTests extends AbstractAntUITest {
-
-    public AntUtilTests(String name) {
-        super(name);
-    }
-    
-    public void testGetTargetsLaunchConfiguration() throws CoreException {
-       String buildFileName= "echoing";
-       File buildFile= getBuildFile(buildFileName + ".xml");
-       String arguments= null;
-       Map properties= null;
-       String propertyFiles= null;
-       AntTargetNode[] targets= AntUtil.getTargets(buildFile.getAbsolutePath(), getLaunchConfiguration(buildFileName, arguments, properties, propertyFiles));
-       assertTrue(targets != null);
-       assertTrue("Incorrect number of targets retrieved; should be 4 was: " + targets.length, targets.length == 4);
-       assertContains("echo3", targets);
-    }
-    
-    public void testGetTargetsLaunchConfigurationMinusD() throws CoreException {
-        String buildFileName= "importRequiringUserProp";
-        File buildFile= getBuildFile(buildFileName + ".xml");
-        String arguments= "-DimportFileName=toBeImported.xml";
-        Map properties= null;
-        String propertyFiles= null;
-        AntTargetNode[] targets= AntUtil.getTargets(buildFile.getAbsolutePath(), getLaunchConfiguration(buildFileName, arguments, properties, propertyFiles));
-        assertTrue(targets != null);
-        assertTrue("Incorrect number of targets retrieved; should be 3 was: " + targets.length, targets.length == 3);
-        assertContains("import-default", targets);
-     }
-    
-    public void testGetTargetsLaunchConfigurationMinusDAndProperty() throws CoreException {
-        String buildFileName= "importRequiringUserProp";
-        File buildFile= getBuildFile(buildFileName + ".xml");
-        String arguments= "-DimportFileName=toBeImported.xml";
-        //arguments should win
-        Map properties= new HashMap();
-        properties.put("importFileName", "notToBeImported.xml");
-        String propertyFiles= null;
-        AntTargetNode[] targets= AntUtil.getTargets(buildFile.getAbsolutePath(), getLaunchConfiguration(buildFileName, arguments, properties, propertyFiles));
-        assertTrue(targets != null);
-        assertTrue("Incorrect number of targets retrieved; should be 3 was: " + targets.length, targets.length == 3);
-        assertContains("import-default", targets);
-     }
-    
-    
-    public void testGetTargetsLaunchConfigurationProperty() throws CoreException {
-        String buildFileName= "importRequiringUserProp";
-        File buildFile= getBuildFile(buildFileName + ".xml");
-        String arguments= null;
-        Map properties= new HashMap();
-        properties.put("importFileName", "toBeImported.xml");
-        String propertyFiles= null;
-        AntTargetNode[] targets= AntUtil.getTargets(buildFile.getAbsolutePath(), getLaunchConfiguration(buildFileName, arguments, properties, propertyFiles));
-        assertTrue(targets != null);
-        assertTrue("Incorrect number of targets retrieved; should be 3 was: " + targets.length, targets.length == 3);
-        assertContains("import-default", targets);
-     }
-    
-    public void testGetTargetsLaunchConfigurationPropertyFile() throws CoreException {
-        String buildFileName= "importRequiringUserProp";
-        File buildFile= getBuildFile(buildFileName + ".xml");
-        String arguments= null;
-        Map properties= null;
-        String propertyFiles= "buildtest1.properties";
-        AntTargetNode[] targets= AntUtil.getTargets(buildFile.getAbsolutePath(), getLaunchConfiguration(buildFileName, arguments, properties, propertyFiles));
-        assertTrue(targets != null);
-        assertTrue("Incorrect number of targets retrieved; should be 3 was: " + targets.length, targets.length == 3);
-        assertContains("import-default", targets);
-     }
-    
-    protected ILaunchConfiguration getLaunchConfiguration(String buildFileName, String arguments, Map properties, String propertyFiles) throws CoreException {
-        ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
-		assertNotNull("Could not locate launch configuration for " + buildFileName, config);
-		ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-		if (arguments != null) {
-		    copy.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, arguments);
-		}
-		if (properties != null) {
-		    copy.setAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_PROPERTIES, properties);
-		}
-		if (propertyFiles != null) {
-		    copy.setAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_PROPERTY_FILES, propertyFiles);
-		}
-		return copy;
-    }
-
-    /**
- 	 * Asserts that <code>displayString</code> is in one of the 
- 	 * completion proposals.
- 	 */
-    private void assertContains(String targetName, AntTargetNode[] targets) {
-        boolean found = false;
-        for (int i = 0; i < targets.length; i++) {
-            AntTargetNode target = targets[i];
-            String foundName = target.getTargetName();
-            if(targetName.equals(foundName)) {
-                found = true;
-                break;
-            }
-        }
-        assertEquals("Did not find target: " + targetName, true, found);
-    }        
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/BuildTests.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/BuildTests.java
deleted file mode 100644
index 136ce44..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/BuildTests.java
+++ /dev/null
@@ -1,224 +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 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.ant.tests.ui;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.ant.internal.ui.AntUIPlugin;
-import org.eclipse.ant.internal.ui.IAntUIPreferenceConstants;
-import org.eclipse.ant.internal.ui.launchConfigurations.IAntLaunchConfigurationConstants;
-import org.eclipse.ant.tests.ui.testplugin.ConsoleLineTracker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.ui.console.IHyperlink;
-
-
-public class BuildTests extends AbstractAntUIBuildTest {
-
-	public BuildTests(String name) {
-		super(name);
-	}
-	
-  /**
-   * Tests launching Ant and getting messages
-   * logged to the console.
-   */
-  public void testOutput() throws CoreException {
-	  launch("echoing");
-	  assertTrue("Incorrect number of messages logged for build. Should be 8. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 8);
-	  String message= ConsoleLineTracker.getMessage(6);
-	  assertTrue("Incorrect last message. Should start with Total time:. Message: " + message, message.startsWith("Total time:"));
-  }
-  
-  /**
-   * This build will fail. With verbose on you should be presented with a full 
-   * stack trace. Bug 82833
-   */
-  public void testVerboseStackTrace() throws CoreException {      
-      launch("failingTarget", "-k -verbose");
-      assertTrue("Incorrect message:"  + ConsoleLineTracker.getMessage(16), "BUILD FAILED".equals(ConsoleLineTracker.getMessage(16)));
-      assertTrue("Incorrect message:"  + ConsoleLineTracker.getMessage(19), ConsoleLineTracker.getMessage(19).startsWith("\tat org.apache.tools.ant.taskdefs.Zip"));
-  }
-  
-  /**
-	 * Tests launching Ant and getting the build failed message
-	 * logged to the console with associated link.
-	 * Bug 42333 and 44565
-	 */
-	public void testBuildFailedMessage() throws CoreException {
-		launch("bad");
-		assertTrue("Incorrect number of messages logged for build. Should be 10. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 10);
-		String message= ConsoleLineTracker.getMessage(5);
-		assertTrue("Incorrect last message. Should start with BUILD FAILED. Message: " + message, message.startsWith("BUILD FAILED"));
-		int offset= -1;
-		try {
-			offset= ConsoleLineTracker.getDocument().getLineOffset(4) + 30; //link to buildfile that failed
-		} catch (BadLocationException e) {
-			assertTrue("failed getting offset of line", false);
-		}
-		IHyperlink link= getHyperlink(offset, ConsoleLineTracker.getDocument());
-		assertNotNull("No hyperlink found at offset " + offset, link);
-	}
-  
-  /**
-	 * Tests launching Ant and that the
-	 * correct links are in the console doc
-	 */
-	public void testLinks() throws CoreException {
-		launch("build");
-		int offset= 25; //buildfile link
-		IHyperlink link= getHyperlink(offset, ConsoleLineTracker.getDocument());
-		assertNotNull("No hyperlink found at offset " + offset, link);
-		activateLink(link);
-		
-		try {
-			offset= ConsoleLineTracker.getDocument().getLineOffset(4) + 10; //echo link
-		} catch (BadLocationException e) {
-			assertTrue("failed getting offset of line", false);
-		}
-		link= getHyperlink(offset, ConsoleLineTracker.getDocument());
-		assertNotNull("No hyperlink found at offset " + offset, link);
-		activateLink(link);
-	}
-	
-	/**
-	 * Tests launching Ant and that the
-	 * correct colors are in the console doc
-	 */
-	public void testColor() throws BadLocationException, CoreException {		
-		launch("echoing");
-		int offset= 15; //buildfile
-		Color color= getColorAtOffset(offset, ConsoleLineTracker.getDocument());
-		assertNotNull("No color found at " + offset, color);
-		assertEquals(AntUIPlugin.getPreferenceColor(IAntUIPreferenceConstants.CONSOLE_INFO_COLOR), color);
-		try {
-			offset= ConsoleLineTracker.getDocument().getLineOffset(4) + 10; //echo
-		} catch (BadLocationException e) {
-			assertTrue("failed getting offset of line", false);
-		}
-		color= getColorAtOffset(offset, ConsoleLineTracker.getDocument());
-		assertNotNull("No color found at " + offset, color);
-		assertEquals(AntUIPlugin.getPreferenceColor(IAntUIPreferenceConstants.CONSOLE_WARNING_COLOR), color);
-	}
-	
-	/**
-	 * Tests launching Ant in a separate vm and that the
-	 * correct property substitions occur
-	 */
-	public void testPropertySubstitution() throws CoreException {
-		ILaunchConfiguration config = getLaunchConfiguration("74840");
-		assertNotNull("Could not locate launch configuration for " + "74840", config);
-		ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-		Map properties= new HashMap(1);
-		properties.put("platform.location", "${workspace_loc}");
-		copy.setAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_PROPERTIES, properties);
-		copy.setAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_PROPERTIES, properties);
-		launchAndTerminate(copy, 20000);
-		ConsoleLineTracker.waitForConsole();
-		assertTrue("Incorrect number of messages logged for build. Should be 8. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 8);
-		assertTrue("Incorrect echo message. Should not include unsubstituted property", !ConsoleLineTracker.getMessage(4).trim().startsWith("[echo] ${workspace_loc}"));
-	}
-	
-	 /**
-	 * Tests specifying the XmlLogger as a listener (bug 80435)
-     * @throws FileNotFoundException 
-	 */
-	public void testXmlLoggerListener() throws CoreException, FileNotFoundException {
-		launch("echoing", "-listener org.apache.tools.ant.XmlLogger");
-		assertTrue("Incorrect number of messages logged for build. Should be 8. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 8);
-		String message= ConsoleLineTracker.getMessage(6);
-		assertTrue("Incorrect last message. Should start with Total time:. Message: " + message, message.startsWith("Total time:"));
-		//find the log file generated by the xml logger
-		getProject().getFolder("buildfiles").refreshLocal(IResource.DEPTH_INFINITE, null);
-		File file= getBuildFile("log.xml");
-		String content= getFileContentAsString(file);
-		assertTrue("XML logging file is empty", content.length() > 0);
-	}
-	
-	/**
-	 * Tests launching Ant and getting the build failed message
-	 * logged to the console.
-	 * Bug 42333.
-	 */
-//	public void testBuildFailedMessageDebug() throws CoreException {
-//		launchInDebug("bad");
-//		assertTrue("Incorrect number of messages logged for build. Should be 35. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 35);
-//		String message= ConsoleLineTracker.getMessage(33);
-//		assertTrue("Incorrect last message. Should start with Build Failed:. Message: " + message, message.startsWith("BUILD FAILED:"));
-//		}
-//  
-//	  /**
-//	 * Tests launching Ant and that the
-//	 * correct links are in the console doc
-//	 */
-//	public void testLinksDebug() throws CoreException {
-//		launchInDebug("echoing");
-//		int offset= 0; 
-//		try {
-//			offset= ConsoleLineTracker.getDocument().getLineOffset(2) + 15; //buildfile line 3
-//		} catch (BadLocationException e) {
-//			assertTrue("failed getting offset of line", false);
-//		}
-//		IConsoleHyperlink link= getHyperlink(offset, ConsoleLineTracker.getDocument());
-//		assertNotNull("No hyperlink found at offset " + offset, link);
-//	
-//		try {
-//			offset= ConsoleLineTracker.getDocument().getLineOffset(33) + 10; //echo link
-//		} catch (BadLocationException e) {
-//			assertTrue("failed getting offset of line", false);
-//		}
-//		link= getHyperlink(offset, ConsoleLineTracker.getDocument());
-//		assertNotNull("No hyperlink found at offset " + offset, link);
-//	}
-//
-//	/**
-//	 * Tests launching Ant and that the
-//	 * correct colors are in the console doc
-//	 */
-//	public void testColorDebug() throws BadLocationException, CoreException {
-//		launchInDebug("echoing");
-//		int offset= 0; 
-//		try {
-//			offset= ConsoleLineTracker.getDocument().getLineOffset(2) + 15; //buildfile line 3
-//		} catch (BadLocationException e) {
-//			assertTrue("failed getting offset of line", false);
-//		}
-//		Color color= getColorAtOffset(offset, ConsoleLineTracker.getDocument());
-//		assertNotNull("No color found at " + offset, color);
-//		assertEquals(AntUIPlugin.getPreferenceColor(IAntUIPreferenceConstants.CONSOLE_INFO_COLOR), color);
-//		
-//		try {
-//			offset= ConsoleLineTracker.getDocument().getLineOffset(4) + 3; //debug info
-//		} catch (BadLocationException e) {
-//			assertTrue("failed getting offset of line", false);
-//		}
-//		color= getColorAtOffset(offset, ConsoleLineTracker.getDocument());
-//		assertNotNull("No color found at " + offset, color);
-//		assertEquals(AntUIPlugin.getPreferenceColor(IAntUIPreferenceConstants.CONSOLE_DEBUG_COLOR), color);
-//		
-//		try {
-//			offset= ConsoleLineTracker.getDocument().getLineOffset(33) + 10; //echo line 33
-//		} catch (BadLocationException e) {
-//			assertTrue("failed getting offset of line", false);
-//		}
-//		color= getColorAtOffset(offset, ConsoleLineTracker.getDocument());
-//		assertNotNull("No color found at " + offset, color);
-//		assertEquals(AntUIPlugin.getPreferenceColor(IAntUIPreferenceConstants.CONSOLE_WARNING_COLOR), color);
-//	}
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/OpenLaunchConfigurationDialogTests.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/OpenLaunchConfigurationDialogTests.java
deleted file mode 100644
index b6b955e..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/OpenLaunchConfigurationDialogTests.java
+++ /dev/null
@@ -1,90 +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.ant.tests.ui.performance;
-
-import org.eclipse.ant.internal.ui.IAntUIConstants;
-import org.eclipse.ant.tests.ui.editor.performance.EditorTestHelper;
-import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.PerformanceTestCase;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-public class OpenLaunchConfigurationDialogTests extends PerformanceTestCase {
-
-    public static String fgIdentifier= IExternalToolConstants.ID_EXTERNAL_TOOLS_LAUNCH_GROUP;
-    
-    public void testOpenAntLaunchConfigurationDialog1() {
-        //cold run
-        ILaunchConfiguration configuration= getLaunchConfiguration("big");
-		IStructuredSelection selection= new StructuredSelection(configuration);
-		for (int i = 0; i < 10; i++) {
-		    openLCD(selection, fgIdentifier, 20); 
-        }
-		
-		commitMeasurements();
-		assertPerformance();
-    }
-    
-    public void testOpenAntLaunchConfigurationDialog2() {
-        //warm run
-        ILaunchConfiguration configuration= getLaunchConfiguration("big");
-		IStructuredSelection selection= new StructuredSelection(configuration);
-		tagAsSummary("Open LCD on Targets tab", Dimension.CPU_TIME);
-		for (int i = 0; i < 10; i++) {
-		    openLCD(selection, fgIdentifier, 20); 
-        }
-		
-		commitMeasurements();
-		assertPerformance();
-    }
-
-    private ILaunchConfiguration getLaunchConfiguration(String buildFileName) {
-        IFile file = AbstractAntUITest.getJavaProject().getProject().getFolder("launchConfigurations").getFile(buildFileName + ".launch");
-		ILaunchConfiguration config = AbstractAntUITest.getLaunchManager().getLaunchConfiguration(file);
-		assertTrue("Could not find launch configuration for " + buildFileName, config.exists());
-		return config;
-    }
-
-    private void openLCD(final IStructuredSelection selection, final String groupIdentifier, int numberOfOpens) {
-        startMeasuring();
-        for (int i = 0; i < numberOfOpens; i++) {
-	        //set a status to go to the targets tab
-		    IStatus status = new Status(IStatus.INFO, IAntUIConstants.PLUGIN_ID, IAntUIConstants.STATUS_INIT_RUN_ANT, "", null); //$NON-NLS-1$
-			LaunchConfigurationsDialog dialog= new LaunchConfigurationsDialog(DebugUIPlugin.getShell(), DebugUIPlugin.getDefault().getLaunchConfigurationManager().getLaunchGroup(groupIdentifier));
-			dialog.setBlockOnOpen(false);
-			dialog.setOpenMode(LaunchConfigurationsDialog.LAUNCH_CONFIGURATION_DIALOG_OPEN_ON_SELECTION);
-			dialog.setInitialSelection(selection);
-			dialog.setInitialStatus(status);
-			
-			dialog.open();
-            EditorTestHelper.runEventQueue(dialog.getShell());
-			dialog.close();
-        }
-		stopMeasuring();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.test.performance.PerformanceTestCase#setUp()
-     */
-    protected void setUp() throws Exception {
-       super.setUp();
-       EditorTestHelper.runEventQueue();
-    }
-}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/SeparateVMTests.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/SeparateVMTests.java
deleted file mode 100644
index 3788e96..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/SeparateVMTests.java
+++ /dev/null
@@ -1,84 +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.ant.tests.ui.performance;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.ant.tests.ui.AbstractAntUIBuildPerformanceTest;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-public class SeparateVMTests extends AbstractAntUIBuildPerformanceTest {
-		
-    public SeparateVMTests(String name) {
-        super(name);
-    }
-    
-	public static Test suite() {
-		return new TestSuite(SeparateVMTests.class);
-	}
-
-    /**
-     * Performance test for launching Ant in a separate vm.
-     */
-	public void testBuild() throws CoreException {
-    	tagAsSummary("Separate JRE Build", Dimension.CPU_TIME);
-    	ILaunchConfiguration config= getLaunchConfiguration("echoingSepVM");
-    	for (int i = 0; i < 10; i++) {
-    		launch(config, 10);
-		}
-    	commitMeasurements();
-		assertPerformance(); 	
-    }
-	
-	 /**
-     * Performance test for launching Ant in a separate vm with no console output.
-     */
-	public void testBuildNoConsole() throws CoreException {
-    	tagAsSummary("Separate JRE Build; capture output off", Dimension.CPU_TIME);
-    	ILaunchConfiguration config = getLaunchConfiguration("echoingSepVM");
-		assertNotNull("Could not locate launch configuration for " + "echoingSepVM", config);
-		ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-		copy.setAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, false);
-		copy.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, false);
-    	for (int i = 0; i < 10; i++) {
-    	    startMeasuring();
-    		for (int j = 0; j < i; j++) {
-    		    launchAndTerminate(copy, 20000);
-    		}
-    		stopMeasuring();
-		}
-    	commitMeasurements();
-		assertPerformance(); 	
-    }
-    
-    /**
-     * Performance test for launching Ant in a separate vm with debug information.
-     */
-    public void testBuildMinusDebug() throws CoreException {
-    	tagAsSummary("Separate JRE Build; -debug", Dimension.CPU_TIME);
-    	ILaunchConfiguration config = getLaunchConfiguration("echoingSepVM");
-		assertNotNull("Could not locate launch configuration for " + "echoingSepVM", config);
-		ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-		copy.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, "-debug");
-    	for (int i = 0; i < 10; i++) {
-    		launch(copy, 10);
-        }
-    	commitMeasurements();
-		assertPerformance();
-	}  	
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/separateVM/SeparateVMTests.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/separateVM/SeparateVMTests.java
deleted file mode 100644
index a83ee0c..0000000
--- a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/separateVM/SeparateVMTests.java
+++ /dev/null
@@ -1,208 +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.ant.tests.ui.separateVM;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.HashMap;
-import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.ant.internal.ui.AntUIPlugin;
-import org.eclipse.ant.internal.ui.IAntUIPreferenceConstants;
-import org.eclipse.ant.internal.ui.launchConfigurations.IAntLaunchConfigurationConstants;
-import org.eclipse.ant.tests.ui.AbstractAntUIBuildTest;
-import org.eclipse.ant.tests.ui.testplugin.ConsoleLineTracker;
-import org.eclipse.ant.tests.ui.testplugin.ProjectHelper;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.ui.console.IHyperlink;
-
-public class SeparateVMTests extends AbstractAntUIBuildTest {
-	
-	protected static final String PLUGIN_VERSION= "org.apache.ant_1.6.2";
-		
-    public SeparateVMTests(String name) {
-        super(name);
-    }
-    
-	public static Test suite() {
-		return new TestSuite(SeparateVMTests.class);
-	}
-
-    /**
-     * Tests launching Ant in a separate vm and getting messages
-     * logged to the console.
-     */
-    public void testBuild() throws CoreException {
-      	launch("echoingSepVM");
-      	assertTrue("Incorrect number of messages logged for build. Should be 6. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 6);
-      	assertTrue("Incorrect last message. Should start with Total time:. Message: " + ConsoleLineTracker.getMessage(4), ConsoleLineTracker.getMessage(4).startsWith("Total time:"));
-    }
-    
-    /**
-     * Tests launching Ant in a separate vm and having an extra classpath entry designated to be availble.
-     */
-    public void testExtraClasspathEntries() throws CoreException {
-      	launch("extensionPointSepVM");
-      	assertTrue("Incorrect number of messages logged for build. Should be 8. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 8);
-      	assertTrue("Incorrect last message. Should start with Total time:. Message: " + ConsoleLineTracker.getMessage(6), ConsoleLineTracker.getMessage(6).startsWith("Total time:"));
-    }
-    
-    /**
-     * Tests launching Ant in a separate vm and having an extra classpath entry designated to be available.
-     */
-    public void testProperties() throws CoreException {
-      	launch("extensionPointSepVM");
-      	assertTrue("Incorrect number of messages logged for build. Should be 8. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 8);
-      	assertTrue("Incorrect last message. Should start with [echo] ${property.ui.testing. Message: " + ConsoleLineTracker.getMessage(3), ConsoleLineTracker.getMessage(3).trim().startsWith("[echo] ${property.ui.testing"));
-      	assertTrue("Incorrect last message. Should start with [echo] hey. Message: " + ConsoleLineTracker.getMessage(4), ConsoleLineTracker.getMessage(4).trim().startsWith("[echo] hey"));
-    }
-    
-    /**
-     * Tests launching Ant in a separate vm and having an extra classpath entry designated to be available.
-     */
-    public void testExtensionPointTask() throws CoreException {
-      	launch("extensionPointTaskSepVM");
-      	assertTrue("Incorrect number of messages logged for build. Should be 6. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 6);
-      	assertTrue("Incorrect message. Should start with [null] Testing Ant in Eclipse with a custom task2. Message: " + ConsoleLineTracker.getMessage(2), ConsoleLineTracker.getMessage(2).trim().startsWith("[null] Testing Ant in Eclipse with a custom task2"));
-    }
-    
-    /**
-     * Tests launching Ant in a separate vm and having an extra classpath entry designated to be available.
-     */
-    public void testExtensionPointType() throws CoreException {
-      	launch("extensionPointTypeSepVM");
-      	assertTrue("Incorrect number of messages logged for build. Should be 6. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 6);
-      	assertTrue("Incorrect message. Should start with [echo] Ensure that an extension point defined type. Message: " + ConsoleLineTracker.getMessage(2), ConsoleLineTracker.getMessage(2).trim().startsWith("[echo] Ensure that an extension point defined type"));
-    }
-    
-	/**
-	 * Tests launching Ant in a separate vm and that the
-	 * correct links are in the console doc
-	 */
-	public void testLinks() throws CoreException {
-		launch("echoingSepVM");
-		int offset= 15; //buildfile link
-		IHyperlink link= getHyperlink(offset, ConsoleLineTracker.getDocument());
-		assertNotNull("No hyperlink found at offset " + offset, link);
-		try {
-			offset= ConsoleLineTracker.getDocument().getLineOffset(2) + 10; //echo link
-		} catch (BadLocationException e) {
-			assertTrue("failed getting offset of line", false);
-		}
-		link= getHyperlink(offset, ConsoleLineTracker.getDocument());
-		assertNotNull("No hyperlink found at offset " + offset, link);
-	}
-	
-	/**
-	 * Tests launching Ant in a separate vm and that the
-	 * correct colors are in the console doc
-	 */
-	public void testColor() throws BadLocationException, CoreException {
-		launch("echoingSepVM");
-		int offset= 15; //buildfile
-		Color color= getColorAtOffset(offset, ConsoleLineTracker.getDocument());
-		assertNotNull("No color found at " + offset, color);
-		assertEquals(color, AntUIPlugin.getPreferenceColor(IAntUIPreferenceConstants.CONSOLE_INFO_COLOR));
-		try {
-			offset= ConsoleLineTracker.getDocument().getLineOffset(2) + 10; //echo link
-		} catch (BadLocationException e) {
-			assertTrue("failed getting offset of line", false);
-		}
-		color= getColorAtOffset(offset, ConsoleLineTracker.getDocument());
-		assertNotNull("No color found at " + offset, color);
-		assertEquals(color, AntUIPlugin.getPreferenceColor(IAntUIPreferenceConstants.CONSOLE_WARNING_COLOR));
-	}
-	
-	/**
-	 * Tests launching Ant in a separate vm and that the
-	 * correct working directory is set
-	 */
-	public void testWorkingDirectory() throws CoreException {
-		ILaunchConfiguration config = getLaunchConfiguration("echoingSepVM");
-		assertNotNull("Could not locate launch configuration for " + "echoingSepVM", config);
-		ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-		copy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, getJavaProject().getProject().getLocation().toOSString());
-		copy.setAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_TARGETS, "Bug42984");
-		launchAndTerminate(copy, 20000);
-		ConsoleLineTracker.waitForConsole();
-		assertTrue("Incorrect number of messages logged for build. Should be 6. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 6);
-		assertTrue("Incorrect last message. Should end with " + ProjectHelper.PROJECT_NAME + ". Message: " + ConsoleLineTracker.getMessage(2), ConsoleLineTracker.getMessage(2).endsWith(ProjectHelper.PROJECT_NAME));
-	}
-	
-	/**
-	 * Tests launching Ant in a separate vm and that the
-	 * correct property substitions occur
-	 */
-	public void testPropertySubstitution() throws CoreException {
-		ILaunchConfiguration config = getLaunchConfiguration("74840SepVM");
-		assertNotNull("Could not locate launch configuration for " + "74840SepVM", config);
-		ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-		Map properties= new HashMap(1);
-		properties.put("platform.location", "${workspace_loc}");
-		copy.setAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_PROPERTIES, properties);
-		launchAndTerminate(copy, 20000);
-		ConsoleLineTracker.waitForConsole();
-		assertTrue("Incorrect number of messages logged for build. Should be 6. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 6);
-		assertTrue("Incorrect echo message. Should not include unsubstituted property ", !ConsoleLineTracker.getMessage(2).trim().startsWith("[echo] ${workspace_loc}"));
-	}
-	
-	 /**
-     * Tests launching Ant in a separate vm and getting messages
-     * logged to the console for project help.
-     */
-    public void testProjectHelp() throws CoreException {
-      	launch("echoingSepVM", "-p");
-      	assertTrue("Incorrect number of messages logged for build. Should be 14. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 14);
-      	assertTrue("Incorrect last message. Should start with echo2:. Message: " + ConsoleLineTracker.getMessage(12), ConsoleLineTracker.getMessage(12).trim().startsWith("echo2"));
-    }
- 
-    /**
-	 * Tests specifying the XmlLogger as a listener (bug 80435)
-     * @throws FileNotFoundException 
-	 */
-	public void testXmlLoggerListener() throws CoreException, FileNotFoundException {
-		launch("echoingSepVM", "-listener org.apache.tools.ant.XmlLogger");
-		assertTrue("Incorrect number of messages logged for build. Should be 6. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 6);
-      	assertTrue("Incorrect last message. Should start with Total time:. Message: " + ConsoleLineTracker.getMessage(4), ConsoleLineTracker.getMessage(4).startsWith("Total time:"));
-		
-		//find the log file generated by the xml logger
-		getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
-		IFile iFile= getProject().getFile("log.xml");	
-		assertTrue("Could not find log file named: log.xml" , iFile.exists());
-		File file= iFile.getLocation().toFile();
-		String content= getFileContentAsString(file);
-		assertTrue("XML logging file is empty", content.length() > 0);
-	}
-	
-	 /**
-     * Tests launching Ant in a separate vm and that the Environment variable
-     * ANT_HOME is set from the Ant home set for the build and ant.home is set as a property.
-     * Bug 75729
-     */
-    public void testAntHome() throws CoreException {
-      	launch("environmentVar");
-      	assertTrue("Incorrect number of messages logged for build. Should be 6. Was " + ConsoleLineTracker.getNumberOfMessages(), ConsoleLineTracker.getNumberOfMessages() == 6);
-      	String message= ConsoleLineTracker.getMessage(1);
-      	assertTrue("Incorrect message. Should end with org.apache.ant. Message: " + message, message.endsWith("org.apache.ant") || message.endsWith(PLUGIN_VERSION));
-      	message= ConsoleLineTracker.getMessage(2);
-		assertTrue("Incorrect message. Should end with org.apache.ant. Message: " + message, message.endsWith("org.apache.ant") || message.endsWith(PLUGIN_VERSION));
-		
-    }
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/External Tools/org/eclipse/ant/tests/ui/externaltools/MigrationTests.java b/ant/org.eclipse.ant.tests.ui/External Tools/org/eclipse/ant/tests/ui/externaltools/MigrationTests.java
deleted file mode 100644
index 75acdfa..0000000
--- a/ant/org.eclipse.ant.tests.ui/External Tools/org/eclipse/ant/tests/ui/externaltools/MigrationTests.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.ui.externaltools;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ant.internal.ui.AntUtil;
-import org.eclipse.ant.internal.ui.launchConfigurations.IAntLaunchConfigurationConstants;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.debug.ui.RefreshTab;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-import org.eclipse.ui.externaltools.internal.registry.ExternalToolMigration;
-
-/**
- * Tests migration of Ant and External Tool configurations from old
- * formats to the current format.
- */
-public class MigrationTests extends TestCase {
-	
-	/**
-	 * Tests migration of arguments from an Eclipse 2.0 Ant buildfile
-	 * configuration to a current launch configuration.
-	 * 
-	 * @throws CoreException
-	 */
-	public void test20AntMigration() throws CoreException {
-		Map argumentMap= get20AntArgumentMap();
-		ILaunchConfigurationWorkingCopy config = ExternalToolMigration.configFromArgumentMap(argumentMap);
-		assertNotNull("Migration failed", config);
-		
-		assertEquals("Wrong configuration type", IAntLaunchConfigurationConstants.ID_ANT_BUILDER_LAUNCH_CONFIGURATION_TYPE, config.getType().getIdentifier());
-		assertEquals("ant tool", config.getName());
-		assertEquals("location", config.getAttribute(IExternalToolConstants.ATTR_LOCATION, ""));
-		assertEquals("refresh scope", config.getAttribute(RefreshTab.ATTR_REFRESH_SCOPE, ""));
-		String[] targets= AntUtil.getTargetNames(config);
-		assertNotNull("No targets found", targets);
-		assertEquals("Wrong number of targets", 2, targets.length);
-		assertEquals("target1", targets[0]);
-		assertEquals("target2", targets[1]);
-		assertEquals(true, config.getAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, false));
-		assertEquals(true, config.getAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, false));
-		assertEquals("build kinds", config.getAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, ""));
-		assertEquals("arg  ", config.getAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, ""));
-		assertEquals("working dir", config.getAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, ""));
-	}
-	
-	/**
-	 * Returns a map of arguments for an Ant buildfile using
-	 * Eclipse 2.0 arguments.
-	 * 
-	 * @return a map of 2.0 arguments for an Ant buildfile.
-	 */
-	private Map get20AntArgumentMap() {
-		HashMap arguments= new HashMap();
-		arguments.put(ExternalToolMigration.TAG_VERSION, "2.0");
-		arguments.put(ExternalToolMigration.TAG_TOOL_TYPE, "org.eclipse.ui.externaltools.type.ant");
-		arguments.put(ExternalToolMigration.TAG_TOOL_NAME, "ant tool");
-		arguments.put(ExternalToolMigration.TAG_TOOL_LOCATION, "location");
-		arguments.put(ExternalToolMigration.TAG_TOOL_REFRESH, "refresh scope");
-		arguments.put(ExternalToolMigration.TAG_TOOL_ARGUMENTS, "arg ${ant_target:target1} ${ant_target:target2}");
-		arguments.put(ExternalToolMigration.TAG_TOOL_SHOW_LOG, "true");
-		arguments.put(ExternalToolMigration.TAG_TOOL_BLOCK, "false");
-		arguments.put(ExternalToolMigration.TAG_TOOL_BUILD_TYPES, "build kinds");
-		arguments.put(ExternalToolMigration.TAG_TOOL_DIRECTORY, "working dir");
-		return arguments;
-	}
-
-	/**
-	 * Tests migration of arguments from an Eclipse 2.0 Ant buildfile
-	 * configuration to a current launch configuration.
-	 * 
-	 * @throws CoreException
-	 */
-	public void test20ProgramMigration() throws CoreException {
-		Map argumentMap= get20ProgramArgumentMap();
-		ILaunchConfigurationWorkingCopy config = ExternalToolMigration.configFromArgumentMap(argumentMap);
-		assertEquals("Wrong configuration type", IExternalToolConstants.ID_PROGRAM_BUILDER_LAUNCH_CONFIGURATION_TYPE, config.getType().getIdentifier());
-		assertEquals("program tool", config.getName());
-		assertEquals("location", config.getAttribute(IExternalToolConstants.ATTR_LOCATION, ""));
-		assertEquals("refresh scope", config.getAttribute(RefreshTab.ATTR_REFRESH_SCOPE, ""));
-		assertEquals(true, config.getAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, false));
-		assertEquals(true, config.getAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, false));
-		assertEquals("build kinds", config.getAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, ""));
-		assertEquals("arg ${ant_target:target1} ${ant_target:target2}", config.getAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, ""));
-		assertEquals("working dir", config.getAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, ""));
-	}
-	
-	/**
-	 * Returns a map of arguments for executing a program
-	 * using Eclipse 2.0 arguments.
-	 * 
-	 * @return a map of 2.0 arguments for a program
-	 */
-	private Map get20ProgramArgumentMap() {
-		HashMap arguments= new HashMap();
-		arguments.put(ExternalToolMigration.TAG_VERSION, "2.0");
-		arguments.put(ExternalToolMigration.TAG_TOOL_TYPE, "org.eclipse.ui.externaltools.type.program");
-		arguments.put(ExternalToolMigration.TAG_TOOL_NAME, "program tool");
-		arguments.put(ExternalToolMigration.TAG_TOOL_LOCATION, "location");
-		arguments.put(ExternalToolMigration.TAG_TOOL_REFRESH, "refresh scope");
-		arguments.put(ExternalToolMigration.TAG_TOOL_ARGUMENTS, "arg ${ant_target:target1} ${ant_target:target2}");
-		arguments.put(ExternalToolMigration.TAG_TOOL_SHOW_LOG, "true");
-		arguments.put(ExternalToolMigration.TAG_TOOL_BLOCK, "false");
-		arguments.put(ExternalToolMigration.TAG_TOOL_BUILD_TYPES, "build kinds");
-		arguments.put(ExternalToolMigration.TAG_TOOL_DIRECTORY, "working dir");
-		return arguments;
-	}
-	
-	/**
-	 * Tests migration of arguments from an Eclipse 2.1 Ant buildfile
-	 * configuration to a current launch configuration.
-	 * 
-	 * @throws CoreException
-	 */
-	public void test21AntMigration() throws CoreException {
-		Map argumentMap= get21AntArgumentMap();
-		ILaunchConfigurationWorkingCopy config = ExternalToolMigration.configFromArgumentMap(argumentMap);
-		assertNotNull("Migration failed", config);
-		
-		assertEquals("Wrong config type", IAntLaunchConfigurationConstants.ID_ANT_BUILDER_LAUNCH_CONFIGURATION_TYPE, config.getType().getIdentifier());
-		assertEquals("ant config", config.getName());
-		assertEquals("location", config.getAttribute(IExternalToolConstants.ATTR_LOCATION, ""));
-		assertEquals("working directory", config.getAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, ""));
-		assertEquals(true, config.getAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, false));
-		assertEquals(true, config.getAttribute(IExternalToolConstants.ATTR_SHOW_CONSOLE, false));
-		assertEquals(true, config.getAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, false));
-		assertEquals(true, config.getAttribute(IExternalToolConstants.ATTR_PROMPT_FOR_ARGUMENTS, false));
-		assertEquals("refresh scope", config.getAttribute(RefreshTab.ATTR_REFRESH_SCOPE, ""));
-		assertEquals(true, config.getAttribute(RefreshTab.ATTR_REFRESH_RECURSIVE, false));
-		assertEquals("build kinds", config.getAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, ""));
-		assertEquals("arg1 arg2", config.getAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, ""));
-		String[] targets= AntUtil.getTargetNames(config);
-		assertEquals("Wrong number of targets", 2, targets.length);
-		assertEquals("target1", targets[0]);
-		assertEquals("target2", targets[1]);
-	}
-	
-	/**
-	 * Returns a map of arguments for executing an Ant
-	 * buildfile using Eclipse 2.1 arguments.
-	 * 
-	 * @return a map of 2.1 arguments for an Ant buildfile
-	 */
-	private Map get21AntArgumentMap() {
-		HashMap arguments= new HashMap();
-		arguments.put(ExternalToolMigration.TAG_VERSION, "2.1");
-		arguments.put(ExternalToolMigration.TAG_NAME, "ant config");
-		arguments.put(ExternalToolMigration.TAG_TYPE, ExternalToolMigration.TOOL_TYPE_ANT_BUILD);
-		arguments.put(ExternalToolMigration.TAG_LOCATION, "location");
-		arguments.put(ExternalToolMigration.TAG_WORK_DIR, "working directory");
-		arguments.put(ExternalToolMigration.TAG_CAPTURE_OUTPUT, "true");
-		arguments.put(ExternalToolMigration.TAG_SHOW_CONSOLE, "true");
-		arguments.put(ExternalToolMigration.TAG_SHOW_CONSOLE, "true");
-		arguments.put(ExternalToolMigration.TAG_RUN_BKGRND, "true");
-		arguments.put(ExternalToolMigration.TAG_PROMPT_ARGS, "true");
-		arguments.put(ExternalToolMigration.TAG_REFRESH_SCOPE, "refresh scope");
-		arguments.put(ExternalToolMigration.TAG_REFRESH_RECURSIVE, "true");
-		arguments.put(ExternalToolMigration.TAG_RUN_BUILD_KINDS, "build kinds");
-		arguments.put(ExternalToolMigration.TAG_ARGS, "arg1 arg2");
-		arguments.put(ExternalToolMigration.TAG_EXTRA_ATTR, ExternalToolMigration.RUN_TARGETS_ATTRIBUTE + "=target1,target2");
-		return arguments;
-	}
-	
-	/**
-	 * Tests migration of arguments from an Eclipse 2.1 program
-	 * configuration to a current launch configuration.
-	 * 
-	 * @throws CoreException
-	 */
-	public void test21ProgramMigration() throws CoreException {
-		Map argumentMap= get21ProgramArgumentMap();
-		ILaunchConfigurationWorkingCopy config = ExternalToolMigration.configFromArgumentMap(argumentMap);
-		assertNotNull("Migration failed", config);
-		
-		assertEquals("Wrong config type", IExternalToolConstants.ID_PROGRAM_BUILDER_LAUNCH_CONFIGURATION_TYPE, config.getType().getIdentifier());
-		assertEquals("program config", config.getName());
-		assertEquals("location", config.getAttribute(IExternalToolConstants.ATTR_LOCATION, ""));
-		assertEquals("working directory", config.getAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, ""));
-		assertEquals(true, config.getAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, false));
-		assertEquals(true, config.getAttribute(IExternalToolConstants.ATTR_SHOW_CONSOLE, false));
-		assertEquals(true, config.getAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, false));
-		assertEquals(true, config.getAttribute(IExternalToolConstants.ATTR_PROMPT_FOR_ARGUMENTS, false));
-		assertEquals("refresh scope", config.getAttribute(RefreshTab.ATTR_REFRESH_SCOPE, ""));
-		assertEquals(true, config.getAttribute(RefreshTab.ATTR_REFRESH_RECURSIVE, false));
-		assertEquals("build kinds", config.getAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, ""));
-		assertEquals("arg1 arg2", config.getAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, ""));
-	}
-	
-	/**
-	 * Returns a map of arguments for executing a program
-	 * buildfile using Eclipse 2.1 arguments.
-	 * 
-	 * @return a map of 2.1 arguments for a program
-	 */
-	private Map get21ProgramArgumentMap() {
-		HashMap arguments= new HashMap();
-		arguments.put(ExternalToolMigration.TAG_VERSION, "2.1");
-		arguments.put(ExternalToolMigration.TAG_NAME, "program config");
-		arguments.put(ExternalToolMigration.TAG_TYPE, IExternalToolConstants.TOOL_TYPE_PROGRAM);
-		arguments.put(ExternalToolMigration.TAG_LOCATION, "location");
-		arguments.put(ExternalToolMigration.TAG_WORK_DIR, "working directory");
-		arguments.put(ExternalToolMigration.TAG_CAPTURE_OUTPUT, "true");
-		arguments.put(ExternalToolMigration.TAG_SHOW_CONSOLE, "true");
-		arguments.put(ExternalToolMigration.TAG_SHOW_CONSOLE, "true");
-		arguments.put(ExternalToolMigration.TAG_RUN_BKGRND, "true");
-		arguments.put(ExternalToolMigration.TAG_PROMPT_ARGS, "true");
-		arguments.put(ExternalToolMigration.TAG_REFRESH_SCOPE, "refresh scope");
-		arguments.put(ExternalToolMigration.TAG_REFRESH_RECURSIVE, "true");
-		arguments.put(ExternalToolMigration.TAG_RUN_BUILD_KINDS, "build kinds");
-		arguments.put(ExternalToolMigration.TAG_ARGS, "arg1 arg2");
-		return arguments;
-	}
-	
-}
diff --git a/ant/org.eclipse.ant.tests.ui/about.html b/ant/org.eclipse.ant.tests.ui/about.html
deleted file mode 100644
index cde506f..0000000
--- a/ant/org.eclipse.ant.tests.ui/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>30th January, 2003</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/build.properties b/ant/org.eclipse.ant.tests.ui/build.properties
deleted file mode 100644
index 2b6d76e..0000000
--- a/ant/org.eclipse.ant.tests.ui/build.properties
+++ /dev/null
@@ -1,27 +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
-###############################################################################
-bin.includes = plugin.xml,\
-			   plugin.properties,\
-			   test.xml,\
-               about.html,\
-               testbuildfiles/,\
-               lib/,\
-               lib/*.jar,\
-               *.jar
-               
-source.anttestsui.jar = test plugin/,\
-						Ant Editor Tests/,\
-						External Tools/,\
-						Ant Tests/,\
-                        buildfiles/
-						
-source.lib/antUITestsSupport.jar = test support/
-jars.compile.order=anttestsui.jar,lib/antUITestsSupport.jar
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml b/ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml
deleted file mode 100644
index 53bee6a..0000000
--- a/ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="build tests support jar" default="build" basedir="..">
-
-	<property name="bootclasspath" value=""/>
-
-	<target name="build" description="Removes all build artifacts, recreates the support jar, and refreshes this plugin's resources" depends="clean, lib/antUITestsSupport.jar"/>
-
-	<target name="init" depends="properties">
-		<property name="version.suffix" value="_3.1.0"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}"/>
-	</target>
-
-	<target name="properties" if="eclipse.running">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-	</target>
-
-	<target name="lib/antUITestsSupport.jar" depends="init" description= "Builds the support JAR">
-		<property name="destdir" value="${temp.folder}/lib/antUITestsSupport.jar.bin"/>
-		<delete dir="${temp.folder}/lib/antUITestsSupport.jar.bin"/>
-		<mkdir dir="${temp.folder}/lib/antUITestsSupport.jar.bin"/>
-		<!-- compile the source code -->
-		<javac target="1.1" destdir="${temp.folder}/lib/antUITestsSupport.jar.bin" failonerror="false" verbose="false" debug="on" includeAntRuntime="yes" bootclasspath="${bootclasspath}" 
-			classpath="${basedir}/bin;
-			${eclipse.home}/plugins/org.eclipse.ant.core${version.suffix}/antsupport.jar;
-			${basedir}/../org.eclipse.ant.core/bin
-			${eclipse.home}/plugins/org.eclipse.ant.core${version.suffix}/lib/remoteAnt.jar;
-			${basedir}/../org.eclipse.ant.ui/lib/remoteAnt.jar">
-			<src path="test support/"/>
-		</javac>
-		<mkdir dir="${build.result.folder}/lib"/>
-		<jar destfile="${build.result.folder}/lib/antUITestsSupport.jar" basedir="${temp.folder}/lib/antUITestsSupport.jar.bin"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${build.result.folder}/lib/antUITestsSupport.jar"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/icons/ant.gif b/ant/org.eclipse.ant.tests.ui/icons/ant.gif
deleted file mode 100644
index 6da365c..0000000
--- a/ant/org.eclipse.ant.tests.ui/icons/ant.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.tests.ui/lib/.cvsignore b/ant/org.eclipse.ant.tests.ui/lib/.cvsignore
deleted file mode 100644
index 2b90898..0000000
--- a/ant/org.eclipse.ant.tests.ui/lib/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-antUITestsSupport.jar
diff --git a/ant/org.eclipse.ant.tests.ui/plugin.properties b/ant/org.eclipse.ant.tests.ui/plugin.properties
deleted file mode 100644
index 07228b2..0000000
--- a/ant/org.eclipse.ant.tests.ui/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2003 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
-###############################################################################
-
-pluginName=Ant UI Test Plugin
-providerName=Eclipse.org
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/plugin.xml b/ant/org.eclipse.ant.tests.ui/plugin.xml
deleted file mode 100644
index 4cd5ebb..0000000
--- a/ant/org.eclipse.ant.tests.ui/plugin.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.ant.tests.ui"
-   name="%pluginName"
-   version="3.1.0"
-   provider-name="%providerName"
-   class="org.eclipse.ant.tests.ui.testplugin.AntUITestPlugin">
-   
-   <requires>
-      <import plugin="org.eclipse.ui.ide" optional="true"/>
-      <import plugin="org.eclipse.jface.text" optional="true"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor" optional="true"/>
-      <import plugin="org.eclipse.ui.editors" optional="true"/>
-      <import plugin="org.apache.ant"/>
-	  <import plugin="org.junit"/>   
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.jdt.core"/>
-      <import plugin="org.eclipse.jdt.launching"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.ant.core"/>
-      <import plugin="org.eclipse.debug.core"/>
-      <import plugin="org.eclipse.debug.ui"/>
-      <import plugin="org.eclipse.ui.externaltools"/>
-      <import plugin="org.eclipse.ant.ui"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.test.performance"/>
-      <import plugin="org.eclipse.ui.console"/>
-   </requires>
- 
-<runtime>
-  <library name="anttestsui.jar" >
-     <export name = "*"/>
-  </library> 
-</runtime>
-
- <extension
-     point="org.eclipse.debug.ui.consoleLineTrackers">
-	  <consoleLineTracker
-	        class="org.eclipse.ant.tests.ui.testplugin.ConsoleLineTracker"
-	        processType="org.eclipse.ant.ui.antProcess"
-	        id="org.eclipse.ant.tests.ui.testplugin.ConsoleLineTracker">
-	  </consoleLineTracker>
-  </extension>
-  
-  <extension
-         point="org.eclipse.ant.core.extraClasspathEntries">
-      <extraClasspathEntry
-            library="lib/antUITestsSupport.jar"
-            eclipseRuntime="false">
-      </extraClasspathEntry>
-   </extension>
-   
-    <extension point="org.eclipse.ant.core.antTasks">
-	    <antTask 
-	    	name="coolUITask" 
-	    	class="org.eclipse.ant.tests.ui.support.tasks.AntTestTask2"
-	    	library="lib/antUITestsSupport.jar"
-	    	eclipseRuntime="false">
-	    </antTask>
-   </extension>
-
-	<extension point="org.eclipse.ant.core.antTypes">
-	    <antType 
-	    	name="coolUIType" 
-	    	class="org.eclipse.ant.tests.ui.support.types.AntTestPath"
-	    	library="lib/antUITestsSupport.jar"
-	    	eclipseRuntime="false">
-	    </antType>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ant.core.antProperties">
-      <antProperty
-            name="property.ui.testing"
-            value="true">
-      </antProperty>
-       <antProperty
-            name="property.ui.testing2"
-            value="hey"
-             eclipseRuntime="false">
-      </antProperty>
-   </extension>
-</plugin>
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java
deleted file mode 100644
index a7741e1..0000000
--- a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java
+++ /dev/null
@@ -1,340 +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 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.ant.tests.ui.testplugin;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ant.internal.ui.AntUIPlugin;
-import org.eclipse.ant.internal.ui.model.AntModel;
-import org.eclipse.ant.tests.ui.editor.support.TestLocationProvider;
-import org.eclipse.ant.tests.ui.editor.support.TestProblemRequestor;
-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.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.ui.console.IHyperlink;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
-import org.eclipse.ui.internal.console.IOConsolePartition;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-public abstract class AbstractAntUITest extends TestCase {
-	
-	public static String ANT_EDITOR_ID= "org.eclipse.ant.ui.internal.editor.AntEditor";
-	
-	private IDocument currentDocument;
-
-	public AbstractAntUITest(String name) {
-		super(name);
-	}
-		
-	protected IFile getIFile(String buildFileName) {
-		return getProject().getFolder("buildfiles").getFile(buildFileName);	
-	}
-	
-	protected File getBuildFile(String buildFileName) {
-		IFile file = getIFile(buildFileName);
-		assertTrue("Could not find build file named: " + buildFileName, file.exists());
-		return file.getLocation().toFile();
-	}
-	
-	/**
-	 * Returns the 'AntUITests' project.
-	 * 
-	 * @return the test project
-	 */
-	protected static IProject getProject() {
-		return ResourcesPlugin.getWorkspace().getRoot().getProject(ProjectHelper.PROJECT_NAME);
-	}
-	
-	protected IDocument getDocument(String fileName) {
-		File file = getBuildFile(fileName);
-		InputStream in;
-		try {
-			in = new FileInputStream(file);
-		} catch (FileNotFoundException e) {
-			return null;
-		}
-		String initialContent= getStreamContentAsString(in);
-		return new Document(initialContent);
-	}
-
-	protected String getStreamContentAsString(InputStream inputStream) {
-		InputStreamReader reader;
-		try {
-			reader = new InputStreamReader(inputStream, ResourcesPlugin.getEncoding());
-		} catch (UnsupportedEncodingException e) {
-			AntUIPlugin.log(e);
-			return ""; //$NON-NLS-1$
-		}
-		BufferedReader tempBufferedReader = new BufferedReader(reader);
-
-		return getReaderContentAsString(tempBufferedReader);
-	}
-	
-	protected String getReaderContentAsString(BufferedReader bufferedReader) {
-		StringBuffer result = new StringBuffer();
-		try {
-			String line= bufferedReader.readLine();
-
-			while(line != null) {
-				if(result.length() != 0) {
-                    result.append(System.getProperty("line.separator")); //$NON-NLS-1$
-				}
-				result.append(line);
-				line = bufferedReader.readLine();
-			}
-		} catch (IOException e) {
-			AntUIPlugin.log(e);
-			return null;
-		}
-
-		return result.toString();
-	}
-		
-	protected AntModel getAntModel(String fileName) {
-		currentDocument= getDocument(fileName);
-		AntModel model= new AntModel(currentDocument, new TestProblemRequestor(), new TestLocationProvider(getBuildFile(fileName)));
-		model.reconcile();
-		return model;
-	}
-	
-	/**
-	 * @return
-	 */
-	public IDocument getCurrentDocument() {
-		return currentDocument;
-	}
-
-	/**
-	 * @param currentDocument
-	 */
-	public void setCurrentDocument(IDocument currentDocument) {
-		this.currentDocument = currentDocument;
-	}
-	
-	/**
-	 * Launches the Ant build with the buildfile name (no extension).
-	 * 
-	 * @param buildFileName the ant buildfile name
-	 */
-	protected void launch(String buildFileName) throws CoreException {
-		ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
-		assertNotNull("Could not locate launch configuration for " + buildFileName, config);
-		launchAndTerminate(config, 20000);
-	}
-	
-	/**
-	 * Launches the Ant build with the buildfile name (no extension).
-	 * 
-	 * @param buildFileName the buildfile
-	 * @param arguments the ant arguments
-	 */
-	protected void launch(String buildFileName, String arguments) throws CoreException {
-		ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
-		assertNotNull("Could not locate launch configuration for " + buildFileName, config);
-		ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-		copy.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, arguments);
-		launchAndTerminate(copy, 20000);
-	}
-	
-	/**
-	* Launches the Ant build in debug output mode with the buildfile name (no extension).
-	* 
-	* @param mainTypeName the program to launch
-	* @return thread in which the first suspend event occurred
-	*/
-	protected void launchWithDebug(String buildFileName) throws CoreException {
-		ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
-		assertNotNull("Could not locate launch configuration for " + buildFileName, config);
-		ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
-		copy.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, "-debug");
-		launchAndTerminate(copy, 10000);
-	}
-	
-	/**
-	 * Returns the launch configuration for the given buildfile
-	 * 
-	 * @param buildFileName buildfile to launch
-	 * @see ProjectCreationDecorator
-	 */
-	protected ILaunchConfiguration getLaunchConfiguration(String buildFileName) {
-		IFile file = getJavaProject().getProject().getFolder("launchConfigurations").getFile(buildFileName + ".launch");
-		ILaunchConfiguration config = getLaunchManager().getLaunchConfiguration(file);
-		assertTrue("Could not find launch configuration for " + buildFileName, config.exists());
-		return config;
-	}
-
-	/**
-	 * Returns the content of the specified file as <code>String</code>.
-	 */
-	protected String getFileContentAsString(File aFile) throws FileNotFoundException {
-	    InputStream stream = new FileInputStream(aFile);
-	    InputStreamReader reader = new InputStreamReader(stream);
-	    BufferedReader bufferedReader = new BufferedReader(reader);
-	
-	    return getReaderContentAsString(bufferedReader);
-	}
-	
-	protected SAXParser getSAXParser() {
-		SAXParser parser = null;
-		try {
-			parser = SAXParserFactory.newInstance().newSAXParser();
-		} catch (ParserConfigurationException e) {
-			AntUIPlugin.log(e);
-		} catch (SAXException e) {
-			AntUIPlugin.log(e);
-		}
-		return parser;
-	}
-
-	
-	protected void parse(InputStream stream, SAXParser parser, DefaultHandler handler, File editedFile) {
-		InputSource inputSource= new InputSource(stream);
-		if (editedFile != null) {
-			//needed for resolving relative external entities
-			inputSource.setSystemId(editedFile.getAbsolutePath());
-		}
-
-		try {
-			parser.parse(inputSource, handler);
-		} catch (SAXException e) {
-		} catch (IOException e) {
-		}
-	}
-	
-	/**
-	 * Returns the launch manager
-	 * 
-	 * @return launch manager
-	 */
-	public static ILaunchManager getLaunchManager() {
-		return DebugPlugin.getDefault().getLaunchManager();
-	}
-	
-	/**
-	 * Returns the 'AntUITests' project.
-	 * 
-	 * @return the test project
-	 */
-	public static IJavaProject getJavaProject() {
-		return JavaCore.create( getProject());
-	}
-	
-	protected void launchAndTerminate(ILaunchConfiguration config, int timeout) throws CoreException {
-		DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.TERMINATE, IProcess.class);
-		waiter.setTimeout(timeout);
-
-		Object terminatee = launchAndWait(config, waiter);		
-		assertNotNull("Program did not terminate.", terminatee);
-		assertTrue("terminatee is not an IProcess", terminatee instanceof IProcess);
-		IProcess process = (IProcess) terminatee;
-        boolean terminated = process.isTerminated();
-		assertTrue("process is not terminated", terminated);
-	}
-	
-	/**
-	 * Launches the given configuration and waits for an event. Returns the
-	 * source of the event. If the event is not received, the launch is
-	 * terminated and an exception is thrown.
-	 * 
-	 * @param configuration the configuration to launch
-	 * @param waiter the event waiter to use
-	 * @return Object the source of the event
-	 * @exception Exception if the event is never received.
-	 */
-	protected Object launchAndWait(ILaunchConfiguration configuration, DebugEventWaiter waiter) throws CoreException {
-		ILaunch launch = configuration.launch(ILaunchManager.RUN_MODE, null);
-		Object suspendee= waiter.waitForEvent();
-		if (suspendee == null) {
-			try {
-				launch.terminate();
-			} catch (CoreException e) {
-				e.printStackTrace();
-				fail("Program did not suspend, and unable to terminate launch.");
-			}
-		}
-        assertNotNull("Program did not suspend, launch terminated.", suspendee);
-        boolean terminated = launch.isTerminated();
-        assertTrue("launch did not terminate", terminated);
-        if (terminated && !ConsoleLineTracker.isClosed()) {
-            ConsoleLineTracker.waitForConsole();
-        }
-        assertTrue("Console is not closed", ConsoleLineTracker.isClosed());	
-		return suspendee;		
-	}
-	
-	protected IHyperlink getHyperlink(int offset, IDocument doc) {
-		if (offset >= 0 && doc != null) {
-			Position[] positions = null;
-			try {
-				positions = doc.getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
-			} catch (BadPositionCategoryException ex) {
-				// no links have been added
-				return null;
-			}
-			for (int i = 0; i < positions.length; i++) {
-				Position position = positions[i];
-				if (offset >= position.getOffset() && offset <= (position.getOffset() + position.getLength())) {
-					return ((ConsoleHyperlinkPosition)position).getHyperLink();
-				}
-			}
-		}
-		return null;
-	}
-	
-	protected Color getColorAtOffset(int offset, IDocument document) throws BadLocationException {
-		if (document != null) {
-			IDocumentPartitioner partitioner = document.getDocumentPartitioner();
-			if (partitioner != null) {
-				ITypedRegion[] regions= partitioner.computePartitioning(offset, document.getLineInformationOfOffset(offset).getLength());
-				
-				for (int i = 0; i < regions.length; i++) {
-					IOConsolePartition partition = (IOConsolePartition)regions[i];
-					return partition.getColor();
-				}	
-			}
-		}
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUIPerformanceTests.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUIPerformanceTests.java
deleted file mode 100644
index 4740e93..0000000
--- a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUIPerformanceTests.java
+++ /dev/null
@@ -1,37 +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.ant.tests.ui.testplugin;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ant.tests.ui.editor.performance.OpenAntEditorTest;
-import org.eclipse.ant.tests.ui.performance.OpenLaunchConfigurationDialogTests;
-import org.eclipse.ant.tests.ui.performance.SeparateVMTests;
-
-/**
- * Performance Test suite for the Ant UI
- */
-public class AntUIPerformanceTests extends TestSuite {
-
-    public static Test suite() {
-
-        TestSuite suite= new AntUIPerformanceTests();
-        suite.setName("Ant UI Performance Unit Tests");
-		suite.addTest(new TestSuite(ProjectCreationDecorator.class));
-		suite.addTest(new TestSuite(OpenAntEditorTest.class));
-		//suite.addTest(new TestSuite(NonInitialTypingTest.class));
-		suite.addTest(new TestSuite(OpenLaunchConfigurationDialogTests.class));
-		suite.addTest(new TestSuite(SeparateVMTests.class));
-        return suite;
-    }
-}
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITestPlugin.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITestPlugin.java
deleted file mode 100644
index 033d40a..0000000
--- a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITestPlugin.java
+++ /dev/null
@@ -1,63 +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 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.ant.tests.ui.testplugin;
-
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.Bundle;
-
-
-public class AntUITestPlugin extends AbstractUIPlugin {
-	
-	private static AntUITestPlugin deflt;
-	
-	public AntUITestPlugin() {
-		super();
-		deflt= this;
-	}
-	
-	public static AntUITestPlugin getDefault() {
-		return deflt;
-	}
-	
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-	
-	public static void enableAutobuild(boolean enable) throws CoreException {
-		// disable auto build
-		IWorkspace workspace= AntUITestPlugin.getWorkspace();
-		IWorkspaceDescription desc= workspace.getDescription();
-		desc.setAutoBuilding(enable);
-		workspace.setDescription(desc);
-	}
-	
-	public File getFileInPlugin(IPath path) {
-		try {
-			Bundle bundle = getDefault().getBundle();
-			URL installURL= new URL(bundle.getEntry("/"), path.toString());
-			URL localURL= Platform.asLocalURL(installURL);
-			return new File(localURL.getFile());
-		} catch (IOException e) {
-			return null;
-		}
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITests.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITests.java
deleted file mode 100644
index ea4b992..0000000
--- a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITests.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 GEBIT Gesellschaft fuer EDV-Beratung
- * und Informatik-Technologien mbH, 
- * Berlin, Duesseldorf, Frankfurt (Germany) 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:
- *     GEBIT Gesellschaft fuer EDV-Beratung und Informatik-Technologien mbH - initial implementation
- * 	   IBM Corporation - additional tests
- *******************************************************************************/
-
-package org.eclipse.ant.tests.ui.testplugin;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ant.tests.ui.AntUtilTests;
-import org.eclipse.ant.tests.ui.BuildTests;
-import org.eclipse.ant.tests.ui.editor.AntEditorContentOutlineTests;
-import org.eclipse.ant.tests.ui.editor.AntEditorTests;
-import org.eclipse.ant.tests.ui.editor.CodeCompletionTest;
-import org.eclipse.ant.tests.ui.editor.TaskDescriptionProviderTest;
-import org.eclipse.ant.tests.ui.editor.formatter.FormattingPreferencesTest;
-import org.eclipse.ant.tests.ui.editor.formatter.XmlDocumentFormatterTest;
-import org.eclipse.ant.tests.ui.editor.formatter.XmlFormatterTest;
-import org.eclipse.ant.tests.ui.editor.formatter.XmlTagFormatterTest;
-import org.eclipse.ant.tests.ui.externaltools.MigrationTests;
-import org.eclipse.ant.tests.ui.separateVM.SeparateVMTests;
-
-/**
- * Test suite for the Ant UI
- */
-public class AntUITests extends TestSuite {
-
-    public static Test suite() {
-
-        TestSuite suite= new AntUITests();
-        suite.setName("Ant UI Unit Tests");
-		suite.addTest(new TestSuite(ProjectCreationDecorator.class));
-		suite.addTest(new TestSuite(BuildTests.class));
-		suite.addTest(new TestSuite(SeparateVMTests.class));
-		suite.addTest(new TestSuite(AntEditorTests.class));
-        suite.addTest(new TestSuite(CodeCompletionTest.class));
-        suite.addTest(new TestSuite(TaskDescriptionProviderTest.class));
-        suite.addTest(new TestSuite(AntEditorContentOutlineTests.class));
-        suite.addTest(new TestSuite(MigrationTests.class));
-        suite.addTest(new TestSuite(FormattingPreferencesTest.class));
-        suite.addTest(new TestSuite(XmlDocumentFormatterTest.class));
-        suite.addTest(new TestSuite(XmlTagFormatterTest.class));
-        suite.addTest(new TestSuite(XmlFormatterTest.class));
-        suite.addTest(new TestSuite(AntUtilTests.class));
-        return suite;
-    }
-}
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ConsoleLineTracker.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ConsoleLineTracker.java
deleted file mode 100644
index 0f7b96d..0000000
--- a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ConsoleLineTracker.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package org.eclipse.ant.tests.ui.testplugin;
-
-/*******************************************************************************
- * 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
- *******************************************************************************/
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.debug.ui.console.IConsole;
-import org.eclipse.debug.ui.console.IConsoleLineTrackerExtension;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-
-/**
- * Simple console line tracker extension point that collects the lines
- * appended to the console. 
- */
-public class ConsoleLineTracker implements IConsoleLineTrackerExtension {
-	
-	private static IConsole console;
-	private static List lines= new ArrayList(); 
-	
-	private static boolean consoleClosed= false;
-
-	/**
-	 * @see org.eclipse.debug.ui.console.IConsoleLineTracker#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/**
-	 * @see org.eclipse.debug.ui.console.IConsoleLineTracker#init(org.eclipse.debug.ui.console.IConsole)
-	 */
-	public void init(IConsole c) {
-	    synchronized(lines) {
-	        ConsoleLineTracker.console= c;
-	        lines= new ArrayList();
-	        consoleClosed= false;
-	    }
-	}
-
-	/**
-	 * @see org.eclipse.debug.ui.console.IConsoleLineTracker#lineAppended(org.eclipse.jface.text.IRegion)
-	 */
-	public void lineAppended(IRegion line) {
-		lines.add(line);
-	}
-	
-	public static int getNumberOfMessages() {
-		return lines.size();
-	}
-	
-	public static String getMessage(int index) {
-		if (index < lines.size()){
-			IRegion lineRegion= (IRegion)lines.get(index);
-			try {
-				return console.getDocument().get(lineRegion.getOffset(), lineRegion.getLength());
-			} catch (BadLocationException e) {
-				return null;
-			}
-		}
-		return null;
-	}
-	
-	public static List getAllMessages() {
-		List all= new ArrayList(lines.size());
-		for (int i = 0; i < lines.size(); i++) {
-			IRegion lineRegion= (IRegion)lines.get(i);
-			try {
-				all.add(console.getDocument().get(lineRegion.getOffset(), lineRegion.getLength()));
-			} catch (BadLocationException e) {
-				continue;
-			}
-		}
-		return all;
-	}
-	
-	public static IDocument getDocument() {
-		return console.getDocument();
-	}
-	
-	public static void waitForConsole() {
-		synchronized (lines) {
-			if (consoleClosed) {
-				return;
-			}
-			try {
-				lines.wait(20000);
-			} catch (InterruptedException ie) {
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.console.IConsoleLineTrackerExtension#consoleClosed()
-	 */
-	public void consoleClosed() {
-		synchronized (lines) {
-			consoleClosed= true;
-			lines.notifyAll();
-		}
-	}
-    
-    public static boolean isClosed() {
-        synchronized (lines) {
-            return consoleClosed;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugElementKindEventWaiter.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugElementKindEventWaiter.java
deleted file mode 100644
index e7ea27a..0000000
--- a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugElementKindEventWaiter.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.ui.testplugin;
-
-import org.eclipse.debug.core.DebugEvent;
-
-/**
- * Waits for a type of event on a kind of element.  Compare this to SpecificDebugElementEventWaiter which is
- * used to wait for a type of event on a specific debug element object.
- */
-
-public class DebugElementKindEventWaiter extends DebugEventWaiter {
-	
-	protected Class fElementClass;
-	
-	public DebugElementKindEventWaiter(int eventKind, Class elementClass) {
-		super(eventKind);
-		fElementClass = elementClass;
-	}
-	
-	public boolean accept(DebugEvent event) {
-		Object o = event.getSource();
-		return super.accept(event) && fElementClass.isInstance(o);
-	}
-
-}
-
-
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugEventWaiter.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugEventWaiter.java
deleted file mode 100644
index 130637e..0000000
--- a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugEventWaiter.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.ui.testplugin;
-
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IDebugEventSetListener;
-
-/**
- * The <code>DebugEventWaiter</code> is
- * to wait for a specific kind of debug event.
- * <p>
- * When a <code>DebugEventWaiter</code> is created, it
- * registers itself with the <code>DebugPlugin</code> as
- * an <code>IDebugEventSetListener</code>.
- * <p>
- * NOTE: <code>DebugEventWaiter</code> objects are intended for
- * one time use only!
- */
-public class DebugEventWaiter implements IDebugEventSetListener {
-	/**
-	 * The kind of event the waiter is waiting for
-	 */
-	protected int fEventType;
-
-	/**
-	 * The number of milliseconds the waiter will wait before timing out.
-	 */
-	protected long fTimeout;
-
-	/**
-	 * The <code>IDebugModelManager</code> this waiter is listening to.
-	 */
-	protected DebugPlugin fDebugPlugin;
-
-	/**
-	 * The <code>DebugEvent</code> received.
-	 */
-	protected DebugEvent fEvent;
-	
-	/**
-	 * The event set that was accepted
-	 */
-	protected DebugEvent[] fEventSet;
-
-	/**
-	 * The default timeout value if none is given (20000).
-	 */
-	public static final long DEFAULT_TIMEOUT= 15000;
-
-	/**
-	 * Creates a new <code>DebugEventWaiter</code> which
-	 * waits for events of a kind <code>eventType</code>.
-	 * The wait method will wait the default timeout value.
-	 */
-	public DebugEventWaiter(int eventType) {
-		fDebugPlugin= DebugPlugin.getDefault();
-		fEventType= eventType;
-		fTimeout= DEFAULT_TIMEOUT;
-
-		fDebugPlugin.addDebugEventListener(this);
-	}
-
-	/**
-	 * Answers true if the <code>DebugEvent</code> is acceptable.
-	 */
-	public boolean accept(DebugEvent event) {
-		return event.getKind() == fEventType && event.getDetail() != DebugEvent.EVALUATION_IMPLICIT;
-	}
-	/**
-	 * Answers the event name associated with the given flag.
-	 */
-	public String getEventName(int flag) {
-		switch (flag) {
-			case DebugEvent.CREATE :
-				return "Create";
-			case DebugEvent.TERMINATE :
-				return "Terminate";
-			case DebugEvent.RESUME :
-				return "Resume";
-			case DebugEvent.SUSPEND :
-				return "Suspend";
-			default :
-				return "UNKNOWN";
-		}
-	}
-
-	/**
-	 * Handles debug events.
-	 *
-	 * @see IDebugEventListener
-	 * @see #accept(DebugEvent)
-	 */
-	public synchronized void handleDebugEvents(DebugEvent[] events) {
-		//printReceived(events);
-		for (int i = 0; i < events.length; i++) {
-			if (accept(events[i])) {
-				fEvent= events[i];
-				fEventSet = events;
-				unregister();
-				notifyAll();
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Prints a message indicating which event was received.
-	 */
-	protected void printReceived(DebugEvent[] events) {
-		for (int i = 0; i < events.length; i++) {
-			System.out.println(this +" got " + events[i]);
-		}
-	}
-
-	/**
-	 * Sets the number of milliseconds to wait for this callback
-	 */
-	public void setTimeout(long milliseconds) {
-		fTimeout= milliseconds;
-	}
-
-	/**
-	 * Unregisters this waiter as a listener
-	 */
-	public void unregister() {
-		fDebugPlugin.removeDebugEventListener(this);
-	}
-
-	/**
-	 * Returns the source of the accepted event, or <code>null</code>
-	 * if no event was accepted.
-	 */
-	public synchronized Object waitForEvent() {
-		if (fEvent == null) {
-			try {
-				wait(fTimeout);
-			} catch (InterruptedException ie) {
-				System.err.println("Interrupted waiting for event");
-			}
-		}
-		unregister();
-		if (fEvent == null)
-			return null;
-		return fEvent.getSource();
-	}
-
-	/**
-	 * Returns the accepted event, if any.
-	 */
-	public DebugEvent getEvent() {
-		return fEvent;
-	}
-	
-	/**
-	 * Returns the accepted event set, if any.
-	 */
-	public DebugEvent[] getEventSet() {
-		return fEventSet;
-	}	
-}
-
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectCreationDecorator.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectCreationDecorator.java
deleted file mode 100644
index 565b4c8..0000000
--- a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectCreationDecorator.java
+++ /dev/null
@@ -1,133 +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 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.ant.tests.ui.testplugin;
-
-
-import java.io.File;
-
-import org.eclipse.ant.internal.ui.AntUIPlugin;
-import org.eclipse.ant.internal.ui.IAntUIConstants;
-import org.eclipse.ant.internal.ui.IAntUIPreferenceConstants;
-import org.eclipse.ant.internal.ui.launchConfigurations.IAntLaunchConfigurationConstants;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-public class ProjectCreationDecorator extends AbstractAntUITest {
-	
-	public ProjectCreationDecorator(String name) {
-		super(name);
-	}
-	
-	public void testProjectCreation() throws Exception {
-		try {
-			// delete any pre-existing project
-			IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(ProjectHelper.PROJECT_NAME);
-			if (pro.exists()) {
-				pro.delete(true, true, null);
-			}
-			// create project and import buildfiles and support files
-			IProject project = ProjectHelper.createProject(ProjectHelper.PROJECT_NAME);
-			IFolder folder = ProjectHelper.addFolder(project, "buildfiles");
-			ProjectHelper.addFolder(project, "launchConfigurations");
-			File root = AntUITestPlugin.getDefault().getFileInPlugin(ProjectHelper.TEST_BUILDFILES_DIR);
-			ProjectHelper.importFilesFromDirectory(root, folder.getFullPath(), null);
-			
-			createLaunchConfigurationForBoth("echoing");
-			createLaunchConfigurationForBoth("74840");
-            createLaunchConfigurationForBoth("failingTarget");
-			createLaunchConfiguration("build");
-			createLaunchConfiguration("bad");
-			createLaunchConfiguration("importRequiringUserProp");
-			createLaunchConfigurationForSeparateVM("extensionPointSepVM", null);
-			createLaunchConfigurationForSeparateVM("extensionPointTaskSepVM", null);
-			createLaunchConfigurationForSeparateVM("extensionPointTypeSepVM", null);
-			createLaunchConfigurationForSeparateVM("input", null);
-			createLaunchConfigurationForSeparateVM("environmentVar", null);
-            
-            createLaunchConfigurationForBoth("breakpoints");
-			
-			createLaunchConfiguration("big", "buildfiles/performance/build.xml");
-			
-		} finally {
-			//do not show the Ant build failed error dialog
-			AntUIPlugin.getDefault().getPreferenceStore().setValue(IAntUIPreferenceConstants.ANT_ERROR_DIALOG, false);
-		}
-	}
-	
-	private void createLaunchConfigurationForBoth(String launchConfigName) throws Exception {
-		createLaunchConfiguration(launchConfigName);
-		createLaunchConfigurationForSeparateVM(launchConfigName + "SepVM", launchConfigName);
-		
-	}
-
-	/**
-	 * Creates a shared launch configuration for launching Ant in a separate VM with the given
-	 * name.
-	 */
-	protected void createLaunchConfigurationForSeparateVM(String launchConfigName, String buildFileName) throws Exception {
-		ILaunchConfigurationType type = getLaunchManager().getLaunchConfigurationType(IAntLaunchConfigurationConstants.ID_ANT_LAUNCH_CONFIGURATION_TYPE);
-		ILaunchConfigurationWorkingCopy config = type.newInstance(getJavaProject().getProject().getFolder("launchConfigurations"), launchConfigName);
-		
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "org.eclipse.ant.internal.ui.antsupport.InternalAntRunner"); //$NON-NLS-1$
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH_PROVIDER, "org.eclipse.ant.ui.AntClasspathProvider"); //$NON-NLS-1$
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, getJavaProject().getElementName());
-		if (buildFileName == null) {
-			buildFileName= launchConfigName;
-		} 
-		config.setAttribute(IExternalToolConstants.ATTR_LOCATION, "${workspace_loc:/" + ProjectHelper.PROJECT_NAME + "/buildfiles/" + buildFileName + ".xml}");
-		
-		config.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, true);
-		config.setAttribute(DebugPlugin.ATTR_PROCESS_FACTORY_ID, IAntUIConstants.REMOTE_ANT_PROCESS_FACTORY_ID);
-		 
-		setVM(config);
-				
-		config.doSave();
-	}
-	
-	/**
-	 * Creates a shared launch configuration for launching Ant in a separate VM with the given
-	 * name.
-	 */
-	protected void createLaunchConfiguration(String launchConfigName) throws Exception {
-	    createLaunchConfiguration(launchConfigName, ProjectHelper.PROJECT_NAME + "/buildfiles/" + launchConfigName + ".xml");
-	}
-	
-	public static ILaunchConfiguration createLaunchConfiguration(String launchConfigName, String path) throws CoreException {
-	    ILaunchConfigurationType type = getLaunchManager().getLaunchConfigurationType(IAntLaunchConfigurationConstants.ID_ANT_LAUNCH_CONFIGURATION_TYPE);
-		ILaunchConfigurationWorkingCopy config = type.newInstance(getJavaProject().getProject().getFolder("launchConfigurations"), launchConfigName);
-	
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, getJavaProject().getElementName());
-		config.setAttribute(IExternalToolConstants.ATTR_LOCATION, "${workspace_loc:/" + path + "}");
-		config.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, true);
-			
-		config.doSave();
-		return config;
-	}
-
-	private void setVM(ILaunchConfigurationWorkingCopy config) {
-		IVMInstall vm = JavaRuntime.getDefaultVMInstall();
-		String vmName= vm.getName();
-		String vmTypeID= vm.getVMInstallType().getId();			
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_NAME, vmName);
-		config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE, vmTypeID);
-	}
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectHelper.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectHelper.java
deleted file mode 100644
index b662503..0000000
--- a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectHelper.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.ant.tests.ui.testplugin;
-
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-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.jdt.core.JavaCore;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.IImportStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-
-/**
- * Helper methods to set up an IProject.
- */
-public class ProjectHelper {
-	
-	public static final IPath TEST_BUILDFILES_DIR= new Path("testbuildfiles");
-	public static final IPath TEST_RESOURCES_DIR= new Path("testresources");	
-	public static final IPath TEST_LIB_DIR= new Path("testlib");
-	
-	public static final String PROJECT_NAME= "Ant UI Tests";
-	
-	/**
-	 * Creates a IProject.
-	 */	
-	public static IProject createProject(String projectName) throws CoreException {
-		IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
-		IProject project= root.getProject(projectName);
-		if (!project.exists()) {
-			project.create(null);
-		} else {
-			project.refreshLocal(IResource.DEPTH_INFINITE, null);
-		}
-		
-		if (!project.isOpen()) {
-			project.open(null);
-		}
-		
-		if (!project.hasNature(JavaCore.NATURE_ID)) {
-			addNatureToProject(project, JavaCore.NATURE_ID, null);
-		}
-		
-		return project;
-	}
-	
-	private static void addNatureToProject(IProject proj, String natureId, IProgressMonitor monitor) throws CoreException {
-		IProjectDescription description = proj.getDescription();
-		String[] prevNatures= description.getNatureIds();
-		String[] newNatures= new String[prevNatures.length + 1];
-		System.arraycopy(prevNatures, 0, newNatures, 0, prevNatures.length);
-		newNatures[prevNatures.length]= natureId;
-		description.setNatureIds(newNatures);
-		proj.setDescription(description, monitor);
-	}
-	
-	/**
-	 * Removes an IProject.
-	 */		
-	public static void delete(IProject project) throws CoreException {
-		project.delete(true, true, null);
-	}
-
-
-	/**
-	 * Adds a folder to an IProject.
-	 */		
-	public static IFolder addFolder(IProject project, String containerName) throws CoreException {
-		
-			IFolder folder= project.getFolder(containerName);
-			if (!folder.exists()) {
-				folder.create(false, true, null);
-			}
-		
-		return folder;
-		
-	}
-	
-	public static void importFilesFromDirectory(File rootDir, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException, IOException {		
-		IImportStructureProvider structureProvider = FileSystemStructureProvider.INSTANCE;
-		List files = new ArrayList(100);
-		addFiles(rootDir, files);
-		try {
-			ImportOperation op= new ImportOperation(destPath, rootDir, structureProvider, new ImportOverwriteQuery(), files);
-			op.setCreateContainerStructure(false);
-			op.run(monitor);
-		} catch (InterruptedException e) {
-			// should not happen
-		}
-	}	
-	
-	private static void addFiles(File dir, List collection) throws IOException {
-		File[] files = dir.listFiles();
-		List subDirs = new ArrayList(2);
-		for (int i = 0; i < files.length; i++) {
-			if (files[i].isFile()) {
-				collection.add(files[i]);
-			} else if (files[i].isDirectory()) {
-				subDirs.add(files[i]);
-			}
-		}
-		Iterator iter = subDirs.iterator();
-		while (iter.hasNext()) {
-			File subDir = (File)iter.next();
-			addFiles(subDir, collection);
-		}
-	}
-	
-	private static class ImportOverwriteQuery implements IOverwriteQuery {
-		public String queryOverwrite(String file) {
-			return ALL;
-		}	
-	}			
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/inputHandlers/TestSWTInputHandler.java b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/inputHandlers/TestSWTInputHandler.java
deleted file mode 100644
index e08c6ab..0000000
--- a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/inputHandlers/TestSWTInputHandler.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.ant.tests.ui.support.inputHandlers;
-
-
-public class TestSWTInputHandler {//extends SWTInputHandler {
-	
-   
-//    /* (non-Javadoc)
-//     * @see org.eclipse.ant.internal.ui.antsupport.inputhandler.SWTInputHandler#open(java.lang.String, java.lang.String, boolean[])
-//     */
-//    protected void open(String title, String prompt, boolean[] result) {
-//        fRequest.setInput("TestSWTInputHandler");
-//        result[0]= true;
-//    }
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask.java b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask.java
deleted file mode 100644
index ce7b33a..0000000
--- a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask.java
+++ /dev/null
@@ -1,33 +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 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.ant.tests.ui.support.tasks;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Echo;
-
-
-public class AntTestTask extends Task {
-	
-	public AntTestTask() {
-		super();
-	}
-	
-	/**
-	 * @see org.apache.tools.ant.Task#execute()
-	 */
-	public void execute() throws BuildException {
-		Echo echo= new Echo();
-		echo.setProject(getProject());
-		echo.setMessage("Testing Ant in Eclipse with a custom task");
-		echo.execute();
-	}
-}
diff --git a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask2.java b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask2.java
deleted file mode 100644
index 3ab7baf..0000000
--- a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask2.java
+++ /dev/null
@@ -1,55 +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 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.ant.tests.ui.support.tasks;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Echo;
-import org.apache.tools.ant.types.EnumeratedAttribute;
-import org.apache.tools.ant.types.Reference;
-
-
-public class AntTestTask2 extends Task {
-	
-	String fMessage= "Default";
-	Reference fRef= null;
-	
-	public AntTestTask2() {
-		super();
-	}
-	
-	/**
-	 * @see org.apache.tools.ant.Task#execute()
-	 */
-	public void execute() throws BuildException {
-		Echo echo= new Echo();
-		echo.setProject(getProject());
-		echo.setMessage("Testing Ant in Eclipse with a custom task2: " + fMessage);
-		echo.execute();
-	}
-	
-    public void setMessage(Cool attr) {
-        fMessage = attr.getValue();
-    }
-    
-    public void setReference(Reference ref) {
-        fRef= ref;
-    }
-	
-	/**
-     * Enumerated attribute with the values "cool", "chillin" and "awesome".
-     */
-    public static class Cool extends EnumeratedAttribute {
-        public String[] getValues() {
-            return new String[] {"cool", "chillin", "awesome"};
-        }
-    }
-}
diff --git a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/NestElementTask.java b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/NestElementTask.java
deleted file mode 100644
index 6541072..0000000
--- a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/NestElementTask.java
+++ /dev/null
@@ -1,52 +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 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.ant.tests.ui.support.tasks;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Echo;
-
-public class NestElementTask extends Task {  
-	
-	String message= "bar";
-	NestedElement e;
-    public static class NestedElement{
-    	Boolean works= Boolean.FALSE;
-    	public NestedElement() {	
-    	}
-    	
-        public void setWorks(Boolean booleanValue) {
-        	works= booleanValue;
-        }
-
-		public boolean works() {
-			return works.booleanValue();
-		}
-    }
-    public void addNestedElement(NestedElement nestedElement) {
-    	e= nestedElement;
-    }
-   
-	/* (non-Javadoc)
-	 * @see org.apache.tools.ant.Task#execute()
-	 */
-	public void execute() throws BuildException {
-		Echo echo= new Echo();
-		echo.setProject(getProject());
-		if (e.works()) {
-			echo.setMessage(message);
-		} else {
-			echo.setMessage("ack");
-		}
-		echo.execute();
-	}
-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/types/AntTestPath.java b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/types/AntTestPath.java
deleted file mode 100644
index 6022420..0000000
--- a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/types/AntTestPath.java
+++ /dev/null
@@ -1,32 +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 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.ant.tests.ui.support.types;
-
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.Path;
-
-public class AntTestPath extends Path {
-	
-	String message;
-	
-	public AntTestPath(Project project) {
-		super(project);
-	}
-	
-	public void setMessage(String message) {
-		this.message= message;
-	}
-	
-	public String getMessage() {
-		return message;
-	}
-	
-}
diff --git a/ant/org.eclipse.ant.tests.ui/test.xml b/ant/org.eclipse.ant.tests.ui/test.xml
deleted file mode 100644
index c6f1563..0000000
--- a/ant/org.eclipse.ant.tests.ui/test.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
-  <!-- sets the properties eclipse-home, and library-file -->
-  <!-- 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}\..\.."/>
-<property name="plugin-name" value="org.eclipse.ant.tests.ui"/>
-  <property name="library-file"
-            value="${eclipse-home}/plugins/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="jdt-folder" 
-              value="${eclipse-home}/jdt_folder"/>
-    <delete dir="${jdt-folder}" quiet="true"/>
-    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${jdt-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" 
-                value="org.eclipse.ant.tests.ui.testplugin.AntUITests"/>
-    </ant>
-  </target>
-	
- <!-- This target defines the performance tests that need to be run. -->
-	  <target name="perfsuite">
-	    <property name="jdt-folder" 
-	              value="${eclipse-home}/jdt_folder"/>
-	    <delete dir="${jdt-folder}" quiet="true"/>
-	    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-	      <property name="data-dir" value="${jdt-folder}"/>
-	      <property name="plugin-name" value="${plugin-name}"/>
-	      <property name="classname" 
-	                value="org.eclipse.ant.tests.ui.testplugin.AntUIPerformanceTests"/>
-	    </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>
-
-  <!--This target runs the performance test suites and collects results.-->
-  <target name="performance" depends="init, perfsuite, 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>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/74840.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/74840.xml
deleted file mode 100644
index c61443f..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/74840.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<project name="project" default="default">
-	<target name="default">
-		<echo>${platform.location}</echo>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/antUITestsSupport.jar b/ant/org.eclipse.ant.tests.ui/testbuildfiles/antUITestsSupport.jar
deleted file mode 100644
index 054eec8..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/antUITestsSupport.jar
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/bad.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/bad.xml
deleted file mode 100644
index f1c4d51..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/bad.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<project name="Echoing" default="echo1" basedir="..">
-
-	<target name="echo1">
-		<echo messge="echo1"/>
-	</target>
-	
-	<target name="echo2">
-		<echo message="echo2"/>
-	</target>
-	
-	<target name="echo3" description= "An echo3!">
-		<echo message="echo3"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/badproject.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/badproject.xml
deleted file mode 100644
index 60a79a8..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/badproject.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<project ndefault="make">
-	<target name="make">
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/breakpoints.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/breakpoints.xml
deleted file mode 100644
index 42fbdfb..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/breakpoints.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="debugEcho" default="default">
-	<target name="default">
-		<echo>1</echo>
-		<echo>2</echo>
-		<property name="ZZZ" value="ZZZ" />
-		<sleep milliseconds="500" />
-		<echo>3</echo>
-		<echo>4</echo>
-		<echo>5</echo>
-		<echo>6</echo>
-		<echo>7</echo>
-		<echo>8</echo>
-		<echo>9</echo>
-		<!--<sleep milliseconds="200" />-->
-	</target>
-
-	<target name="entry1" depends="default">
-		<echo>1</echo>
-		<echo>2</echo>
-	</target>
-
-	<target name="entry2" depends="default">
-		<echo>1</echo>
-		<echo>2</echo>
-	</target>
-</project>
-
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.Cp1251.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.Cp1251.xml
deleted file mode 100644
index 6ff9539..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.Cp1251.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<project name="test" default="init" basedir=".">
-
-     <target name="init">
-          <!-- displays Hello in Russian -->
-          <echo message="Çäðàâñòâóéòå"/>
-     </target>
-
-
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.UTF8.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.UTF8.xml
deleted file mode 100644
index 08e4733..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.UTF8.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="test" default="init" basedir=".">
-
-     <target name="init">
-          <!-- displays Hello in Russian -->
-          <echo message="ЗдÑ€авÑ?Ñ‚вуйÑ‚е"/>
-     </target>
-
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.xml
deleted file mode 100644
index 5cdd64d..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<project name="Echoing" default="echo1" basedir="..">
-
-	<target name="echo1">
-		<echo message="echo1"/>
-	</target>
-	
-	<target name="echo2">
-		<echo message="echo2"/>
-	</target>
-	
-	<target name="echo3" description= "An echo3!">
-		<echo message="echo3"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.properties b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.properties
deleted file mode 100644
index 7015cfd..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-prop1=val1
-prop2 = val2
-importFileName= toBeImported.xml
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.xml
deleted file mode 100644
index 9e042ff..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="testproject" basedir="." default="main">
-	<property name="propD" value="valD" />
-    <property file="buildtest1.properties" />
-    <property name="propV" value="valV" />
-    <target name="main">
-        <property name="property_in_target" value="val"/>
-        <echo>${</echo>
-    </target>
-	<target name="pretest"></target>
-	<target name="test" depends="">
-		<echo>depends</echo>
-	</target>
-	<target name="test2"></target>
-	<target name="test3"></target>
-	<target name="testIf" if=""></target>
-	<target name="testUnless" unless="prop"></target>
-	<target name="testMoreDepends" depends="pretest, ">
-		<echo message="$"></echo>
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest2.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest2.xml
deleted file mode 100644
index 0e3e5d3..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest2.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="testproject" basedir="." default="main">
-	<property name="propD" value="valD" />
-	<property file="buildtest1.properties" />
-	<target name="main" depends="properties">
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/customBoolean.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/customBoolean.xml
deleted file mode 100644
index 1dd37a0..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/customBoolean.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<project default="defaultTargetName">
-	<target name="defaultTargetName">
-		<eclipse.buildScript recursivegeneration=""/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/dependencytest.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/dependencytest.xml
deleted file mode 100644
index d26ba57..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/dependencytest.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<!-- Ein test case sollte die property proposals in main       -->
-<!-- Ueberpruefen, und ob die diversen properties entsprechend -->
-<!-- der dependencies gesetzt sind                             -->
-
-<project default="main">
-
-	<property name="do_init" value="val"></property>
-	
-	<target name="properties">
-		<property name="prop_prop" value="val"></property>
-		<property name="do_not_compile" value="val"></property>
-		<echo message="executing properties"></echo>
-	</target>
-
-	<!-- should never be executed since property is not set      --> 
-	<target name="additional_properties" if="do_addit_props">
-		<property name="adit_prop" value="val" />
-		<echo message="executing additional_properties"></echo>
-	</target>
-	
-	<target name="init" if="doinit" depends="properties,additional_properties">
-		<property name="init_prop" value="val"></property>
-		<echo message="executing init"></echo>
-	</target>
-	
-	<!-- should never be executed since property should be set   -->
-	<!-- by properties because of dependencies before            --> 
-	<target name="compile" unless="do_not_compile">
-		<property name="compile_prop" value="val"></property>
-		<echo message="executing compile"></echo>
-	</target>
-
-	<target name="main" depends="init, compile">
-		<property name="main_prop" value="val"></property>
-		<echo message="executing main ${well}"></echo>
-	</target>
-	
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/echoing.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/echoing.xml
deleted file mode 100644
index 97b4984..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/echoing.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<project name="Echoing" default="echo1" basedir="..">
-
-	<target name="echo1">
-		<echo message="echo1"/>
-	</target>
-	
-	<target name="echo2">
-		<echo message="echo2"/>
-	</target>
-	
-	<target name="echo3" description= "An echo3!">
-		<echo message="echo3"/>
-	</target>
-	
-	<target name="Bug42984">
-		<echo message="user.dir: ${user.dir}"/>
-	</target>
-	
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/empty.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/empty.xml
deleted file mode 100644
index e69de29..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/empty.xml
+++ /dev/null
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/environmentVar.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/environmentVar.xml
deleted file mode 100644
index a884432..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/environmentVar.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<project>
-	<property environment="env"/>
-	<echo>${env.ANT_HOME}</echo>
-	<echo>${ant.home}</echo>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointSepVM.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointSepVM.xml
deleted file mode 100644
index 2735ed0..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointSepVM.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<project name="Extension point testing in separate VM"
-         default="Extension Points"
-         basedir="."
- >
-    <taskdef name="separateVMTask" classname="org.eclipse.ant.tests.ui.support.tasks.AntTestTask">
-    </taskdef>
-    <target name="Extension Points"
-            description= "Ensure that an extra classpath entry designated as not requiring the Eclipse runtime shows up in a separate VM build"
-     >
-        <separateVMTask/>
-         <echo>${property.ui.testing}</echo>
-        <echo>${property.ui.testing2}</echo>
-    </target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTaskSepVM.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTaskSepVM.xml
deleted file mode 100644
index c8e4945..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTaskSepVM.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<project name="Extension Point Task" default="Extension Point Task" basedir=".">
-	<target name="Extension Point Task" description= "Ensure that an extension point defined task is present">
-		<coolUITask message="cool" reference=""/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTypeSepVM.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTypeSepVM.xml
deleted file mode 100644
index bba955e..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTypeSepVM.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<project name="Extension Point Type" default="Extension Point Type" basedir=".">
-
-	<coolUIType id="compile.classpath">
-      <fileset dir="lib">
-        <include name="**/*.jar"/>
-      </fileset>
-    </coolUIType>
-    
-	<target name="Extension Point Type" description= "Ensure that an extension point defined type is present">
-		<echo message="Ensure that an extension point defined type is present"/>
-	</target>
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/failingTarget.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/failingTarget.xml
deleted file mode 100644
index 04418e0..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/failingTarget.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<project default="all">
-	<target name="all" depends="fails, echos"/>
-	<target name="fails">
-		<jar jarfile="jar16.jar" basedir="doesNotExist"/>
-	</target>
-	<target name="echos">
-		<echo>Still echo on failure</echo>
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_source01.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_source01.xml
deleted file mode 100644
index be1ff78..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_source01.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<project default="formatTest">
-
-<!-- = = = = = = --><!-- formatTest  --><!-- = = = = = = --><target name="formatTest" depends="init" description="--> test target one"><!-- hello world --><greeting /></target>
-
-<!-- - - - - - - -->
-<!-- init        -->
-<!-- - - - - - - -->
-<target name="init">
-  <property name="greeting" value="hi" />
-  <presetdef name="greeting"><echo>${greeting}</echo>
-</presetdef>
-   </target>
-
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target01.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target01.xml
deleted file mode 100644
index 3059228..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target01.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<project default="formatTest">
-
-   <!-- = = = = = = -->
-   <!-- formatTest  -->
-   <!-- = = = = = = -->
-   <target name="formatTest" depends="init" description="--> test target one">
-      <!-- hello world -->
-      <greeting />
-   </target>
-
-   <!-- - - - - - - -->
-   <!-- init        -->
-   <!-- - - - - - - -->
-   <target name="init">
-      <property name="greeting" value="hi" />
-      <presetdef name="greeting">
-         <echo>${greeting}</echo>
-      </presetdef>
-   </target>
-
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target02.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target02.xml
deleted file mode 100644
index 6a1ad9c..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target02.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<project default="formatTest">
-
-       <!-- = = = = = = -->
-       <!-- formatTest  -->
-       <!-- = = = = = = -->
-       <target name="formatTest" depends="init" description="--> test target one">
-              <!-- hello world -->
-              <greeting />
-       </target>
-
-       <!-- - - - - - - -->
-       <!-- init        -->
-       <!-- - - - - - - -->
-       <target name="init">
-              <property name="greeting" value="hi" />
-              <presetdef name="greeting">
-                     <echo>${greeting}</echo>
-              </presetdef>
-       </target>
-
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target03.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target03.xml
deleted file mode 100644
index 89cd953..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target03.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<project default="formatTest">
-
-	<!-- = = = = = = -->
-	<!-- formatTest  -->
-	<!-- = = = = = = -->
-	<target name="formatTest" depends="init" description="--> test target one">
-		<!-- hello world -->
-		<greeting />
-	</target>
-
-	<!-- - - - - - - -->
-	<!-- init        -->
-	<!-- - - - - - - -->
-	<target name="init">
-		<property name="greeting" value="hi" />
-		<presetdef name="greeting">
-			<echo>${greeting}</echo>
-		</presetdef>
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/importRequiringUserProp.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/importRequiringUserProp.xml
deleted file mode 100644
index 18a1271..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/importRequiringUserProp.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0"?>
-<project name="importRequiringUserProperties" default="import-default">
-	<description>${importFileName to be defined as an argument, config property or in a config property file</description>
-	<import file="${importFileName}" />
-	<target name="one" depends="import-default">
-		<echo>one</echo>
-	</target>
-
-</project>
-
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/input.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/input.xml
deleted file mode 100644
index 8d70ab5..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/input.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<project name="input testing" default= "input test">
-	<target name="input test">
-		<input message="Enter for echo" addproperty= "inputTest">
-		</input>
-		<echo message="${inputTest}"/>
-	</target>	
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/javac.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/javac.xml
deleted file mode 100644
index 61e00c2..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/javac.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<project default="javacIt">
-	<target name="javacIt">
-		<javac includejavaruntime=""
-			followsymlinks=""
-			includeantruntime=""/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/macrodef.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/macrodef.xml
deleted file mode 100644
index 051f01b..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/macrodef.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<project default="type">
-
-	<macrodef name="eclipseMacro">
-		<attribute name="v" default="NOT SET" />
-		<attribute name="eclipse" default="yes" description="Testing Eclipse"/>
-		<element name="some-tasks" optional="yes" />
-		<sequential>
-			<echo>Eclipse!: @{v}</echo>
-		</sequential>
-	</macrodef>
-
-	<target name="type">
-		<eclipseMacro v="This is v">
-			
-		</eclipseMacro>
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/mixed.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/mixed.xml
deleted file mode 100644
index 368edbb..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/mixed.xml
+++ /dev/null
@@ -1 +0,0 @@
-<project><target><sql driver="" password="" url="" userid=""></sql><concat></concat></target></project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/nestedElementAttributes.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/nestedElementAttributes.xml
deleted file mode 100644
index 3b0d919..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/nestedElementAttributes.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<project default="go">
-	<taskdef name="nestedTest" classname="org.eclipse.ant.tests.ui.support.tasks.NestElementTask" />
-	<target name="go">
-		<nestedTest>
-			<nestedelement works="" />
-		</nestedTest>
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/outline_select_test_build.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/outline_select_test_build.xml
deleted file mode 100644
index 7df0f5e..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/outline_select_test_build.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.ui.externaltools.internal.ant.editor" default="zip.plugin" basedir=".">
-	<target name="init" depends="properties">
-	    <property file="build.properties" />
-		<property name="version.suffix" value="_0.4.5" />
-		<property name="plugins_dir" value="${eclipse_dir}/plugins" />
-		<property name="plugin" value="org.eclipse.ui.externaltools.internal.ant.editor" />
-		<property name="full.name" value="${plugin}${version.suffix}" />
-		<property name="temp.folder" value="${basedir}/temp.folder" />
-		<property name="plugin.destination" value="${basedir}" />
-		<property name="build.result.folder" value="${basedir}" />
-		<property name="source.antEditor.jar" value="src/" />
-		<echo message="Value is ${plugins_dir}" />
-	</target>
-
-	<target name="properties" if="eclipse.running">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-	</target>
-
-</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/performance/build.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/performance/build.xml
deleted file mode 100644
index 8134903..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/performance/build.xml
+++ /dev/null
@@ -1,2360 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 1993-2003 SEAGULL -->
-<?xm-well_formed path = ""?>
-<!-- ===================================================================
-
-Build file for the Transidiom Java components: AIS, IDT, IFT, etc.
-
-Notes:
-
-   - This is a build file for use with the Jakarta Ant build tool.
-   - naming guidelines:
-     - For properties, the names are generally moduleName.propertyType, e.g. ais.files.
-     - For targets, the names are generally action.moduleName, e.g. compile.ais.
-
-Prerequisites:
-
-   jakarta-ant from http://jakarta.apache.org
-   A JAXP-compliant XSLT transformer.
-     - Xalan, from http://xml.apache.org.
-   A JAXP-compliant DOM parser.
-     - Xerces, from http://xml.apache.org.
-
-Main targets:
-
- clean          Removes all the generated files and directories
- clean.classes  Removes all .class files
- compile        Compiles all the sources into ${build.classes}
- dist           Creates the distribution in ${build.dist}
- jars           Creates the jar files in ${build.lib}
- nightly-build  Creates a nightly build (does it all)
- test           Runs the tests.
- test.compile   Compiles the unit tests without triggering any dependencies.
- verify         Verifies the build by performing a load tests on jar files (does not trigger the jar dependencies.)
- zip            Creates the final ${zip-file} (does it all)
-
-TODO:
-    Distinguish between compile and runtime classpath:
-    - component.classpath.compile
-    - component.classpath.rt
-
-Authors:
-
-  Lee Breisacher: lbreisacher@seagullsw.com
-  Gary Gregory: ggregory@seagullsw.com
-
-==================================================================== -->
-<project default="zip" basedir="." name="transidiom">
-    <!-- General properties -->
-    <property file="local-build.properties"/>
-    <property file="build.properties"/>
-    <property name="COMPANY.word" value="SEAGULL"/>
-    <property name="product.name" value="Application Interface Server"/>
-    <property name="Name" value="Application Interface Server"/>
-    <property name="src.root.dir" value=".."/>
-    <property name="binary.root.dir" value="${src.root.dir}/../../BinE"/>
-    <!-- UGLY!! This creates a dependency to the 'E' tree. Not sure how to solve it, though -->
-    <property name="src.dir" value="${src.root.dir}/Source"/>
-    <property name="java.resource.dir" value="${src.root.dir}/Resources"/>
-    <property name="xslt.resource.dir" value="../../Resources/XSLT"/>
-    <property name="fdef.dirname" value="config/functions"/>
-    <property name="root.dir" value="${src.root.dir}/Root"/>
-    <property name="root.dir.sys" value="${root.dir}/System"/>
-    <property name="root.dir.sysdef" value="${root.dir.sys}/Defaults"/>
-    <property name="root.dir.server" value="${root.dir}/server"/>
-    <property name="root.dir.server-config" value="${root.dir.server}/config"/>
-    <property name="root.dir.tools-config" value="${root.dir}/tools/config"/>
-    <property name="root.dir.mq" value="${root.dir}/mq"/>
-    <property name="root.dir.server-log" value="${root.dir.server-config}/log"/>
-    <property name="root.dir.server-transform" value="${root.dir.server-config}/transform"/>
-    <property name="root.dir.tools-log" value="${root.dir.tools-config}/log"/>
-    <property name="doc.dir" value="${src.root.dir}/Doc/Deliver"/>
-    <property name="test.dir" value="${src.root.dir}/Test"/>
-    <property name="src.test.dir" value="${test.dir}/Source"/>
-    <property name="build.dir" location="${basedir}/../buildoutput"/>
-    <property name="build.classes" value="${build.dir}/classes"/>
-    <property name="build.etc" value="${build.dir}/etc"/>
-    <property name="build.lib" value="${build.dir}/lib"/>
-    <property name="build.checksum" location="${build.lib}/checksum"/>
-    <property name="all-jars.xml" location="${build.checksum}/all-jars.xml"/>
-    <property name="build.dist" value="${build.dir}/dist"/>
-    <property name="zipFileBaseName" value="AppInterface"/>
-    <property name="thirdparty.dir" value="../../../../ThirdParty"/>
-    <property name="modifiedthirdparty.dir" value="../../ModifiedThirdParty"/>
-    <property name="sourcesafemirror.dir" value="../../SourceSafeMirror"/>
-    <property name="src.sourcesafemirror.dir" value="${sourcesafemirror.dir}/Java/Source"/>
-    <!-- 3rd party jar references -->
-    <property name="apache.dir" value="${thirdparty.dir}/apache.org"/>
-    <property name="xalan.dir" value="${apache.dir}/xalan-j/2.5.1/bin"/>
-    <property name="ant.jarname" value="ant.jar"/>
-    <property name="ant.jar" value="${apache.dir}/jakarta-ant/1.5.2/${ant.jarname}"/>
-    <property name="xerces.jarname" value="xercesImpl.jar"/>
-    <property name="xerces.jar" value="${xalan.dir}/${xerces.jarname}"/>
-    <property name="xalan.jarname" value="xalan.jar"/>
-    <property name="xalan.jar" value="${xalan.dir}/${xalan.jarname}"/>
-    <property name="xsltc.jarname" value="xsltc.jar"/>
-    <property name="xsltc.jar" value="${xalan.dir}/${xsltc.jarname}"/>
-    <property name="xml-apis.jarname" value="xml-apis.jar"/>
-    <property name="xml-apis.jar" value="${xalan.dir}/${xml-apis.jarname}"/>
-    <property name="soap.jarname" value="soap.jar"/>
-    <property name="soap.jar" value="${modifiedthirdparty.dir}/Soap/2.2/java/build/lib/${soap.jarname}"/>
-    <property name="mail.jarname" value="mailapi.jar"/>
-    <property name="mail.jar" value="${thirdparty.dir}/sun/JavaMail/1.3/lib/${mail.jarname}"/>
-    <property name="activation.jarname" value="activation.jar"/>
-    <property name="activation.jar" value="${thirdparty.dir}/sun/jaf/1.0.2/${activation.jarname}"/>
-    <property name="servlet.jarname" value="servlet.jar"/>
-    <property name="servlet.dir" value="${apache.dir}/jakarta-tomcat/3.2.1/ServletAPI/lib"/>
-    <property name="servlet.jar" value="${servlet.dir}/${servlet.jarname}"/>
-    <property name="commons-httpclient.jarname" value="commons-httpclient-2.0-rc2.jar"/>
-    <property name="commons-httpclient.dir" value="${apache.dir}/commons-httpclient/2.0-rc2"/>
-    <property name="commons-httpclient.jar" value="${commons-httpclient.dir}/${commons-httpclient.jarname}"/>
-    <property name="commons-logging.jarname" value="commons-logging.jar"/>
-    <property name="commons-logging.dir" value="${apache.dir}/commons-logging/1.0.3"/>
-    <property name="commons-logging.jar" value="${commons-logging.dir}/${commons-logging.jarname}"/>
-    <property name="ibm.mq.jarname" value="com.ibm.mq.jar"/>
-    <property name="ibm.mq.jar" value="${thirdparty.dir}/IBM/MQSeries/5.2.2/${ibm.mq.jarname}"/>
-    <property name="ibm.mqbind.jar" value="${thirdparty.dir}/IBM/MQSeries/5.2.2/com.ibm.mqbind.jar"/>
-    <property name="ibm.mqjms.jar" value="${thirdparty.dir}/IBM/MQSeries/5.2.2/com.ibm.mqjms.jar"/>
-    <property name="ibm.mq.connector.jar" value="${thirdparty.dir}/IBM/MQSeries/5.2.2/connector.jar"/>
-    <property name="ibm.mq.jta.jar" value="${thirdparty.dir}/IBM/MQSeries/5.2.2/jta.jar"/>
-    <property name="microsoftsecurityclasses.zip" value="${thirdparty.dir}/Microsoft/security/5.00.2922.0/MicrosoftSecurityClasses.zip"/>
-    <property name="commons-codec.jarname" value="commons-codec-1.1.1-dev.jar"/>
-    <property name="commons-codec.jar" value="${apache.dir}/commons-codec/20030516/${commons-codec.jarname}"/>
-    <property name="commons-collections.jarname" value="commons-collections-2_1.jar"/>
-    <property name="commons-collections.jar" value="${apache.dir}/commons-collections/2.1/${commons-collections.jarname}"/>
-    <property name="commons-cli.jarname" value="commons-cli-1_0.jar"/>
-    <property name="commons-cli.jar" value="${apache.dir}/commons-cli/1.0/${commons-cli.jarname}"/>
-    <property name="commons-lang.jarname" value="commons-lang-2.0.jar"/>
-    <property name="commons-lang.jar" value="${apache.dir}/commons-lang/2.0/${commons-lang.jarname}"/>
-    <property name="commons-pool.jarname" value="commons-pool.jar"/>
-    <property name="commons-pool.jar" value="${apache.dir}/commons-pool/20030429/${commons-pool.jarname}"/>
-    <property name="ctgclient.jarname" value="ctgclient.jar"/>
-    <property name="ctgclient.dir" value="${thirdparty.dir}/IBM/CICS Transaction Gateway/5.0"/>
-    <property name="ctgclient.jar" value="${ctgclient.dir}/${ctgclient.jarname}"/>
-    <property name="jakarta-oro.jarname" value="jakarta-oro-2.0.7.jar"/>
-    <property name="jakarta-oro.jar" value="${apache.dir}/jakarta-oro/2.0.7/${jakarta-oro.jarname}"/>
-    <property name="log4j.jarname" value="log4j-1_2_7.jar"/>
-    <property name="log4j.jar" value="${apache.dir}/jakarta-log4j/1.2.7/${log4j.jarname}"/>
-    <property name="goXMLEngine.jar" value="${thirdparty.dir}/XMLGlobal/GoXMLTransform/3_0_0/lib/engine.jar"/>
-    <property name="goXMLResource.zip" value="${thirdparty.dir}/XMLGlobal/GoXMLTransform/3_0_0/lib/resource.zip"/>
-    <property name="goXMLconfig.dir" value="${thirdparty.dir}/XMLGlobal/GoXMLTransform/3_0_0/config"/>
-    <!-- JDom beta 8 is not compatible with GoXMLTransform 3.0.0, use beta 7 from GoXMLTransform 3.0.0 -->
-    <property name="jdom.jarname" value="jdom.jar"/>
-    <property name="jdom.jar" value="${thirdparty.dir}/XMLGlobal/GoXMLTransform/3_0_0/lib/${jdom.jarname}"/>
-    <property name="jaxb1.jarname" value="jaxb-api.jar"/>
-    <property name="jaxb2.jarname" value="jaxb-impl.jar"/>
-    <property name="jaxb3.jarname" value="jaxb-libs.jar"/>
-    <property name="jaxb4.jarname" value="jax-qname.jar"/>
-    <property name="jaxb5.jarname" value="namespace.jar"/>
-    <property name="jaxb6.jarname" value="xsdlib.jar"/>
-    <property name="jaxb7.jarname" value="relaxngDatatype.jar"/>
-    <property name="jaxb.jarnames" value="${jaxb1.jarname} ${jaxb2.jarname} ${jaxb3.jarname} ${jaxb4.jarname} ${jaxb5.jarname} ${jaxb6.jarname} ${jaxb7.jarname} "/>
-    <property name="jwsdp.dir" value="${thirdparty.dir}/sun/jwsdp/1.2"/>
-    <property name="jaxb.dir" value="${jwsdp.dir}/jaxb/lib"/>
-    <property name="jaxb.shared.dir" value="${jwsdp.dir}/jwsdp-shared/lib"/>
-    <property name="jaxb1.jar" value="${jaxb.dir}/${jaxb1.jarname}"/>
-    <property name="jaxb2.jar" value="${jaxb.dir}/${jaxb2.jarname}"/>
-    <property name="jaxb3.jar" value="${jaxb.dir}/${jaxb3.jarname}"/>
-    <property name="jaxb4.jar" value="${jaxb.shared.dir}/${jaxb4.jarname}"/>
-    <property name="jaxb5.jar" value="${jaxb.shared.dir}/${jaxb5.jarname}"/>
-    <property name="jaxb6.jar" value="${jaxb.shared.dir}/${jaxb6.jarname}"/>
-    <property name="jaxb7.jar" value="${jaxb.shared.dir}/${jaxb7.jarname}"/>
-    <property name="jms.jarname" value="jms-1_0_2_b.jar"/>
-    <property name="jms.jar" value="${thirdparty.dir}/sun/jms/1.0.2b/${jms.jarname}"/>
-    <property name="jce.jarname" value="jce1_2_2.jar"/>
-    <property name="jce.jar" value="${thirdparty.dir}/sun/jce/1.2.2/lib/${jce.jarname}"/>
-    <property name="jce_provider.jarname" value="sunjce_provider.jar"/>
-    <property name="jce_provider.jar" value="${thirdparty.dir}/sun/jce/1.2.2/lib/${jce_provider.jarname}"/>
-    <property name="jcert.jarname" value="jcert.jar"/>
-    <property name="jnet.jarname" value="jnet.jar"/>
-    <property name="jsse.jarname" value="jsse.jar"/>
-    <property name="jsse.dir" value="${thirdparty.dir}/sun/jsse/1.0.3_02-gl/lib"/>
-    <property name="jcert.jar" value="${jsse.dir}/${jcert.jarname}"/>
-    <property name="jnet.jar" value="${jsse.dir}/${jnet.jarname}"/>
-    <property name="jsse.jar" value="${jsse.dir}/${jsse.jarname}"/>
-    <property name="jaas.jarname" value="jaas-1_0.jar"/>
-    <property name="jaas.jar" value="${thirdparty.dir}/sun/jaas/1.0/lib/${jaas.jarname}"/>
-    <property name="jta.jarname" value="jta-1_0_1B-classes.zip"/>
-    <property name="jta.jar" value="${thirdparty.dir}/sun/jta/jta-1_0_1b/${jta.jarname}"/>
-    <property name="concurrent.jarname" value="concurrent-1_3_2.jar"/>
-    <property name="concurrent.jar" value="${thirdparty.dir}/oswego.edu/util.concurrent/1.3.2/${concurrent.jarname}"/>
-    <property name="xmlsec.jar" value="${apache.dir}/xml-security/xml-security-1_0_4/build/xmlsec-1_0_4.jar"/>
-    <property name="imsico.jarname" value="imsico-1_2_5.jar"/>
-    <property name="imsico.jar" value="${thirdparty.dir}/IBM/IMSICO/1.2.5/${imsico.jarname}"/>
-    <property name="imsico-connector.jarname" value="imsico-connector-1_2_5.jar"/>
-    <property name="imsico-connector.jar" value="${thirdparty.dir}/IBM/IMSICO/1.2.5/${imsico-connector.jarname}"/>
-    <property name="junit.jar" value="${thirdparty.dir}/junit/3.8.1/junit.jar"/>
-    <property name="mtjunit.jar" value="${thirdparty.dir}/MTJUnit/1.0/MTJUnit-1.jar"/>
-    <property name="retroguard.jar" value="${thirdparty.dir}/Retroguard/1.1.13/retroguard.jar"/>
-    <property name="j2se.tools.jarname" value="tools.jar"/>
-    <property name="j2se.tools.jar" value="${thirdparty.dir}/sun/j2se/1.3.1_08/lib/${j2se.tools.jarname}"/>
-    <property name="obfuscate.script" value="${src.root.dir}/Build/obfuscate_hsc.rgs"/>
-    <property name="obfuscate.log" value="${build.lib}/obfuscate_hsc.log"/>
-    <property name="extension.dir.name" value="ext"/>
-    <property name="compile.debug" value="on"/>
-    <property name="compile.optimize" value="off"/>
-    <!-- These two will normally be set outside this file in the build.properties file. -->
-    <property name="version" value="2.3.X.WIP"/>
-    <property name="build.id" value="0"/>
-    <!-- Jar Manifest standard properties -->
-    <property name="manifest.key.main-class" value="Main-Class"/>
-    <property name="manifest.key.class-path" value="Class-Path"/>
-    <!-- Jar Manifest Seagull properties -->
-    <property name="manifest.key.product" value="${COMPANY.word}-Product"/>
-    <property name="manifest.key.component" value="${COMPANY.word}-Component"/>
-    <property name="manifest.key.version" value="${COMPANY.word}-Version"/>
-    <property name="manifest.key.build" value="${COMPANY.word}-Build"/>
-    <property name="manifest.key.build-ts" value="${COMPANY.word}-Build-Timestamp"/>
-    <!-- Javadoc -->
-    <property name="javadoc.j2se.link" value="http://java.sun.com/j2se/1.3/docs/api/"/>
-    <!-- Checksum -->
-    <property name="checksum.algorithm.md5" value="MD5"/>
-    <property name="checksum.algorithm.sha" value="SHA"/>
-    <!-- =================================================================== -->
-    <!-- Source files and class paths -->
-    <!-- =================================================================== -->
-    <!-- AIS -->
-    <patternset id="ais.files">
-        <include name="com/seagullsw/appinterface/server/**"/>
-        <include name="com/seagullsw/perftest/"/>
-        <exclude name="com/seagullsw/appinterface/server/backend/cics/"/>
-        <exclude name="com/seagullsw/appinterface/server/backend/cobol/"/>
-        <exclude name="com/seagullsw/appinterface/server/backend/ims/"/>
-        <exclude name="com/seagullsw/appinterface/server/backend/hostconnector/"/>
-        <exclude name="com/seagullsw/appinterface/server/backend/hostconnector2/"/>
-        <exclude name="com/seagullsw/appinterface/server/backend/hc5250/"/>
-        <exclude name="com/seagullsw/appinterface/server/backend/hc3270/"/>
-        <exclude name="com/seagullsw/appinterface/server/admin/"/>
-        <exclude name="com/seagullsw/appinterface/server/InvocationUnitTests.*"/>
-    </patternset>
-    <property name="ais-core.jarname" value="ais-core.jar"/>
-    <property name="ais-core.jar" value="${build.lib}/${ais-core.jarname}"/>
-    <path id="jaxb.classpath">
-        <pathelement location="${jaxb1.jar}"/>
-        <pathelement location="${jaxb2.jar}"/>
-        <pathelement location="${jaxb3.jar}"/>
-        <pathelement location="${jaxb4.jar}"/>
-        <pathelement location="${jaxb5.jar}"/>
-        <pathelement location="${jaxb6.jar}"/>
-        <pathelement location="${jaxb7.jar}"/>
-    </path>
-    <path id="jsse.classpath">
-        <pathelement location="${jcert.jar}"/>
-        <pathelement location="${jnet.jar}"/>
-        <pathelement location="${jsse.jar}"/>
-    </path>
-    <path id="jce.classpath.rt">
-        <pathelement location="${jce.jar}"/>
-        <pathelement location="${jce_provider.jar}"/>
-    </path>
-    <path id="ais.classpath">
-        <pathelement location="${ibm.mq.jar}"/>
-        <pathelement location="${ibm.mqbind.jar}"/>
-        <pathelement location="${ibm.mqjms.jar}"/>
-        <pathelement location="${xerces.jar}"/>
-        <pathelement location="${xml-apis.jar}"/>
-        <pathelement location="${xalan.jar}"/>
-        <pathelement location="${soap.jar}"/>
-        <pathelement location="${mail.jar}"/>
-        <pathelement location="${commons-codec.jar}"/>
-        <pathelement location="${commons-collections.jar}"/>
-        <pathelement location="${commons-httpclient.jar}"/>
-        <pathelement location="${commons-lang.jar}"/>
-        <pathelement location="${commons-pool.jar}"/>
-        <pathelement location="${commons-cli.jar}"/>
-        <path refid="jaxb.classpath"/>
-        <pathelement location="${jms.jar}"/>
-        <pathelement location="${concurrent.jar}"/>
-        <pathelement location="${jce.jar}"/>
-    </path>
-    <path id="xml.classpath.compile">
-        <pathelement location="${xml-apis.jar}"/>
-    </path>
-    <path id="xml.classpath.rt">
-        <pathelement location="${xml-apis.jar}"/>
-        <pathelement location="${xerces.jar}"/>
-        <pathelement location="${xalan.jar}"/>
-    </path>
-    <path id="transforms.classpath">
-        <pathelement location="${jakarta-oro.jar}"/>
-        <pathelement location="${xml-apis.jar}"/>
-        <pathelement location="${xerces.jar}"/>
-        <pathelement location="${xalan.jar}"/>
-        <pathelement location="${goXMLEngine.jar}"/>
-        <path refid="jaxb.classpath"/>
-        <pathelement location="${commons-lang.jar}"/>
-    </path>
-    <path id="ais.client.classpath">
-        <pathelement location="${ibm.mq.jar}"/>
-        <pathelement location="${ibm.mqbind.jar}"/>
-        <pathelement location="${ibm.mqjms.jar}"/>
-        <pathelement location="${xml-apis.jar}"/>
-        <pathelement location="${commons-collections.jar}"/>
-        <pathelement location="${commons-lang.jar}"/>
-        <pathelement location="${commons-pool.jar}"/>
-        <path refid="jaxb.classpath"/>
-        <pathelement location="${jms.jar}"/>
-    </path>
-    <!-- AppInterface Communications -->
-    <patternset id="appinterfacecomm.files">
-        <include name="com/seagullsw/appinterface/comm/"/>
-        <exclude name="com/seagullsw/appinterface/comm/servlet/*"/>
-    </patternset>
-    <!-- MTalk Communications -->
-    <patternset id="mtalkcomm.files">
-        <include name="com/seagullsw/net/client/mtalk/"/>
-    </patternset>
-    <!-- AppInterface Setting -->
-    <patternset id="appinterfacesettings.files">
-        <include name="com/seagullsw/appinterface/settings/*"/>
-    </patternset>
-    <path id="appinterfacesettings.classpath">
-        <pathelement location="${xml-apis.jar}"/>
-        <pathelement location="${commons-lang.jar}"/>
-    </path>
-    <!-- AppInterface Server Settings -->
-    <patternset id="appinterfaceserversettings.files">
-        <include name="com/seagullsw/appinterface/server/settings/"/>
-    </patternset>
-    <!-- AppInterface Client -->
-    <patternset id="ais.client.files">
-        <include name="com/seagullsw/appinterface/client/"/>
-        <include name="com/seagullsw/toolbox/config/"/>
-        <include name="com/seagullsw/toolbox/xml/"/>
-        <include name="com/seagullsw/toolbox/log/"/>
-    </patternset>
-    <property name="ais.client.jarname" value="ais-client.jar"/>
-    <property name="ais.client.jar" value="${build.lib}/${ais.client.jarname}"/>
-    <!-- AppInterface Admin Client-->
-    <patternset id="ais.adminclient.files">
-        <include name="com/seagullsw/appinterface/server/admin/*"/>
-    </patternset>
-    <path id="ais.adminclient.classpath">
-        <pathelement location="${commons-lang.jar}"/>
-        <pathelement location="${commons-cli.jar}"/>
-    </path>
-    <property name="ais-adminclient.jarname" value="ais-admin-client.jar"/>
-    <property name="ais-adminclient.jar" value="${build.lib}/${ais-adminclient.jarname}"/>
-    <!-- AppInterface Models -->
-    <patternset id="appinterfacemodels.files">
-        <include name="com/seagullsw/appinterface/model/"/>
-        <exclude name="com/seagullsw/appinterface/model/cics/"/>
-        <exclude name="com/seagullsw/appinterface/model/cobol/"/>
-        <exclude name="com/seagullsw/appinterface/model/ims/"/>
-    </patternset>
-    <!-- Java Extensions -->
-    <patternset id="javaextensions.files">
-        <include name="com/seagullsw/debug/*"/>
-        <include name="com/seagullsw/javax/"/>
-        <exclude name="com/seagullsw/javax/swing/"/>
-    </patternset>
-    <path id="javaextensions.classpath">
-        <pathelement location="${commons-lang.jar}"/>
-    </path>
-    <!-- UIFacilities -->
-    <patternset id="uifacilities.files">
-        <include name="com/parcplace/pjava/Framer/"/>
-        <include name="com/seagullsw/javax/swing/SwingUtilitiesX.*"/>
-        <include name="com/seagullsw/javax/swing/JTextPaneX.*"/>
-        <include name="com/seagullsw/javax/swing/border/"/>
-        <include name="com/seagullsw/ui/"/>
-        <include name="com/seagullsw/debug/ui/"/>
-    </patternset>
-    <path id="uifacilities.classpath">
-        <pathelement location="${commons-lang.jar}"/>
-    </path>
-    <!-- XML Services -->
-    <patternset id="xmlservices.files">
-        <include name="com/seagullsw/io/xml/"/>
-    </patternset>
-    <path id="xmlservices.classpath">
-        <pathelement location="${xml-apis.jar}"/>
-        <pathelement location="${xerces.jar}"/>
-    </path>
-    <!-- Transforms -->
-    <patternset id="transforms.files">
-        <include name="com/seagullsw/appinterface/transforms/"/>
-    </patternset>
-    <!-- Seagull Toolbox -->
-    <patternset id="seagulltoolbox.files">
-        <include name="com/seagullsw/toolbox/"/>
-    </patternset>
-    <path id="seagulltoolbox.classpath">
-        <path refid="xml.classpath.rt"/>
-        <path refid="jaxb.classpath"/>
-        <path refid="jsse.classpath"/>
-        <pathelement location="${commons-httpclient.jar}"/>
-        <pathelement location="${commons-lang.jar}"/>
-        <pathelement location="${commons-cli.jar}"/>
-    </path>
-    <!-- Win32 Interface -->
-    <patternset id="win32interface.files">
-        <include name="com/seagullsw/appinterface/win32/"/>
-    </patternset>
-    <!-- Proxy Servlet -->
-    <patternset id="proxyservlet.files">
-        <include name="com/seagullsw/appinterface/comm/servlet/"/>
-    </patternset>
-    <property name="proxyservlet.jarname" value="ais-servlet-proxy.jar"/>
-    <property name="proxyservlet.jar" value="${build.lib}/${proxyservlet.jarname}"/>
-    <path id="proxyservlet.classpath">
-        <pathelement location="${servlet.jar}"/>
-        <pathelement location="${xerces.jar}"/>
-    </path>
-    <!-- Admin Console -->
-    <patternset id="adminconsole.files">
-        <include name="com/seagullsw/appinterface/server/admin/client/"/>
-    </patternset>
-    <property name="adminconsole.jarname" value="ais-admin.jar"/>
-    <property name="adminconsole.jar" value="${build.lib}/${adminconsole.jarname}"/>
-    <!-- Java Connector Generator -->
-    <patternset id="javaconnectorgenerator.files">
-        <include name="com/seagullsw/appinterface/tools/javaconnectorgenerator/"/>
-    </patternset>
-    <property name="javaconnectorgenerator.jarname" value="JavaConnectorGenerator.jar"/>
-    <property name="javaconnectorgenerator.jar" value="${build.lib}/${javaconnectorgenerator.jarname}"/>
-    <!-- Security Toolkit -->
-    <patternset id="securitytoolkit.files">
-        <include name="com/seagullsw/appinterface/tools/security/"/>
-    </patternset>
-    <property name="securitytoolkit.jarname" value="SecurityToolkit.jar"/>
-    <property name="securitytoolkit.jar" value="${build.lib}/${securitytoolkit.jarname}"/>
-    <!-- Tools Framework -->
-    <patternset id="devtools.framework.files">
-        <include name="com/seagullsw/appinterface/tools/framework/"/>
-    </patternset>
-    <path id="devtools.framework.classpath">
-        <pathelement location="${commons-lang.jar}"/>
-    </path>
-    <!-- Dev Tools -->
-    <patternset id="devtools.files">
-        <include name="com/seagullsw/appinterface/tools/"/>
-        <exclude name="com/seagullsw/appinterface/tools/security/"/>
-    </patternset>
-    <path id="devtools.classpath">
-        <pathelement location="${xml-apis.jar}"/>
-        <pathelement location="${soap.jar}"/>
-        <pathelement location="${commons-lang.jar}"/>
-        <pathelement location="${jce.jar}"/>
-    </path>
-    <property name="ais-tools.jarname" value="ais-tools.jar"/>
-    <property name="ais-tools.jar" value="${build.lib}/${ais-tools.jarname}"/>
-    <!-- JavaTools (e.g. invoking the Java compiler) -->
-    <patternset id="javatools.files">
-        <include name="com/seagullsw/javatools/"/>
-    </patternset>
-    <path id="javatools.classpath">
-        <pathelement location="${j2se.tools.jar}"/>
-        <pathelement location="${jce.jar}"/>
-        <path refid="jaxb.classpath"/>
-        <pathelement location="${commons-lang.jar}"/>
-    </path>
-    <!-- Backends -->
-    <patternset id="hcbackend.files">
-        <include name="com/seagullsw/appinterface/**/*hostconnector*/"/>
-        <include name="com/seagullsw/appinterface/server/backend/hsc/**"/>
-    </patternset>
-    <patternset id="cobol.files">
-        <include name="com/seagullsw/appinterface/server/backend/cobol/"/>
-        <include name="com/seagullsw/appinterface/model/cobol/"/>
-    </patternset>
-    <path id="cobol.classpath">
-        <pathelement location="${xml-apis.jar}"/>
-        <pathelement location="${commons-lang.jar}"/>
-        <pathelement location="${commons-httpclient.jar}"/>
-    </path>
-    <patternset id="cics.files">
-        <include name="com/seagullsw/appinterface/server/backend/cics/"/>
-        <include name="com/seagullsw/appinterface/model/cics/"/>
-    </patternset>
-    <patternset id="ims.backend.files">
-        <include name="com/seagullsw/appinterface/server/backend/ims/"/>
-        <include name="com/seagullsw/appinterface/model/ims/"/>
-    </patternset>
-    <path id="cics.backend.classpath">
-        <pathelement location="${ctgclient.jar}"/>
-        <pathelement location="${xml-apis.jar}"/>
-        <pathelement location="${xerces.jar}"/>
-        <path refid="jaxb.classpath"/>
-        <pathelement location="${jce.jar}"/>
-        <pathelement location="${commons-codec.jar}"/>
-        <pathelement location="${commons-lang.jar}"/>
-    </path>
-    <path id="ims.backend.classpath">
-        <pathelement location="${xml-apis.jar}"/>
-        <pathelement location="${jaas.jar}"/>
-        <pathelement location="${imsico.jar}"/>
-        <pathelement location="${imsico-connector.jar}"/>
-        <pathelement location="${jce.jar}"/>
-        <pathelement location="${jta.jar}"/>
-        <pathelement location="${commons-httpclient.jar}"/>
-        <path refid="jaxb.classpath"/>
-    </path>
-    <property name="ais-5250.jarname" value="ais-5250.jar"/>
-    <property name="ais-5250.jar" value="${build.lib}/${ais-5250.jarname}"/>
-    <property name="ais-3270.jarname" value="ais-3270.jar"/>
-    <property name="ais-3270.jar" value="${build.lib}/${ais-3270.jarname}"/>
-    <property name="ais-cobol.jarname" value="ais-cobol.jar"/>
-    <property name="ais-cobol.jar" value="${build.lib}/${ais-cobol.jarname}"/>
-    <property name="ais-cics.jarname" value="ais-cics.jar"/>
-    <property name="ais-cics.jar" value="${build.lib}/${ais-cics.jarname}"/>
-    <property name="ais-ims.jarname" value="ais-ims.jar"/>
-    <property name="ais-ims.jar" value="${build.lib}/${ais-ims.jarname}"/>
-    <property name="hsc.jarname" value="gwhsc.jar"/>
-    <property name="hsc.jar" value="${build.lib}/${hsc.jarname}"/>
-    <property name="hscu.jarname" value="gwhscu.jar"/>
-    <property name="hscu.jar" value="${build.lib}/${hscu.jarname}"/>
-    <!-- HSC -->
-    <patternset id="hsc.files">
-        <include name="com/seagullsw/gateway/"/>
-        <include name="com/seagullsw/net/"/>
-        <include name="com/seagullsw/security/"/>
-        <include name="com/seagullsw/system/"/>
-        <exclude name="com/seagullsw/net/client/mtalk/"/>
-    </patternset>
-    <!-- All the XSLT files -->
-    <fileset id="xslt.files" dir="${xslt.resource.dir}">
-        <include name="*.xsl"/>
-    </fileset>
-    <!-- All the AppInterface "base" classes -->
-    <fileset id="appinterface.base.files" dir="${build.classes}">
-        <patternset refid="appinterfacecomm.files"/>
-        <patternset refid="appinterfacemodels.files"/>
-        <patternset refid="javaextensions.files"/>
-        <patternset refid="xmlservices.files"/>
-        <patternset refid="mtalkcomm.files"/>
-    </fileset>
-    <!-- All the AppInterface "base" classes -->
-    <fileset id="appinterface.baseplus.files" dir="${build.classes}">
-        <!-- What I really want to do here is refer to the .base.files
-                        fileset, but ant doesn't allow nested filesets. Sigh.
-                        <fileset refid="appinterface.base.files"/> -->
-        <patternset refid="appinterfacecomm.files"/>
-        <patternset refid="appinterfacemodels.files"/>
-        <patternset refid="javaextensions.files"/>
-        <patternset refid="xmlservices.files"/>
-        <patternset refid="appinterfacesettings.files"/>
-        <patternset refid="uifacilities.files"/>
-        <patternset refid="seagulltoolbox.files"/>
-        <patternset refid="mtalkcomm.files"/>
-        <patternset refid="transforms.files"/>
-    </fileset>
-    <!-- =================================================================== -->
-    <!-- Set file copy filters -->
-    <!-- =================================================================== -->
-    <property name="text.copyright.1" value="(c) 1993 - 2003 Seagull Business Software Ireland Ltd."/>
-    <property name="text.copyright.2" value="All Rights Reserved."/>
-    <target name="init.filters">
-        <filter token="PRODUCT" value="${product.name}"/>
-        <filter token="VERSION" value="${version}"/>
-        <filter token="BUILDID" value="${build.id}"/>
-        <filter token="BUILDTIMESTAMP" value="${BuildTimeStamp}"/>
-        <filter token="COPYRIGHT-1" value="${text.copyright.1}"/>
-        <filter token="COPYRIGHT-2" value="${text.copyright.2}"/>
-    </target>
-    <!-- =================================================================== -->
-    <!-- Compiles -->
-    <!-- =================================================================== -->
-    <target name="compile" depends="compile.ais, compile.ais.client, compile.ais.adminclient, compile.devtools, compile.proxyservlet, compile.adminconsole, compile.javaconnectorgenerator, compile.securitytoolkit, compile.hcbackend, compile.cobol, compile.cics, compile.IMSbackend" description="Compiles all the sources into ${build.classes}"/>
-    <!-- doACompile - a compile "subroutine" -->
-    <target name="doACompile">
-        <javac srcdir="${src.dir}" destdir="${build.classes}" debug="${compile.debug}" optimize="${compile.optimize}" failonerror="true" includeAntRuntime="false">
-            <patternset refid="${doACompile.files}"/>
-        </javac>
-    </target>
-    <!-- doACompileWithClasspath - a compile "subroutine" -->
-    <target name="doACompileWithClasspath">
-        <javac srcdir="${src.dir}" destdir="${build.classes}" debug="${compile.debug}" optimize="${compile.optimize}" failonerror="true" includeAntRuntime="false">
-            <patternset refid="${doACompile.files}"/>
-            <classpath refid="${doACompile.classpath}"/>
-        </javac>
-    </target>
-    <!-- AIS -->
-    <target name="compile.ais" depends="compile.toolbox, compile.xmlservices, compile.transforms, compile.uifacilities, compile.appinterfacesettings, compile.appinterfacemodels, compile.appinterfacecomm, compile.hsc, compile.mtalkcomm">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="ais.files"/>
-            <param name="doACompile.classpath" value="ais.classpath"/>
-        </antcall>
-    </target>
-    <!-- AppInterface Models -->
-    <target name="compile.appinterfacemodels" depends="prepare, compile.xmlservices">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="appinterfacemodels.files"/>
-            <param name="doACompile.classpath" value="ais.classpath"/>
-        </antcall>
-    </target>
-    <!-- AppInterface Communications -->
-    <target name="compile.appinterfacecomm" depends="prepare">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="appinterfacecomm.files"/>
-            <param name="doACompile.classpath" value="ais.classpath"/>
-        </antcall>
-    </target>
-    <!-- MTalk Communication -->
-    <target name="compile.mtalkcomm" depends="prepare">
-        <antcall target="doACompile">
-            <param name="doACompile.files" value="mtalkcomm.files"/>
-        </antcall>
-    </target>
-    <!-- AppInterface Setting -->
-    <target name="compile.appinterfacesettings" depends="prepare">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="appinterfacesettings.files"/>
-            <param name="doACompile.classpath" value="appinterfacesettings.classpath"/>
-        </antcall>
-    </target>
-    <!-- UI Facilities -->
-    <target name="compile.uifacilities" depends="prepare">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="uifacilities.files"/>
-            <param name="doACompile.classpath" value="uifacilities.classpath"/>
-        </antcall>
-    </target>
-    <!-- Java Extensions -->
-    <target name="compile.javaextensions" depends="prepare">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="javaextensions.files"/>
-            <param name="doACompile.classpath" value="javaextensions.classpath"/>
-        </antcall>
-    </target>
-    <!-- XML Services -->
-    <target name="compile.xmlservices" depends="compile.javaextensions">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="xmlservices.files"/>
-            <param name="doACompile.classpath" value="xmlservices.classpath"/>
-        </antcall>
-    </target>
-    <!-- Transforms -->
-    <target name="compile.transforms" depends="compile.javaextensions">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="transforms.files"/>
-            <param name="doACompile.classpath" value="transforms.classpath"/>
-        </antcall>
-    </target>
-    <!-- Seagull Toolbox -->
-    <target name="compile.toolbox" depends="compile.javaextensions">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="seagulltoolbox.files"/>
-            <param name="doACompile.classpath" value="seagulltoolbox.classpath"/>
-        </antcall>
-    </target>
-    <!-- Win32 Interface -->
-    <target name="compile.win32interface" depends="prepare">
-        <antcall target="doACompile">
-            <param name="doACompile.files" value="win32interface.files"/>
-        </antcall>
-    </target>
-    <!-- AppInterface Client -->
-    <target name="compile.ais.client" depends="prepare, compile.xmlservices, compile.appinterfacecomm, compile.appinterfacemodels">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="ais.client.files"/>
-            <param name="doACompile.classpath" value="ais.client.classpath"/>
-        </antcall>
-    </target>
-    <!-- AppInterface Admin Client -->
-    <target name="compile.ais.adminclient" depends="prepare, compile.xmlservices, compile.appinterfacecomm, compile.appinterfacemodels, compile.ais.client">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="ais.adminclient.files"/>
-            <param name="doACompile.classpath" value="ais.classpath"/>
-        </antcall>
-    </target>
-    <!-- Proxy Servlet -->
-    <target name="compile.proxyservlet" depends="prepare">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="proxyservlet.files"/>
-            <param name="doACompile.classpath" value="proxyservlet.classpath"/>
-        </antcall>
-    </target>
-    <!-- Admin Console -->
-    <target name="compile.adminconsole" depends="prepare, compile.devtools.framework">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="adminconsole.files"/>
-            <param name="doACompile.classpath" value="ais.adminclient.classpath"/>
-        </antcall>
-    </target>
-    <!-- Java Connector Generator -->
-    <target name="compile.javaconnectorgenerator" depends="prepare, compile.devtools.framework, compile.appinterfacemodels, compile.javatools">
-        <antcall target="doACompile">
-            <param name="doACompile.files" value="javaconnectorgenerator.files"/>
-        </antcall>
-    </target>
-    <!-- Security Toolkit -->
-    <target name="compile.securitytoolkit" depends="prepare, compile.devtools.framework, compile.appinterfacemodels, compile.javatools">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="securitytoolkit.files"/>
-            <param name="doACompile.classpath" value="devtools.classpath"/>
-        </antcall>
-    </target>
-    <!-- Tools Framework -->
-    <target name="compile.devtools.framework" depends="prepare, compile.toolbox, compile.xmlservices, compile.uifacilities, compile.appinterfacesettings">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="devtools.framework.files"/>
-            <param name="doACompile.classpath" value="devtools.framework.classpath"/>
-        </antcall>
-    </target>
-    <!-- DevTools -->
-    <target name="compile.devtools" depends="prepare, compile.devtools.framework, compile.ais.client, compile.appinterfacemodels, compile.javatools">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="devtools.files"/>
-            <param name="doACompile.classpath" value="devtools.classpath"/>
-        </antcall>
-    </target>
-    <!-- JavaTools (e.g. invoking the Java compiler) -->
-    <target name="compile.javatools" depends="prepare">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="javatools.files"/>
-            <param name="doACompile.classpath" value="javatools.classpath"/>
-        </antcall>
-    </target>
-    <!-- Backends -->
-    <target name="compile.hcbackend" depends="prepare, compile.ais">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="hcbackend.files"/>
-            <param name="doACompile.classpath" value="ais.classpath"/>
-        </antcall>
-    </target>
-    <target name="compile.cobol" depends="prepare, compile.ais">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="cobol.files"/>
-            <param name="doACompile.classpath" value="cobol.classpath"/>
-        </antcall>
-    </target>
-    <target name="compile.cics" depends="prepare, compile.ais">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="cics.files"/>
-            <param name="doACompile.classpath" value="cics.backend.classpath"/>
-        </antcall>
-    </target>
-    <target name="compile.IMSbackend" depends="prepare, compile.ais">
-        <antcall target="doACompileWithClasspath">
-            <param name="doACompile.files" value="ims.backend.files"/>
-            <param name="doACompile.classpath" value="ims.backend.classpath"/>
-        </antcall>
-    </target>
-    <!-- HSC -->
-    <target name="compile.hsc" depends="prepare">
-        <javac srcdir="${src.sourcesafemirror.dir}" classpath="${microsoftsecurityclasses.zip}" destdir="${build.classes}" debug="${compile.debug}" includeAntRuntime="false">
-            <include name="com/seagullsw/"/>
-        </javac>
-    </target>
-    <!-- JavaDoc doclet -->
-    <target name="compile.doclet">
-        <javac srcdir="${src.dir}" destdir="${build.classes}" debug="${compile.debug}" includeAntRuntime="true">
-            <include name="com/seagullsw/internaldev/tools/apidoclet//"/>
-        </javac>
-    </target>
-    <!-- =================================================================== -->
-    <!-- Create jar files -->
-    <!-- =================================================================== -->
-    <target name="compute-checksum">
-        <checksum file="${file}" algorithm="${checksum.algorithm.md5}" property="cs_value"/>
-        <echo level="info" message="${checksum.algorithm.md5} -> ${cs_value}"/>
-        <mkdir dir="${build.checksum}"/>
-        <!-- Create a text file with the checksum value. -->
-        <concat destfile="${build.checksum}/${filename}.${checksum.algorithm.md5}.txt">${cs_value}</concat>
-        <!-- Create an XML file with the checksum value. -->
-        <concat destfile="${build.checksum}/${filename}.${checksum.algorithm.md5}.xml">&lt;?xml version="1.0"?>
-&lt;!-- Build auto-generated -->
-&lt;checksum file="${filename}" algorithm="${checksum.algorithm.md5}">${cs_value}&lt;/checksum></concat>
-        <xmlvalidate file="${build.checksum}/${filename}.${checksum.algorithm.md5}.xml" lenient="true"/>
-    </target>
-    <!-- Create all-jars.xml -->
-    <target name="create-all-jars.xml">
-        <!-- Create an XML file with the jar file names created. -->
-        <concat destfile="${all-jars.xml}">&lt;?xml version="1.0"?>
-&lt;!-- Build auto-generated -->
-&lt;jars>
-    &lt;jar>${ais-core.jarname}&lt;/jar>
-    &lt;jar>${ais.client.jarname}&lt;/jar>
-    &lt;jar>${ais-adminclient.jarname}&lt;/jar>
-    &lt;jar>${proxyservlet.jarname}&lt;/jar>
-    &lt;jar>${adminconsole.jarname}&lt;/jar>
-    &lt;jar>${javaconnectorgenerator.jarname}&lt;/jar>
-    &lt;jar>${securitytoolkit.jarname}&lt;/jar>
-    &lt;jar>${ais-tools.jarname}&lt;/jar>
-    &lt;jar>${ais-5250.jarname}&lt;/jar>
-    &lt;jar>${ais-3270.jarname}&lt;/jar>
-    &lt;jar>${ais-cobol.jarname}&lt;/jar>
-    &lt;jar>${ais-cics.jarname}&lt;/jar>
-    &lt;jar>${ais-ims.jarname}&lt;/jar>
-    &lt;jar>${hsc.jarname}&lt;/jar>
-    &lt;jar>${hscu.jarname}&lt;/jar>
-&lt;/jars>
-        </concat>
-        <echo level="info" message="Created ${all-jars.xml}"/>
-        <xmlvalidate file="${all-jars.xml}" lenient="true"/>
-    </target>
-    <!-- Copy checksum files to report dir -->
-    <target name="copy-checksums">
-        <antcall target="create-all-jars.xml"/>
-        <copy todir="${reports.checksum}">
-            <fileset dir="${build.checksum}"/>
-        </copy>
-    </target>
-    <target name="jars" depends="jar.ais-core, jar.ais.client, jar.ais.adminclient, jar.proxyservlet, jar.adminconsole, jar.javaconnectorgenerator, jar.securitytoolkit, jar.ais-tools, jar.ais-5250, jar.ais-3270, jar.ais-cobol, jar.ais-cics, jar.ais-ims, jar.hsc" description="Creates the jar files in ${build.lib}">
-        <antcall target="copy-checksums"/>
-    </target>
-    <target name="jar.ais-core" depends="init, compile.ais, createSplash.ais.splashscreens">
-        <mkdir dir="${build.lib}"/>
-        <jar jarfile="${ais-core.jar}" basedir="${build.classes}">
-            <patternset refid="ais.files"/>
-            <fileset refid="appinterface.baseplus.files"/>
-            <patternset>
-                <include name="com/seagullsw/javax/swing/"/>
-                <!-- Not sure why this isn't getting included as part of uifacilities.files via appinterface.baseplus.files. -->
-            </patternset>
-            <fileset refid="xslt.files"/>
-            <fileset dir="${java.resource.dir}">
-                <include name="com/seagullsw/appinterface/server/**"/>
-                <include name="com/seagullsw/appinterface/comm/**"/>
-                <exclude name="com/seagullsw/appinterface/server/admin/**"/>
-            </fileset>
-            <fileset dir="${src.dir}">
-                <include name="com/seagullsw/**/jaxb.properties"/>
-                <include name="com/seagullsw/**/bgm.ser"/>
-            </fileset>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.main-class}" value="com.seagullsw.appinterface.server.AppInterfaceServer"/>
-                <attribute name="${manifest.key.class-path}" value="${ais-5250.jarname} ${ais-3270.jarname} ${ais-cobol.jarname} ${ais-cics.jarname} ${ais-ims.jarname} ${xalan.jarname} ${soap.jarname} ${activation.jarname} ${mail.jarname} ${commons-collections.jarname} ${commons-pool.jarname} ${xerces.jarname} ${xml-apis.jarname} ${commons-lang.jarname} ${commons-cli.jarname} ${jaxb.jarnames} ${jakarta-oro.jarname} ${concurrent.jarname} ${commons-httpclient.jarname} ${jms.jarname} ${extension.dir.name}/engine.jar ${extension.dir.name}/resource.zip ${extension.dir.name}/jdom.jar  ../${fdef.dirname}/ ../JavaConnectors/Classes/"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="AIS Core"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${ais-core.jar}"/>
-            <param name="filename" value="${ais-core.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.ais.client" depends="init, compile.ais.client">
-        <mkdir dir="${build.lib}"/>
-        <jar jarfile="${ais.client.jar}" basedir="${build.classes}">
-            <patternset refid="ais.client.files"/>
-            <fileset refid="appinterface.base.files"/>
-            <fileset dir="${src.dir}">
-                <include name="com/seagullsw/toolbox/config/**/jaxb.properties"/>
-                <include name="com/seagullsw/toolbox/config/**/bgm.ser"/>
-            </fileset>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.class-path}" value="${xerces.jarname} ${xml-apis.jarname} ${commons-lang.jarname} ${jaxb.jarnames} ${ibm.mq.jarname} ${jms.jarname} ${mail.jarname} ${soap.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="Java Client"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${ais.client.jar}"/>
-            <param name="filename" value="${ais.client.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.ais.adminclient" depends="init, compile.ais.adminclient">
-        <mkdir dir="${build.lib}"/>
-        <jar jarfile="${ais-adminclient.jar}" basedir="${build.classes}">
-            <patternset refid="ais.adminclient.files"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.class-path}" value="${ais.client.jarname} ${xerces.jarname} ${xml-apis.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="Java Admin Client"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${ais-adminclient.jar}"/>
-            <param name="filename" value="${ais-adminclient.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.proxyservlet" depends="init, compile.proxyservlet">
-        <mkdir dir="${build.lib}"/>
-        <jar jarfile="${proxyservlet.jar}" basedir="${build.classes}">
-            <patternset refid="proxyservlet.files"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.class-path}" value="${ais.client.jarname} ${servlet.jarname} ${xerces.jarname} ${xml-apis.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="Servlet Proxy"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${proxyservlet.jar}"/>
-            <param name="filename" value="${proxyservlet.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.adminconsole" depends="init, compile.adminconsole, createSplash.ais.splashscreens">
-        <mkdir dir="${build.lib}"/>
-        <!-- Copy "resource" files that go in the jar file. -->
-        <copy toDir="${build.classes}" preservelastmodified="true">
-            <fileset dir="${java.resource.dir}">
-                <include name="com/seagullsw/appinterface/server/admin/client/"/>
-                <include name="com/seagullsw/appinterface/server/*.jpg"/>
-            </fileset>
-        </copy>
-        <jar jarfile="${adminconsole.jar}" basedir="${build.classes}">
-            <patternset refid="adminconsole.files"/>
-            <patternset refid="devtools.framework.files"/>
-            <patternset refid="ais.client.files"/>
-            <patternset refid="appinterfaceserversettings.files"/>
-            <fileset refid="appinterface.baseplus.files"/>
-            <include name="com/seagullsw/appinterface/server/*.jpg"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.main-class}" value="com.seagullsw.appinterface.server.admin.client.AppInterfaceServerAdminUIClient"/>
-                <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${xerces.jarname} ${xml-apis.jarname} ${xalan.jarname} ${soap.jarname} ${activation.jarname} ${mail.jarname} ${commons-cli.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="Administrative Console"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${adminconsole.jar}"/>
-            <param name="filename" value="${adminconsole.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.javaconnectorgenerator" depends="init, compile.javaconnectorgenerator">
-        <mkdir dir="${build.lib}"/>
-        <!-- Copy "resource" files that go in the jar file. -->
-        <copy toDir="${build.classes}" preservelastmodified="true" filtering="true">
-            <fileset dir="${java.resource.dir}">
-                <include name="com/seagullsw/appinterface/tools/javaconnectorgenerator/"/>
-            </fileset>
-        </copy>
-        <jar jarfile="${javaconnectorgenerator.jar}" basedir="${build.classes}">
-            <patternset refid="javaconnectorgenerator.files"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.main-class}" value="com.seagullsw.appinterface.tools.javaconnectorgenerator.JavaConnectorGenerator"/>
-                <attribute name="${manifest.key.class-path}" value="${ais-tools.jarname} ${xml-apis.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="Java Connector Generator"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${javaconnectorgenerator.jar}"/>
-            <param name="filename" value="${javaconnectorgenerator.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.securitytoolkit" depends="init, compile.securitytoolkit">
-        <mkdir dir="${build.lib}"/>
-        <!-- Copy "resource" files that go in the jar file. -->
-        <copy toDir="${build.classes}" preservelastmodified="true" filtering="true">
-            <fileset dir="${java.resource.dir}">
-                <include name="com/seagullsw/appinterface/tools/security/"/>
-            </fileset>
-        </copy>
-        <jar jarfile="${securitytoolkit.jar}" basedir="${build.classes}">
-            <patternset refid="securitytoolkit.files"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.main-class}" value="com.seagullsw.appinterface.tools.security.SecurityToolkit"/>
-                <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${ais-tools.jarname} ${xml-apis.jarname} ${commons-lang.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="Security Toolkit"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${securitytoolkit.jar}"/>
-            <param name="filename" value="${securitytoolkit.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.ais-tools" depends="init, compile.devtools, createSplash.tools.splashscreens, compile.win32interface, compile.javatools">
-        <mkdir dir="${build.lib}"/>
-        <!-- Copy "resource" files that go in the jar file. -->
-        <copy toDir="${build.classes}" preservelastmodified="true">
-            <fileset dir="${java.resource.dir}">
-                <include name="com/seagullsw/appinterface/**/*.gif"/>
-            </fileset>
-        </copy>
-        <jar jarfile="${ais-tools.jar}" basedir="${build.classes}">
-            <patternset refid="devtools.files"/>
-            <patternset refid="adminconsole.files"/>
-            <fileset refid="appinterface.baseplus.files"/>
-            <patternset>
-                <include name="com/seagullsw/appinterface/**/*settings*/"/>
-                <include name="com/seagullsw/javax/swing/"/>
-                <!-- Not sure why this isn't getting included as part of uifacilities.files via appinterface.baseplus.files. -->
-            </patternset>
-            <include name="com/seagullsw/appinterface/tools/images/*.jpg"/>
-            <include name="com/seagullsw/appinterface/**/*.gif"/>
-            <patternset refid="javatools.files"/>
-            <patternset refid="win32interface.files"/>
-            <patternset refid="ais.client.files"/>
-            <fileset refid="xslt.files"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.main-class}" value="com.seagullsw.appinterface.tools.serverdef.DefinitionTool"/>
-                <attribute name="${manifest.key.class-path}" value="${ais-cobol.jarname} ${ais-cics.jarname} ${ais-ims.jarname} ${xerces.jarname} ${xml-apis.jarname} ${xalan.jarname} ${soap.jarname} ${activation.jarname} ${mail.jarname} ${jaxb.jarnames} ${commons-lang.jarname} ${extension.dir.name}/${j2se.tools.jarname} ${ais-tools.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="Tools"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${ais-tools.jar}"/>
-            <param name="filename" value="${ais-tools.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.ais-5250" depends="init, compile.hcbackend">
-        <mkdir dir="${build.lib}"/>
-        <jar jarfile="${ais-5250.jar}" basedir="${build.classes}">
-            <patternset refid="hcbackend.files"/>
-            <exclude name="com/seagullsw/appinterface/tools/"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${hsc.jarname} ${hscu.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="5250 Connector"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${ais-5250.jar}"/>
-            <param name="filename" value="${ais-5250.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.ais-3270" depends="init, compile.hcbackend">
-        <mkdir dir="${build.lib}"/>
-        <jar jarfile="${ais-3270.jar}" basedir="${build.classes}">
-            <patternset refid="hcbackend.files"/>
-            <exclude name="com/seagullsw/appinterface/tools/"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${hsc.jarname} ${hscu.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="3270 Connector"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${ais-3270.jar}"/>
-            <param name="filename" value="${ais-3270.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.ais-cobol" depends="init, compile.cobol">
-        <mkdir dir="${build.lib}"/>
-        <jar jarfile="${ais-cobol.jar}" basedir="${build.classes}">
-            <patternset refid="cobol.files"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${ais-cics.jarname} ${ais-ims.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="Cobol Connector"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${ais-cobol.jar}"/>
-            <param name="filename" value="${ais-cobol.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.ais-cics" depends="init, compile.cics">
-        <mkdir dir="${build.lib}"/>
-        <copy toDir="${build.classes}" preservelastmodified="true">
-            <fileset dir="${src.dir}">
-                <include name="com/seagullsw/**/jaxb.properties"/>
-                <include name="com/seagullsw/**/bgm.ser"/>
-            </fileset>
-        </copy>
-        <jar jarfile="${ais-cics.jar}" basedir="${build.classes}">
-            <patternset refid="cics.files"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${ais-cobol.jarname} ${extension.dir.name}/${ctgclient.jarname} ${commons-codec.jarname} ${commons-logging.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="CICS Connector"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${ais-cics.jar}"/>
-            <param name="filename" value="${ais-cics.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.ais-ims" depends="init, compile.IMSbackend">
-        <mkdir dir="${build.lib}"/>
-        <jar jarfile="${ais-ims.jar}" basedir="${build.classes}">
-            <patternset refid="ims.backend.files"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${ais-cobol.jarname} ${imsico.jarname} ${imsico-connector.jarname} ${jaas.jarname} ${jta.jarname}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="IMS Connector"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${ais-ims.jar}"/>
-            <param name="filename" value="${ais-ims.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.hsc" depends="init, compile.hsc">
-        <mkdir dir="${build.lib}"/>
-        <jar jarfile="${hscu.jar}" basedir="${build.classes}">
-            <patternset refid="hsc.files"/>
-            <manifest>
-                <attribute name="Built-By" value="${user.name}"/>
-                <attribute name="${manifest.key.product}" value="${product.name}"/>
-                <attribute name="${manifest.key.component}" value="Host Session Connector"/>
-                <attribute name="${manifest.key.version}" value="${version}"/>
-                <attribute name="${manifest.key.build}" value="${build.id}"/>
-                <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
-            </manifest>
-        </jar>
-        <antcall target="compute-checksum">
-            <param name="file" value="${hscu.jar}"/>
-            <param name="filename" value="${hscu.jarname}"/>
-        </antcall>
-        <echo level="info" message="Running RetroGuard..."/>
-        <java classname="RetroGuard" fork="yes">
-            <arg value="${hscu.jar}"/>
-            <arg value="${hsc.jar}"/>
-            <arg value="${obfuscate.script}"/>
-            <arg value="${obfuscate.log}"/>
-            <classpath>
-                <pathelement path="${retroguard.jar}"/>
-            </classpath>
-        </java>
-        <antcall target="compute-checksum">
-            <param name="file" value="${hsc.jar}"/>
-            <param name="filename" value="${hsc.jarname}"/>
-        </antcall>
-    </target>
-    <target name="jar.testbackend" depends="test.compile">
-        <jar jarfile="${build.lib}/ais-testbackend.jar" basedir="${test.bin}">
-            <include name="com/seagullsw/appinterface/server/backend/aistest/**"/>
-            <fileset dir="${src.test.dir}">
-                <include name="com/seagullsw/appinterface/server/backend/aistest/**/jaxb.properties"/>
-                <include name="com/seagullsw/appinterface/server/backend/aistest/**/bgm.ser"/>
-            </fileset>
-        </jar>
-    </target>
-    <!-- =================================================================== -->
-    <!-- Prepares the build directory -->
-    <!-- =================================================================== -->
-    <target name="prepare" depends="init">
-        <mkdir dir="${build.dir}"/>
-        <mkdir dir="${build.classes}"/>
-    </target>
-    <!-- =================================================================== -->
-    <!-- Cleans -->
-    <!-- =================================================================== -->
-    <target name="clean" description="Removes all the generated files and directories">
-        <delete dir="${build.dir}"/>
-    </target>
-    <target name="clean.jars">
-        <delete dir="${build.lib}"/>
-    </target>
-    <target name="clean.classes" description="Removes all .class files">
-        <delete dir="${build.classes}"/>
-    </target>
-    <!-- =================================================================== -->
-    <!-- Init -->
-    <!-- =================================================================== -->
-    <target name="init" depends="banner">
-        <tstamp>
-            <!-- The date/time patterns are as defined in the Java SimpleDateFormat class. -->
-            <format property="BuildTimeStamp" pattern="yyyy-MMMMM-dd HH:mm z"/>
-        </tstamp>
-        <filter token="PRODUCT" value="${product.name}"/>
-        <filter token="VERSION" value="${version}"/>
-        <filter token="BUILDID" value="${build.id}"/>
-        <filter token="BUILDTIMESTAMP" value="${BuildTimeStamp}"/>
-        <filter token="COPYRIGHT-1" value="${text.copyright.1}"/>
-        <filter token="COPYRIGHT-2" value="${text.copyright.2}"/>
-    </target>
-    <target name="banner" unless="banner-set">
-        <property name="logxsl-prop-sep" value="->"/>
-        <echo level="info" message="ant.file ${logxsl-prop-sep} ${ant.file}"/>
-        <echo level="info" message="ant.version ${logxsl-prop-sep} ${ant.version}"/>
-        <echo level="info" message="java.vm.version ${logxsl-prop-sep} ${ant.java.version}"/>
-        <echo level="info" message="java.version ${logxsl-prop-sep} ${java.version}"/>
-        <echo level="info" message="os.name ${logxsl-prop-sep} ${os.name}"/>
-        <echo level="info" message="Build ID: ${build.id}"/>
-        <property name="banner-set" value="true"/>
-    </target>
-    <!-- =================================================================== -->
-    <!-- Splash Screens -->
-    <!-- =================================================================== -->
-    <property name="internaldev.classes" value="${build.dir}/internaldev"/>
-    <property name="splash.src" value="${src.root.dir}/Build/splashscreen"/>
-    <property name="splash.dest" value="${build.dir}/splashscreens"/>
-    <property name="server.splashscreen.line-1" value="Application Interface Server"/>
-    <property name="tools.splashscreen.line-1" value="Transidiom Developer"/>
-    <!-- Task compile.splashScreenCreator -->
-    <target name="compile.splashScreenCreator">
-        <mkdir dir="${internaldev.classes}"/>
-        <javac srcdir="${src.test.dir}" destdir="${internaldev.classes}" debug="${compile.debug}">
-            <include name="com/seagullsw/internaldev/build/SplashscreenCreator.java"/>
-        </javac>
-    </target>
-    <!--
-             Run SplashscreenCreator program which takes a "vanilla" jpg plus
-             some text and creates a new "merged" jpg.
-             This is used by the createSplash.xxx.splashscreen targets.
-        -->
-    <target name="createSplash" depends="compile.splashScreenCreator">
-        <!--  java task: failonerror works only if fork is true -->
-        <java classname="com.seagullsw.internaldev.build.SplashscreenCreator" failonerror="true" fork="true">
-            <!-- <sysproperty key="com.seagullsw.debug" value="true"/>  -->
-            <sysproperty key="com.seagullsw.quiet" value="false"/>
-            <sysproperty key="com.seagullsw.x" value="8"/>
-            <sysproperty key="com.seagullsw.y" value="196"/>
-            <sysproperty key="com.seagullsw.fontsize" value="11"/>
-            <sysproperty key="com.seagullsw.sourceScreenFile" value="${createSplash.sourceScreenFile}"/>
-            <sysproperty key="com.seagullsw.targetScreenFile" value="${createSplash.targetScreenFile}"/>
-            <sysproperty key="com.seagullsw.screenTextFile" value="${createSplash.screenTextFile}"/>
-            <classpath>
-                <pathelement location="${internaldev.classes}"/>
-            </classpath>
-        </java>
-    </target>
-    <!-- Create AIS splashscreens -->
-    <target name="createSplash.ais.splashscreens" depends="init">
-        <filter token="SERVER.SPLASHSCREEN.LINE-1" value="${server.splashscreen.line-1}"/>
-        <!-- Line 2 is in the template and uses the Version, Build and Build date tokens. -->
-        <filter token="SERVER.SPLASHSCREEN.LINE-3" value="${text.copyright.1}"/>
-        <filter token="SERVER.SPLASHSCREEN.LINE-4" value="${text.copyright.2}"/>
-        <mkdir dir="${splash.dest}"/>
-        <copy file="${splash.src}/splashscreen-template-server.txt" tofile="${splash.dest}/splashscreen-server.txt" overwrite="true" filtering="true"/>
-        <antcall target="createSplash">
-            <param name="createSplash.sourceScreenFile" value="${splash.src}/BasicSplashScreen.jpg"/>
-            <param name="createSplash.screenTextFile" value="${splash.dest}/splashscreen-server.txt"/>
-            <param name="createSplash.targetScreenFile" value="${splash.dest}/ServerSplashScreen.jpg"/>
-        </antcall>
-        <!-- Copy the splash to the AIS and SAC class path -->
-        <copy file="${splash.dest}/ServerSplashScreen.jpg" tofile="${build.classes}/com/seagullsw/appinterface/server/ServerSessionSplashScreen.jpg" overwrite="yes"/>
-    </target>
-    <!-- Create Tools splashscreens -->
-    <target name="createSplash.tools.splashscreens" depends="init">
-        <filter token="TOOLS.SPLASHSCREEN.LINE-1" value="${tools.splashscreen.line-1}"/>
-        <!-- Line 2 is in the template and uses the Version, Build and Build date tokens. -->
-        <filter token="TOOLS.SPLASHSCREEN.LINE-3" value="${text.copyright.1}"/>
-        <filter token="TOOLS.SPLASHSCREEN.LINE-4" value="${text.copyright.2}"/>
-        <mkdir dir="${splash.dest}"/>
-        <copy file="${splash.src}/splashscreen-template-developer.txt" tofile="${splash.dest}/splashscreen-developer.txt" overwrite="true" filtering="true"/>
-        <antcall target="createSplash">
-            <param name="createSplash.sourceScreenFile" value="${splash.src}/BasicSplashScreen.jpg"/>
-            <param name="createSplash.screenTextFile" value="${splash.dest}/splashscreen-developer.txt"/>
-            <param name="createSplash.targetScreenFile" value="${splash.dest}/ToolSessionSplashScreen.jpg"/>
-        </antcall>
-        <!-- Copy the splash to the Tools class path -->
-        <copy file="${splash.dest}/ToolSessionSplashScreen.jpg" tofile="${build.classes}/com/seagullsw/appinterface/tools/images/ToolSessionSplashScreen.jpg" overwrite="yes"/>
-    </target>
-    <!-- =================================================================== -->
-    <!-- Javadoc for client API -->
-    <!-- =================================================================== -->
-    <target name="javadoc_check.ais.client">
-        <uptodate property="ais.client.javadoc.notrequired" targetfile="${ais.client.dist.javadoc}/packages.html">
-            <srcfiles dir="${src.dir}">
-                <patternset refid="ais.client.files"/>
-            </srcfiles>
-        </uptodate>
-    </target>
-    <target name="javadoc.ais.client" depends="prepare, javadoc_check.ais.client" unless="ais.client.javadoc.notrequired">
-        <delete dir="${ais.client.dist.javadoc}" includeEmptyDirs="true" quiet="true"/>
-        <mkdir dir="${ais.client.dist.javadoc}"/>
-        <property name="basic-header" value="${Name}&#x2122;, AIS Client"/>
-        <property name="header+version" value="${basic-header}, v${version}"/>
-        <property name="win-title" value="${header+version} API Specification"/>
-        <property name="doc-title" value="${header+version}&lt;br/&gt;API Specification"/>
-        <javadoc packagenames="com.seagullsw.appinterface.client, com.seagullsw.appinterface.client.java, com.seagullsw.appinterface.client.ibmmq, com.seagullsw.appinterface.comm.ibmmq" sourcepath="${src.dir}" destdir="${ais.client.dist.javadoc}" windowtitle="${win-title}" doctitle="${doc-title}" header="${basic-header}" bottom="&lt;font size=&quot;-1&quot;&gt;${Name} is a trademark or registered trademarks of Seagull Holding NV in the US and other countries.&lt;br/&gt;Copyright &#169; 1993 - 2003 Seagull Business Software Ireland Ltd. All Rights Reserved.&lt;/font&gt;" author="false" version="true" use="true">
-            <classpath>
-                <path refid="ais.classpath"/>
-            </classpath>
-            <!-- The following group elements do not seem to work. -->
-            <group title="Client" packages="com.seagullsw.appinterface.client, com.seagullsw.appinterface.client.java"/>
-            <group title="IBM MQ Series Client" packages="com.seagullsw.appinterface.client.ibmmq, com.seagullsw.appinterface.comm.ibmmq"/>
-            <link href="${javadoc.j2se.link}"/>
-        </javadoc>
-    </target>
-    <target name="javadoc_check.ais.adminclient">
-        <uptodate property="ais.adminclient.javadoc.notrequired" targetfile="${ais.adminclient.dist.javadoc}/packages.html">
-            <srcfiles dir="${src.dir}">
-                <patternset refid="ais.adminclient.files"/>
-            </srcfiles>
-        </uptodate>
-    </target>
-    <target name="javadoc.ais.adminclient" depends="prepare, javadoc_check.ais.adminclient" unless="ais.adminclient.javadoc.notrequired">
-        <delete dir="${ais.adminclient.dist.javadoc}" includeEmptyDirs="true" quiet="true"/>
-        <mkdir dir="${ais.adminclient.dist.javadoc}"/>
-        <property name="basic-header" value="${Name}&#x2122;, AIS Admin Client"/>
-        <property name="header+version" value="${basic-header}, v${version}"/>
-        <property name="win-title" value="${header+version} API Specification"/>
-        <property name="doc-title" value="${header+version}&lt;br/&gt;API Specification"/>
-        <javadoc packagenames="com.seagullsw.appinterface.server.admin" sourcepath="${src.dir}" destdir="${ais.adminclient.dist.javadoc}" windowtitle="${win-title}" doctitle="${doc-title}" header="${basic-header}" bottom="&lt;font size=&quot;-1&quot;&gt;${Name} is a trademark or registered trademarks of Seagull Holding NV in the US and other countries.&lt;br/&gt;Copyright &#169; 1993 - 2003 Seagull Business Software Ireland Ltd. All Rights Reserved.&lt;/font&gt;" author="false" version="true" use="true">
-            <classpath>
-                <path refid="ais.classpath"/>
-            </classpath>
-            <!-- The following group elements do not seem to work. -->
-            <group title="Client" packages="com.seagullsw.appinterface.server.admin"/>
-            <link href="${javadoc.j2se.link}"/>
-        </javadoc>
-    </target>
-    <!-- =================================================================== -->
-    <!-- Distribution targets -->
-    <!-- =================================================================== -->
-    <target name="dist" depends="dist.ais.core, dist.ais.client, dist.aisUNIX, dist.proxyservlet, dist.transidiomcentral, dist.devtools, dist.docs" description="Creates the distribution in ${build.dist}"/>
-    <property name="ais.dist" value="${build.dist}/server"/>
-    <property name="aisUNIX.dist" value="${build.dist}/server-UNIX"/>
-    <property name="ais.client.dist" value="${build.dist}/client/java"/>
-    <property name="proxyservlet.dist" value="${build.dist}/server/servlet"/>
-    <property name="devtools.dist" value="${build.dist}/tools"/>
-    <property name="transidiomcentral.dist" value="${build.dist}/TransidiomCentral"/>
-    <!-- copy 3rd party jar files - a dist "subroutine". -->
-    <!-- Common files to the AIS and Tools? GaryG 2003-04-03 -->
-    <target name="copy3rdPartyJars">
-        <copy file="${xerces.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${xml-apis.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${xalan.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${soap.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${activation.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${mail.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${commons-collections.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${commons-lang.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${commons-codec.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${commons-logging.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${commons-httpclient.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${commons-pool.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${commons-cli.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jakarta-oro.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb1.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb2.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb3.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb4.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb5.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb6.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb7.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jms.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${concurrent.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaas.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${imsico.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${imsico-connector.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jta.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
-    </target>
-    <!-- Java Client -->
-    <property name="ais.client.dist.javadoc" value="${ais.client.dist}/docs/api"/>
-    <property name="ais.client.dist.lib" value="${ais.client.dist}/lib"/>
-    <property name="ais.client.dist.mq" value="${ais.client.dist}/mq"/>
-    <property name="ais.adminclient.dist.javadoc" value="${ais.client.dist}/admin/docs/api"/>
-    <property name="ais.adminclient.dist.sfd" value="${ais.client.dist}/admin/sfd"/>
-    <!-- dist.ais.client -->
-    <target name="dist.ais.client" depends="jar.ais.client, jar.ais.adminclient, javadoc.ais.client, javadoc.ais.adminclient">
-        <mkdir dir="${ais.client.dist}"/>
-        <mkdir dir="${ais.client.dist.javadoc}"/>
-        <mkdir dir="${ais.client.dist.lib}"/>
-        <mkdir dir="${ais.client.dist.mq}"/>
-        <mkdir dir="${ais.adminclient.dist.javadoc}"/>
-        <mkdir dir="${ais.adminclient.dist.sfd}"/>
-        <copy file="${ais.client.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-adminclient.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${xerces.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${xml-apis.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${commons-lang.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb1.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb2.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb3.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb4.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb5.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb6.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb7.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
-        <copy file="${root.dir}/mq/MQClientConnection.properties" todir="${ais.client.dist.mq}" preservelastmodified="true"/>
-        <copy todir="${ais.adminclient.dist.sfd}" preservelastmodified="true">
-            <fileset dir="${src.root.dir}/ServerAdminFunctions/InterfaceSchemas"/>
-        </copy>
-    </target>
-    <!-- AIS -->
-    <property name="ais.dist.config" value="${ais.dist}/config"/>
-    <property name="ais.dist.config.copy" value="${ais.dist}/config-default"/>
-    <property name="ais.dist.log" value="${ais.dist.config}/log"/>
-    <property name="ais.dist.transform" value="${ais.dist.config}/transform"/>
-    <property name="ais.dist.lib" value="${ais.dist}/lib"/>
-    <property name="ais.dist.lib.ext" value="${ais.dist.lib}/${extension.dir.name}"/>
-    <property name="ais.dist.mq" value="${ais.dist}/mq"/>
-    <property name="ais.dist.sys" value="${ais.dist}/system"/>
-    <property name="ais.dist.sysdef" value="${ais.dist.sys}/defaults"/>
-    <property name="root.serverSettings" value="${root.dir}/AlternativeServerSettings"/>
-    <property name="root.toolSettings" value="${root.dir}/AlternativeToolSettings"/>
-    <!-- dist.ais.core -->
-    <target name="dist.ais.core" depends="init, jar.ais-core, jar.ais-tools, jar.ais-5250, jar.ais-3270, jar.ais-cobol, jar.ais-cics, jar.ais-ims, jar.hsc, jar.adminconsole, javadoc.openbackend">
-        <mkdir dir="${ais.dist}"/>
-        <mkdir dir="${ais.dist.lib}"/>
-        <mkdir dir="${ais.dist.lib.ext}"/>
-        <mkdir dir="${ais.dist.sys}"/>
-        <mkdir dir="${ais.dist.mq}"/>
-        <copy file="${ais-core.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-5250.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-3270.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-cobol.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-cics.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-ims.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
-        <copy file="${hsc.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
-        <copy file="${adminconsole.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
-        <antcall target="copy3rdPartyJars">
-            <param name="copy3rdPartyJars.dist.lib" value="${ais.dist.lib}"/>
-        </antcall>
-        <!-- For SCT -->
-        <copy file="${ais-tools.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
-        <copy file="${root.dir}/ToolUserSettings.cfg" todir="${ais.dist}" filtering="true"/>
-        <copy file="${root.dir}/start-ais.bat" todir="${ais.dist}" preservelastmodified="true"/>
-        <copy file="${root.dir}/start-ais-mq.bat" todir="${ais.dist}" preservelastmodified="true"/>
-        <copy file="${root.dir}/stop-ais.bat" todir="${ais.dist}" preservelastmodified="true"/>
-        <copy file="${root.dir.server}/ServerSettings.cfg" todir="${ais.dist}" preservelastmodified="true"/>
-        <copy file="${root.dir}/ServerBackEndSettings.cfg" todir="${ais.dist}" preservelastmodified="true"/>
-        <copy file="${root.serverSettings}/ServerDebugSettings.cfg" todir="${ais.dist.sys}" filtering="true"/>
-        <copy file="${root.serverSettings}/ServerDeveloperSettings.cfg" todir="${ais.dist.sys}" filtering="true"/>
-        <copy file="${root.serverSettings}/ServerInstallationSettings.cfg" todir="${ais.dist.sys}" filtering="true"/>
-        <copy file="${root.dir.sys}/ToolDebugSettings.cfg" todir="${ais.dist.sys}" filtering="true"/>
-        <copy todir="${ais.dist.sys}/AdminFunctionDefinitions" preservelastmodified="true">
-            <fileset dir="${src.root.dir}/ServerAdminFunctions/MappingSchemas"/>
-        </copy>
-        <copy todir="${ais.dist.transform}" preservelastmodified="true">
-            <fileset dir="${root.dir.server-transform}"/>
-        </copy>
-        <copy todir="${ais.dist.config}/comm" preservelastmodified="true">
-            <fileset dir="${root.dir.server-config}/comm"/>
-        </copy>
-        <copy todir="${ais.dist.config.copy}" preservelastmodified="true">
-            <fileset dir="${ais.dist.config}"/>
-        </copy>
-        <copy file="${root.dir.server-log}/log-category.properties" todir="${ais.dist.log}" preservelastmodified="true"/>
-        <copy file="${root.dir.server-log}/log-style.properties" todir="${ais.dist.log}" preservelastmodified="true"/>
-        <!-- Tools files -->
-        <copy file="${root.toolSettings}/ToolInstallationSettings-All.cfg" tofile="${ais.dist.sys}/ToolInstallationSettings.cfg" filtering="true"/>
-        <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC.cfg" todir="${ais.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC3270Only.cfg" todir="${ais.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC5250Only.cfg" todir="${ais.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/SCTToolInstallationSettings-CICSOnly.cfg" todir="${ais.dist.sys}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/AppInterfaceTester-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/ClientControlled3270ServerSettings-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/ClientControlled5250ServerSettings-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/DefinitionTool-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/SEAGULLProject.dir" todir="${ais.dist.sysdef}"/>
-        <copy file="${root.dir.sysdef}/ServerControlled3270ServerSettings-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/ServerControlled5250ServerSettings-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/ServerOptions-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/ServerSettings-Skeleton.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/WorkingSetSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
-        <!-- Java Connectors -->
-        <mkdir dir="${ais.dist}/JavaConnectors/Classes"/>
-    </target>
-    <!-- AIS UNIX-specific -->
-    <property name="aisUNIX.dist.config" value="${aisUNIX.dist}/config"/>
-    <property name="aisUNIX.dist.log" value="${aisUNIX.dist.config}/log"/>
-    <property name="aisUNIX.dist.lib" value="${aisUNIX.dist}/lib"/>
-    <property name="aisUNIX.dist.mq" value="${aisUNIX.dist}/mq"/>
-    <property name="aisUNIX.dist.sys" value="${aisUNIX.dist}/system"/>
-    <target name="dist.aisUNIX" depends="init, dist.ais.core, jar.adminconsole">
-        <mkdir dir="${aisUNIX.dist}"/>
-        <mkdir dir="${aisUNIX.dist.lib}"/>
-        <mkdir dir="${aisUNIX.dist.sys}"/>
-        <mkdir dir="${aisUNIX.dist.mq}"/>
-        <copy file="${ais-core.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-5250.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-3270.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-cobol.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-cics.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-ims.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
-        <copy file="${adminconsole.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
-        <copy file="${hsc.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
-        <antcall target="copy3rdPartyJars">
-            <param name="copy3rdPartyJars.dist.lib" value="${aisUNIX.dist.lib}"/>
-        </antcall>
-        <copy file="${root.dir}/UNIXServerFiles/start-ais.sh" todir="${aisUNIX.dist}" preservelastmodified="true"/>
-        <copy file="${root.dir}/UNIXServerFiles/start-ais-mq.sh" todir="${aisUNIX.dist}" preservelastmodified="true"/>
-        <copy file="${root.dir}/UNIXServerFiles/stop-ais.sh" todir="${aisUNIX.dist}" preservelastmodified="true"/>
-        <copy file="${root.dir.server}/ServerSettings.cfg" todir="${aisUNIX.dist}" preservelastmodified="true"/>
-        <copy file="${root.dir}/ServerBackEndSettings.cfg" todir="${aisUNIX.dist}" preservelastmodified="true"/>
-        <copy file="${root.serverSettings}/ServerDebugSettings.cfg" todir="${aisUNIX.dist.sys}" filtering="true"/>
-        <copy file="${root.dir}/UNIXServerFiles/ServerInstallationSettings.cfg" todir="${aisUNIX.dist.sys}" filtering="true"/>
-        <copy todir="${aisUNIX.dist.sys}/AdminFunctionDefinitions" preservelastmodified="true">
-            <fileset dir="${src.root.dir}/ServerAdminFunctions/MappingSchemas"/>
-        </copy>
-        <copy todir="${aisUNIX.dist}/config/transform" preservelastmodified="true">
-            <fileset dir="${root.dir}/server/config/transform"/>
-        </copy>
-        <copy file="${root.dir.server-log}/log-category.properties" todir="${aisUNIX.dist.log}"/>
-        <copy file="${root.dir.server-log}/log-style.properties" todir="${aisUNIX.dist.log}"/>
-    </target>
-    <!-- Proxy Servlet -->
-    <property name="proxyservlet.dist.lib" value="${proxyservlet.dist}/lib"/>
-    <target name="dist.proxyservlet" depends="jar.proxyservlet, jar.ais.client">
-        <copy file="${proxyservlet.jar}" todir="${proxyservlet.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais.client.jar}" todir="${proxyservlet.dist.lib}" preservelastmodified="true"/>
-        <copy file="${xerces.jar}" todir="${proxyservlet.dist.lib}" preservelastmodified="true"/>
-        <copy file="${xml-apis.jar}" todir="${proxyservlet.dist.lib}" preservelastmodified="true"/>
-        <copy file="${root.dir}/ServletConfigFiles/AISProxyServletReadme.txt" todir="${proxyservlet.dist}" preservelastmodified="true"/>
-        <copy file="${root.dir}/ServletConfigFiles/web.xml" todir="${proxyservlet.dist}" preservelastmodified="true"/>
-        <copy file="${doc.dir}/Transidiom HTTPS Support.doc" todir="${proxyservlet.dist}" preservelastmodified="true"/>
-        <copy file="${doc.dir}/Transidiom HTTP Requests Redirection on IIS.doc" todir="${proxyservlet.dist}" preservelastmodified="true"/>
-    </target>
-    <!-- DevTools -->
-    <property name="devtools.dist.config" value="${devtools.dist}/config"/>
-    <property name="devtools.dist.log" value="${devtools.dist.config}/log"/>
-    <property name="devtools.dist.lib" value="${devtools.dist}/lib"/>
-    <property name="devtools.dist.sys" value="${devtools.dist}/system"/>
-    <property name="devtools.dist.sysdef" value="${devtools.dist.sys}/defaults"/>
-    <target name="dist.devtools" depends="init, jar.ais-core, jar.ais-tools">
-        <mkdir dir="${devtools.dist}"/>
-        <mkdir dir="${devtools.dist.lib}"/>
-        <mkdir dir="${devtools.dist.sys}"/>
-        <mkdir dir="${devtools.dist.sysdef}"/>
-        <mkdir dir="${devtools.dist.log}"/>
-        <copy file="${ais-tools.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-core.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-5250.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-3270.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-cobol.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-cics.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-ims.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais.client.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-adminclient.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
-        <antcall target="copy3rdPartyJars">
-            <param name="copy3rdPartyJars.dist.lib" value="${devtools.dist.lib}"/>
-        </antcall>
-        <!-- Root -->
-        <copy file="${root.dir}/Direct Publish.bat" todir="${devtools.dist}"/>
-        <copy file="${root.dir}/DirectPublish.args" todir="${devtools.dist}"/>
-        <copy file="${root.dir}/Interface Definition Tool.bat" todir="${devtools.dist}"/>
-        <copy file="${root.dir}/CICS Connector Builder.bat" todir="${devtools.dist}"/>
-        <copy file="${root.dir}/IMS Connector Builder.bat" todir="${devtools.dist}"/>
-        <copy file="${root.dir}/Interface Function Tester.bat" todir="${devtools.dist}"/>
-        <copy file="${root.dir}/ToolUserSettings.cfg" todir="${devtools.dist}" filtering="true"/>
-        <copy file="${binary.root.dir}/Java/Win32/Bin/Win32RegistryInterface.dll" todir="${devtools.dist}" preservelastmodified="true"/>
-        <!-- system (files are in alpha order here) -->
-        <copy file="${root.toolSettings}/DFPToolInstallationSettings-HC.cfg" tofile="${devtools.dist.sys}/DFPToolInstallationSettings.cfg" filtering="true"/>
-        <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC.cfg" todir="${devtools.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC3270Only.cfg" todir="${devtools.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC5250Only.cfg" todir="${devtools.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/SCTToolInstallationSettings-CICSOnly.cfg" todir="${devtools.dist.sys}" filtering="true"/>
-        <copy file="${root.dir.sys}/ToolDebugSettings.cfg" todir="${devtools.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/ToolInstallationSettings-All.cfg" tofile="${devtools.dist.sys}/ToolInstallationSettings.cfg" filtering="true"/>
-        <copy file="${root.toolSettings}/ToolInstallationSettings-DefToolHC.cfg" todir="${devtools.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/ToolInstallationSettings-DefToolHC3270Only.cfg" todir="${devtools.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/ToolInstallationSettings-DefToolHC5250Only.cfg" todir="${devtools.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/ToolInstallationSettings-DefToolCICSOnly.cfg" todir="${devtools.dist.sys}" filtering="true"/>
-        <copy file="${root.toolSettings}/ToolInstallationSettings-DefToolIMSOnly.cfg" todir="${devtools.dist.sys}" filtering="true"/>
-        <!-- system defaults -->
-        <copy file="${root.dir.sysdef}/AppInterfaceTester-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/ClientControlled3270ServerSettings-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/ClientControlled5250ServerSettings-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/DefinitionTool-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/SEAGULLProject.dir" todir="${devtools.dist.sysdef}"/>
-        <copy file="${root.dir.sysdef}/ServerControlled3270ServerSettings-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/ServerControlled5250ServerSettings-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/ServerOptions-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/ServerSettings-Skeleton.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.sysdef}/WorkingSetSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
-        <copy file="${root.dir.tools-log}/log-category.properties" todir="${devtools.dist.log}" preservelastmodified="true"/>
-        <copy file="${root.dir.tools-log}/log-style.properties" todir="${devtools.dist.log}" preservelastmodified="true"/>
-    </target>
-    <!-- AIS Central -->
-    <property name="transidiomcentral.dist.lib" value="${transidiomcentral.dist}/lib"/>
-    <target name="dist.transidiomcentral" depends="init, jar.ais-core, jar.ais-tools, jar.javaconnectorgenerator, jar.securitytoolkit">
-        <mkdir dir="${transidiomcentral.dist}"/>
-        <mkdir dir="${transidiomcentral.dist.lib}"/>
-        <copy file="${ais-core.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-5250.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-3270.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-cobol.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-cics.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-ims.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais-tools.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${ais.client.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${securitytoolkit.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${javaconnectorgenerator.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${commons-codec.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${commons-lang.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${xerces.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${xalan.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${xml-apis.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb1.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb2.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb3.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb4.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb5.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb6.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-        <copy file="${jaxb7.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
-    </target>
-    <!-- User Docs -->
-    <target name="dist.docs">
-        <mkdir dir="${build.dist}/docs"/>
-        <copy todir="${build.dist}/docs">
-            <fileset dir="${doc.dir}">
-                <exclude name="Transidiom HTTP*.doc"/>
-            </fileset>
-        </copy>
-    </target>
-    <!-- =================================================================== -->
-    <!-- Javadoc for open back-end API -->
-    <!-- =================================================================== -->
-    <property name="ais.dist.javadoc" value="${ais.dist}/JavaConnectors/Documentation/JavaDoc"/>
-    <target name="javadoc.openbackend" depends="compile.doclet">
-        <delete dir="${ais.dist.javadoc}" includeEmptyDirs="true" quiet="true"/>
-        <mkdir dir="${ais.dist.javadoc}"/>
-        <property name="basic-header" value="${Name}&#x2122;, AIS Java Connector"/>
-        <property name="header+version" value="${basic-header}, v${version}"/>
-        <property name="win-title" value="${header+version} API Specification"/>
-        <property name="doc-title" value="${header+version}&lt;br/&gt;API Specification"/>
-        <javadoc sourcepath="${src.dir}" destdir="${ais.dist.javadoc}" windowtitle="${win-title}" doctitle="${doc-title}" header="${basic-header}" bottom="&lt;font size=&quot;-1&quot;&gt;${Name} is a trademark or registered trademarks of Seagull Holding NV in the US and other countries.&lt;br/&gt;Copyright &#169; 1993 - 2003 Seagull Business Software Ireland Ltd. All Rights Reserved.&lt;/font&gt;" author="false" version="true" use="true" doclet="com.seagullsw.internaldev.tools.apidoclet.standard.Standard" docletpath="${build.classes};${java.resource.dir}">
-            <!-- I don't understand it, but if I leave off the ${src.dir} below, it doesn't work. -->
-            <source file="${src.dir}/com/seagullsw/appinterface/server/backend/BackEnd.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/server/backend/BackEndInfo.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/server/backend/BackEndHandler.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/server/backend/BackEndSettings.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/server/backend/Callback.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/server/backend/ClientSession.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/server/backend/InvocationContext.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/AggregateModel.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/AppInterfaceRuntimeException.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/DataElementModel.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/FieldModel.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/IllegalElementException.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/IllegalPathException.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/ModelElement.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/SequenceModel.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/StructureModel.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/data/Aggregate.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/data/DataElement.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/data/DataElementList.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/data/Field.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/data/Sequence.java"/>
-            <source file="${src.dir}/com/seagullsw/appinterface/model/data/Structure.java"/>
-            <classpath>
-                <path refid="ais.classpath"/>
-            </classpath>
-            <link href="http://java.sun.com/products/jdk/1.3.1/docs/api/"/>
-        </javadoc>
-    </target>
-    <!-- VERIFY -->
-    <path id="path.AntTasks">
-        <pathelement location="${junit.jar}"/>
-        <pathelement location="${commons-cli.jar}"/>
-        <pathelement location="${commons-httpclient.jar}"/>
-        <pathelement location="${build.classes}"/>
-        <pathelement location="${internaldev.classes}"/>
-    </path>
-    <target name="build.AntTasks">
-        <mkdir dir="${internaldev.classes}"/>
-        <javac srcdir="${src.test.dir}" destdir="${internaldev.classes}" debug="${compile.debug}" classpathref="path.AntTasks">
-            <include name="com/seagullsw/internaldev/build/JarFileVerifier.java"/>
-            <include name="com/seagullsw/internaldev/build/JarFileVerifierTask.java"/>
-            <include name="com/seagullsw/internaldev/build/IsUrlOpen.java"/>
-            <include name="com/seagullsw/internaldev/build/IsUrlOpenTask.java"/>
-        </javac>
-    </target>
-    <target name="declare.AntTasks" depends="build.AntTasks">
-        <taskdef name="verifyjar" classname="com.seagullsw.internaldev.build.JarFileVerifierTask" classpathref="path.AntTasks"/>
-        <taskdef name="isUrlOpen" classname="com.seagullsw.internaldev.build.IsUrlOpenTask" classpathref="path.AntTasks"/>
-    </target>
-    <target name="prepare.test.ext">
-        <mkdir dir="${test.lib}"/>
-        <delete dir="${test.lib.ext}"/>
-        <mkdir dir="${test.lib.ext}"/>
-    </target>
-    <target name="verify.ais.jar" depends="declare.AntTasks, prepare.test.ext">
-        <mkdir dir="${test.fdef}"/>
-        <copy file="${goXMLEngine.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <copy file="${goXMLResource.zip}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <copy file="${jdom.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <copy file="${ibm.mq.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <copy file="${ibm.mq.connector.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <copy file="${ibm.mq.jta.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <verifyjar file="${ais-core.jar}" verbose="false" debug="false">
-            <classpath>
-                <pathelement location="${ais.dist.lib}"/>
-                <pathelement location="${ais.dist.lib.ext}"/>
-                <pathelement location="${test.lib}"/>
-            </classpath>
-        </verifyjar>
-        <delete dir="${test.lib.ext}"/>
-        <delete dir="${test.fdef}"/>
-    </target>
-    <target name="verify.client.jar" depends="declare.AntTasks, prepare.test.ext">
-        <copy file="${ibm.mq.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <copy file="${jms.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <copy file="${mail.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <copy file="${soap.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <verifyjar file="${ais.client.jar}" verbose="false" debug="false">
-            <classpath>
-                <pathelement location="${ais.client.dist.lib}"/>
-                <pathelement location="${test.lib.ext}"/>
-            </classpath>
-        </verifyjar>
-        <delete dir="${test.lib.ext}"/>
-    </target>
-    <target name="verify.5250.jar" depends="declare.AntTasks">
-        <verifyjar file="${ais-5250.jar}" ignoreUnresolved="true" verbose="false" debug="false">
-            <classpath location="${ais.dist.lib}"/>
-        </verifyjar>
-    </target>
-    <target name="verify.3270.jar" depends="declare.AntTasks">
-        <verifyjar file="${ais-3270.jar}" ignoreUnresolved="true" verbose="false" debug="false">
-            <classpath location="${ais.dist.lib}"/>
-        </verifyjar>
-    </target>
-    <target name="verify.cobol.jar" depends="declare.AntTasks">
-        <verifyjar file="${ais-cobol.jar}" verbose="false" debug="false">
-            <classpath location="${ais.dist.lib}"/>
-        </verifyjar>
-    </target>
-    <target name="verify.cics.jar" depends="declare.AntTasks, prepare.test.ext">
-        <copy file="${ctgclient.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <verifyjar file="${ais-cics.jar}" verbose="false" debug="false">
-            <classpath location="${ais.dist.lib}"/>
-            <classpath location="${test.lib}"/>
-        </verifyjar>
-        <delete dir="${test.lib.ext}"/>
-    </target>
-    <target name="verify.ims.jar" depends="declare.AntTasks">
-        <verifyjar file="${ais-ims.jar}" verbose="false" debug="false">
-            <classpath location="${ais.dist.lib}"/>
-        </verifyjar>
-    </target>
-    <target name="verify.adminclient.jar" depends="declare.AntTasks">
-        <verifyjar file="${ais-adminclient.jar}" verbose="false" debug="false">
-            <classpath location="${devtools.dist.lib}"/>
-        </verifyjar>
-    </target>
-    <target name="verify.proxyservlet.jar" depends="declare.AntTasks">
-        <verifyjar file="${proxyservlet.jar}" verbose="false" debug="false">
-            <classpath>
-                <pathelement location="${proxyservlet.dist.lib}"/>
-                <pathelement location="${servlet.dir}"/>
-            </classpath>
-        </verifyjar>
-    </target>
-    <target name="verify.adminconsole.jar" depends="declare.AntTasks">
-        <verifyjar file="${adminconsole.jar}" verbose="false" debug="false">
-            <classpath location="${ais.dist.lib}"/>
-        </verifyjar>
-    </target>
-    <target name="verify.javaconnectorgenerator.jar" depends="declare.AntTasks">
-        <verifyjar file="${javaconnectorgenerator.jar}" verbose="false" debug="false">
-            <classpath location="${devtools.dist.lib}"/>
-        </verifyjar>
-    </target>
-    <target name="verify.securitytoolkit.jar" depends="declare.AntTasks">
-        <verifyjar file="${securitytoolkit.jar}" verbose="false" debug="false">
-            <classpath location="${devtools.dist.lib}"/>
-        </verifyjar>
-    </target>
-    <target name="verify.tools.jar" depends="declare.AntTasks, prepare.test.ext">
-        <copy file="${j2se.tools.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
-        <verifyjar file="${ais-tools.jar}" verbose="false" debug="false">
-            <classpath location="${devtools.dist.lib}"/>
-            <classpath location="${test.lib}"/>
-        </verifyjar>
-        <delete dir="${test.lib.ext}"/>
-    </target>
-    <target name="verify.gwhsc.jar" depends="declare.AntTasks">
-        <verifyjar file="${hsc.jar}" verbose="false" debug="false"/>
-    </target>
-    <target name="verify.gwhscu.jar" depends="declare.AntTasks">
-        <verifyjar file="${hscu.jar}" verbose="false" debug="false"/>
-    </target>
-    <target name="verify.xml" depends="banner">
-        <!-- Only check for well-formed XML here. -->
-        <xmlvalidate lenient="yes" warn="yes">
-            <fileset dir="${build.dist}" includes="**/*.xml"/>
-            <fileset dir="${build.dist}" includes="**/*.cfg"/>
-            <fileset dir="${build.dist}" includes="**/*.sfd"/>
-            <fileset dir="${build.dist}" includes="**/*.sjcd"/>
-            <fileset dir="${build.dist}" includes="**/*.sfmd"/>
-            <fileset dir="${build.dist}" includes="**/*.xsd"/>
-            <fileset dir="${build.dist}" includes="**/*.xsl"/>
-        </xmlvalidate>
-    </target>
-    <target name="verify" description="Verifies the build by performing a load tests on jar files (does not trigger the jar dependencies.)" depends="banner, verify.ais.jar, verify.client.jar, verify.5250.jar, verify.3270.jar, verify.cobol.jar, verify.cics.jar, verify.ims.jar, verify.adminclient.jar, verify.proxyservlet.jar, verify.adminconsole.jar, verify.javaconnectorgenerator.jar, verify.securitytoolkit.jar, verify.tools.jar, verify.gwhsc.jar, verify.gwhscu.jar, verify.xml"/>
-    <!-- End VERIFY targets -->
-    <!-- TEST TARGETS -->
-    <target name="junit_check">
-        <available classname="junit.framework.Test" property="junit.present"/>
-        <fail message="JUnit cannot be found." unless="junit.present"/>
-    </target>
-    <property name="test" value="${build.dir}/test"/>
-    <property name="test.bin" value="${test}/bin"/>
-    <property name="test.resources" value="${test.dir}/resources"/>
-    <property name="test.fdef" value="${test}/${fdef.dirname}"/>
-    <property name="test.lib" value="${test}/lib"/>
-    <property name="test.lib.ext" value="${test.lib}/ext"/>
-    <property name="reports.dir" value="${build.dir}/reports"/>
-    <property name="reports.checksum" value="${reports.dir}/checksum"/>
-    <property name="junit.reports.srcdir" location="reports"/>
-    <property name="junit.reports" location="${reports.dir}/junit"/>
-    <property name="junit.formatter" value="xml"/>
-    <property name="junit.fork" value="true"/>
-    <property name="junit.printsummary" value="true"/>
-    <property name="junit.includeantruntime" value="false"/>
-    <property name="junit.dir" value="../.."/>
-    <property name="junit.reports.xml" location="${junit.reports}/${junit.formatter}"/>
-    <property name="junit.report.ext" value="-junit.xml"/>
-    <target name="test.compile" description="Compiles the unit tests without triggering any dependencies.">
-        <mkdir dir="${test.bin}"/>
-        <javac destdir="${test.bin}" debug="${compile.debug}" includeAntRuntime="false">
-            <src path="${src.test.dir}"/>
-            <src path="${src.dir}/com/seagullsw/internaldev/appinterface/model"/>
-            <!-- Testing framework -->
-            <classpath location="${junit.jar}"/>
-            <classpath location="${mtjunit.jar}"/>
-            <classpath location="${xmlsec.jar}"/>
-            <!-- Jars to test, which the test cases refer to. -->
-            <classpath location="${ais-core.jar}"/>
-            <classpath location="${proxyservlet.jar}"/>
-            <classpath location="${ais.client.jar}"/>
-            <classpath location="${javaconnectorgenerator.jar}"/>
-            <classpath location="${securitytoolkit.jar}"/>
-            <classpath location="${ais-tools.jar}"/>
-            <classpath location="${ais-5250.jar}"/>
-            <classpath location="${ais-3270.jar}"/>
-            <classpath location="${ais-cobol.jar}"/>
-            <classpath location="${ais-cics.jar}"/>
-            <classpath location="${ais-ims.jar}"/>
-            <classpath location="${ais-adminclient.jar}"/>
-            <classpath location="${hsc.jar}"/>
-            <!-- dependencies -->
-            <classpath location="${ant.jar}"/>
-            <classpath location="${commons-cli.jar}"/>
-            <classpath location="${commons-httpclient.jar}"/>
-            <classpath refid="ais.classpath"/>
-            <classpath refid="proxyservlet.classpath"/>
-            <classpath refid="cobol.classpath"/>
-            <classpath refid="cics.backend.classpath"/>
-            <classpath refid="ims.backend.classpath"/>
-            <classpath refid="transforms.classpath"/>
-            <classpath refid="jsse.classpath"/>
-        </javac>
-    </target>
-    <target name="test.mkdir" depends="init">
-        <mkdir dir="${build.dir}"/>
-        <mkdir dir="${test}"/>
-        <mkdir dir="${test.bin}"/>
-    </target>
-    <target name="echo.xalan.version">
-        <echo level="info" message="Testing with ${TransformerFactory}"/>
-        <java classname="org.apache.xalan.Version"/>
-    </target>
-    <target name="report.init" depends="init, test.compile">
-        <mkdir dir="${junit.reports.xml}"/>
-        <echo level="info" message="Reporting to ${junit.reports.xml}"/>
-    </target>
-    <path id="junit.classpath">
-        <pathelement location="${ant.home}/lib/ant.jar"/>
-        <pathelement location="${ant.home}/lib/optional.jar"/>
-        <pathelement location="${ant.home}/lib/junit.jar"/>
-    </path>
-    <!-- Unit Tests: from low-level to high-level -->
-    <!-- Unit Tests: javax.lang -->
-    <target name="junit.javax.lang" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <pathelement location="${ais-tools.jar}"/>
-                <pathelement location="${j2se.tools.jar}"/>
-                <pathelement location="${commons-lang.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.unittest.javax.lang.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: javax.io -->
-    <target name="junit.javax.io" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <pathelement location="${commons-lang.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.javax.io.AllTests" todir="${junit.reports.xml}"/>
-            <test name="com.seagullsw.unittest.javax.io.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: javax.util -->
-    <target name="junit.javax.util" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.unittest.javax.util.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: Toolbox XML  -->
-    <target name="junit.toolbox.xml" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement path="${sun.boot.class.path}"/>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="xml.classpath.rt"/>
-                <pathelement location="${commons-lang.jar}"/>
-                <pathelement location="${xmlsec.jar}"/>
-                <pathelement location="${jce.jar}"/>
-                <pathelement location="${log4j.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.unittest.toolbox.xml.StringProxyTestSuite" todir="${junit.reports.xml}"/>
-            <test name="com.seagullsw.unittest.toolbox.xml.DocumentProxyTestSuite" todir="${junit.reports.xml}"/>
-            <test name="com.seagullsw.unittest.toolbox.xml.ReadDocumentWithEncodingTestSuite" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: Toolbox config  -->
-    <target name="junit.toolbox.config" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <pathelement path="${sun.boot.class.path}"/>
-                <pathelement location="${ais-core.jar}"/>
-                <pathelement location="${commons-lang.jar}"/>
-                <pathelement location="${commons-cli.jar}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.toolbox.config.ConfigurationDirectoryTestCase" todir="${junit.reports.xml}"/>
-            <test name="com.seagullsw.toolbox.config.ConfigValidatorTest" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: Toolbox logging  -->
-    <target name="junit.toolbox.log" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${ais-core.jar}"/>
-                <pathelement location="${commons-lang.jar}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.toolbox.log.LogUnitTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: config/log -->
-    <target name="junit.server.config.log" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.config.bind.log.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: config/bind/threadpool -->
-    <target name="junit.server.config.threadpool" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.config.bind.threadpool.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: config/bind/transform -->
-    <target name="junit.server.config.transform" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <path refid="transforms.classpath"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.config.bind.transform.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: config/bind/core -->
-    <target name="junit.server.config.core" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.config.bind.core.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: config/bind/management -->
-    <target name="junit.server.config.management" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.config.bind.management.JaxbUnmarshalTestCase" todir="${junit.reports.xml}"/>
-            <test name="com.seagullsw.appinterface.server.config.bind.management.ConfigurationDirectoryUnmarshalTestCase" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: Chameleon -->
-    <target name="junit.ais-core.transforms" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement path="${sun.boot.class.path}"/>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="transforms.classpath"/>
-                <pathelement location="${xmlsec.jar}"/>
-                <pathelement location="${jce.jar}"/>
-                <pathelement location="${log4j.jar}"/>
-                <pathelement location="${goXMLResource.zip}"/>
-                <pathelement location="${goXMLconfig.dir}"/>
-                <pathelement location="${jdom.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.unittest.appinterface.transforms.ApacheXPathNamespaceTestSuite" todir="${junit.reports.xml}"/>
-            <test name="com.seagullsw.unittest.appinterface.transforms.SimpleAwkTestSuite" todir="${junit.reports.xml}"/>
-            <test name="com.seagullsw.unittest.appinterface.transforms.TransformationManagerBindingTestSuite" todir="${junit.reports.xml}"/>
-            <test name="com.seagullsw.unittest.appinterface.transforms.TransformationManagerTestSuite" todir="${junit.reports.xml}"/>
-            <test name="com.seagullsw.unittest.appinterface.transforms.GoXMLTransformationManagerTestSuite" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: com.seagullsw.appinterface.server.security.auth  -->
-    <target name="junit.security.auth" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <path refid="jce.classpath.rt"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.security.auth.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: com.seagullsw.appinterface.server.crypto  -->
-    <target name="junit.crypto" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <path refid="jce.classpath.rt"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.crypto.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: com.seagullsw.toolbox.net  -->
-    <target name="junit.toolbox.net" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <pathelement location="${commons-codec.jar}"/>
-                <pathelement location="${commons-httpclient.jar}"/>
-                <pathelement location="${commons-logging.jar}"/>
-                <path refid="jce.classpath.rt"/>
-                <path refid="jsse.classpath"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.toolbox.net.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: com.seagullsw.unittest.appinterface.model  -->
-    <target name="junit.model" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <path refid="transforms.classpath"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.unittest.appinterface.model.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <target name="junit.server" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <path refid="ims.backend.classpath"/>
-                <path refid="cics.backend.classpath"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.LoadFunctionsTest" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: com.seagullsw.unittest.appinterface.server.backend.hostconnector2  -->
-    <target name="junit.hostconnector2" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${ais-5250.jar}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.unittest.appinterface.server.backend.hostconnector2.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <target name="junit.backend.hsc" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <!-- The timeout is expressed in milliseconds. -->
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <path refid="jce.classpath.rt"/>
-                <pathelement location="${ais-5250.jar}"/>
-                <pathelement location="${ais-3270.jar}"/>
-                <pathelement location="${commons-httpclient.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.config.bind.connectors.hsc.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: IMS back-end -->
-    <target name="junit.backend.ims" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <!-- The timeout is expressed in milliseconds. -->
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <path refid="ims.backend.classpath"/>
-                <path refid="jce.classpath.rt"/>
-                <pathelement location="${ais-ims.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.config.bind.connectors.ims.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <target name="junit.backend.ims.live" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <!-- The timeout is expressed in milliseconds. -->
-        <junit printsummary="${junit.printsummary}" fork="true" timeout="45000" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <path refid="ims.backend.classpath"/>
-                <path refid="jce.classpath.rt"/>
-                <pathelement location="${ais-ims.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.backend.ims.AllLiveImsIcoTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Unit Tests: CICS back-end -->
-    <target name="junit.backend.cics" depends="junit.backend.cics.common, junit.backend.cics.ctg.live, junit.backend.cics.hb, junit.backend.cics.hb.live"/>
-    <target name="junit.backend.cics.common" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <path refid="jce.classpath.rt"/>
-                <pathelement location="${ais-cics.jar}"/>
-                <pathelement location="${ctgclient.jar}"/>
-                <pathelement location="${commons-httpclient.jar}"/>
-                <pathelement location="${commons-logging.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.config.bind.connectors.cics.AllTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <target name="junit.backend.cics.ctg.live" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <!-- The timeout is expressed in milliseconds. -->
-        <junit printsummary="${junit.printsummary}" fork="true" timeout="600000" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <pathelement location="${ais-cics.jar}"/>
-                <pathelement location="${ctgclient.jar}"/>
-                <pathelement location="${commons-httpclient.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.backend.cics.AllLiveIbmCtgTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <target name="junit.backend.cics.hb" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <pathelement location="${ais-cics.jar}"/>
-                <pathelement location="${commons-httpclient.jar}"/>
-                <pathelement location="${commons-logging.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.backend.cics.HostBridgeByteBufferStrategyTest" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <target name="junit.backend.cics.hb.live" depends="report.init">
-        <mkdir dir="${junit.reports.xml}"/>
-        <junit printsummary="${junit.printsummary}" fork="true" timeout="600000" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
-            <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
-            <classpath>
-                <pathelement location="${ais-core.jar}"/>
-                <path refid="ais.classpath"/>
-                <pathelement location="${ais-cics.jar}"/>
-                <pathelement location="${commons-httpclient.jar}"/>
-                <pathelement location="${commons-logging.jar}"/>
-                <pathelement location="${test.bin}"/>
-                <pathelement location="${test.resources}"/>
-                <path refid="junit.classpath"/>
-            </classpath>
-            <test name="com.seagullsw.appinterface.server.backend.cics.AllLiveHostBridgeTests" todir="${junit.reports.xml}"/>
-        </junit>
-    </target>
-    <!-- Clean reports -->
-    <target name="junit.report.clean">
-        <delete dir="${junit.reports}"/>
-    </target>
-    <!-- Create the unit tests report -->
-    <target name="junit.report" depends="init">
-        <mkdir dir="${junit.reports}"/>
-        <property name="junit.reports.frames" location="${junit.reports}/frames"/>
-        <property name="junit.reports.noframes" location="${junit.reports}/noframes"/>
-        <mkdir dir="${junit.reports.xml}"/>
-        <mkdir dir="${junit.reports.frames}"/>
-        <mkdir dir="${junit.reports.noframes}"/>
-        <echo level="info" message="Compiling all reports to ${junit.reports}..."/>
-        <junitreport todir="${junit.reports.xml}">
-            <fileset dir="${junit.reports.xml}">
-                <include name="**/*${junit.report.ext}"/>
-            </fileset>
-            <report format="noframes" todir="${junit.reports.noframes}"/>
-            <report format="frames" todir="${junit.reports.frames}"/>
-        </junitreport>
-        <echo level="info" message="The XML report is in: ${junit.reports.xml}"/>
-        <echo level="info" message="The HTML report (with frames) is in: ${junit.reports.frames}"/>
-        <echo level="info" message="The HTML report (no frames) is in: ${junit.reports.noframes}"/>
-        <!-- Rename file to index.html -->
-        <move file="${junit.reports.noframes}/junit-noframes.html" tofile="${junit.reports.noframes}/index.html"/>
-        <!-- Copy test reports home page -->
-        <copy file="${junit.reports.srcdir}/index.html" todir="${reports.dir}" overwrite="true" filtering="true"/>
-        <copy todir="${reports.dir}/images" overwrite="true">
-            <fileset dir="${junit.reports.srcdir}/images"/>
-        </copy>
-        <antcall target="report.checksums"/>
-    </target>
-    <target name="report.checksums">
-        <antcall target="copy-checksums"/>
-        <property name="temp.index" value="${reports.dir}/index-temp.html"/>
-        <xslt in="${reports.dir}/index.html" out="${temp.index}" force="true" style="${junit.reports.srcdir}/apply-data.xslt">
-            <param name="reportDir" expression="${reports.dir}"/>
-        </xslt>
-        <delete file="${reports.dir}/index.html"/>
-        <move file="${temp.index}" tofile="${reports.dir}/index.html"/>
-    </target>
-    <target name="junit.javax" depends="junit.javax.io, junit.javax.util, junit.javax.lang"/>
-    <target name="junit.server.config" depends="junit.server.config.log, junit.server.config.threadpool, junit.server.config.transform, junit.server.config.core, junit.server.config.management"/>
-    <target name="junit.toolbox" depends="junit.toolbox.config, junit.toolbox.xml, junit.toolbox.net, junit.toolbox.log"/>
-    <target name="junit.ais-core" depends="junit.javax, junit.toolbox, junit.server.config, junit.ais-core.transforms, junit.security.auth, junit.crypto, junit.model, junit.server"/>
-    <target name="junit.backend" depends="junit.backend.hsc, junit.backend.ims, junit.backend.ims.live, junit.backend.cics, junit.hostconnector2"/>
-    <target name="test" description="Runs the tests." depends="init, test.compile, junit.report.clean, junit.ais-core, junit.backend, junit.report"/>
-    <!-- Build and Zip -->
-    <target name="zip" depends="dist" description="Creates the final ${zip-file} (does it all)">
-        <property name="zip-file" location="${build.dir}/${zipFileBaseName}-build${build.id}.zip"/>
-        <delete file="${zip-file}" quiet="true"/>
-        <zip zipfile="${zip-file}" basedir="${build.dist}"/>
-    </target>
-    <target name="nightly-build" depends="init, clean, dist, verify, test" description="Creates a nightly build (does it all)">
-    </target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/postRun.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/postRun.xml
deleted file mode 100644
index 275e7d9..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/postRun.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="project" default="default">
-
-    <target name="default" >
-        <java classname="Test2" classpath="../bin"></java>
-    </target>
-</project>
-
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/preRun.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/preRun.xml
deleted file mode 100644
index 8d41133..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/preRun.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="project" default="default">
-
-	<target name="default">
-		<delete file="../test plugin/Test2.java" />
-		<copy file="../testresources/Test2.java" todir="../test plugin/" />
-	</target>
-</project>
-
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/projectOnly.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/projectOnly.xml
deleted file mode 100644
index 35ece5b..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/projectOnly.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-<project ></project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/refid.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/refid.xml
deleted file mode 100644
index a9f4ae1..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/refid.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<project default="1">
-	<path id="project.class.path">
-		<pathelement location="lib/" />
-		<pathelement path="${java.class.path}/" />
-		<pathelement path="${additional.path}" />
-	</path>
-
-	<target name="1">
-		<path id="project.class.path2">
-			<path refid="project.class.path" />
-		</path>
-	</target>
-	
-	<target name="compile">
-			<javac srcdir="src"
-			       destdir="dst"
-			       classpathref=""
-			       sourcepathref=""
-			       bootclasspathref=""
-			       debug="on" />
-		</target>
-	
-	<target name= "depends" depends=" compile  , 1 ">
-	</target>
-	
-	<property name="name with spaces" value="value with spaces"/>
-
-	
-	<fileset dir="dir" id="filesetTest">
-	    <include name="include"/>
-	    <exclude name="exclude"/>
-	</fileset>
-	
-	<patternset id="patternSetTest">
-			<include name="*.xml"/>
-			<exclude name="**/*Test*"/>
-	</patternset>
-	
-	<patternset id="patternSetTestBad">
-		<includesfile name="nothere"/>
-	</patternset>
-
-	<echo>${name with spaces}</echo>
-	
-	<fileset refid="filesetTest">
-		<patternset refid="patternSetTest"></patternset>
-		<patternset refid="patternSetTestBad"></patternset>
-	</fileset>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/russianbuild.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/russianbuild.xml
deleted file mode 100644
index d853566..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/russianbuild.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<project name="test" default="init" basedir=".">
-
-	<target name="init">
-		<!-- displays Hello in Russian -->
-		<echo message="Çäðàâñòâóéòå"/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/taskdef.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/taskdef.xml
deleted file mode 100644
index c912b71..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/taskdef.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<project default="type">
-
-	<taskdef name="mine" classname="org.eclipse.ant.tests.ui.support.tasks.AntTestTask" classpath="antUITestsSupport.jar">
-	</taskdef>
-
-	<target name="type">
-
-	</target>
-
-	<mine></mine>
-</project>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test1.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test1.xml
deleted file mode 100644
index 6f60a32..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test1.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-<bla>
-  <blub></blub>
-  <klick>
-    <gurgel></gurgel>
-    <hal
-    <klack/>
-    <humpf/>
-  </klick>
-</bla>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test2.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test2.xml
deleted file mode 100644
index 1ca8765..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test2.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<bla>
-  <blub></blub>
-  <klick>
-    <gurgel></gurgel>
-    <hal></hal>
-    <klack/>
-    <humpf/>
-  </klick>
-</bla>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test3.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test3.xml
deleted file mode 100644
index 674088e..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test3.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<bla>
-  <blub>
-  </blub>
-</
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test4.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test4.xml
deleted file mode 100644
index fd60f79..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test4.xml
+++ /dev/null
@@ -1 +0,0 @@
-<target name="main"><mk
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test5.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test5.xml
deleted file mode 100644
index c297d95..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test5.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<project name="main">
-	<target name="bla" />
-	<property name="prop1" value="val1"/>
-	<property name="prop2" value="val2"/>
-	<property name="prop3" value="val3"/>
-<g
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImported.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImported.xml
deleted file mode 100644
index 5b03f80..0000000
--- a/ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImported.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<project name="toBeImported" default="import-default">
-
-	<target name="import-default" depends="depends">
-		<echo>import-default</echo>
-	</target>
-
-	<target name="depends">
-		<echo>depends</echo>
-	</target>
-</project>
-
diff --git a/ant/org.eclipse.ant.tests.ui/testresources/Test2.java b/ant/org.eclipse.ant.tests.ui/testresources/Test2.java
deleted file mode 100644
index 573faff..0000000
--- a/ant/org.eclipse.ant.tests.ui/testresources/Test2.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Created on Sep 21, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-
-/**
- * @author Administrator
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public class Test2 {
-
-	public static void main(String[] args) {
-		
-		System.out.println("preRuntest");
-	}
-}
diff --git a/platform/org.eclipse.platform/.classpath b/platform/org.eclipse.platform/.classpath
deleted file mode 100644
index 618ac00..0000000
--- a/platform/org.eclipse.platform/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry output="bin-intro" kind="src" path="src-intro"/>
-	<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/platform/org.eclipse.platform/.cvsignore b/platform/org.eclipse.platform/.cvsignore
deleted file mode 100644
index 2f6d5a5..0000000
--- a/platform/org.eclipse.platform/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-bin-intro
diff --git a/platform/org.eclipse.platform/.project b/platform/org.eclipse.platform/.project
deleted file mode 100644
index e28fafc..0000000
--- a/platform/org.eclipse.platform/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.platform</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.ui.intro</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/platform/org.eclipse.platform/SplashFinal_500x330.psd b/platform/org.eclipse.platform/SplashFinal_500x330.psd
deleted file mode 100644
index b82e877..0000000
--- a/platform/org.eclipse.platform/SplashFinal_500x330.psd
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/about.html b/platform/org.eclipse.platform/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/platform/org.eclipse.platform/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/platform/org.eclipse.platform/about.ini b/platform/org.eclipse.platform/about.ini
deleted file mode 100644
index cbdcb66..0000000
--- a/platform/org.eclipse.platform/about.ini
+++ /dev/null
@@ -1,25 +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 feature details in the "About" 
-# dialog (translated).  Maximum 15 lines and 75 characters per line.
-aboutText=%blurb
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# ($nl$/ prefix to permit locale-specific translations of entire file)
-welcomePage=$nl$/welcome.xml
-
-# 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
-tipsAndTricksHref=/org.eclipse.platform.doc.user/tips/platform_tips.html
-
diff --git a/platform/org.eclipse.platform/about.mappings b/platform/org.eclipse.platform/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/platform/org.eclipse.platform/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/platform/org.eclipse.platform/about.properties b/platform/org.eclipse.platform/about.properties
deleted file mode 100644
index 90a4aa2..0000000
--- a/platform/org.eclipse.platform/about.properties
+++ /dev/null
@@ -1,28 +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 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
-###############################################################################
-# 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\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2000, 2004.  All rights reserved.\n\
-Visit http://www.eclipse.org/platform\n\
-\n\
-This product includes software developed by the\n\
-Apache Software Foundation http://www.apache.org/
diff --git a/platform/org.eclipse.platform/build.properties b/platform/org.eclipse.platform/build.properties
deleted file mode 100644
index 30e9bf8..0000000
--- a/platform/org.eclipse.platform/build.properties
+++ /dev/null
@@ -1,34 +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 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
-###############################################################################
-bin.includes = about.html,\
-               about.ini,\
-               about.mappings,\
-               about.properties,\
-               eclipse_lg.gif,\
-               eclipse.gif,\
-               eclipse32.gif,\
-               plugin_customization.ini,\
-               plugin_customization.properties,\
-               plugin.xml,\
-               plugin.properties,\
-               splash.bmp,\
-               css/,\
-               cheatsheets/,\
-               welcome.xml,\
-               introContent.xml,\
-               platform.jar,\
-               intro.gif
-src.includes = about.html,\
-               launchersrc.zip,\
-               platformsrc.zip
-source.startup.jar = src/
-source.platform.jar = src-intro/
-manifest.startup.jar = META-INF/MANIFEST.MF
\ No newline at end of file
diff --git a/platform/org.eclipse.platform/cheatsheets/CVS_1.xml b/platform/org.eclipse.platform/cheatsheets/CVS_1.xml
deleted file mode 100644
index ca75638..0000000
--- a/platform/org.eclipse.platform/cheatsheets/CVS_1.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?> 
-<cheatsheet title="CVS - Merging from one branch to another">
-
-	<intro 
-		href="/org.eclipse.platform.doc.user/reference/ref-cheatsheets.htm">
-		<description>
-This cheat sheet will automatically launch wizards, perform actions, and guide you through the individual steps to merge changes from a CVS branch into another branch, or into HEAD. To learn more about using cheat sheets or to see a list of available cheat sheets click help (?).To start working on this cheat sheet, click the "Click to begin" button below.
-		</description>
-	</intro>
-
-	<item
-		href="/org.eclipse.platform.doc.user/tasks/tasks-100b.htm"
-		title="Determine Branch and Version Information">
-		<description>
-In this step you must determine the name of the branch or version that contains your changes and the version from which the branch was created. This is a manual task, you will need to perform the work and click the "Click to complete" button to move to the next step. 
-		</description>
-	</item>
-
-	<item
-		href="/org.eclipse.platform.doc.user/tasks/tasks-100b.htm"
-		title="Load the Destination into your Workspace">
-		<description>
-Select the project and choose Replace With &gt; Another Branch or Version from the context menu. Then select the branch to replace with. In this step you must ensure that the destination is loaded into your workspace. This is a manual task, you will need to perform the work and click the "Click to complete" button to move to the next step.
-		</description>
-	</item>
-
-	<item
-		href="/org.eclipse.platform.doc.user/tasks/tasks-100b.htm" 
-		title="Merge Details">
-		<description>
-Select the project, choose Team &gt; Merge and complete the wizard as required. This step specifies the details of the merge.  This is a manual task, you will need to perform the work and click the "Click to complete" button to move to the next step.
-		</description>
-	</item>
-
-	<item
-		href="/org.eclipse.platform.doc.user/tasks/tasks-100b.htm"
-		title="Work with the Merge Editor">
-		<description>
-In the Merge editor manually merge the changes. This step loads the required changes into the workspace. This is a manual task, you will need to perform the work and click the "Click to complete" button to move to the next step.
-		</description>
-	</item>
-
-	<item
-		href="/org.eclipse.platform.doc.user/tasks/tasks-100b.htm"
-		title="Commit your changes">
-		<description>
-Select Team &gt; Synchronize with Repository and then commit all the changes to the repository. This step finalizes the transfer of the changes from the workspace to the CVS repository. This is a manual task, you will need to perform the work and click the "Click to complete" button to move to the next step.
-		</description>
-	</item>
-
-</cheatsheet>
\ No newline at end of file
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/background.jpg b/platform/org.eclipse.platform/css/graphics/contentpage/background.jpg
deleted file mode 100644
index ce1cada..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/background.jpg
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/backgroundcurve.gif b/platform/org.eclipse.platform/css/graphics/contentpage/backgroundcurve.gif
deleted file mode 100644
index 8c5ec1d..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/backgroundcurve.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/content_background.jpg b/platform/org.eclipse.platform/css/graphics/contentpage/content_background.jpg
deleted file mode 100644
index ce1cada..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/content_background.jpg
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/overview_wtr.jpg b/platform/org.eclipse.platform/css/graphics/contentpage/overview_wtr.jpg
deleted file mode 100644
index 733e48c..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/overview_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/samples_wtr.jpg b/platform/org.eclipse.platform/css/graphics/contentpage/samples_wtr.jpg
deleted file mode 100644
index 78e703a..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/samples_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/section1.gif b/platform/org.eclipse.platform/css/graphics/contentpage/section1.gif
deleted file mode 100644
index 6147513..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/section1.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/section2.gif b/platform/org.eclipse.platform/css/graphics/contentpage/section2.gif
deleted file mode 100644
index 0ee148b..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/section2.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/section3.gif b/platform/org.eclipse.platform/css/graphics/contentpage/section3.gif
deleted file mode 100644
index b5d24e6..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/section3.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/section4.gif b/platform/org.eclipse.platform/css/graphics/contentpage/section4.gif
deleted file mode 100644
index 258d4a8..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/section4.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/tutorials_wtr.jpg b/platform/org.eclipse.platform/css/graphics/contentpage/tutorials_wtr.jpg
deleted file mode 100644
index e74c7c0..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/tutorials_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/whatsnew_wtr.jpg b/platform/org.eclipse.platform/css/graphics/contentpage/whatsnew_wtr.jpg
deleted file mode 100644
index c2a42da..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/whatsnew_wtr.jpg
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/contentpage/wordmark.gif b/platform/org.eclipse.platform/css/graphics/contentpage/wordmark.gif
deleted file mode 100644
index 27ca85d..0000000
--- a/platform/org.eclipse.platform/css/graphics/contentpage/wordmark.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/overview48.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/overview48.gif
deleted file mode 100644
index 7da24bd..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/overview48.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/overview48sel.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/overview48sel.gif
deleted file mode 100644
index 3d1c45b..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/overview48sel.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/overview72.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/overview72.gif
deleted file mode 100644
index d34b4b3..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/overview72.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/samples48.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/samples48.gif
deleted file mode 100644
index 3213de6..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/samples48.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/samples48sel.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/samples48sel.gif
deleted file mode 100644
index f9c0469..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/samples48sel.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/samples72.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/samples72.gif
deleted file mode 100644
index 4c63a9a..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/samples72.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials48.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials48.gif
deleted file mode 100644
index 1a3f06a..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials48.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials48sel.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials48sel.gif
deleted file mode 100644
index 3d687bd..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials48sel.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials72.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials72.gif
deleted file mode 100644
index a2aa343..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/tutorials72.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/wb48.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/wb48.gif
deleted file mode 100644
index c2fd06a..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/wb48.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew48.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew48.gif
deleted file mode 100644
index 2bfb9be..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew48.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew48sel.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew48sel.gif
deleted file mode 100644
index 0da843f..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew48sel.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew72.gif b/platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew72.gif
deleted file mode 100644
index 74bf6ff..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/ctool/whatsnew72.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/dtool/back.gif b/platform/org.eclipse.platform/css/graphics/icons/dtool/back.gif
deleted file mode 100644
index f0d0929..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/dtool/back.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/dtool/forward.gif b/platform/org.eclipse.platform/css/graphics/icons/dtool/forward.gif
deleted file mode 100644
index dbe58b2..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/dtool/forward.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/dtool/overview.gif b/platform/org.eclipse.platform/css/graphics/icons/dtool/overview.gif
deleted file mode 100644
index 2bc7b0d..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/dtool/overview.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/dtool/restore_welcome.gif b/platform/org.eclipse.platform/css/graphics/icons/dtool/restore_welcome.gif
deleted file mode 100644
index 4997b20..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/dtool/restore_welcome.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/dtool/samples.gif b/platform/org.eclipse.platform/css/graphics/icons/dtool/samples.gif
deleted file mode 100644
index 5cf3cae..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/dtool/samples.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/dtool/tutorials.gif b/platform/org.eclipse.platform/css/graphics/icons/dtool/tutorials.gif
deleted file mode 100644
index 63826a5..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/dtool/tutorials.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/dtool/whatsnew.gif b/platform/org.eclipse.platform/css/graphics/icons/dtool/whatsnew.gif
deleted file mode 100644
index 8056c99..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/dtool/whatsnew.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/back.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/back.gif
deleted file mode 100644
index 1c81cb6..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/back.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/forward.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/forward.gif
deleted file mode 100644
index 3e4a4f4..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/forward.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/overview.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/overview.gif
deleted file mode 100644
index 3fe629a..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/overview.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/overview48.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/overview48.gif
deleted file mode 100644
index 8e2f8c1..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/overview48.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/overview48sel.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/overview48sel.gif
deleted file mode 100644
index 1275a4a..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/overview48sel.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/overview72.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/overview72.gif
deleted file mode 100644
index e3f7648..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/overview72.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/restore_welcome.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/restore_welcome.gif
deleted file mode 100644
index 7736bce..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/restore_welcome.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/samples.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/samples.gif
deleted file mode 100644
index c695884..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/samples.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/samples48.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/samples48.gif
deleted file mode 100644
index 63d405b..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/samples48.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/samples48sel.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/samples48sel.gif
deleted file mode 100644
index 4c3135d..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/samples48sel.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/samples72.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/samples72.gif
deleted file mode 100644
index 9216426..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/samples72.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials.gif
deleted file mode 100644
index a18d7dd..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials48.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials48.gif
deleted file mode 100644
index 718ca6c..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials48.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials48sel.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials48sel.gif
deleted file mode 100644
index 10680e5..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials48sel.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials72.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials72.gif
deleted file mode 100644
index bab3498..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/tutorials72.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/wb48.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/wb48.gif
deleted file mode 100644
index 50ca287..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/wb48.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew.gif
deleted file mode 100644
index f022324..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew48.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew48.gif
deleted file mode 100644
index 6e00d7a..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew48.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew48sel.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew48sel.gif
deleted file mode 100644
index be9fa0c..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew48sel.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew72.gif b/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew72.gif
deleted file mode 100644
index 410093b..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/etool/whatsnew72.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/community_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/community_obj.gif
deleted file mode 100644
index 5d132a8..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/community_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/communityhov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/communityhov_obj.gif
deleted file mode 100644
index acb2a58..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/communityhov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/features_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/features_obj.gif
deleted file mode 100644
index 364fd48..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/features_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/featureshov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/featureshov_obj.gif
deleted file mode 100644
index fbfdf03..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/featureshov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapp_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapp_obj.gif
deleted file mode 100644
index ce00d50..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapp_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapphov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapphov_obj.gif
deleted file mode 100644
index 35e9f58..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapphov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapplet_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapplet_obj.gif
deleted file mode 100644
index b19a952..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapplet_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapplethov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapplethov_obj.gif
deleted file mode 100644
index 5da3db9..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/javaapplethov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/javadev_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/javadev_obj.gif
deleted file mode 100644
index f6526a2..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/javadev_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/javadevhov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/javadevhov_obj.gif
deleted file mode 100644
index 36b47d3..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/javadevhov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/migrate_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/migrate_obj.gif
deleted file mode 100644
index 0c2fe88..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/migrate_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/migratehov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/migratehov_obj.gif
deleted file mode 100644
index ee34e2a..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/migratehov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/new_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/new_obj.gif
deleted file mode 100644
index f46b81b..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/new_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/newhov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/newhov_obj.gif
deleted file mode 100644
index 593e63b..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/newhov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/plugin_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/plugin_obj.gif
deleted file mode 100644
index d92d2c5..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/plugin_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/pluginhov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/pluginhov_obj.gif
deleted file mode 100644
index 1de8ccc..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/pluginhov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/rcpapp_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/rcpapp_obj.gif
deleted file mode 100644
index 830ab56..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/rcpapp_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/rcpapphov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/rcpapphov_obj.gif
deleted file mode 100644
index 5bd80a9..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/rcpapphov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/samplepurp_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/samplepurp_obj.gif
deleted file mode 100644
index c4e56fc..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/samplepurp_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/samplepurphov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/samplepurphov_obj.gif
deleted file mode 100644
index 60481e2..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/samplepurphov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/samplered_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/samplered_obj.gif
deleted file mode 100644
index f6d104e..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/samplered_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/sampleredhov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/sampleredhov_obj.gif
deleted file mode 100644
index 687d6b2..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/sampleredhov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/script_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/script_obj.gif
deleted file mode 100644
index b48b7cd..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/script_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/scripthov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/scripthov_obj.gif
deleted file mode 100644
index d67203e..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/scripthov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/swtapp_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/swtapp_obj.gif
deleted file mode 100644
index 9ba9a33..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/swtapp_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/swtapphov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/swtapphov_obj.gif
deleted file mode 100644
index c4fbb5d..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/swtapphov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/teamsup_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/teamsup_obj.gif
deleted file mode 100644
index 4b9def9..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/teamsup_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/teamsuphov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/teamsuphov_obj.gif
deleted file mode 100644
index 4bdf819..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/teamsuphov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/updates_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/updates_obj.gif
deleted file mode 100644
index 1608b30..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/updates_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/updateshov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/updateshov_obj.gif
deleted file mode 100644
index 22a0ace..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/updateshov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/wbbasics_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/wbbasics_obj.gif
deleted file mode 100644
index 8b82563..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/wbbasics_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/icons/obj48/wbbasicshov_obj.gif b/platform/org.eclipse.platform/css/graphics/icons/obj48/wbbasicshov_obj.gif
deleted file mode 100644
index 230be9c..0000000
--- a/platform/org.eclipse.platform/css/graphics/icons/obj48/wbbasicshov_obj.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/rootpage/background.jpg b/platform/org.eclipse.platform/css/graphics/rootpage/background.jpg
deleted file mode 100644
index 969fcf3..0000000
--- a/platform/org.eclipse.platform/css/graphics/rootpage/background.jpg
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/rootpage/brandmark.gif b/platform/org.eclipse.platform/css/graphics/rootpage/brandmark.gif
deleted file mode 100644
index 93f25f7..0000000
--- a/platform/org.eclipse.platform/css/graphics/rootpage/brandmark.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/rootpage/dots.gif b/platform/org.eclipse.platform/css/graphics/rootpage/dots.gif
deleted file mode 100644
index 6621b7c..0000000
--- a/platform/org.eclipse.platform/css/graphics/rootpage/dots.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/graphics/swt/form_banner.gif b/platform/org.eclipse.platform/css/graphics/swt/form_banner.gif
deleted file mode 100644
index aebc0b2..0000000
--- a/platform/org.eclipse.platform/css/graphics/swt/form_banner.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/overview/overview.css b/platform/org.eclipse.platform/css/overview/overview.css
deleted file mode 100644
index 859a390..0000000
--- a/platform/org.eclipse.platform/css/overview/overview.css
+++ /dev/null
@@ -1,69 +0,0 @@
-body {

-	background-image : url(../graphics/contentpage/overview_wtr.jpg);

-}

-

-.page { min-height : 700px; }

-

-/* show the "selected" image for this page */

-#navigation-links a#overview img, #navigation-links a#overview:hover img { background-image : url(../graphics/icons/ctool/overview48sel.gif); }

-

-/* 

- * Set up the Overview links to be displayed in two columns

- * that are centered in the middle of the page.

- */

-

-#overview-links {

-	text-align : left;

-	width : 760px;

-	/* To center in Moz (have to use text-align for IE) */

-	margin : 0px auto;

-}

-

-#overview-links a { 

-	width : 370px;

-	text-align : left; 

-	margin-left : 5px;

-	margin-right : 5px;

-	margin-top : 5px;

-	margin-bottom : -20px;

-	vertical-align : top;

-}

-

-#overview-links > a { vertical-align : middle; }

-

-#overview-links a img {

-	height : 57px;

-	width : 57px;

-	vertical-align : middle;

-}	

-

-#overview-links a .link-label {

-	display : block;

-	width : 300px;

-	position : relative;

-	top : -50px;

-	left : 60px;

-}

-

-#overview-links a p .text {

-	display : block;

-	width : 300px;

-	position : relative;

-	top : -45px;

-	left : 53px;

-}

-

-/* Special case for Mozilla, because the links are displayed

-   in 1 vertical column instead of 2 centered columns */

-#overview-links > a { 	width : 700px; }

-#overview-links a > .link-label { width : 700px; }

-#overview-links a p > .text { width : 700px; }

-

-#overview-links a:hover { border-right : 5px; }

-

-a#basics img { background-image : url(../graphics/icons/obj48/wbbasics_obj.gif); }

-a#basics:hover img { background-image : url(../graphics/icons/obj48/wbbasicshov_obj.gif); }

-

-a#team img { background-image : url(../graphics/icons/obj48/teamsup_obj.gif); }

-a#team:hover img { background-image : url(../graphics/icons/obj48/teamsuphov_obj.gif); }

-

diff --git a/platform/org.eclipse.platform/css/overview/swt.properties b/platform/org.eclipse.platform/css/overview/swt.properties
deleted file mode 100644
index 540306b..0000000
--- a/platform/org.eclipse.platform/css/overview/swt.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-
-overview.layout.ncolumns = 2
-overview.page-content.overview-links.layout.vspacing = 35
-
-overview.page-content.overview-links.basics.link-icon = css/graphics/icons/obj48/wbbasics_obj.gif
-overview.page-content.overview-links.team.link-icon = css/graphics/icons/obj48/teamsup_obj.gif
-overview.page-content.overview-links.layout.ncolumns = 2
-
-overview.subtitle-id = overview/page-content/page-title
-overview.description-id = overview/page-content/page-description
\ No newline at end of file
diff --git a/platform/org.eclipse.platform/css/root.css b/platform/org.eclipse.platform/css/root.css
deleted file mode 100644
index 629eae9..0000000
--- a/platform/org.eclipse.platform/css/root.css
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/css/root_swt.properties b/platform/org.eclipse.platform/css/root_swt.properties
deleted file mode 100644
index bbbdb55..0000000
--- a/platform/org.eclipse.platform/css/root_swt.properties
+++ /dev/null
@@ -1,29 +0,0 @@
-
-root.links-background.page-links.overview.link-icon = css/graphics/icons/etool/overview72.gif
-root.links-background.page-links.tutorials.link-icon = css/graphics/icons/etool/tutorials72.gif
-root.links-background.page-links.samples.link-icon= css/graphics/icons/etool/samples72.gif
-root.links-background.page-links.news.link-icon = css/graphics/icons/etool/whatsnew72.gif
-root.action-links.workbench.link-icon = css/graphics/icons/etool/wb48.gif
-
-root.links-background.page-links.overview.hover-icon = css/graphics/icons/ctool/overview72.gif
-root.links-background.page-links.tutorials.hover-icon = css/graphics/icons/ctool/tutorials72.gif
-root.links-background.page-links.samples.hover-icon = css/graphics/icons/ctool/samples72.gif
-root.links-background.page-links.news.hover-icon = css/graphics/icons/ctool/whatsnew72.gif
-root.action-links.workbench.hover-icon = css/graphics/icons/ctool/wb48.gif
-
-
-root.links-background.page-links.overview.small-link-icon = css/graphics/icons/etool/overview48.gif
-root.links-background.page-links.tutorials.small-link-icon = css/graphics/icons/etool/tutorials48.gif
-root.links-background.page-links.samples.small-link-icon = css/graphics/icons/etool/samples48.gif
-root.links-background.page-links.news.small-link-icon = css/graphics/icons/etool/whatsnew48.gif
-root.action-links.workbench.small-link-icon = css/graphics/icons/etool/wb48.gif
-
-root.links-background.page-links.overview.small-hover-icon = css/graphics/icons/ctool/overview48.gif
-root.links-background.page-links.tutorials.small-hover-icon = css/graphics/icons/ctool/tutorials48.gif
-root.links-background.page-links.samples.small-hover-icon = css/graphics/icons/ctool/samples48.gif
-root.links-background.page-links.news.small-hover-icon = css/graphics/icons/ctool/whatsnew48.gif
-root.action-links.workbench.small-hover-icon = css/graphics/icons/ctool/wb48.gif
-
-root.layout.ncolumns = 1
-root.links-background.page-links.layout.hspacing = 40
-root.layout.vspacing = 35
diff --git a/platform/org.eclipse.platform/css/samples/samples.css b/platform/org.eclipse.platform/css/samples/samples.css
deleted file mode 100644
index 3ccb2cd..0000000
--- a/platform/org.eclipse.platform/css/samples/samples.css
+++ /dev/null
@@ -1,94 +0,0 @@
-body {

-	background-image : url(../graphics/contentpage/samples_wtr.jpg);

-}

-

-.page { min-height : 700px; }

-

-/* show the "selected" image for this page */

-#navigation-links a#samples img, #navigation-links a#samples:hover img { background-image : url(../graphics/icons/ctool/samples48sel.gif); }

-

-/* Lay out the real content of the samples page: */

-

-.samples-group {

-	width : 750px;

-	/* To center in Moz (have to use text-align for IE) */	

-	margin : 0px auto;

-	margin-bottom : 10px;

-	text-align : left;

-	float : none;

-	clear : both;

-}

-

-.samples-group H4 { margin-top : 10px; }

-

-.sample-link { 

-	width : 360px;

-	text-align : left; 

-	margin-left : 5px;

-	margin-right : 5px;

-	margin-top : 10px;

-	margin-bottom : -30px;

-	vertical-align : top;

-}

-

-/* specialize the swt samples group to be spread over only 1 column */

-#swt .sample-link { 

-	width : 720px;

-}

-

-.samples-group > .sample-link {

-	float : left;

-	height : 150px;

-	vertical-align : middle;

-}

-

-

-.sample-link .link-label {

-	display : block;

-	width : 300px;

-	position : relative;

-	top : -50px;

-	left : 60px;

-}

-

-#swt .sample-link .link-label {

-	width : 600px;	

-} 

-

-.sample-link p .text {

-	display : block;

-	width : 300px;

-	position : relative;

-	top : -45px;

-	left : 53px;

-}

-

-#swt .sample-link .text {

-	width : 620px;	

-} 

-

-.sample-link img {

-	height : 56px;

-	width : 56px;

-	vertical-align : middle;

-}

-

-.sample-link:hover { border-right : 0px; }

-

-

-#swt .sample-link img {

-	background-image : url(../graphics/icons/obj48/samplered_obj.gif);

-}

-

-#swt .sample-link:hover img {

-	background-image : url(../graphics/icons/obj48/sampleredhov_obj.gif);

-}

-

-#workbench .sample-link img {

-	background-image : url(../graphics/icons/obj48/samplepurp_obj.gif);

-}

-

-#workbench .sample-link:hover img {

-	background-image : url(../graphics/icons/obj48/samplepurphov_obj.gif);

-}

-

diff --git a/platform/org.eclipse.platform/css/samples/swt.properties b/platform/org.eclipse.platform/css/samples/swt.properties
deleted file mode 100644
index 1976209..0000000
--- a/platform/org.eclipse.platform/css/samples/swt.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-samples.link-icon = css/graphics/icons/obj48/samplepurp_obj.gif
-samples.page-content.swt.swt-examples.link-icon = css/graphics/icons/obj48/samplered_obj.gif
-
-samples.page-content.layout.vspacing = 40
-samples.page-content.swt.layout.ncolumns = 2
-samples.page-content.swt.layout.vspacing = 30
-samples.page-content.swt.layout.hspacing = 30
-samples.page-content.workbench.layout.ncolumns = 2
-samples.page-content.workbench.layout.vspacing = 30
-samples.page-content.workbench.layout.hspacing = 30
-
-description-style-id = group-description
-samples.subtitle-id = samples/page-content/page-title
-samples.description-id = samples/page-content/page-description
\ No newline at end of file
diff --git a/platform/org.eclipse.platform/css/shared.css b/platform/org.eclipse.platform/css/shared.css
deleted file mode 100644
index a82597c..0000000
--- a/platform/org.eclipse.platform/css/shared.css
+++ /dev/null
@@ -1,264 +0,0 @@
-/* 

- * Set up general fonts, sizes and colors 

- */

-body { font-family : Arial, sans-serif; }

-

-H1, H2, H3, H4, p, a { color : #4D4D4D; }

-

-.intro-header H1 {

-	font-size : 16pt;

-	font-weight : normal;

-	color : #E5E5E5;

-}

-

-h2 {

-	font-size : 13pt;

-	font-weight : normal;

-	color : #7B8694;

-}

-/* For regular div labels */

-H4 .div-label {

-	font-size : 10pt;

-	font-weight : bold;

-}

-

-/* For the main page content's title */

-#content-header H4 .div-label {

-	font-size : 14pt;

-	font-weight : normal;

-	color : #8C96A2;

-	float : none;

-	clear : both;

-}

-

-.page-description { 

-	font-size : 10pt;

-	float : none;

-	clear : both;

-}

-

-a {

-	font-weight : bold;

-	text-decoration : none;

-	color : #4D4D4D;

-}

-

-a .link-label {

-	font-size : 10pt;

-	font-weight : normal;

-}

-

-#navigation-links a .link-label {

-	font-size : 9pt;

-	font-weight : normal;

-	color : #E5E5E5;

-}

-

-a .text {

-	font-size : 8pt;

-	font-weight : normal;

-}

-

-p .group-description {

-	font-size : 10pt;

-	font-weight : normal;

-}

-

-

-/* 

- * Set up other general properties like padding/margins

- */

-html, body { width : 100%; height : 100%; }

-

-html, body, div, h1, h4, p, a { margin : 0px; padding : 0px; }

-

-.intro-header H1 { padding-top : 10px; margin-left : 10px; }

-

-/* For regular div labels */

-#page-content div H4 {

-	padding : 10px;

-	padding-bottom : 0px;

-}

-

-/* For the main page content's div label */

-#page-content #content-header H4 {

-	padding-bottom : 10px;

-	padding-top : 0px;

-}

-

-/* special case for Mozilla's main content-header label.

-   Mozilla 1.4 needs more room at the top */

-#page-content > #content-header H4 { padding-top : 10px; }

-

-/* Needed in IE to get shift+tab to show the active image properly */

-a:active {

-	border : solid 0px;

-}

-

-a img {

-	border-width : 0;

-	background-repeat : no-repeat;

-}

-

-/*

- * to get scrollbars working in both IE and Mozilla

- */

-html,body { overflow: auto; }

-html>body { overflow: visible; }

-

-/*

- * Set up the body, decorative background, and navigation for the content 

- * pages. 

- * Note: the root page handles its own background and navigation; these

- * settings primarily apply to the content pages

- */

-body {

-	background-color : #FFFFFF;

-	background-repeat : no-repeat;

-	background-position : bottom right;

-}

-

-#background-image {

-	width : 100%;

-	min-width : 770px;

-	height : 164px;

-	background-image : url(graphics/contentpage/background.jpg);

-	background-repeat : no-repeat;

-	background-position : top left;	

-	position : absolute;

-	top : 0px;

-	z-index : -100;

-}

-

-#curve-image { 

-	width : 100%;

-	height : 164px;

-	position : absolute;

-	top : 0px;

-	background-image : url(graphics/contentpage/backgroundcurve.gif);

-	background-repeat : no-repeat;

-	background-position : top center;

-	margin : 0;

-	padding : 0;

-}

-

-.intro-header {	background-color : transparent; z-index : 100;}

-

-body, .page{

-	min-width : 770px;

-	/* since IE doesn't support min-width, try expression */

-	width:expression(document.body.clientWidth < 770? "770px": "auto" );

-	min-height : 425px;

-	height : 100%;

-	height : expression(document.body.clientHeight < 425? "425px": "100%" );

-}

-

-.page { 

-	background-image : url(graphics/contentpage/wordmark.gif);

-	background-repeat : no-repeat;

-	background-position : bottom left;

-	min-height : 475px;

-}

-

-#page-content {

-	background-repeat : no-repeat;

-	background-position : bottom right;

-	height : 70%;

-}

-

-/* 

- * Lay out the navigation links 

- * (Root page does something similar for its navigation)

- */

-#navigation-links {

-	position : relative;

-	left : 10px;

-	top : 5px;

-	height : 60;

-	width : 98%;

-}

-

-#navigation-links a {

-	padding-left : 5px;

-	padding-right : 5px;

-	float : left;

-	text-align : center;

-}

-

-#navigation-links a img {

-	height : 52px;

-	width : 52px;

-	vertical-align : middle;

-}

-

-#navigation-links a .link-label { display : block; margin-top : 5px;}

-

-#navigation-links a .text { display : none; }

-

-#navigation-links a:hover, 

-#navigation-links a:focus 

-#navigation-links a:active { border-right : 0px;}

-

-/* properties for each of the navigation-links  */

-#navigation-links a#overview img { background-image : url(graphics/icons/etool/overview48.gif); }

-#navigation-links a#overview:hover img,

-#navigation-links a#overview:focus img,

-#navigation-links a#overview:active img { background-image : url(graphics/icons/ctool/overview48.gif); }

-/*#navigation-links a#overview:active img { background-image : url(graphics/icons/ctool/overview48sel.gif); }*/

-

-#navigation-links a#tutorials img { background-image : url(graphics/icons/etool/tutorials48.gif); }

-#navigation-links a#tutorials:hover img,

-#navigation-links a#tutorials:active img,

-#navigation-links a#tutorials:focus img { background-image : url(graphics/icons/ctool/tutorials48.gif); }

-/*#navigation-links a#tutorials:active img { background-image : url(graphics/icons/ctool/tutorials48sel.gif); }*/

-

-#navigation-links a#samples img { background-image : url(graphics/icons/etool/samples48.gif); }

-#navigation-links a#samples:hover img,

-#navigation-links a#samples:active img,

-#navigation-links a#samples:focus img { background-image : url(graphics/icons/ctool/samples48.gif); }

-/*#navigation-links a#samples:active img { background-image : url(graphics/icons/ctool/samples48sel.gif); }*/

-

-#navigation-links a#news img { background-image : url(graphics/icons/etool/whatsnew48.gif); }

-#navigation-links a#news:hover img,

-#navigation-links a#news:focus img,

-#navigation-links a#news:active img { background-image : url(graphics/icons/ctool/whatsnew48.gif); }

-/*#navigation-links a#news:active img { background-image : url(graphics/icons/ctool/whatsnew48sel.gif); }*/

-

-#navigation-links a#workbench { position : absolute;  right : 0px; top : -35px; text-align : right;}

-#navigation-links a#workbench .text { display : none; }

-#navigation-links a#workbench img { background-image : url(graphics/icons/etool/wb48.gif); width : 53px; height : 53px;}

-#navigation-links a#workbench:hover img,

-#navigation-links a#workbench:focus img,

-#navigation-links a#workbench:active img { background-image : url(graphics/icons/ctool/wb48.gif); }

-

-/* 

- * Lay out the page title and description 

- */

-h1, p { margin-left : 10px; } /* required in mozilla so the page description is properly indented */

-

-/* position the page content so that the page title overlays the bottom

- * of the background image, but make sure the content is always on top 

- * (using z-index) */

-#page-content {

-	float : none;

-	clear : both;

-	text-align : center;

-	margin-top : 35px;

-}

-

-.page > #page-content { margin-top : 50px; }

-

-#page-content p { 

-	padding-bottom : 15px; 

-	text-align : left; 

-	float : none;

-	clear : both;

-}

-

-#page-content #content-header H4, .page-description {

-	text-align : left;

-	margin-right : 10px;

-	float : none;

-	clear : both;

-}

-

diff --git a/platform/org.eclipse.platform/css/standby_root.css b/platform/org.eclipse.platform/css/standby_root.css
deleted file mode 100644
index 661d2c4..0000000
--- a/platform/org.eclipse.platform/css/standby_root.css
+++ /dev/null
@@ -1,121 +0,0 @@
-/* 

- * Set up general font colours, sizes, etc.  Some of these will override

- * settings from the shared CSS 

- */

-.intro-header H1 {

-	font-size : 15pt;

-}

-

-#page-links a .link-label, #action-links a .link-label {

-	font-size : 10pt;

-	font-weight : 600;

-	color : #E5E5E5;

-}

-

-#page-links a p .text, #action-links a p .text {

-	font-size : 10pt;

-	font-weight : 500;

-	color : #E5E5E5;

-}

-

-/*

- * Set up the content for the standby page.

- */

-body {

-	min-width : 230px;

-	/* since IE doesn't support min-width, use expression */

-	width:expression(document.body.clientWidth < 230? "230px": "auto" );

-	background-image : url(graphics/rootpage/background.jpg);

-	background-repeat : no-repeat;

-	background-position : top left;

-	background-color : #7169D1;

-}

-

-.page { 

-	background-image : url(graphics/rootpage/brandmark.gif);

-	background-repeat : no-repeat;

-	background-position : bottom left;

-	min-width : 230px;

-	/* since IE doesn't support min-width, use expression */

-	width:expression(document.body.clientWidth < 230? "230px": "auto" );

- 	min-height : 610px;

-	height : 100%;

-	height : expression(document.body.clientHeight < 450? "450px": "100%" );

-}

-

-/* 

- * Set up the navigation bar.  It should be centered in the middle

- * of the page

- */

-

-#links-background { 

-	width : 100%; 

- 	margin-top : 10%; 

-	margin-bottom : auto;

-	text-align : center;

-}

-

-#page-links a {

-	display : block;

-	width : 220px;

-	text-align : left; 

-	margin-left : auto;

-	margin-right : auto;

-	margin-top : 0px;

-	vertical-align : top;

-}

-#page-links a span, #page-links a p {

-	display : block;

-	width : 160px;

-	margin : 0px;

-	padding : 0px;

-}

-

-#page-links a .link-label {

-	position : relative;

-	left : 60px;

-	top : -50px;

-}

-

-#page-links a p .text {

-	position : relative;

-	left : 60px;

-	top : -50px;

-

-}

-

-#page-links a img {

-	height : 52px;

-	width : 52px;

-	vertical-align : middle;

-}

-

-#page-links a:hover,

-#page-links a:focus,

-#page-links a:active  { border : 0px; }

-

-#page-links a:hover p,

-#page-links a:focus p,

-#page-links a:active p  { margin : 0px; padding : 0px; }

-

-/* properties for each of the page-links  */

-a#overview img { background-image : url(graphics/icons/etool/overview48.gif); }

-a#overview:hover img,

-a#overview:focus img,

-a#overview:active img { background-image : url(graphics/icons/ctool/overview48.gif); }

-

-a#tutorials img { background-image : url(graphics/icons/etool/tutorials48.gif); }

-a#tutorials:hover img,

-a#tutorials:focus img,

-a#tutorials:active img { background-image : url(graphics/icons/ctool/tutorials48.gif); }

-

-a#samples img { background-image : url(graphics/icons/etool/samples48.gif); }

-a#samples:hover img,

-a#samples:focus img,

-a#samples:active img { background-image : url(graphics/icons/ctool/samples48.gif); }

-

-a#news img { background-image : url(graphics/icons/etool/whatsnew48.gif); }

-a#news:hover img,

-a#news:focus img,

-a#news:active img { background-image : url(graphics/icons/ctool/whatsnew48.gif); }

-

diff --git a/platform/org.eclipse.platform/css/standby_swt.properties b/platform/org.eclipse.platform/css/standby_swt.properties
deleted file mode 100644
index 5a5f0ac..0000000
--- a/platform/org.eclipse.platform/css/standby_swt.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-standby.links-background.page-links.overview.link-icon = css/graphics/icons/etool/overview72.gif
-standby.links-background.page-links.tutorials.link-icon = css/graphics/icons/etool/tutorials72.gif
-standby.links-background.page-links.samples.link-icon= css/graphics/icons/etool/samples72.gif
-standby.links-background.page-links.news.link-icon = css/graphics/icons/etool/whatsnew72.gif
-
-
-standby.links-background.page-links.overview.hover-icon = css/graphics/icons/ctool/overview72.gif
-standby.links-background.page-links.tutorials.hover-icon = css/graphics/icons/ctool/tutorials72.gif
-standby.links-background.page-links.samples.hover-icon = css/graphics/icons/ctool/samples72.gif
-standby.links-background.page-links.news.hover-icon = css/graphics/icons/ctool/whatsnew72.gif
-
-
-standby.links-background.page-links.layout.vspacing = 30
-standby.layout.vspacing = 35
-standby.show-link-description = false
-standby.show-home-page-navigation = false
\ No newline at end of file
diff --git a/platform/org.eclipse.platform/css/tutorials/swt.properties b/platform/org.eclipse.platform/css/tutorials/swt.properties
deleted file mode 100644
index c0ad472..0000000
--- a/platform/org.eclipse.platform/css/tutorials/swt.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-
-tutorials.page-content.layout.vspacing = 40
-
-tutorials.subtitle-id = tutorials/page-content/page-title
-tutorials.description-id = tutorials/page-content/page-description
\ No newline at end of file
diff --git a/platform/org.eclipse.platform/css/tutorials/tutorials.css b/platform/org.eclipse.platform/css/tutorials/tutorials.css
deleted file mode 100644
index 053efe8..0000000
--- a/platform/org.eclipse.platform/css/tutorials/tutorials.css
+++ /dev/null
@@ -1,79 +0,0 @@
-body {

-	background-image : url(../graphics/contentpage/tutorials_wtr.jpg);

-}

-

-.page { min-height : 700px; }

-

-/* show the "selected" image for this page */

-#navigation-links a#tutorials img, #navigation-links a#tutorials:hover img { background-image : url(../graphics/icons/ctool/tutorials48sel.gif); }

-

-/* 

- * Set up the content of the tutorials page into two

- * columns that are centered in the page

- */

-

-

-/* a group of tutorial links */

-.tutorials-group {

-	/* To center in Moz (have to use text-align for IE) */

-	margin-left : auto;

-	margin-right : auto;

-	width : 750px;

-	margin-bottom : 30px;

-	float : none;

-	clear : both;

-	text-align : left;

-}

-

-.tutorials-link { 

-	width : 360px;

-	text-align : left; 

-	margin-left : 5px;

-	margin-right : 5px;

-	margin-top : 10px;

-	margin-bottom : -20px;

-	vertical-align : top;

-}

-

-.tutorials-group > .tutorials-link {

-	float : left;

-	height : 150px;

-	vertical-align : middle;

-}

-

-

-.tutorials-link img  {

-	height : 57px;

-	width : 57px;

-	vertical-align : middle;

-}

-

-.tutorials-group h4 {

-	float : none;

-	clear : both;

-}

-

-p #group-description {

-	padding-bottom : 10px;

-	float : none;

-	clear : both;

-}

-

-.tutorials-link .link-label {

-	display : block;

-	width : 300px;

-	position : relative;

-	top : -50px;

-	left : 60px;

-}

-

-

-.tutorials-link p .text {

-	display : block;

-	width : 300px;

-	position : relative;

-	top : -45px;

-	left : 53px;

-}

-

-.tutorials-link:hover { border-right : 0px; }

diff --git a/platform/org.eclipse.platform/css/whatsnew/swt.properties b/platform/org.eclipse.platform/css/whatsnew/swt.properties
deleted file mode 100644
index be302da..0000000
--- a/platform/org.eclipse.platform/css/whatsnew/swt.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-
-news.page-content.news-links.layout.ncolumns = 2
-news.page-content.news-links.layout.vspacing = 30
-
-news.page-content.news-links.new-and-noteworthy.link-icon = css/graphics/icons/obj48/new_obj.gif
-news.page-content.news-links.migration.link-icon = css/graphics/icons/obj48/migrate_obj.gif
-news.page-content.news-links.updates.link-icon = css/graphics/icons/obj48/updates_obj.gif
-news.page-content.news-links.eclipse.link-icon = css/graphics/icons/obj48/community_obj.gif
-
-news.page-content.noteworthy-links.layout.ncolumns = 2
-news.page-content.noteworthy-links.layout.vspacing = 15 
-news.page-content.news-links.layout.vspacing = 15 
-news.page-content.layout.vspacing = 40 
-
-news.link-icon = css/graphics/icons/obj48/new_obj.gif
-
-news.subtitle-id = news/page-content/page-title
diff --git a/platform/org.eclipse.platform/css/whatsnew/whatsnew.css b/platform/org.eclipse.platform/css/whatsnew/whatsnew.css
deleted file mode 100644
index db426eb..0000000
--- a/platform/org.eclipse.platform/css/whatsnew/whatsnew.css
+++ /dev/null
@@ -1,129 +0,0 @@
-body {

-	background-image : url(../graphics/contentpage/whatsnew_wtr.jpg);

-}

-

-.page { min-height : 500px; }

-

-/* show the "selected" image for this page */

-#navigation-links a#news img, #navigation-links a#news:hover img { background-image : url(../graphics/icons/ctool/whatsnew48sel.gif); }

-

-/* 

- * Set up the content of the Whats New page to be displayed in 

- * two columns that are centered in the middle of the page.

- */

-

-#noteworthy-links {

-	text-align : left;

-	width : 760px;

-	/* To center in Moz (have to use text-align for IE) */	

-	margin: 0px auto;

-}

-

-#noteworthy-links a { 

-	width : 370px;

-	text-align : left; 

-	margin-left : 5px;

-	margin-right : 5px;

-	margin-top : 5px;

-	margin-bottom : -20px;

-	vertical-align : top;

-}

-

-#noteworthy-links > a { vertical-align : middle; }

-

-#noteworthy-links a img {

-	height : 57px;

-	width : 57px;

-	vertical-align : middle;

-}

-

-#noteworthy-links a .link-label {

-	display : block;

-	width : 300px;

-	position : relative;

-	top : -50px;

-	left : 60px;

-}

-

-#noteworthy-links a p .text {

-	display : block;

-	width : 300px;

-	position : relative;

-	top : -45px;

-	left : 53px;

-}

-

-/* Special case for Mozilla, because the links are displayed

-   in 1 vertical column instead of 2 centered columns */

-#noteworthy-links > a { width : 700px; }

-#noteworthy-links a > .link-label { width : 700px; }

-#noteworthy-links a p > .text { width : 700px; }

-

-#noteworthy-links a:hover { border-right : 5px; }

-

-#noteworthy-links a img { background-image : url(../graphics/icons/obj48/new_obj.gif); }

-#noteworthy-links a:hover img { background-image : url(../graphics/icons/obj48/newhov_obj.gif); }

-

-

-#news-links {

-	text-align : left;

-	width : 760px;

-	/* To center in Moz (have to use text-align for IE) */	

-	margin: 0px auto;

-}

-

-#news-links a { 

-	width : 370px;

-	text-align : left; 

-	margin-left : 5px;

-	margin-right : 5px;

-	margin-top : 5px;

-	margin-bottom : -20px;

-	vertical-align : top;

-}

-

-#news-links > a { vertical-align : middle; }

-

-#news-links a img {

-	height : 57px;

-	width : 57px;

-	vertical-align : middle;

-}

-

-#news-links a .link-label {

-	display : block;

-	width : 300px;

-	position : relative;

-	top : -50px;

-	left : 60px;

-}

-

-#news-links a p .text {

-	display : block;

-	width : 300px;

-	position : relative;

-	top : -45px;

-	left : 53px;

-}

-

-/* Special case for Mozilla, because the links are displayed

-   in 1 vertical column instead of 2 centered columns */

-#news-links > a { 	width : 700px; }

-#news-links a > .link-label { width : 700px; }

-#news-links a p > .text { width : 700px; }

-

-#news-links a:hover { border-right : 5px; }

-

-a#new-and-noteworthy img { background-image : url(../graphics/icons/obj48/new_obj.gif); }

-a#new-and-noteworthy:hover img { background-image : url(../graphics/icons/obj48/newhov_obj.gif); }

-

-a#migration img { background-image : url(../graphics/icons/obj48/migrate_obj.gif); }

-a#migration:hover img { background-image : url(../graphics/icons/obj48/migratehov_obj.gif); }

-

-a#updates img { background-image : url(../graphics/icons/obj48/updates_obj.gif); }

-a#updates:hover img { background-image : url(../graphics/icons/obj48/updateshov_obj.gif); }

-

-a#eclipse img { background-image : url(../graphics/icons/obj48/community_obj.gif); }

-a#eclipse:hover img { background-image : url(../graphics/icons/obj48/communityhov_obj.gif); }

-

-

diff --git a/platform/org.eclipse.platform/eclipse.gif b/platform/org.eclipse.platform/eclipse.gif
deleted file mode 100644
index 6ca37e0..0000000
--- a/platform/org.eclipse.platform/eclipse.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/eclipse32.gif b/platform/org.eclipse.platform/eclipse32.gif
deleted file mode 100644
index f71a8f6..0000000
--- a/platform/org.eclipse.platform/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/eclipse_lg.gif b/platform/org.eclipse.platform/eclipse_lg.gif
deleted file mode 100644
index 27c0838..0000000
--- a/platform/org.eclipse.platform/eclipse_lg.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/intro.gif b/platform/org.eclipse.platform/intro.gif
deleted file mode 100644
index eb7b90c..0000000
--- a/platform/org.eclipse.platform/intro.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/introContent.xml b/platform/org.eclipse.platform/introContent.xml
deleted file mode 100644
index 007987b..0000000
--- a/platform/org.eclipse.platform/introContent.xml
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<introContent>
-    <!-- 
-
--->
-    <page alt-style="css/root_swt.properties" style="css/root.css" id="root" style-id="page">
-        <title style-id="intro-header">Welcome to Eclipse 3.1</title>
-        <group id="links-background">
-            <group id="page-links">
-                <link label="Overview" url="http://org.eclipse.ui.intro/showPage?id=overview" id="overview" style-id="left">
-                    <img id="overview_img" style-id="content-img" src="css/graphics/icons/etool/overview72.gif" alt="Overview">
-                    </img>
-                    <text>Find out what Eclipse is all about</text>
-                </link>
-                <link label="Tutorials" url="http://org.eclipse.ui.intro/showPage?id=tutorials" id="tutorials" style-id="left">
-                    <img id="tutorials_img" style-id="content-img" src="css/graphics/icons/etool/tutorials72.gif" alt="Tutorials">
-                    </img>
-                    <text>Let us guide you through Eclipse end-to-end tutorials</text>
-                </link>
-                <link label="Samples" url="http://org.eclipse.ui.intro/showPage?id=samples" id="samples" style-id="right">
-                    <img id="samples_img" style-id="content-img" src="css/graphics/icons/etool/samples72.gif" alt="Samples">
-                    </img>
-                    <text>Explore Eclipse development through code samples</text>
-                </link>
-                <link label="What&apos;s New" url="http://org.eclipse.ui.intro/showPage?id=news" id="news" style-id="right">
-                    <img id="whatsnew_img" style-id="content-img" src="css/graphics/icons/etool/whatsnew72.gif" alt="What&apos;s New">
-                    </img>
-                    <text>Find out what is new in this release</text>
-                </link>
-            </group>
-        </group>
-        <group id="action-links">
-            <link url="http://org.eclipse.ui.intro/switchToLaunchBar" label="Workbench" id="workbench">
-                <img id="workbench_img" style-id="content-img" src="css/graphics/icons/etool/wb48.gif" alt="Go to the workbench">
-                </img>
-                <text>Go to the workbench</text>
-            </link>
-        </group>
-    </page>
-    <!-- 
-
--->
-    <page alt-style="css/standby_swt.properties" style="css/standby_root.css" id="standby" style-id="page">
-        <title style-id="intro-header">Welcome to Eclipse 3.1</title>
-        <group id="links-background">
-            <group id="page-links">
-                <link label="Overview" url="http://org.eclipse.ui.intro/showPage?id=overview&amp;standby=false" id="overview" style-id="left">
-                    <text>Find out what Eclipse is all about</text>
-                </link>
-                <link label="Tutorials" url="http://org.eclipse.ui.intro/showPage?id=tutorials&amp;standby=false" id="tutorials" style-id="left">
-                    <text>Let us guide you through Eclipse end-to-end tutorials</text>
-                </link>
-                <link label="Samples" url="http://org.eclipse.ui.intro/showPage?id=samples&amp;standby=false" id="samples" style-id="right">
-                    <text>Explore Eclipse development through code samples</text>
-                </link>
-                <link label="What&apos;s New" url="http://org.eclipse.ui.intro/showPage?id=news&amp;standby=false" id="news" style-id="right">
-                    <text>Find out what is new in this release</text>
-                </link>
-            </group>
-        </group>
-    </page>
-    <!--
-
--->
-    <page style="css/overview/overview.css" alt-style="css/overview/swt.properties" id="overview" style-id="page">
-        <title style-id="intro-header">Welcome to Eclipse 3.1</title>
-        <group id="background-image" filteredFrom="swt"/>
-        <group id="curve-image" filteredFrom="swt"/>
-        <group id="navigation-links" filteredFrom="swt">
-            <group id="page-links">
-                <link label="Overview" url="http://org.eclipse.ui.intro/showPage?id=overview" id="overview" style-id="left">
-                    <text>Find out what Eclipse is all about</text>
-                </link>
-                <link label="Tutorials" url="http://org.eclipse.ui.intro/showPage?id=tutorials" id="tutorials" style-id="left">
-                    <text>Let us guide you through Eclipse end-to-end tutorials</text>
-                </link>
-                <link label="Samples" url="http://org.eclipse.ui.intro/showPage?id=samples" id="samples" style-id="right">
-                    <text>Explore Eclipse development through code samples</text>
-                </link>
-                <link label="What&apos;s New" url="http://org.eclipse.ui.intro/showPage?id=news" id="news" style-id="right">
-                    <text>Find out what is new in this release</text>
-                </link>
-            </group>
-            <group id="action-links">
-                <link url="http://org.eclipse.ui.intro/switchToLaunchBar" label="Workbench" id="workbench">
-                    <text>Go to the workbench</text>
-                </link>
-            </group>
-        </group>
-        <!-- -->
-        <group id="page-content">
-            <group id="content-header" label="OVERVIEW" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">OVERVIEW</text>
-            <text style-id="page-description" id="page-description">Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular. It provides a feature-rich development environment that allows the developer to efficiently create tools that integrate seamlessly into the Eclipse Platform.</text>
-            <group id="overview-links">
-                <anchor id="beginAnchor"/>
-                <link label="Workbench basics" url="http://org.eclipse.ui.intro/showHelpTopic?id=/org.eclipse.platform.doc.user/concepts/concepts-2.htm" id="basics">
-                    <text>Learn about basic Eclipse workbench concepts</text>
-                </link>
-                <link label="Team support" url="http://org.eclipse.ui.intro/showHelpTopic?id=/org.eclipse.platform.doc.user/concepts/concepts-26.htm" id="team">
-                    <text>Find out how to collaborate with other developers</text>
-                </link>
-                <anchor id="jdtAnchor"/>
-                <anchor id="pdeAnchor"/>
-                <anchor id="endAnchor"/>
-            </group>
-        </group>
-    </page>
-    <!-- 
-
--->
-    <page style="css/tutorials/tutorials.css" alt-style="css/tutorials/swt.properties" id="tutorials" style-id="page">
-        <title style-id="intro-header">Welcome to Eclipse 3.1</title>
-        <group id="background-image" filteredFrom="swt"/>
-        <group id="curve-image" filteredFrom="swt"/>
-        <include path="overview/navigation-links"/>
-        <group id="page-content">
-            <group id="content-header" label="TUTORIALS" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">TUTORIALS</text>
-            <text style-id="page-description" id="page-description">Learn how to be productive using Eclipse by completing end-to-end tutorials that will guide you along the way.</text>
-            <anchor id="beginAnchor"/>
-            <anchor id="jdtAnchor"/>
-            <anchor id="pdeAnchor"/>
-            <anchor id="endAnchor"/>
-        </group>
-    </page>
-    <!-- 
-
--->
-    <page style="css/samples/samples.css" alt-style="css/samples/swt.properties" id="samples" style-id="page">
-        <title style-id="intro-header">Welcome to Eclipse 3.1</title>
-        <group id="background-image" filteredFrom="swt"/>
-        <group id="curve-image" filteredFrom="swt"/>
-        <include path="overview/navigation-links"/>
-        <group id="page-content">
-            <group id="content-header" label="SAMPLES" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">SAMPLES</text>
-            <text style-id="page-description" id="page-description">Explore Eclipse by installing prefabricated samples (may require Internet connection).</text>
-            <anchor id="beginAnchor"/>
-            <group label="SWT" id="swt" style-id="samples-group">
-                <text style-id="group-description">Run SWT samples using either the standalone SWT launcher or as an integrated workbench view.</text>
-                <link label="Workbench views and standalone applications" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.pde.ui&amp;class=org.eclipse.pde.ui.internal.samples.ShowSampleAction&amp;id=org.eclipse.sdk.samples.swt.examples" id="swt-examples" style-id="sample-link">
-                    <text>The SWT Example launcher will allow you to launch a collection of SWT examples.  Some of the examples can be run independent of the eclipse platform and others will be available as views inside the workbench.</text>
-                </link>
-                <anchor id="swtGroupAnchor"/>
-            </group>
-            <group label="Workbench" id="workbench" style-id="samples-group">
-                <text style-id="group-description">The following samples demonstrate how to tightly integrate into the Eclipse workbench.</text>
-                <link label="Multi-page editor" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.pde.ui&amp;class=org.eclipse.pde.ui.internal.samples.ShowSampleAction&amp;id=org.eclipse.sdk.samples.multipageeditor" id="multi-page-editor" style-id="sample-link">
-                    <text>Shows how to create an editor with multiple pages</text>
-                </link>
-                <link label="Property sheet and outline" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.pde.ui&amp;class=org.eclipse.pde.ui.internal.samples.ShowSampleAction&amp;id=org.eclipse.sdk.samples.propertysheet" id="property-sheet" style-id="sample-link">
-                    <text>Demonstrates how to use property sheet and outline views</text>
-                </link>
-                <link label="Readme tool" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.pde.ui&amp;class=org.eclipse.pde.ui.internal.samples.ShowSampleAction&amp;id=org.eclipse.sdk.samples.readmetool" id="readmetool" style-id="sample-link">
-                    <text>Shows how to create your own extension points</text>
-                </link>
-                <anchor id="jdtAnchor"/>
-                <anchor id="workbenchGroupAnchor"/>
-            </group>
-            <anchor id="endAnchor"/>
-        </group>
-    </page>
-    <!-- 
-
--->
-    <page style="css/whatsnew/whatsnew.css" alt-style="css/whatsnew/swt.properties" id="news" style-id="page">
-        <title style-id="intro-header">Welcome to Eclipse 3.1</title>
-        <group id="background-image" filteredFrom="swt"/>
-        <group id="curve-image" filteredFrom="swt"/>
-        <include path="overview/navigation-links"/>
-        <group id="page-content">
-            <group id="content-header" label="WHAT'S NEW" filteredFrom="swt">
-            </group>
-            <text style-id="page-title" id="page-title" filteredFrom="html">WHAT'S NEW</text>
-            <anchor id="beginAnchor"/>
-            <group id="noteworthy-links" label="New and Noteworthy">
-                <link label="Eclipse Platform" url="http://org.eclipse.ui.intro/showHelpTopic?id=/org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html" id="platform-noteworthy" style-id="noteworthy-link">
-                    <text>Find out about the major new features in this release</text>
-                </link>
-                <anchor id="jdtAnchor"/>
-                <anchor id="pdeAnchor"/>
-                <anchor id="generalAnchor"/>
-            </group>
-            <group id="news-links" label="General">
-                <link label="Migration from the previous release" url="http://org.eclipse.ui.intro/showHelpTopic?id=/org.eclipse.platform.doc.isv/porting/eclipse_3_0_porting_guide.html" id="migration">
-                    <text>Learn what you need to do to make your old code work in Eclipse 3.1</text>
-                </link>
-                <link label="New Updates" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.ui.ide&amp;class=org.eclipse.ui.internal.ide.update.InstallWizardAction" id="updates">
-                    <text>Get the latest updates from Eclipse.org</text>
-                </link>
-                <link label="Eclipse community" url="http://www.eclipse.org" id="eclipse">
-                    <text>Join the community, read articles and news on Eclipse.org</text>
-                </link>
-                <anchor id="linksAnchor"/>
-            </group>
-            <anchor id="endAnchor"/>
-        </group>
-    </page>
-</introContent>
diff --git a/platform/org.eclipse.platform/plugin.properties b/platform/org.eclipse.platform/plugin.properties
deleted file mode 100644
index 0290c90..0000000
--- a/platform/org.eclipse.platform/plugin.properties
+++ /dev/null
@@ -1,31 +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 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
-###############################################################################
-pluginName=Eclipse Platform
-providerName=Eclipse.org
-
-productName=Eclipse Platform
-productBlurb=Eclipse Platform\n\
-\n\
-Version: 3.1.0\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2000, 2004.  All rights reserved.\n\
-Visit http://www.eclipse.org/platform\n\
-\n\
-This product includes software developed by the\n\
-Apache Software Foundation http://www.apache.org/
-
-cheatsheet.cvs.name= CVS Tasks
-cheatsheet.cvs.desc= Go through the main CVS tasks using the cheat sheet
-shortcut.overview.tooltip = Overview
-shortcut.tutorials.tooltip = Tutorials
-shortcut.samples.tooltip = Samples
-shortcut.whatsnew.tooltip = What's New
diff --git a/platform/org.eclipse.platform/plugin.xml b/platform/org.eclipse.platform/plugin.xml
deleted file mode 100644
index e973d24..0000000
--- a/platform/org.eclipse.platform/plugin.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.platform"
-   name="%pluginName"
-   version="3.1.0"
-   provider-name="%providerName">
-
-   <runtime>
-      <library name="startup.jar"/>
-      <library name="platform.jar">
-         <export name="*"/>
-      </library>
-   </runtime>   
-   <requires>
-      <import plugin="org.eclipse.ui.intro" optional="true"/>
-      <import plugin="org.eclipse.ui.cheatsheets" optional="true"/>
-      <import plugin="org.eclipse.ui.forms" optional="true"/>
-      <import plugin="org.eclipse.ui" optional="true"/>
-   </requires>
-   
-   <extension id="ide" point="org.eclipse.core.runtime.products"> 
-      <product name="%productName" application="org.eclipse.ui.ide.workbench" description="%productBlurb"> 
-          <property name="windowImages" value="eclipse.gif,eclipse32.gif"/> 
-          <property name="aboutImage" value="eclipse_lg.gif"/> 
-          <property name="aboutText" value="%productBlurb"/> 
-          <property name="appName" value="Eclipse"/> 
-          <property name="preferenceCustomization" value="plugin_customization.ini"/> 
-      </product> 
-   </extension> 
-
-   <extension  
-         point="org.eclipse.ui.intro">
-      <intro
-            class="org.eclipse.ui.intro.config.CustomizableIntroPart"
-            id="org.eclipse.platform.intro"
-            icon="intro.gif">
-      </intro>
-      <introProductBinding
-            introId="org.eclipse.platform.intro"
-            productId="org.eclipse.platform.ide">
-      </introProductBinding>
-   </extension>
-   <extension   
-         id="intro"
-         point="org.eclipse.ui.intro.config">
-      <config
-            introId="org.eclipse.platform.intro"
-            id="org.eclipse.platform.introConfig"
-            content="$nl$/introContent.xml">
-         <presentation
-               home-page-id="root" standby-page-id="standby">
-            <implementation
-                  ws="win32"
-                  style="css/shared.css"
-                  kind="html"
-                  os="win32">
-            </implementation>
-            <implementation
-                  kind="swt">
-            </implementation>
-            <!--
-            fg="#7269d2"
-            -->
-            <launchBar 	
-            	location="right" 
-            	bg="#dedcf5" 
-            	>
-               <shortcut
-                     icon="css/graphics/icons/etool/overview.gif"
-                     tooltip="%shortcut.overview.tooltip"
-                     url="http://org.eclipse.ui.intro/showPage?id=overview"/>
-               <shortcut
-                     tooltip="%shortcut.tutorials.tooltip"
-                     icon="css/graphics/icons/etool/tutorials.gif"
-                     url="http://org.eclipse.ui.intro/showPage?id=tutorials"/>
-               <shortcut
-                     tooltip="%shortcut.samples.tooltip"
-                     icon="css/graphics/icons/etool/samples.gif"
-                     url="http://org.eclipse.ui.intro/showPage?id=samples"/>
-               <shortcut
-                     tooltip="%shortcut.whatsnew.tooltip"
-                     icon="css/graphics/icons/etool/whatsnew.gif"
-                     url="http://org.eclipse.ui.intro/showPage?id=news"/>                                             
-            </launchBar>
-         </presentation>
-      </config>
-   </extension>
-   <extension
-         point="org.eclipse.ui.cheatsheets.cheatSheetContent">
-      <cheatsheet
-            name="%cheatsheet.cvs.name"
-            contentFile="$nl$/cheatsheets/CVS_1.xml"
-            id="org.eclipse.platform.cvs_1">
-         <description>
-            %cheatsheet.cvs.desc
-         </description>
-      </cheatsheet>
-   </extension>
-   <!-- =====================================================  -->
-   <!-- Standby Content Part contributions                     -->
-   <!-- =====================================================  -->
-   <extension point="org.eclipse.ui.intro.configExtension">
-      <standbyContentPart
-            id="org.eclipse.platform.cheatsheet"
-            class="org.eclipse.platform.internal.CheatSheetStandbyContent"
-            pluginId="org.eclipse.platform"/>
-   </extension>
-
-</plugin>
diff --git a/platform/org.eclipse.platform/plugin_customization.ini b/platform/org.eclipse.platform/plugin_customization.ini
deleted file mode 100644
index f22863c..0000000
--- a/platform/org.eclipse.platform/plugin_customization.ini
+++ /dev/null
@@ -1,17 +0,0 @@
-# plugin_customization.ini 
-# sets default values for plug-in-specific preferences
-# keys are qualified by plug-in id
-# e.g., com.example.acmeplugin/myproperty=myvalue
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in plugin_customization.properties
-# This file does not need to be translated.
-
-# Property "org.eclipse.ui/defaultPerspectiveId" controls the 
-# perspective that the workbench opens initially
-org.eclipse.ui/defaultPerspectiveId=org.eclipse.ui.resourcePerspective
-
-# new-style tabs by default
-org.eclipse.ui/SHOW_TRADITIONAL_STYLE_TABS=false
-
-# put the perspective switcher on the top right
-org.eclipse.ui/DOCK_PERSPECTIVE_BAR=topRight
diff --git a/platform/org.eclipse.platform/plugin_customization.properties b/platform/org.eclipse.platform/plugin_customization.properties
deleted file mode 100644
index dfdc241..0000000
--- a/platform/org.eclipse.platform/plugin_customization.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 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
-###############################################################################
-# plugin_customization.properties
-# contains externalized strings for plugin_customization.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
diff --git a/platform/org.eclipse.platform/splash.bmp b/platform/org.eclipse.platform/splash.bmp
deleted file mode 100644
index 8f98a73..0000000
--- a/platform/org.eclipse.platform/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.platform/src-intro/org/eclipse/platform/internal/CheatSheetStandbyContent.java b/platform/org.eclipse.platform/src-intro/org/eclipse/platform/internal/CheatSheetStandbyContent.java
deleted file mode 100644
index bdfb019..0000000
--- a/platform/org.eclipse.platform/src-intro/org/eclipse/platform/internal/CheatSheetStandbyContent.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.platform.internal;
-
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.cheatsheets.*;
-import org.eclipse.ui.forms.widgets.*;
-import org.eclipse.ui.intro.*;
-import org.eclipse.ui.intro.config.*;
-
-public final class CheatSheetStandbyContent implements IStandbyContentPart {
-
-    private static String MEMENTO_CHEATSHEET_ID_ATT = "cheatsheetId"; //$NON-NLS-1$
-
-    private IIntroPart introPart;
-    private ICheatSheetViewer viewer;
-    private Composite container;
-    private String input;
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.internal.parts.IStandbyContentPart#init(org.eclipse.ui.intro.IIntroPart)
-     */
-    public void init(IIntroPart introPart, IMemento memento) {
-        this.introPart = introPart;
-        // try to restore last state.
-        input = getCachedInput(memento);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.internal.parts.IStandbyContentPart#createControl(org.eclipse.swt.widgets.Composite,
-     *      org.eclipse.ui.forms.widgets.FormToolkit)
-     */
-    public void createPartControl(Composite parent, FormToolkit toolkit) {
-        container = toolkit.createComposite(parent);
-        FillLayout layout = new FillLayout();
-        layout.marginWidth = layout.marginHeight = 0;
-        container.setLayout(layout);
-
-        viewer = CheatSheetViewerFactory.createCheatSheetView();
-        viewer.createPartControl(container);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.internal.parts.IStandbyContentPart#getControl()
-     */
-    public Control getControl() {
-        return container;
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.internal.parts.IStandbyContentPart#setInput(java.lang.Object)
-     */
-    public void setInput(Object input) {
-        // if the new input is null, use cacched input from momento.
-        if (input != null)
-            this.input = (String) input;
-        viewer.setInput(this.input);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.internal.parts.IStandbyContentPart#setFocus()
-     */
-    public void setFocus() {
-        viewer.setFocus();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.internal.parts.IStandbyContentPart#dispose()
-     */
-    public void dispose() {
-
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.intro.config.IStandbyContentPart#saveState(org.eclipse.ui.IMemento)
-     */
-    public void saveState(IMemento memento) {
-        String currentCheatSheetId = viewer.getCheatSheetID();
-        if (currentCheatSheetId != null)
-            memento.putString(MEMENTO_CHEATSHEET_ID_ATT, currentCheatSheetId);
-    }
-
-    /**
-     * Tries to create the last content part viewed, based on content part id..
-     * 
-     * @param memento
-     * @return
-     */
-    private String getCachedInput(IMemento memento) {
-        if (memento == null)
-            return null;
-        return memento.getString(MEMENTO_CHEATSHEET_ID_ATT);
-
-    }
-
-}
\ No newline at end of file
diff --git a/platform/org.eclipse.platform/src/META-INF/MANIFEST.MF b/platform/org.eclipse.platform/src/META-INF/MANIFEST.MF
deleted file mode 100644
index 31877ee..0000000
--- a/platform/org.eclipse.platform/src/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-Main-Class: org.eclipse.core.launcher.Main
diff --git a/platform/org.eclipse.platform/src/org/eclipse/core/launcher/Main.java b/platform/org.eclipse.platform/src/org/eclipse/core/launcher/Main.java
deleted file mode 100644
index fdd2308..0000000
--- a/platform/org.eclipse.platform/src/org/eclipse/core/launcher/Main.java
+++ /dev/null
@@ -1,1790 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.core.launcher;
-
-import java.io.*;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.*;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-/**
- * The launcher for Eclipse.
- */
-public class Main {
-	/**
-	 * Indicates whether this instance is running in debug mode.
-	 */
-	protected boolean debug = false;
-
-	/**
-	 * The location of the launcher to run.
-	 */
-	protected String bootLocation = null;
-
-	/**
-	 * The location of the install root
-	 */
-	protected URL installLocation = null;
-
-	/**
-	 * The location of the configuration information for this instance
-	 */
-	protected URL configurationLocation = null;
-
-	/**
-	 * The location of the configuration information in the install root
-	 */
-	protected String parentConfigurationLocation = null;
-
-	/**
-	 * The id of the bundle that will contain the framework to run.  Defaults to org.eclipse.osgi.
-	 */
-	protected String framework = OSGI;
-
-	/**
-	 * The extra development time class path entries.
-	 */
-	protected String devClassPath = null;
-
-	/**
-	 * Indicates whether this instance is running in development mode.
-	 */
-	protected boolean inDevelopmentMode = false;
-
-	private String exitData = null;
-	private String name = null; // The name to brand the launcher
-	private String launcher = null; // The full path to the launcher
-
-	private String vm = null;
-	private String[] vmargs = null;
-	private String[] commands = null;
-	private String[] extensionPaths = null;
-
-	// splash handling
-	private String showSplash = null;
-	private String endSplash = null;
-	private boolean initialize = false;
-	private Process showProcess = null;
-	private boolean splashDown = false;
-	private final Runnable endSplashHandler = new Runnable() {
-		public void run() {
-			takeDownSplash();
-		}
-	};
-
-	// command line args
-	private static final String FRAMEWORK = "-framework"; //$NON-NLS-1$
-	private static final String INSTALL = "-install"; //$NON-NLS-1$
-	private static final String INITIALIZE = "-initialize"; //$NON-NLS-1$
-	private static final String VM = "-vm"; //$NON-NLS-1$
-	private static final String VMARGS = "-vmargs"; //$NON-NLS-1$
-	private static final String DEBUG = "-debug"; //$NON-NLS-1$
-	private static final String DEV = "-dev"; //$NON-NLS-1$
-	private static final String CONFIGURATION = "-configuration"; //$NON-NLS-1$
-	private static final String EXITDATA = "-exitdata"; //$NON-NLS-1$
-	private static final String NOSPLASH = "-nosplash"; //$NON-NLS-1$
-	private static final String SHOWSPLASH = "-showsplash"; //$NON-NLS-1$
-	private static final String NAME = "-name"; //$NON-NLS-1$
-	private static final String LAUNCHER = "-launcher"; //$NON-NLS-1$
-
-	private static final String ENDSPLASH = "-endsplash"; //$NON-NLS-1$
-	private static final String SPLASH_IMAGE = "splash.bmp"; //$NON-NLS-1$
-
-	private static final String OSGI = "org.eclipse.osgi"; //$NON-NLS-1$
-	private static final String STARTER = "org.eclipse.core.runtime.adaptor.EclipseStarter"; //$NON-NLS-1$
-	private static final String PLATFORM_URL = "platform:/base/"; //$NON-NLS-1$
-	private static final String ECLIPSE_PROPERTIES = "eclipse.properties"; //$NON-NLS-1$
-	private static final String FILE_SCHEME = "file:"; //$NON-NLS-1$	
-    protected static final String REFERENCE_SCHEME = "reference:";
-    protected static final String JAR_SCHEME = "jar:";
-    
-	private static final String DEFAULT_JRE_REQUIRED = "1.4.1"; //$NON-NLS-1$
-	
-	// constants: configuration file location
-	private static final String CONFIG_DIR = "configuration/"; //$NON-NLS-1$
-	private static final String CONFIG_FILE = "config.ini"; //$NON-NLS-1$
-	private static final String CONFIG_FILE_TEMP_SUFFIX = ".tmp"; //$NON-NLS-1$
-	private static final String CONFIG_FILE_BAK_SUFFIX = ".bak"; //$NON-NLS-1$
-	private static final String ECLIPSE = "eclipse"; //$NON-NLS-1$
-	private static final String PRODUCT_SITE_MARKER = ".eclipseproduct"; //$NON-NLS-1$
-	private static final String PRODUCT_SITE_ID = "id"; //$NON-NLS-1$
-	private static final String PRODUCT_SITE_VERSION = "version"; //$NON-NLS-1$
-
-	// constants: System property keys and/or configuration file elements
-	private static final String PROP_USER_HOME = "user.home"; //$NON-NLS-1$
-	private static final String PROP_USER_DIR = "user.dir"; //$NON-NLS-1$
-	private static final String PROP_INSTALL_AREA = "osgi.install.area"; //$NON-NLS-1$
-	private static final String PROP_CONFIG_AREA = "osgi.configuration.area"; //$NON-NLS-1$
-	private static final String PROP_CONFIG_AREA_DEFAULT = "osgi.configuration.area.default"; //$NON-NLS-1$
-	private static final String PROP_BASE_CONFIG_AREA = "osgi.baseConfiguration.area"; //$NON-NLS-1$
-	private static final String PROP_SHARED_CONFIG_AREA = "osgi.sharedConfiguration.area"; //$NON-NLS-1$
-	private static final String PROP_CONFIG_CASCADED = "osgi.configuration.cascaded"; //$NON-NLS-1$
-	protected static final String PROP_FRAMEWORK = "osgi.framework"; //$NON-NLS-1$
-	private static final String PROP_SPLASHPATH = "osgi.splashPath"; //$NON-NLS-1$
-	private static final String PROP_SPLASHLOCATION = "osgi.splashLocation"; //$NON-NLS-1$
-	private static final String PROP_CLASSPATH = "osgi.frameworkClassPath"; //$NON-NLS-1$
-	private static final String PROP_EXTENSIONS = "osgi.framework.extensions"; //$NON-NLS-1$
-	private static final String PROP_FRAMEWORK_SYSPATH = "osgi.syspath"; //$NON-NLS-1$
-    private static final String PROP_FRAMEWORK_SHAPE = "osgi.framework.shape"; //$NON-NLS-1$
-	private static final String PROP_LOGFILE = "osgi.logfile"; //$NON-NLS-1$
-	private static final String PROP_REQUIRED_JAVA_VERSION = "osgi.requiredJavaVersion"; //$NON-NLS-1$
-	private static final String PROP_EOF = "eof"; //$NON-NLS-1$
-
-	private static final String PROP_EXITCODE = "eclipse.exitcode"; //$NON-NLS-1$
-	private static final String PROP_EXITDATA = "eclipse.exitdata"; //$NON-NLS-1$
-
-	private static final String PROP_VM = "eclipse.vm"; //$NON-NLS-1$
-	private static final String PROP_VMARGS = "eclipse.vmargs"; //$NON-NLS-1$
-	private static final String PROP_COMMANDS = "eclipse.commands"; //$NON-NLS-1$
-
-	// Data mode constants for user, configuration and data locations.
-	private static final String NONE = "@none"; //$NON-NLS-1$
-	private static final String NO_DEFAULT = "@noDefault"; //$NON-NLS-1$
-	private static final String USER_HOME = "@user.home"; //$NON-NLS-1$
-	private static final String USER_DIR = "@user.dir"; //$NON-NLS-1$
-
-	// log file handling
-	protected static final String SESSION = "!SESSION"; //$NON-NLS-1$
-	protected static final String ENTRY = "!ENTRY"; //$NON-NLS-1$
-	protected static final String MESSAGE = "!MESSAGE"; //$NON-NLS-1$
-	protected static final String STACK = "!STACK"; //$NON-NLS-1$
-	protected static final int ERROR = 4;
-	protected static final String PLUGIN_ID = "org.eclipse.core.launcher"; //$NON-NLS-1$
-	protected File logFile = null;
-	protected BufferedWriter log = null;
-	protected boolean newSession = true;
-	
-	/**
-	 * A structured form for a version identifier.
-	 * 
-	 * @see http://java.sun.com/j2se/versioning_naming.html for information on valid version strings
-	 */
-	static class Identifier {
-		private static final String DELIM = ". _-"; //$NON-NLS-1$
-		private int major, minor, service;
-		Identifier(int major, int minor, int service) {
-			super();
-			this.major = major;
-			this.minor = minor;
-			this.service = service;
-		}
-		/**
-		 * @throws NumberFormatException if cannot parse the major and minor version components
-		 */
-		Identifier(String versionString) {
-			super();
-			StringTokenizer tokenizer = new StringTokenizer(versionString, DELIM);
-
-			// major
-			if (tokenizer.hasMoreTokens())
-				major = Integer.parseInt(tokenizer.nextToken());
-
-			// minor
-			if (tokenizer.hasMoreTokens())
-				minor = Integer.parseInt(tokenizer.nextToken());
-
-			try {
-				// service
-				if (tokenizer.hasMoreTokens())
-					service = Integer.parseInt(tokenizer.nextToken());
-			} catch (NumberFormatException nfe) {
-				// ignore the service qualifier in that case and default to 0
-				// this will allow us to tolerate other non-conventional version numbers 
-			}
-		}
-		/**
-		 * Returns true if this id is considered to be greater than or equal to the given baseline.
-		 * e.g. 
-		 * 1.2.9 >= 1.3.1 -> false
-		 * 1.3.0 >= 1.3.1 -> false
-		 * 1.3.1 >= 1.3.1 -> true
-		 * 1.3.2 >= 1.3.1 -> true
-		 * 2.0.0 >= 1.3.1 -> true
-		 */
-		boolean isGreaterEqualTo(Identifier minimum) {
-			if (major < minimum.major)
-				return false;
-			if (major > minimum.major)
-				return true;
-			// major numbers are equivalent so check minor
-			if (minor < minimum.minor)
-				return false;
-			if (minor > minimum.minor)
-				return true;
-			// minor numbers are equivalent so check service
-			return service >= minimum.service;
-		}
-	}	
-
-	/**
-	 * Executes the launch.
-	 * 
-	 * @return the result of performing the launch
-	 * @param args command-line arguments
-	 * @exception Exception thrown if a problem occurs during the launch
-	 */
-	protected void basicRun(String[] args) throws Exception {
-		System.getProperties().setProperty("eclipse.startTime", Long.toString(System.currentTimeMillis())); //$NON-NLS-1$
-		commands = args;
-		String[] passThruArgs = processCommandLine(args);
-		setupVMProperties();
-		processConfiguration();
-		
-		//ensure minimum Java version
-		if (!checkVersion(System.getProperty("java.version"), System.getProperty(PROP_REQUIRED_JAVA_VERSION, DEFAULT_JRE_REQUIRED))) //$NON-NLS-1$
-			return;
-		
-		// need to ensure that getInstallLocation is called at least once to initialize the value.
-		// Do this AFTER processing the configuration to allow the configuration to set
-		// the install location.  
-		getInstallLocation();
-
-		// locate boot plugin (may return -dev mode variations)
-		URL[] bootPath = getBootPath(bootLocation);
-
-		// splash handling is done here, because the default case needs to know
-		// the location of the boot plugin we are going to use
-		handleSplash(bootPath);
-
-		invokeFramework(passThruArgs, bootPath);
-	}
-
-    private void invokeFramework(String[] passThruArgs, URL[] bootPath) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, Error, Exception, InvocationTargetException {
-		URLClassLoader loader = new StartupClassLoader(bootPath, null);
-        Class clazz = loader.loadClass(STARTER);
-        Method method = clazz.getDeclaredMethod("run", new Class[] {String[].class, Runnable.class}); //$NON-NLS-1$
-        try {
-			method.invoke(clazz, new Object[] {passThruArgs, endSplashHandler});
-		} catch (InvocationTargetException e) {
-			if (e.getTargetException() instanceof Error)
-				throw (Error) e.getTargetException();
-			else if (e.getTargetException() instanceof Exception)
-				throw (Exception) e.getTargetException();
-			else
-				//could be a subclass of Throwable!
-				throw e;
-		}
-    }
-
-	/**
-	 * Checks whether the given available version is greater or equal to the 
-	 * given required version.
-	 * <p>Will set PROP_EXITCODE/PROP_EXITDATA accordingly if check fails.</p>
-	 *   
-	 * @return a boolean indicating whether the checking passed 
-	 */
-	private boolean checkVersion(String availableVersion, String requiredVersion) {
-		if (requiredVersion == null || availableVersion == null)
-			return true;
-		try {
-			Identifier required = new Identifier(requiredVersion);
-			Identifier available = new Identifier(availableVersion);
-			boolean compatible = available.isGreaterEqualTo(required);
-			if (!compatible) {
-				// any non-zero value should do it - 14 used to be used for version incompatibility in Eclipse 2.1 
-				System.getProperties().put(PROP_EXITCODE, "14"); //$NON-NLS-1$
-				System.getProperties().put(PROP_EXITDATA, "Required Java version: "+ requiredVersion + ". Available: " + availableVersion + '.'); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			return compatible;
-		} catch (SecurityException e) {
-			// If the security manager won't allow us to get the system property, continue for
-			// now and let things fail later on their own if necessary.
-			return true;
-		} catch (NumberFormatException e) {
-			// If the version string was in a format that we don't understand, continue and
-			// let things fail later on their own if necessary.
-			return true;
-		}
-	}
-	
-	/**
-	 * Returns a string representation of the given URL String.  This converts
-	 * escaped sequences (%..) in the URL into the appropriate characters.
-	 * NOTE: due to class visibility there is a copy of this method
-	 *       in InternalBootLoader
-	 */
-	protected String decode(String urlString) {
-		//try to use Java 1.4 method if available
-		try {
-			Class clazz = URLDecoder.class;
-			Method method = clazz.getDeclaredMethod("decode", new Class[] {String.class, String.class}); //$NON-NLS-1$
-			//first encode '+' characters, because URLDecoder incorrectly converts 
-			//them to spaces on certain class library implementations.
-			if (urlString.indexOf('+') >= 0) {
-				int len = urlString.length();
-				StringBuffer buf = new StringBuffer(len);
-				for (int i = 0; i < len; i++) {
-					char c = urlString.charAt(i);
-					if (c == '+')
-						buf.append("%2B"); //$NON-NLS-1$
-					else
-						buf.append(c);
-				}
-				urlString = buf.toString();
-			}
-			Object result = method.invoke(null, new Object[] {urlString, "UTF-8"}); //$NON-NLS-1$
-			if (result != null)
-				return (String) result;
-		} catch (Exception e) {
-			//JDK 1.4 method not found -- fall through and decode by hand
-		}
-		//decode URL by hand
-		boolean replaced = false;
-		byte[] encodedBytes = urlString.getBytes();
-		int encodedLength = encodedBytes.length;
-		byte[] decodedBytes = new byte[encodedLength];
-		int decodedLength = 0;
-		for (int i = 0; i < encodedLength; i++) {
-			byte b = encodedBytes[i];
-			if (b == '%') {
-				byte enc1 = encodedBytes[++i];
-				byte enc2 = encodedBytes[++i];
-				b = (byte) ((hexToByte(enc1) << 4) + hexToByte(enc2));
-				replaced = true;
-			}
-			decodedBytes[decodedLength++] = b;
-		}
-		if (!replaced)
-			return urlString;
-		try {
-			return new String(decodedBytes, 0, decodedLength, "UTF-8"); //$NON-NLS-1$
-		} catch (UnsupportedEncodingException e) {
-			//use default encoding
-			return new String(decodedBytes, 0, decodedLength);
-		}
-	}
-
-	/**
-	 * Returns the result of converting a list of comma-separated tokens into an array
-	 * 
-	 * @return the array of string tokens
-	 * @param prop the initial comma-separated string
-	 */
-	protected String[] getArrayFromList(String prop) {
-		if (prop == null || prop.trim().equals("")) //$NON-NLS-1$
-			return new String[0];
-		Vector list = new Vector();
-		StringTokenizer tokens = new StringTokenizer(prop, ","); //$NON-NLS-1$
-		while (tokens.hasMoreTokens()) {
-			String token = tokens.nextToken().trim();
-			if (!token.equals("")) //$NON-NLS-1$
-				list.addElement(token);
-		}
-		return list.isEmpty() ? new String[0] : (String[]) list.toArray(new String[list.size()]);
-	}
-
-	/**
-	 * Returns the <code>URL</code>-based class path describing where the boot classes
-	 * are located when running in development mode.
-	 * 
-	 * @return the url-based class path
-	 * @param base the base location
-	 * @exception MalformedURLException if a problem occurs computing the class path
-	 */
-	private URL[] getDevPath(URL base) throws IOException {
-		ArrayList result = new ArrayList(5);
-		if (inDevelopmentMode)
-			addDevEntries(base, result); //$NON-NLS-1$
-		//The jars from the base always need to be added, even when running in dev mode (bug 46772)
-		addBaseJars(base, result);
-		return (URL[]) result.toArray(new URL[result.size()]);
-	}
-
-    URL constructURL(URL url, String name) {
-        //Recognize the following URLs
-        //url: file:foo/dir/
-        //url: file:foo/file.jar
-        
-        String externalForm = url.toExternalForm();
-        if (externalForm.endsWith(".jar")) {
-            try {
-                return new URL(JAR_SCHEME + url + "!/" + name);
-            } catch (MalformedURLException e) {
-                //Ignore
-            }
-        }
-        
-        try {
-            return new URL(url, name);
-        } catch (MalformedURLException e) {
-            //Ignore
-            return null;
-        }
-    }
-	private void readFrameworkExtensions(URL base, ArrayList result) throws IOException {
-		String[] extensions = getArrayFromList(System.getProperties().getProperty(PROP_EXTENSIONS));
-		String parent = new File(base.getFile()).getParent().toString();
-		ArrayList extensionResults = new ArrayList(extensions.length);
-		for (int i = 0; i < extensions.length; i++) {
-			//Search the extension relatively to the osgi plugin 
-			String path = searchFor(extensions[i], parent);
-			if (path == null) {
-				log("Could not find extension: " + extensions[i]); //$NON-NLS-1$
-				continue;
-			}
-			if (debug)
-				System.out.println("Loading extension: " + extensions[i]); //$NON-NLS-1$
-
-			URL extensionURL = null;
-			if (installLocation.getProtocol().equals("file")) { //$NON-NLS-1$
-				extensionResults.add(path);
-				extensionURL = new File(path).toURL();
-			} else
-				extensionURL = new URL(installLocation.getProtocol(), installLocation.getHost(), installLocation.getPort(), path);
-
-			//Load a property file of the extension, merge its content, and in case of dev mode add the bin entries
-			Properties extensionProperties = loadProperties(constructURL(extensionURL, ECLIPSE_PROPERTIES));
-			String extensionPath = extensionProperties.getProperty(PROP_CLASSPATH);
-			if (extensionPath != null) {
-				if (inDevelopmentMode) 
-					addDevEntries(extensionURL, result);
-				String[] entries = getArrayFromList(extensionPath);
-				String qualifiedPath = ""; //$NON-NLS-1$
-				for (int j = 0; j < entries.length; j++) 
-					qualifiedPath += ", " + FILE_SCHEME + path + entries[j]; //$NON-NLS-1$
-				extensionProperties.put(PROP_CLASSPATH, qualifiedPath);
-			}
-			mergeProperties(System.getProperties(), extensionProperties);
-		}
-		extensionPaths = (String[]) extensionResults.toArray(new String[extensionResults.size()]);
-	}
-
-	private void addBaseJars(URL base, ArrayList result) throws IOException {
-		String baseJarList = System.getProperty(PROP_CLASSPATH);
-		if (baseJarList == null) {
-			URL url = constructURL(base, ECLIPSE_PROPERTIES);
-            try {
-                mergeProperties(System.getProperties(), loadProperties(url));
-            } catch(IOException e) {
-                //Ignore the exception since the property file is not required 
-                if (debug)
-                    System.out.println("File " + url.toExternalForm() + " not found."); //$NON-NLS-1$  //$NON-NLS-2$
-            }
-			readFrameworkExtensions(base, result);
-			baseJarList = System.getProperties().getProperty(PROP_CLASSPATH);
-		}
-        
-        File fwkFile = new File(base.getFile());
-        boolean fwkIsDirectory = fwkFile.isDirectory();
-        //We found where the fwk is, remember it and its shape
-        if (fwkIsDirectory) {
-            System.getProperties().setProperty(PROP_FRAMEWORK_SHAPE, "folder");//$NON-NLS-1$
-        } else {
-            System.getProperties().setProperty(PROP_FRAMEWORK_SHAPE, "jar");//$NON-NLS-1$
-        }
-        System.getProperties().setProperty(PROP_FRAMEWORK_SYSPATH, new File(base.getFile()).getParentFile().getAbsolutePath());
-        //TODO Here we don't lower case the first letter like it is done in EclipseStarter
-        
-		String[] baseJars = getArrayFromList(baseJarList);
-        if (baseJars.length == 0) {
-            if (!inDevelopmentMode && new File(base.getFile()).isDirectory())
-                throw new IOException("Unable to initialize " + PROP_CLASSPATH); //$NON-NLS-1$
-            addEntry(base, result);
-            return;
-        }
-		for (int i = 0; i < baseJars.length; i++) {
-            String string = baseJars[i];
-            try {
-                // if the string is a file: URL then *carefully* construct the
-                // URL. Otherwisejust try to build a URL. In either case, if we fail, use
-                // string as something to tack on the end of the base.
-            	
-            	if (string.equals(".")) {//Temporary fix to allow . in the eclipse.properties
-            		addEntry(base, result);
-            	}
-                URL url = null;
-                if (string.startsWith(FILE_SCHEME)) //$NON-NLS-1$
-                    url = new File(string.substring(5)).toURL();
-                else
-                    url = new URL(string);
-                addEntry(url, result);
-            } catch (MalformedURLException e) {
-                addEntry(new URL(base, string), result);
-            }
-        }
-	}
-
-	private void addEntry(URL url, List result) {
-		if (new File(url.getFile()).exists())
-			result.add(url);
-	}
-
-	private void addDevEntries(URL base, List result) throws MalformedURLException {
-		String[] locations = getArrayFromList(devClassPath);
-		for (int i = 0; i < locations.length; i++) {
-			String location = locations[i];
-			File path = new File(location);
-			URL url;
-			if (path.isAbsolute())
-				url = path.toURL();
-			else {
-				// dev path is relative, combine with base location
-				char lastChar = location.charAt(location.length() - 1);
-				if ((location.endsWith(".jar") || (lastChar == '/' || lastChar == '\\'))) //$NON-NLS-1$
-					url = new URL(base, location);
-				else
-					url = new URL(base, location + "/"); //$NON-NLS-1$
-			}
-			addEntry(url, result);
-		}
-	}
-
-	/**
-	 * Returns the <code>URL</code>-based class path describing where the boot classes are located.
-	 * 
-	 * @return the url-based class path
-	 * @param base the base location
-	 * @exception MalformedURLException if a problem occurs computing the class path
-	 */
-	protected URL[] getBootPath(String base) throws IOException {
-		URL url = null;
-		if (base != null) {
-			url = buildURL(base, true);
-		} else {
-			// search in the root location
-			url = getInstallLocation();
-			String path = new File(url.getFile(), "plugins").toString(); //$NON-NLS-1$
-			path = searchFor(framework, path);
-			if (path == null)
-				throw new RuntimeException("Could not find framework"); //$NON-NLS-1$
-			if (url.getProtocol().equals("file")) //$NON-NLS-1$
-				url = new File(path).toURL();
-			else
-				url = new URL(url.getProtocol(), url.getHost(), url.getPort(), path);
-		}
-		if (System.getProperty(PROP_FRAMEWORK) == null)
-			System.getProperties().put(PROP_FRAMEWORK, url.toExternalForm());
-		if (debug)
-			System.out.println("Framework located:\n    " + url.toExternalForm()); //$NON-NLS-1$
-		// add on any dev path elements
-		URL[] result = getDevPath(url);
-		if (debug) {
-			System.out.println("Framework classpath:"); //$NON-NLS-1$
-			for (int i = 0; i < result.length; i++)
-				System.out.println("    " + result[i].toExternalForm()); //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	/**
-	 * Searches for the given target directory starting in the "plugins" subdirectory
-	 * of the given location.  If one is found then this location is returned; 
-	 * otherwise an exception is thrown.
-	 * 
-	 * @return the location where target directory was found
-	 * @param start the location to begin searching
-	 */
-	protected String searchFor(final String target, String start) {
-		FileFilter filter = new FileFilter() {
-			public boolean accept(File candidate) {
-				return candidate.getName().equals(target) || candidate.getName().startsWith(target + "_"); //$NON-NLS-1$
-			}
-		};
-		File[] candidates = new File(start).listFiles(filter); //$NON-NLS-1$
-		if (candidates == null)
-			return null;
-		String[] arrays = new String[candidates.length];
-        for (int i = 0; i < arrays.length; i++) {
-            arrays[i] = candidates[i].getName();
-        }
-       int result = findMax(arrays);
-		if (result == -1)
-			return null;
-		return candidates[result].getAbsolutePath().replace(File.separatorChar, '/') + (candidates[result].isDirectory() ? "/" : "");
-	}
-
-    protected int findMax(String[] candidates) {
-        int result = -1;
-        Object maxVersion = null;
-        for (int i = 0; i < candidates.length; i++) {
-            String name = candidates[i];
-            String version = ""; //$NON-NLS-1$ // Note: directory with version suffix is always > than directory without version suffix
-            int index = name.indexOf('_');
-            if (index != -1)
-                version = name.substring(index + 1);
-            Object currentVersion = getVersionElements(version);
-            if (maxVersion == null) {
-                result = i;
-                maxVersion = currentVersion;
-            } else {
-                if (compareVersion((Object[]) maxVersion, (Object[]) currentVersion) < 0) {
-                    result = i;
-                    maxVersion = currentVersion;
-                }
-            }
-        }
-        return result;
-    }
-	/**
-	 * Compares version strings. 
-	 * @return result of comparison, as integer;
-	 * <code><0</code> if left < right;
-	 * <code>0</code> if left == right;
-	 * <code>>0</code> if left > right;
-	 */
-	private int compareVersion(Object[] left, Object[] right) {
-
-		int result = ((Integer) left[0]).compareTo((Integer) right[0]); // compare major
-		if (result != 0)
-			return result;
-
-		result = ((Integer) left[1]).compareTo((Integer) right[1]); // compare minor
-		if (result != 0)
-			return result;
-
-		result = ((Integer) left[2]).compareTo((Integer) right[2]); // compare service
-		if (result != 0)
-			return result;
-
-		return ((String) left[3]).compareTo((String) right[3]); // compare qualifier
-	}
-
-	/**
-	 * Do a quick parse of version identifier so its elements can be correctly compared.
-	 * If we are unable to parse the full version, remaining elements are initialized
-	 * with suitable defaults.
-	 * @return an array of size 4; first three elements are of type Integer (representing
-	 * major, minor and service) and the fourth element is of type String (representing
-	 * qualifier). Note, that returning anything else will cause exceptions in the caller.
-	 */
-	private Object[] getVersionElements(String version) {
-        if (version.endsWith(".jar"))
-            version = version.substring(0, version.length() - 4);
-		Object[] result = {new Integer(0), new Integer(0), new Integer(0), ""}; //$NON-NLS-1$
-		StringTokenizer t = new StringTokenizer(version, "."); //$NON-NLS-1$
-		String token;
-		int i = 0;
-		while (t.hasMoreTokens() && i < 4) {
-			token = t.nextToken();
-			if (i < 3) {
-				// major, minor or service ... numeric values
-				try {
-					result[i++] = new Integer(token);
-				} catch (Exception e) {
-					// invalid number format - use default numbers (0) for the rest
-					break;
-				}
-			} else {
-				// qualifier ... string value
-				result[i++] = token;
-			}
-		}
-		return result;
-	}
-
-	private static URL buildURL(String spec, boolean trailingSlash) {
-		if (spec == null)
-			return null;
-		boolean isFile = spec.startsWith(FILE_SCHEME); //$NON-NLS-1$
-		try {
-			if (isFile) {
-                File toAdjust = new File(spec.substring(5));
-                if (toAdjust.isDirectory())
-                    return adjustTrailingSlash(toAdjust.toURL(), trailingSlash);
-                else
-                    return toAdjust.toURL();
-            } else
-				return new URL(spec);
-		} catch (MalformedURLException e) {
-			// if we failed and it is a file spec, there is nothing more we can do
-			// otherwise, try to make the spec into a file URL.
-			if (isFile)
-				return null;
-			try {
-                File toAdjust = new File(spec);
-                if (toAdjust.isDirectory())
-                    return adjustTrailingSlash(toAdjust.toURL(), trailingSlash);
-                else
-                    return toAdjust.toURL();
-			} catch (MalformedURLException e1) {
-				return null;
-			}
-		}
-	}
-
-	private static URL adjustTrailingSlash(URL url, boolean trailingSlash) throws MalformedURLException {
-		String file = url.getFile();
-		if (trailingSlash == (file.endsWith("/"))) //$NON-NLS-1$
-			return url;
-		file = trailingSlash ? file + "/" : file.substring(0, file.length() - 1); //$NON-NLS-1$
-		return new URL(url.getProtocol(), url.getHost(), file);
-	}
-
-	private URL buildLocation(String property, URL defaultLocation, String userDefaultAppendage) {
-		URL result = null;
-		String location = System.getProperty(property);
-		System.getProperties().remove(property);
-		// if the instance location is not set, predict where the workspace will be and 
-		// put the instance area inside the workspace meta area.
-		try {
-			if (location == null)
-				result = defaultLocation;
-			else if (location.equalsIgnoreCase(NONE))
-				return null;
-			else if (location.equalsIgnoreCase(NO_DEFAULT))
-				result = buildURL(location, true);
-			else {
-				if (location.startsWith(USER_HOME)) {
-					String base = substituteVar(location, USER_HOME, PROP_USER_HOME);
-					location = new File(base, userDefaultAppendage).getAbsolutePath();
-				} else if (location.startsWith(USER_DIR)) {
-					String base = substituteVar(location, USER_DIR, PROP_USER_DIR);
-					location = new File(base, userDefaultAppendage).getAbsolutePath();
-				}
-				result = buildURL(location, true);
-			}
-		} finally {
-			if (result != null)
-				System.getProperties().put(property, result.toExternalForm());
-		}
-		return result;
-	}
-
-	private String substituteVar(String source, String var, String prop) {
-		String value = System.getProperty(prop, "");
-		return value + source.substring(var.length());
-	}
-
-	/** 
-	 * Retuns the default file system path for the configuration location.
-	 * By default the configuration information is in the installation directory
-	 * if this is writeable.  Otherwise it is located somewhere in the user.home
-	 * area relative to the current product. 
-	 * @return the default file system path for the configuration information
-	 */
-	private String computeDefaultConfigurationLocation() {
-		// 1) We store the config state relative to the 'eclipse' directory if possible
-		// 2) If this directory is read-only 
-		//    we store the state in <user.home>/.eclipse/<application-id>_<version> where <user.home> 
-		//    is unique for each local user, and <application-id> is the one 
-		//    defined in .eclipseproduct marker file. If .eclipseproduct does not
-		//    exist, use "eclipse" as the application-id.
-
-		URL install = getInstallLocation();
-		// TODO a little dangerous here.  Basically we have to assume that it is a file URL.
-		if (install.getProtocol().equals("file")) { //$NON-NLS-1$
-			File installDir = new File(install.getFile());
-			if (canWrite(installDir))
-				return installDir.getAbsolutePath() + File.separator + CONFIG_DIR;
-		}
-		// We can't write in the eclipse install dir so try for some place in the user's home dir
-		return computeDefaultUserAreaLocation(CONFIG_DIR);
-	}
-
-	private static boolean canWrite(File installDir) {
-		if (installDir.canWrite() == false)
-			return false;
-
-		if (!installDir.isDirectory())
-			return false;
-
-		File fileTest = null;
-		try {
-			fileTest = File.createTempFile("writtableArea", null, installDir); //$NON-NLS-1$
-		} catch (IOException e) {
-			//If an exception occured while trying to create the file, it means that it is not writtable
-			return false;
-		} finally {
-			if (fileTest != null)
-				fileTest.delete();
-		}
-		return true;
-	}
-	
-	/**
-	 * Returns a files system path for an area in the user.home region related to the
-	 * current product.  The given appendage is added to this base location
-	 * @param pathAppendage the path segments to add to computed base
-	 * @return a file system location in the user.home area related the the current
-	 *   product and the given appendage
-	 */
-	private String computeDefaultUserAreaLocation(String pathAppendage) {
-		//    we store the state in <user.home>/.eclipse/<application-id>_<version> where <user.home> 
-		//    is unique for each local user, and <application-id> is the one 
-		//    defined in .eclipseproduct marker file. If .eclipseproduct does not
-		//    exist, use "eclipse" as the application-id.
-		URL installURL = getInstallLocation();
-		if (installURL == null)
-			return null;
-		File installDir = new File(installURL.getFile());
-		String appName = "." + ECLIPSE; //$NON-NLS-1$
-		File eclipseProduct = new File(installDir, PRODUCT_SITE_MARKER);
-		if (eclipseProduct.exists()) {
-			Properties props = new Properties();
-			try {
-				props.load(new FileInputStream(eclipseProduct));
-				String appId = props.getProperty(PRODUCT_SITE_ID);
-				if (appId == null || appId.trim().length() == 0)
-					appId = ECLIPSE;
-				String appVersion = props.getProperty(PRODUCT_SITE_VERSION);
-				if (appVersion == null || appVersion.trim().length() == 0)
-					appVersion = ""; //$NON-NLS-1$
-				appName += File.separator + appId + "_" + appVersion; //$NON-NLS-1$
-			} catch (IOException e) {
-				// Do nothing if we get an exception.  We will default to a standard location 
-				// in the user's home dir.
-			}
-		}
-		String userHome = System.getProperty(PROP_USER_HOME);
-		return new File(userHome, appName + "/" + pathAppendage).getAbsolutePath(); //$NON-NLS-1$
-	}
-
-	/**
-	 * Runs this launcher with the arguments specified in the given string.
-	 * 
-	 * @param argString the arguments string
-	 */
-	public static void main(String argString) {
-		Vector list = new Vector(5);
-		for (StringTokenizer tokens = new StringTokenizer(argString, " "); tokens.hasMoreElements();) //$NON-NLS-1$
-			list.addElement(tokens.nextElement());
-		main((String[]) list.toArray(new String[list.size()]));
-	}
-
-	/**
-	 * Runs the platform with the given arguments.  The arguments must identify
-	 * an application to run (e.g., <code>-application com.example.application</code>).
-	 * After running the application <code>System.exit(N)</code> is executed.
-	 * The value of N is derived from the value returned from running the application.
-	 * If the application's return value is an <code>Integer</code>, N is this value.
-	 * In all other cases, N = 0.
-	 * <p>
-	 * Clients wishing to run the platform without a following <code>System.exit</code>
-	 * call should use <code>run()</code>.
-	 * </p>
-	 * 
-	 * @param args the command line arguments
-	 * @see #run(String[])
-	 */
-	public static void main(String[] args) {
-		int result = new Main().run(args);
-		System.exit(result);
-	}
-
-	/**
-	 * Runs the platform with the given arguments.  The arguments must identify
-	 * an application to run (e.g., <code>-application com.example.application</code>).
-	 * Returns the value returned from running the application.
-	 * If the application's return value is an <code>Integer</code>, N is this value.
-	 * In all other cases, N = 0.
-	 *
-	 * @param args the command line arguments
-	 */
-	public int run(String[] args) {
-		int result = 0;
-		try {
-			basicRun(args);
-			String exitCode = System.getProperty(PROP_EXITCODE);
-			try {
-				result = exitCode == null ? 0 : Integer.parseInt(exitCode);
-			} catch (NumberFormatException e) {
-				result = 17;
-			}
-		} catch (Throwable e) {
-			// only log the exceptions if they have not been caught by the 
-			// EclipseStarter (i.e., if the exitCode is not 13) 
-			if (!"13".equals(System.getProperty(PROP_EXITCODE))) { //$NON-NLS-1$
-				log("Exception launching the Eclipse Platform:"); //$NON-NLS-1$
-				log(e);
-				String message = "An error has occurred"; //$NON-NLS-1$
-				if (logFile == null)
-					message += " and could not be logged: \n" + e.getMessage(); //$NON-NLS-1$
-				else
-					message += ".  See the log file\n" + logFile.getAbsolutePath(); //$NON-NLS-1$
-				System.getProperties().put(PROP_EXITDATA, message);
-			}
-			// Return "unlucky" 13 as the exit code. The executable will recognize
-			// this constant and display a message to the user telling them that
-			// there is information in their log file.
-			result = 13;
-		} finally {
-			// always try putting down the splash screen just in case the application failed to do so
-			takeDownSplash();			
-		}
-		// Return an int exit code and ensure the system property is set.
-		System.getProperties().put(PROP_EXITCODE, Integer.toString(result));
-		setExitData();
-		return result;
-	}
-
-	private void setExitData() {
-		String data = System.getProperty(PROP_EXITDATA);
-		if (exitData == null || data == null)
-			return;
-		// sync call to the launcher
-		runCommand(true, new String[] {EXITDATA, exitData, data}); //$NON-NLS-1$
-	}
-
-	/**
-	 * Processes the command line arguments.  The general principle is to NOT
-	 * consume the arguments and leave them to be processed by Eclipse proper.
-	 * There are a few args which are directed towards main() and a few others
-	 * which we need to know about. Very few should actually be consumed here.
-	 * 
-	 * @return the arguments to pass through to the launched application
-	 * @param args the command line arguments
-	 */
-	protected String[] processCommandLine(String[] args) {
-		if (args.length == 0)
-			return args;
-		int[] configArgs = new int[args.length];
-		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)
-			// check if debug should be enabled for the entire platform
-			if (args[i].equalsIgnoreCase(DEBUG)) {
-				debug = true;
-				// passed thru this arg (i.e., do not set found = true)
-				continue;
-			}
-
-			// look for and consume the nosplash directive.  This supercedes any
-			// -showsplash command that might be present.
-			if (args[i].equalsIgnoreCase(NOSPLASH)) {
-				splashDown = true;
-				found = true;
-			}
-
-			// check if this is initialization pass
-			if (args[i].equalsIgnoreCase(INITIALIZE)) {
-				initialize = true;
-				// passed thru this arg (i.e., do not set found = true)
-				continue;
-			}
-
-			// check if development mode should be enabled for the entire platform
-			// If this is the last arg or there is a following arg (i.e., arg+1 has a leading -), 
-			// simply enable development mode.  Otherwise, assume that that the following arg is
-			// actually some additional development time class path entries.  This will be processed below.
-			if (args[i].equalsIgnoreCase(DEV) && ((i + 1 == args.length) || ((i + 1 < args.length) && (args[i + 1].startsWith("-"))))) { //$NON-NLS-1$
-				inDevelopmentMode = true;
-				// do not mark the arg as found so it will be passed through
-				continue;
-			}
-
-			// done checking for args.  Remember where an arg was found 
-			if (found) {
-				configArgs[configArgIndex++] = i;
-				continue;
-			}
-
-			// look for the VM args arg.  We have to do that before looking to see
-			// if the next element is a -arg as the thing following -vmargs may in
-			// fact be another -arg.
-			if (args[i].equalsIgnoreCase(VMARGS)) {
-				// consume the -vmargs arg itself
-				args[i] = null;
-				i++;
-				vmargs = new String[args.length - i];
-				for (int j = 0; i < args.length; i++) {
-					vmargs[j++] = args[i];
-					args[i] = null;
-				}
-				continue;
-			}
-
-			// check for args with parameters. If we are at the last argument or if the next one
-			// has a '-' as the first character, then we can't have an arg with a parm so continue.
-			if (i == args.length - 1 || args[i + 1].startsWith("-")) //$NON-NLS-1$
-				continue;
-			String arg = args[++i];
-
-			// look for the development mode and class path entries.  
-			if (args[i - 1].equalsIgnoreCase(DEV)) {
-				inDevelopmentMode = true;
-				devClassPath = processDevArg(arg);
-				continue;
-			}
-
-			// look for the framework to run
-			if (args[i - 1].equalsIgnoreCase(FRAMEWORK)) {
-				framework = arg;
-				found = true;
-			}
-
-			// look for explicitly set install root
-			// Consume the arg here to ensure that the launcher and Eclipse get the 
-			// same value as each other.  
-			if (args[i - 1].equalsIgnoreCase(INSTALL)) {
-				System.getProperties().put(PROP_INSTALL_AREA, arg);
-				found = true;
-			}
-
-			// look for the configuration to use.  
-			// Consume the arg here to ensure that the launcher and Eclipse get the 
-			// same value as each other.  
-			if (args[i - 1].equalsIgnoreCase(CONFIGURATION)) {
-				System.getProperties().put(PROP_CONFIG_AREA, arg);
-				found = true;
-			}
-
-			// look for the command to use to set exit data in the launcher
-			if (args[i - 1].equalsIgnoreCase(EXITDATA)) {
-				exitData = arg;
-				found = true;
-			}
-
-			// look for the command to use to show the splash screen
-			if (args[i - 1].equalsIgnoreCase(SHOWSPLASH)) {
-				showSplash = arg;
-				found = true;
-			}
-
-			// look for the name to use by the launcher
-			if (args[i - 1].equalsIgnoreCase(NAME)) {
-				name = arg;
-				found = true;
-			}
-
-			// look for the launcher location
-			if (args[i - 1].equalsIgnoreCase(LAUNCHER)) {
-				launcher = arg;
-				found = true;
-			}
-			
-			// look for the command to use to end the splash screen
-			if (args[i - 1].equalsIgnoreCase(ENDSPLASH)) {
-				endSplash = arg;
-				found = true;
-			}
-
-			// look for the VM location arg
-			if (args[i - 1].equalsIgnoreCase(VM)) {
-				vm = arg;
-				found = true;
-			}
-
-			// 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
-		String[] passThruArgs = new String[args.length - configArgIndex - (vmargs == null ? 0 : vmargs.length + 1)];
-		configArgIndex = 0;
-		int j = 0;
-		for (int i = 0; i < args.length; i++) {
-			if (i == configArgs[configArgIndex])
-				configArgIndex++;
-			else if (args[i] != null)
-				passThruArgs[j++] = args[i];
-		}
-		return passThruArgs;
-	}
-
-	private String processDevArg(String arg) {
-		if (arg == null)
-			return null;
-		try {
-			URL location = new URL(arg);
-			Properties props = load(location, null);
-			String result = props.getProperty(OSGI);
-			return result == null ? props.getProperty("*") : result; //$NON-NLS-1$
-		} catch (MalformedURLException e) {
-			// the arg was not a URL so use it as is.
-			return arg;
-		} catch (IOException e) {
-			// TODO consider logging here
-			return null;
-		}
-	}
-
-	private URL getConfigurationLocation() {
-		if (configurationLocation != null)
-			return configurationLocation;
-		configurationLocation = buildLocation(PROP_CONFIG_AREA, null, ""); //$NON-NLS-1$
-		if (configurationLocation == null) {
-			configurationLocation = buildLocation(PROP_CONFIG_AREA_DEFAULT, null, ""); //$NON-NLS-1$
-			if (configurationLocation == null)
-				configurationLocation = buildURL(computeDefaultConfigurationLocation(), true);
-		}
-		if (configurationLocation != null)
-			System.getProperties().put(PROP_CONFIG_AREA, configurationLocation.toExternalForm());
-		if (debug)
-			System.out.println("Configuration location:\n    " + configurationLocation); //$NON-NLS-1$
-		return configurationLocation;
-	}
-
-	private void processConfiguration() {
-		// if the configuration area is not already defined, discover the config area by
-		// trying to find a base config area.  This is either defined in a system property or
-		// is computed relative to the install location.
-		// Note that the config info read here is only used to determine a value 
-		// for the user configuration area
-		URL baseConfigurationLocation = null;
-		Properties baseConfiguration = null;
-		if (System.getProperty(PROP_CONFIG_AREA) == null) {
-			String baseLocation = System.getProperty(PROP_BASE_CONFIG_AREA);
-			if (baseLocation != null)
-				// here the base config cannot have any symbolic (e..g, @xxx) entries.  It must just
-				// point to the config file.
-				baseConfigurationLocation = buildURL(baseLocation, true);
-			if (baseConfigurationLocation == null)
-				try {
-					// here we access the install location but this is very early.  This case will only happen if
-					// the config area is not set and the base config area is not set (or is bogus).
-					// In this case we compute based on the install location.
-					baseConfigurationLocation = new URL(getInstallLocation(), CONFIG_DIR);
-				} catch (MalformedURLException e) {
-					// leave baseConfigurationLocation null
-				}
-			baseConfiguration = loadConfiguration(baseConfigurationLocation);
-			if (baseConfiguration != null) {
-				// if the base sets the install area then use that value if the property.  We know the 
-				// property is not already set.
-				String location = baseConfiguration.getProperty(PROP_CONFIG_AREA);
-				if (location != null)
-					System.getProperties().put(PROP_CONFIG_AREA, location);
-				// if the base sets the install area then use that value if the property is not already set.
-				// This helps in selfhosting cases where you cannot easily compute the install location
-				// from the code base.
-				location = baseConfiguration.getProperty(PROP_INSTALL_AREA);
-				if (location != null && System.getProperty(PROP_INSTALL_AREA) == null)
-					System.getProperties().put(PROP_INSTALL_AREA, location);
-			}
-		}
-
-		// Now we know where the base configuration is supposed to be.  Go ahead and load
-		// it and merge into the System properties.  Then, if cascaded, read the parent configuration
-		// Note that the parent may or may not be the same parent as we read above since the 
-		// base can define its parent.  The first parent we read was either defined by the user
-		// on the command line or was the one in the install dir.  
-		// if the config or parent we are about to read is the same as the base config we read above,
-		// just reuse the base
-		Properties configuration = baseConfiguration;
-		if (configuration == null || !getConfigurationLocation().equals(baseConfigurationLocation.toExternalForm()))
-			configuration = loadConfiguration(getConfigurationLocation());
-		mergeProperties(System.getProperties(), configuration);
-		if ("false".equalsIgnoreCase(System.getProperty(PROP_CONFIG_CASCADED))) //$NON-NLS-1$
-			// if we are not cascaded then remove the parent property even if it was set.
-			System.getProperties().remove(PROP_SHARED_CONFIG_AREA);
-		else {
-			URL sharedConfigURL = buildLocation(PROP_SHARED_CONFIG_AREA, null, "");
-			if (sharedConfigURL == null)
-				try {
-					// there is no shared config value so compute one
-					sharedConfigURL = new URL(getInstallLocation(), CONFIG_DIR);
-				} catch (MalformedURLException e) {
-					// leave sharedConfigurationLocation null
-				}
-			// if the parent location is different from the config location, read it too.
-			if (sharedConfigURL != null) {
-				if (sharedConfigURL.equals(getConfigurationLocation()))
-					// remove the property to show that we do not have a parent.
-					System.getProperties().remove(PROP_SHARED_CONFIG_AREA);
-				else {
-					// if the parent we are about to read is the same as the base config we read above,
-					// just reuse the base
-					configuration = baseConfiguration;
-					if (!sharedConfigURL.equals(baseConfigurationLocation))
-						configuration = loadConfiguration(sharedConfigURL);
-					mergeProperties(System.getProperties(), configuration);
-					System.getProperties().put(PROP_SHARED_CONFIG_AREA, sharedConfigURL.toExternalForm());
-					if (debug)
-						System.out.println("Shared configuration location:\n    " + sharedConfigURL.toExternalForm()); //$NON-NLS-1$
-				}
-			}
-		}
-		// setup the path to the framework
-		String urlString = System.getProperty(PROP_FRAMEWORK, null);
-		if (urlString != null) {
-			URL url = buildURL(urlString, true);
-			System.getProperties().put(PROP_FRAMEWORK, url.toExternalForm());
-			bootLocation = resolve(urlString);
-		}
-	}
-
-	/**
-	 * Returns url of the location this class was loaded from
-	 */
-	private URL getInstallLocation() {
-		if (installLocation != null)
-			return installLocation;
-
-		// value is not set so compute the default and set the value
-		String installArea = System.getProperty(PROP_INSTALL_AREA);
-		if (installArea != null) {
-			installLocation = buildURL(installArea, true);
-			if (installLocation == null)
-				throw new IllegalStateException("Install location is invalid: " + installArea); //$NON-NLS-1$
-			System.getProperties().put(PROP_INSTALL_AREA, installLocation.toExternalForm());
-			if (debug)
-				System.out.println("Install location:\n    " + installLocation); //$NON-NLS-1$
-			return installLocation;
-		}
-
-		URL result = Main.class.getProtectionDomain().getCodeSource().getLocation();
-		String path = decode(result.getFile());
-		// normalize to not have leading / so we can check the form
-		File file = new File(path);
-		path = file.toString().replace('\\', '/');
-		// TODO need a better test for windows
-		// If on Windows then canonicalize the drive letter to be lowercase.
-		// remember that there may be UNC paths 
-		if (File.separatorChar == '\\')
-			if (Character.isUpperCase(path.charAt(0))) {
-				char[] chars = path.toCharArray();
-				chars[0] = Character.toLowerCase(chars[0]);
-				path = new String(chars);
-			}
-		if (path.endsWith(".jar")) //$NON-NLS-1$
-			path = path.substring(0, path.lastIndexOf("/") + 1); //$NON-NLS-1$
-		try {
-			try {
-				// create a file URL (via File) to normalize the form (e.g., put 
-				// the leading / on if necessary)
-				path = new File(path).toURL().getFile();
-			} catch (MalformedURLException e1) {
-				// will never happen.  The path is straight from a URL.  
-			}
-			installLocation = new URL(result.getProtocol(), result.getHost(), result.getPort(), path);
-			System.getProperties().put(PROP_INSTALL_AREA, installLocation.toExternalForm());
-		} catch (MalformedURLException e) {
-			// TODO Very unlikely case.  log here.  
-		}
-		if (debug)
-			System.out.println("Install location:\n    " + installLocation); //$NON-NLS-1$
-		return installLocation;
-	}
-
-	/*
-	 * Load the given configuration file
-	 */
-	private Properties loadConfiguration(URL url) {
-		Properties result = null;
-		try {
-			url = new URL(url, CONFIG_FILE);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-		try {
-			if (debug)
-				System.out.print("Configuration file:\n    " + url.toString()); //$NON-NLS-1$
-			result = loadProperties(url);
-			if (debug)
-				System.out.println(" loaded"); //$NON-NLS-1$
-		} catch (IOException e) {
-			if (debug)
-				System.out.println(" not found or not read"); //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	private Properties loadProperties(URL url) throws IOException {
-		// try to load saved configuration file (watch for failed prior save())
-		if (url == null)
-			return null;
-		Properties result = null;
-		IOException originalException = null;
-		try {
-			result = load(url, null); // try to load config file
-		} catch (IOException e1) {
-			originalException = e1;
-			try {
-				result = load(url, CONFIG_FILE_TEMP_SUFFIX); // check for failures on save
-			} catch (IOException e2) {
-				try {
-					result = load(url, CONFIG_FILE_BAK_SUFFIX); // check for failures on save
-				} catch (IOException e3) {
-					throw originalException; // we tried, but no config here ...
-				}
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * Load the configuration  
-	 */
-	private Properties load(URL url, String suffix) throws IOException {
-		// figure out what we will be loading
-		if (suffix != null && !suffix.equals("")) //$NON-NLS-1$
-			url = new URL(url.getProtocol(), url.getHost(), url.getPort(), url.getFile() + suffix);
-
-		// try to load saved configuration file
-		Properties props = new Properties();
-		InputStream is = null;
-		try {
-			is = url.openStream();
-			props.load(is);
-		} finally {
-			if (is != null)
-				try {
-					is.close();
-				} catch (IOException e) {
-					//ignore failure to close
-				}
-		}
-		return props;
-	}
-
-	/*
-	 * Handle splash screen.
-	 * We support 2 startup scenarios:
-	 * 
-	 * (1) the executable launcher put up the splash screen. In that
-	 *     scenario we are invoked with -endsplash command which is
-	 *     fully formed to take down the splash screen
-	 * 
-	 * (2) the executable launcher did not put up the splash screen,
-	 *     but invokes Eclipse with partially formed -showsplash command.
-	 *     In this scenario we determine which splash to display (based on 
-	 *     feature information) and then call -showsplash command. 
-	 * 
-	 * In both scenarios we pass a handler (Runnable) to the platform.
-	 * The handler is called as a result of the launched application calling
-	 * Platform.endSplash(). In the first scenario this results in the
-	 * -endsplash command being executed. In the second scenarios this
-	 * results in the process created as a result of the -showsplash command
-	 * being destroyed.
-	 * 
-	 * @param bootPath search path for the boot plugin
-	 */
-	private void handleSplash(URL[] defaultPath) {
-		// run without splash if we are initializing or nosplash 
-		// was specified (splashdown = true)
-		if (initialize || splashDown) {
-			showSplash = null;
-			endSplash = null;
-			return;
-		}
-
-		// if -endsplash is specified, use it and ignore any -showsplash command
-		if (endSplash != null) {
-			showSplash = null;
-			return;
-		}
-
-		// check if we are running without a splash screen
-		if (showSplash == null)
-			return;
-
-		// determine the splash location
-		String location = getSplashLocation(defaultPath);
-		if (debug)
-			System.out.println("Splash location:\n    " + location); //$NON-NLS-1$
-		if (location == null)
-			return;
-		// async call to the launcher
-		showProcess = runCommand(false, new String[] {SHOWSPLASH, showSplash, location}); //$NON-NLS-1$
-	}
-	
-	private Process runCommand(boolean block, String[] extraArgs) {
-		final int NBR_DEFAULT_ARGS = 3;
-		String[] args = new String[NBR_DEFAULT_ARGS + extraArgs.length];
-		args[0] = launcher;
-		args[1] = NAME;
-		args[2] = name;
-
-		for (int i = 0; i < extraArgs.length; i++) {
-			args[i + NBR_DEFAULT_ARGS] = extraArgs[i];
-		}
-
-		if (debug) {
-			System.out.print("runCommand:\n    ");//$NON-NLS-1$ 
-			for (int i = 0; i < args.length; i++) {
-				System.out.print('<' + args[i] + '>');//$NON-NLS-1$ //$NON-NLS-2$ 
-			}
-			System.out.println();
-		}
-
-		Process result = null;
-		try {
-			result = Runtime.getRuntime().exec(args);
-			if (block)
-				result.waitFor();
-		} catch (Exception e) {
-			log("Exception running command: " + extraArgs != null && extraArgs.length > 0 ? extraArgs[0] : null); //$NON-NLS-1$ 
-			log(e);
-		}
-		return result;
-	}
-
-	/*
-	 * take down the splash screen. Try both take-down methods just in case
-	 * (only one should ever be set)
-	 */
-	protected void takeDownSplash() {
-		if (splashDown) // splash is already down
-			return;
-
-		// check if -endsplash was specified
-		if (endSplash != null) {
-			try {
-				Runtime.getRuntime().exec(endSplash);
-			} catch (Exception e) {
-				//ignore failure to end splash
-			}
-		}
-
-		// check if -showsplash was specified and executed
-		if (showProcess != null) {
-			showProcess.destroy();
-			showProcess = null;
-		}
-		splashDown = true;
-	}
-
-	/*
-	 * Return path of the splash image to use.  First search the defined splash path.
-	 * If that does not work, look for a default splash.  Currently the splash must be in the file system
-	 * so the return value here is the file system path.
-	 */
-	private String getSplashLocation(URL[] bootPath) {
-		String result = System.getProperty(PROP_SPLASHLOCATION);
-		if (result != null)
-			return result;
-		String splashPath = System.getProperty(PROP_SPLASHPATH);
-		if (splashPath != null) {
-			String[] entries = getArrayFromList(splashPath);
-			ArrayList path = new ArrayList(entries.length);
-			for (int i = 0; i < entries.length; i++) {
-				String entry = resolve(entries[i]);
-				if (entry == null || entry.startsWith(FILE_SCHEME)) {
-					File entryFile = new File(entry.substring(5).replace('/', File.separatorChar));
-					entry = searchFor(entryFile.getName(), entryFile.getParent());
-					if (entry != null)
-						path.add(entry);
-				} else
-					log("Invalid splash path entry: " + entries[i]); //$NON-NLS-1$
-			}
-			// see if we can get a splash given the splash path
-			result = searchForSplash((String[]) path.toArray(new String[path.size()]));
-			if (result != null) {
-				System.getProperties().put(PROP_SPLASHLOCATION, result);
-				return result;
-			}
-		}
-
-		// can't find it on the splashPath so look for a default splash
-		String temp = bootPath[0].getFile(); // take the first path element
-		temp = temp.replace('/', File.separatorChar);
-		int ix = temp.lastIndexOf("plugins" + File.separator); //$NON-NLS-1$
-		if (ix != -1) {
-			int pix = temp.indexOf(File.separator, ix + 8);
-			if (pix != -1) {
-				temp = temp.substring(0, pix);
-				result = searchForSplash(new String[] {temp});
-				if (result != null)
-					System.getProperties().put(PROP_SPLASHLOCATION, result);
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * Do a locale-sensitive lookup of splash image
-	 */
-	private String searchForSplash(String[] searchPath) {
-		if (searchPath == null)
-			return null;
-
-		// get current locale information
-		String localePath = Locale.getDefault().toString().replace('_', File.separatorChar);
-
-		// search the specified path
-		while (localePath != null) {
-			String suffix;
-			if (localePath.equals("")) { //$NON-NLS-1$
-				// look for nl'ed splash image
-				suffix = SPLASH_IMAGE;
-			} else {
-				// look for default splash image
-				suffix = "nl" + File.separator + localePath + File.separator + SPLASH_IMAGE; //$NON-NLS-1$
-			}
-
-			// check for file in searchPath
-			for (int i = 0; i < searchPath.length; i++) {
-				String path = searchPath[i];
-				if (!path.endsWith(File.separator))
-					path += File.separator;
-				path += suffix;
-				File result = new File(path);
-				if (result.exists())
-					return result.getAbsolutePath(); // return the first match found [20063]
-			}
-
-			// try the next variant
-			if (localePath.equals("")) //$NON-NLS-1$
-				localePath = null;
-			else {
-				int ix = localePath.lastIndexOf(File.separator);
-				if (ix == -1)
-					localePath = ""; //$NON-NLS-1$
-				else
-					localePath = localePath.substring(0, ix);
-			}
-		}
-
-		// sorry, could not find splash image
-		return null;
-	}
-
-	/*
-	 * resolve platform:/base/ URLs
-	 */
-	private String resolve(String urlString) {
-		// handle the case where people mistakenly spec a refererence: url.
-		if (urlString.startsWith(REFERENCE_SCHEME)) { //$NON-NLS-1$
-			urlString = urlString.substring(10);
-			System.getProperties().put(PROP_FRAMEWORK, urlString);
-		}
-		if (urlString.startsWith(PLATFORM_URL)) {
-			String path = urlString.substring(PLATFORM_URL.length());
-			return getInstallLocation() + path;
-		} else
-			return urlString;
-	}
-
-	/*
-	 * Entry point for logging.
-	 */
-	private synchronized void log(Object obj) {
-		if (obj == null)
-			return;
-		try {
-			openLogFile();
-			try {
-				if (newSession) {
-					log.write(SESSION);
-					log.write(' ');
-					String timestamp = new Date().toString();
-					log.write(timestamp);
-					log.write(' ');
-					for (int i = SESSION.length() + timestamp.length(); i < 78; i++)
-						log.write('-');
-					log.newLine();
-					newSession = false;
-				}
-				write(obj);
-			} finally {
-				if (logFile == null) {
-					if (log != null)
-						log.flush();
-				} else
-					closeLogFile();
-			}
-		} catch (Exception e) {
-			System.err.println("An exception occurred while writing to the platform log:"); //$NON-NLS-1$
-			e.printStackTrace(System.err);
-			System.err.println("Logging to the console instead."); //$NON-NLS-1$
-			//we failed to write, so dump log entry to console instead
-			try {
-				log = logForStream(System.err);
-				write(obj);
-				log.flush();
-			} catch (Exception e2) {
-				System.err.println("An exception occurred while logging to the console:"); //$NON-NLS-1$
-				e2.printStackTrace(System.err);
-			}
-		} finally {
-			log = null;
-		}
-	}
-
-	/*
-	 * This should only be called from #log()
-	 */
-	private void write(Object obj) throws IOException {
-		if (obj == null)
-			return;
-		if (obj instanceof Throwable) {
-			log.write(STACK);
-			log.newLine();
-			((Throwable) obj).printStackTrace(new PrintWriter(log));
-		} else {
-			log.write(ENTRY);
-			log.write(' ');
-			log.write(PLUGIN_ID);
-			log.write(' ');
-			log.write(String.valueOf(ERROR));
-			log.write(' ');
-			log.write(String.valueOf(0));
-			log.write(' ');
-			try {
-				DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy kk:mm:ss.SS"); //$NON-NLS-1$
-				log.write(formatter.format(new Date()));
-			} catch (Exception e) {
-				// continue if we can't write out the date
-				log.write(Long.toString(System.currentTimeMillis()));
-			}
-			log.newLine();
-			log.write(MESSAGE);
-			log.write(' ');
-			log.write(String.valueOf(obj));
-		}
-		log.newLine();
-	}
-
-	private void computeLogFileLocation() {
-		String logFileProp = System.getProperty(PROP_LOGFILE);
-		if (logFileProp != null) {
-			if (logFile == null || !logFileProp.equals(logFile.getAbsolutePath())) {
-				logFile = new File(logFileProp);
-				logFile.getParentFile().mkdirs();
-			}
-			return;
-		}
-
-		// compute the base location and then append the name of the log file
-		URL base = buildURL(System.getProperty(PROP_CONFIG_AREA), false);
-		if (base == null)
-			return;
-		logFile = new File(base.getPath(), Long.toString(System.currentTimeMillis()) + ".log"); //$NON-NLS-1$
-		logFile.getParentFile().mkdirs();
-		System.setProperty(PROP_LOGFILE, logFile.getAbsolutePath());
-	}
-
-	/**
-	 * Converts an ASCII character representing a hexadecimal
-	 * value into its integer equivalent.
-	 */
-	private int hexToByte(byte b) {
-		switch (b) {
-			case '0' :
-				return 0;
-			case '1' :
-				return 1;
-			case '2' :
-				return 2;
-			case '3' :
-				return 3;
-			case '4' :
-				return 4;
-			case '5' :
-				return 5;
-			case '6' :
-				return 6;
-			case '7' :
-				return 7;
-			case '8' :
-				return 8;
-			case '9' :
-				return 9;
-			case 'A' :
-			case 'a' :
-				return 10;
-			case 'B' :
-			case 'b' :
-				return 11;
-			case 'C' :
-			case 'c' :
-				return 12;
-			case 'D' :
-			case 'd' :
-				return 13;
-			case 'E' :
-			case 'e' :
-				return 14;
-			case 'F' :
-			case 'f' :
-				return 15;
-			default :
-				throw new IllegalArgumentException("Switch error decoding URL"); //$NON-NLS-1$
-		}
-	}
-
-	private void openLogFile() throws IOException {
-		computeLogFileLocation();
-		try {
-			log = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(logFile.getAbsolutePath(), true), "UTF-8")); //$NON-NLS-1$
-		} catch (IOException e) {
-			logFile = null;
-			throw e;
-		}
-	}
-
-	private BufferedWriter logForStream(OutputStream output) {
-		try {
-			return new BufferedWriter(new OutputStreamWriter(output, "UTF-8")); //$NON-NLS-1$
-		} catch (UnsupportedEncodingException e) {
-			return new BufferedWriter(new OutputStreamWriter(output));
-		}
-	}
-
-	private void closeLogFile() throws IOException {
-		try {
-			if (log != null) {
-				log.flush();
-				log.close();
-			}
-		} finally {
-			log = null;
-		}
-	}
-
-	private void mergeProperties(Properties destination, Properties source) {
-		if (destination == null || source == null)
-			return;
-		for (Enumeration e = source.keys(); e.hasMoreElements();) {
-			String key = (String) e.nextElement();
-			if (key.equals(PROP_CLASSPATH)) {
-				String destinationClasspath = destination.getProperty(PROP_CLASSPATH);
-				String sourceClasspath = source.getProperty(PROP_CLASSPATH);
-				if (destinationClasspath == null)
-					destinationClasspath = sourceClasspath;
-				else
-					destinationClasspath = destinationClasspath + sourceClasspath;
-				destination.put(PROP_CLASSPATH, destinationClasspath);
-				continue;
-			}
-			if (!key.equals(PROP_EOF)) {
-				String value = source.getProperty(key);
-				if (destination.getProperty(key) == null)
-					destination.put(key, value);
-			}
-		}
-	}
-
-	private void setupVMProperties() {
-		if (vm != null)
-			System.getProperties().put(PROP_VM, vm);
-		setMultiValueProperty(PROP_VMARGS, vmargs);
-		setMultiValueProperty(PROP_COMMANDS, commands);
-	}
-
-	private void setMultiValueProperty(String property, String[] value) {
-		if (value != null) {
-			StringBuffer result = new StringBuffer(300);
-			for (int i = 0; i < value.length; i++) {
-				if (value[i] != null) {
-					result.append(value[i]);
-					result.append('\n');
-				}
-			}
-			System.getProperties().put(property, result.toString());
-		}
-	}
-
-	private class StartupClassLoader extends URLClassLoader {
-		public StartupClassLoader(URL[] urls, ClassLoader parent) {
-			super(urls, parent);
-		}
-
-		protected String findLibrary(String name) {
-			if (extensionPaths ==  null)
-				return super.findLibrary(name);
-			String libName = System.mapLibraryName(name);
-			for (int i = 0; i < extensionPaths.length; i++) {
-				File libFile = new File(extensionPaths[i], libName);
-				if (libFile.isFile())
-					return libFile.getAbsolutePath();
-			}
-			return super.findLibrary(name);
-		}		
-	}
-}
\ No newline at end of file
diff --git a/platform/org.eclipse.platform/src/org/eclipse/core/launcher/WebStartMain.java b/platform/org.eclipse.platform/src/org/eclipse/core/launcher/WebStartMain.java
deleted file mode 100644
index 549f588..0000000
--- a/platform/org.eclipse.platform/src/org/eclipse/core/launcher/WebStartMain.java
+++ /dev/null
@@ -1,206 +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 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.core.launcher;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.*;
-import java.util.jar.JarFile;
-
-/**
- * The launcher ot start eclipse using webstart.
- * To use this launcher, the client must accept to give all security permissions. 
- */
-//The bundles are discovered by finding all the jars on the classpath. Then they are added with their full path to the osgi.bundles list.
-public class WebStartMain extends Main {
-	private static final String PROP_WEBSTART_AUTOMATIC_INSTALLATION = "eclipse.webstart.automaticInstallation"; //$NON-NLS-1$
-	private static final String DEFAULT_OSGI_BUNDLES = "org.eclipse.core.runtime@2:start"; //$NON-NLS-1$
-	private static final String PROP_OSGI_BUNDLES = "osgi.bundles"; //$NON-NLS-1$
-
-	//List all the jars that are on the classpath
-	private String[] allJars = null;
-	//The list all the bundles that have been to the bundle list 
-	private Set onTheBundleList = new HashSet();
-
-	public static void main(String[] args) {
-		System.setSecurityManager(null);	 //Hack so that when the classloader loading the fwk is created we don't have funny permissions. This should be revisited. 
-		int result = new WebStartMain().run(args);
-		System.exit(result);
-	}
-
-	private void setDefaultBundles() {
-		if (System.getProperty(PROP_OSGI_BUNDLES) != null)
-			return;
-		System.getProperties().put(PROP_OSGI_BUNDLES, DEFAULT_OSGI_BUNDLES);
-	}
-
-	protected void basicRun(String[] args) throws Exception {
-		//Set the fwk location since the regular lookup would not find it
-		String fwkURL = searchFor(framework, null);
-		System.setProperty(PROP_FRAMEWORK, fwkURL);
-		onTheBundleList.add(fwkURL);
-		super.basicRun(args);
-	}
-
-	protected URL[] getBootPath(String base) throws IOException {
-		URL[] result = super.getBootPath(base);
-		setDefaultBundles();
-		convertBundleList();
-		addAllBundlesToBundleList();
-		cleanup();
-		return result;
-	}
-
-	/*
-	 * Null out all the fields containing data 
-	 */
-	private void cleanup() {
-		allJars = null;
-		onTheBundleList = null;
-	}
-
-	protected String searchFor(final String target, String start) {
-        //The searching can be improved 
-		String[] jars = getAllJars();
-		ArrayList selected = new ArrayList(3);
-		for (int i = 0; i < jars.length; i++) {
-			if (jars[i].indexOf(target) != -1)
-				selected.add(jars[i]);
-		}
-		if (selected.size() == 0)
-			return null;
-
-		String[] selectedJars = new String[selected.size()];
-		for (int i = 0; i < selected.size(); i++) {
-			selectedJars[i] = extractFileName((String) selected.get(i));
-		}
-		if (debug)
-			System.out.println(extractInnerURL((String) selected.get(findMax(selectedJars))));
-		return extractInnerURL((String) selected.get(findMax(selectedJars)));
-	}
-
-	/*
-	 * Extract the file name of the url - given that a file name
-	 */
-	private String extractFileName(String url) {
-		String innerURL = extractInnerURL(url);
-		return innerURL.substring(innerURL.lastIndexOf("/") + 1);
-	}
-
-	/* 
-	 * Find all the jars available on the webstart classpath
-	 */
-	private String[] getAllJars() {
-		if (allJars != null)
-			return allJars;
-
-		ArrayList collector = new ArrayList();
-		try {
-			Enumeration resources = WebStartMain.class.getClassLoader().getResources(JarFile.MANIFEST_NAME);
-			while (resources.hasMoreElements()) {
-				collector.add(((URL) resources.nextElement()).toExternalForm());
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		allJars = new String[collector.size()];
-		collector.toArray(allJars);
-		if (debug)
-			printArray("Jars found on the webstart path:\n", allJars); //$NON-//$NON-NLS-1$
-
-		return allJars;
-	}
-
-	private String extractInnerURL(String url) {
-		if (url.startsWith(JAR_SCHEME)) {
-			url = url.substring(url.indexOf(JAR_SCHEME) + 4);
-		}
-		int lastBang = url.lastIndexOf('!');
-		if (lastBang != -1) {
-			url = url.substring(0, lastBang);
-		}
-		return decode(url);
-	}
-
-	/*
-	 * convert the values on the osgi bundle list from: name@... to <bundleurl>@...
-	 */
-	private void convertBundleList() {
-		final char SEPARATOR = '@';
-
-		if (debug)
-			System.out.println("Osgi bundles before conversion:\n" + System.getProperty(PROP_OSGI_BUNDLES)); //$NON-NLS-1$
-
-		String[] bundles = getArrayFromList(System.getProperty(PROP_OSGI_BUNDLES));
-		String result = "";
-		for (int i = 0; i < bundles.length; i++) {
-			//a entry in the bundle list is made of two parts: the bundle to install followed by an optional info. The separator for those is @
-			String bundle = bundles[i];
-			int positionExtraInfo = bundle.indexOf(SEPARATOR);
-			String bundleName = null;
-			if (positionExtraInfo == -1)
-				bundleName = bundle;
-			else
-				bundleName = bundle.substring(0, positionExtraInfo);
-
-			String bundleURL = searchFor(bundleName, null);
-			if (bundleURL == null) {
-				if (debug)
-					System.out.println("Could not find " + bundleName); //$NON-NLS-1$
-				continue;
-			}
-			onTheBundleList.add(bundleURL);
-			bundleURL = REFERENCE_SCHEME + bundleURL;
-			result += bundleURL;
-			if (positionExtraInfo != -1)
-				result += bundle.substring(positionExtraInfo);
-			result += ',';
-		}
-		System.setProperty(PROP_OSGI_BUNDLES, result);
-	}
-
-	/*
-	 * Add to the bundle list all the jars found the webstart classpath
-	 */
-    //This code can be improved
-	private void addAllBundlesToBundleList() {
-		if ("false".equalsIgnoreCase(System.getProperties().getProperty(PROP_WEBSTART_AUTOMATIC_INSTALLATION))) //$NON-NLS-1$
-			return;
-
-		String[] jarsOnClasspath = getAllJars();
-		String[] result = new String[jarsOnClasspath.length];
-		for (int i = 0; i < jarsOnClasspath.length; i++) {
-			onTheBundleList.contains(jarsOnClasspath[i]);
-			result[i] = REFERENCE_SCHEME + extractInnerURL(jarsOnClasspath[i]);
-		}
-		System.setProperty(PROP_OSGI_BUNDLES, System.getProperty(PROP_OSGI_BUNDLES) + arrayToString(result, ','));
-
-		if (debug)
-			printArray("Bundles list:\n", result);
-	}
-
-	private void printArray(String header, String[] values) {
-		System.out.println(header); //$NON-NLS-1$
-		for (int i = 0; i < values.length; i++) {
-			System.out.println("\t" + values[i]); //$NON-NLS-1$
-		}
-	}
-
-	private String arrayToString(String[] array, char separator) {
-		StringBuffer result = new StringBuffer();
-		for (int i = 0; i < array.length - 1; i++) {
-			result.append(array[i]).append(separator);
-		}
-		result.append(array[array.length - 1]);
-		return new String(result);
-	}
-
-}
diff --git a/platform/org.eclipse.platform/src/org/eclipse/core/launcher/package.html b/platform/org.eclipse.platform/src/org/eclipse/core/launcher/package.html
deleted file mode 100644
index ca2e7ce..0000000
--- a/platform/org.eclipse.platform/src/org/eclipse/core/launcher/package.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Launches the Eclipse Platform.
-<h2>
-Package Specification</h2>
-
-This package is the main entry point to the Eclipse Platform.  To start the platform invoke the Main
-class in this package.
-<br>&nbsp;
-</body>
-</html>
diff --git a/platform/org.eclipse.platform/welcome.xml b/platform/org.eclipse.platform/welcome.xml
deleted file mode 100644
index 26eb707..0000000
--- a/platform/org.eclipse.platform/welcome.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?> 
-<welcomePage 
-	title="Eclipse Platform"
-	format="nowrap">
-	<intro>This page will help familiarize you with the Eclipse Workbench.
-To get started, read the sections below and click on the related links. </intro>
-
-<item><b>Installed Features </b>
-To find out more about the features installed in your workbench, choose <action pluginId="org.eclipse.ui.ide"  class="org.eclipse.ui.actions.QuickStartAction">Help > Welcome...</action>
-and select the feature you are interested in.</item>
-
-<item><b>Perspectives, views and editors </b>
-A window contains one or more perspectives. A perspective consists of views (e.g. Navigator) 
-and editors for working with your resources.
-
-The shortcut bar at the far left of the window allows you to open new perspectives and move
-between perspectives that are already open. The perspective you are currently working with 
-is shown in the title of the window and in the shortcut bar as a pushed-in icon.</item>
-
-<item><b>Configuring your perspectives</b>
-You can move views and editors around the workbench by dragging their titlebars. You can
-also add more views to your current perspective by using Window > Show View. 
-To reset the perspective to its original state, choose <action pluginId="org.eclipse.ui"  class="org.eclipse.ui.internal.ResetPerspectiveAction">Window > Reset Perspective</action>. 
-
-Once you have arranged your perspective, you can save it using Window > Save Perspective As.... 
-You can customize the views, perspectives and New menu operations that show up for 
-your perspective. To do this choose <action pluginId="org.eclipse.ui"  class="org.eclipse.ui.internal.EditActionSetsAction">Window > Customize Perspective...</action> .  A view can
-additionally be converted into a Fast View by dragging it to the shortcut bar (at the 
-far left of the window). </item> 
-
-<item><b>Join a CVS team</b>
-To join a CVS development team, open the <action pluginId="org.eclipse.team.cvs.ui" class="org.eclipse.team.internal.ccvs.ui.actions.ShowCVSPerspectiveAction">CVS Repository Exploring perspective</action>. Next, specify
-the location of your CVS repository. To do this, choose <action pluginId="org.eclipse.team.cvs.ui" class="org.eclipse.team.internal.ccvs.ui.repo.NewCVSRepositoryAction">New > Repository Location...</action> from the
-CVS Repositories view popup menu. When the location wizard opens, fill in the details of your
-CVS repository and click Finish. 
-
-A repository location will appear in the CVS Repositories view. Expand the location, then expand
-the HEAD branch. You will see a list of the modules in that repository. Select a module and choose 
-<b>Checkout as Project</b> from the context menu. This will checkout the module from the CVS 
-repository and create a project by that name in your workspace.</item>
-
-<item><b>Running an Ant Buildfile</b>
-To run an Ant buildfile, click on Run > External Tools > External Tools.... Select Ant Build as the launch
-configuration type and click New. Identify the buildfile in the Location field and then click Run.</item>
-
-<item><b>Learn more </b>
-To learn more you can browse the <topic id="/org.eclipse.platform.doc.user/toc.xml">Workbench User Guide</topic>. Browse the <topic href="/org.eclipse.platform.doc.user/reference/ref-anticons.htm">External Tools and Ant Icons</topic>
-section to recognize the various External Tools and Ant elements. </item>
-
-
-</welcomePage>
\ No newline at end of file
diff --git a/platform/org.eclipse.sdk/.project b/platform/org.eclipse.sdk/.project
deleted file mode 100644
index 2e498c2..0000000
--- a/platform/org.eclipse.sdk/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sdk</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/platform/org.eclipse.sdk/about.html b/platform/org.eclipse.sdk/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/platform/org.eclipse.sdk/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/platform/org.eclipse.sdk/about.ini b/platform/org.eclipse.sdk/about.ini
deleted file mode 100644
index eaaa6fb..0000000
--- a/platform/org.eclipse.sdk/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.gif
-
-# 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/platform/org.eclipse.sdk/about.mappings b/platform/org.eclipse.sdk/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/platform/org.eclipse.sdk/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/platform/org.eclipse.sdk/about.properties b/platform/org.eclipse.sdk/about.properties
deleted file mode 100644
index c0038e5..0000000
--- a/platform/org.eclipse.sdk/about.properties
+++ /dev/null
@@ -1,24 +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 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
-###############################################################################
-# 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 Project SDK\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2000, 2004.  All rights reserved.\n\
-Visit http://www.eclipse.org/eclipse
-
diff --git a/platform/org.eclipse.sdk/build.properties b/platform/org.eclipse.sdk/build.properties
deleted file mode 100644
index b0c1058..0000000
--- a/platform/org.eclipse.sdk/build.properties
+++ /dev/null
@@ -1,18 +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 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
-###############################################################################
-bin.includes=\
-about.html,\
-about.ini,\
-about.mappings,\
-about.properties,\
-eclipse32.gif,\
-plugin.xml,\
-plugin.properties
diff --git a/platform/org.eclipse.sdk/eclipse32.gif b/platform/org.eclipse.sdk/eclipse32.gif
deleted file mode 100644
index f71a8f6..0000000
--- a/platform/org.eclipse.sdk/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.sdk/plugin.properties b/platform/org.eclipse.sdk/plugin.properties
deleted file mode 100644
index 5e64873..0000000
--- a/platform/org.eclipse.sdk/plugin.properties
+++ /dev/null
@@ -1,34 +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 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
-###############################################################################
-pluginName=Eclipse Project SDK
-providerName=Eclipse.org
-
-activity.java=Java Development
-activity.java.desc=Develop Java applications.
-activity.plugin=Plug-in Development
-activity.plugin.desc=Develop plug-ins, fragments, and features for Eclipse.
-
-activity.team.cvs=CVS Support
-activity.team.cvs.desc=Use the Concurrent Versions System (CVS) to manage resources.
-activity.team=Core Team Support
-activity.team.desc=Share projects using configuration management systems.
-
-activity.cat.development=Development
-activity.cat.development.desc=Use the Eclipse SDK to develop applications.
-activity.cat.team=Team
-activity.cat.team.desc=Use configuration management systems to manage resources.
-
-PreferencePages.Capabilities = Capabilities
-PreferencePages.Capabilities.activityName = &Capabilites
-PreferencePages.Capabilities.activityPromptButton = &Prompt when enabling capabilities
-PreferencePages.Capabilities.activityPromptButtonTooltip = Prompt when a feature is first used that requires enablement of capabilities
-
-
diff --git a/platform/org.eclipse.sdk/plugin.xml b/platform/org.eclipse.sdk/plugin.xml
deleted file mode 100644
index faffd29..0000000
--- a/platform/org.eclipse.sdk/plugin.xml
+++ /dev/null
@@ -1,177 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.sdk"
-   name="%pluginName"
-   version="3.1.0"
-   provider-name="%providerName">
-
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-
-
-   <extension
-         point="org.eclipse.ui.activities">
-  
-      <activity
-            name="%activity.java"
-            description="%activity.java.desc"
-            id="org.eclipse.javaDevelopment">
-      </activity>
-      
-      <activity
-            name="%activity.plugin"
-            description="%activity.plugin.desc"
-            id="org.eclipse.plugInDevelopment">
-      </activity>
-      
-      <activityRequirementBinding
-            activityId="org.eclipse.plugInDevelopment"
-            requiredActivityId="org.eclipse.javaDevelopment">
-      </activityRequirementBinding>
-  
-      <activity
-            name="%activity.team.cvs"
-            description="%activity.team.cvs.desc"
-            id="org.eclipse.team.cvs">
-      </activity> 
-      
-      <activity
-            name="%activity.team"
-            description="%activity.team.desc"
-            id="org.eclipse.team">
-      </activity> 
-      
-      <activityRequirementBinding
-            activityId="org.eclipse.team.cvs"
-            requiredActivityId="org.eclipse.team">
-      </activityRequirementBinding>
-      
-      <activityPatternBinding
-            activityId="org.eclipse.javaDevelopment"
-            pattern="org\.eclipse\.jdt\.debug/debugModel">
-      </activityPatternBinding>
-      
-      <activityPatternBinding
-            activityId="org.eclipse.javaDevelopment"
-            pattern="org\.eclipse\.jdt\..*/.*">
-      </activityPatternBinding>
-      
-      <activityPatternBinding
-            activityId="org.eclipse.javaDevelopment"
-            pattern="org\.eclipse\.jdt\.core/javanature">
-
-      </activityPatternBinding>
-      
-      <activityPatternBinding
-            activityId="org.eclipse.plugInDevelopment"
-            pattern="org\.eclipse\.pde\..*/.*">
-      </activityPatternBinding>
-      
-      <activityPatternBinding
-            activityId="org.eclipse.plugInDevelopment"
-            pattern="org\.eclipse\.pde/PluginNature">
-      </activityPatternBinding>
-      <activityPatternBinding
-            activityId="org.eclipse.team"
-            pattern="org\.eclipse\.team\.ui/org.*">
-      </activityPatternBinding> 
-      <activityPatternBinding
-            activityId="org.eclipse.team"
-            pattern="org\.eclipse\.compare/compareWithPatch">
-      </activityPatternBinding>           
-      <activityPatternBinding
-            activityId="org.eclipse.team.cvs"
-            pattern="org\.eclipse\.team\.cvs\.ui/.*">
-      </activityPatternBinding>
-      <activityPatternBinding
-            activityId="org.eclipse.team.cvs"
-            pattern="org\.eclipse\.team\.cvs\.core/.*cvsnature">
-      </activityPatternBinding>
-      
-      <category
-            name="%activity.cat.development"
-            description="%activity.cat.development.desc"
-            id="org.eclipse.categories.developmentCategory">
-      </category>
-
- 	  <category
-            name="%activity.cat.team"
-            description="%activity.cat.team.desc"
-            id="org.eclipse.categories.teamCategory">
-
-      </category>
-      
-      <categoryActivityBinding
-            activityId="org.eclipse.javaDevelopment"
-            categoryId="org.eclipse.categories.developmentCategory">
-      </categoryActivityBinding>
-      
-      <categoryActivityBinding
-            activityId="org.eclipse.plugInDevelopment"
-            categoryId="org.eclipse.categories.developmentCategory">
-      </categoryActivityBinding>
-
-      <categoryActivityBinding
-            activityId="org.eclipse.team"
-            categoryId="org.eclipse.categories.teamCategory">
-      </categoryActivityBinding>        
-      
-      <categoryActivityBinding
-            activityId="org.eclipse.team.cvs"
-            categoryId="org.eclipse.categories.teamCategory">
-      </categoryActivityBinding>
-  
-      <!-- bind all elements that start with "org" -->      
-       
-      <defaultEnablement
-            id="org.eclipse.javaDevelopment">
-      </defaultEnablement>
-      
-      <defaultEnablement
-            id="org.eclipse.plugInDevelopment">
-      </defaultEnablement>
-      
-      <defaultEnablement
-            id="org.eclipse.team">
-      </defaultEnablement>     
-      
-      <defaultEnablement
-            id="org.eclipse.team.cvs">
-      </defaultEnablement>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <primaryWizard
-            id="org.eclipse.jdt.ui.wizards.JavaProjectWizard">
-      </primaryWizard>
-      <primaryWizard
-            id="org.eclipse.pde.ui.NewProjectWizard">
-      </primaryWizard>
-      <primaryWizard
-            id="org.eclipse.jdt.ui.wizards.NewClassCreationWizard">
-      </primaryWizard>
-      <primaryWizard
-            id="org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard">
-      </primaryWizard>
-      <primaryWizard
-            id="org.eclipse.pde.ui.NewProductConfigurationWizard">
-      </primaryWizard>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-	  <page            
-            category="org.eclipse.ui.preferencePages.Workbench"
-            name="%PreferencePages.Capabilities"
-            id="org.eclipse.sdk.capabilities">
-            <class class="org.eclipse.ui.activities.ActivitiesPreferencePage">
-            	<parameter name="activityName" value="%PreferencePages.Capabilities.activityName" />
-            	<parameter name="activityPromptButton" value="%PreferencePages.Capabilities.activityPromptButton"/>
-            	<parameter name="activityPromptButtonTooltip" value="%PreferencePages.Capabilities.activityPromptButtonTooltip"/>
-            </class>
-      </page>   
-   </extension>
-
-</plugin>
diff --git a/update/org.eclipse.update.configurator/.classpath b/update/org.eclipse.update.configurator/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/update/org.eclipse.update.configurator/.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/update/org.eclipse.update.configurator/.cvsignore b/update/org.eclipse.update.configurator/.cvsignore
deleted file mode 100644
index 60463af..0000000
--- a/update/org.eclipse.update.configurator/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-build.xml
diff --git a/update/org.eclipse.update.configurator/.options b/update/org.eclipse.update.configurator/.options
deleted file mode 100644
index a2c714f..0000000
--- a/update/org.eclipse.update.configurator/.options
+++ /dev/null
@@ -1,5 +0,0 @@
-# Debugging options for the org.eclipse.update.configurator plugin
-
-# Turn on general debugging for the plugin.
-org.eclipse.update.configurator/debug=false
-
diff --git a/update/org.eclipse.update.configurator/.project b/update/org.eclipse.update.configurator/.project
deleted file mode 100644
index 0f091b2..0000000
--- a/update/org.eclipse.update.configurator/.project
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.update.configurator</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.osgi</project>
-		<project>org.eclipse.osgi.util</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.configurator/about.html b/update/org.eclipse.update.configurator/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/update/org.eclipse.update.configurator/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/build.properties b/update/org.eclipse.update.configurator/build.properties
deleted file mode 100644
index 9fd124f..0000000
--- a/update/org.eclipse.update.configurator/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-bin.includes = .options,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               *.jar,\
-               META-INF/,\
-               config.ini
-src.includes = about.html
-source.configurator.jar = src/
diff --git a/update/org.eclipse.update.configurator/plugin.properties b/update/org.eclipse.update.configurator/plugin.properties
deleted file mode 100644
index 8f20178..0000000
--- a/update/org.eclipse.update.configurator/plugin.properties
+++ /dev/null
@@ -1,14 +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 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
-###############################################################################
-pluginName= Install/Update Configurator
-providerName= Eclipse.org
-productProviderName= Update Configurator Product Provider
-
diff --git a/update/org.eclipse.update.configurator/plugin.xml b/update/org.eclipse.update.configurator/plugin.xml
deleted file mode 100644
index 3b5bbef..0000000
--- a/update/org.eclipse.update.configurator/plugin.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.update.configurator"
-   name="%pluginName"
-   version="3.0.0"
-   provider-name="%providerName"
-   class="org.eclipse.update.internal.configurator.ConfigurationActivator">
-
-   <runtime>
-      <library name="configurator.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-   </requires>
-
-
-   <extension
-         id="updateConfiguratorProductProvider"
-         name="%productProviderName"
-         point="org.eclipse.core.runtime.products">
-      <provider> 
-         <run class="org.eclipse.update.internal.configurator.ProductProvider"/> 
-      </provider> 
-         
-   </extension>
-
-</plugin>
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/ConfiguratorUtils.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/ConfiguratorUtils.java
deleted file mode 100644
index ca18ceb..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/ConfiguratorUtils.java
+++ /dev/null
@@ -1,83 +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 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.update.configurator;
-
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.update.internal.configurator.ConfigurationActivator;
-import org.osgi.framework.*;
-
-/**
- * Helper class to get platform configuration data without having to
- * use BootLoader methods from the compatibility layer.
- * <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>
- * @since 3.0
- */
-public class ConfiguratorUtils {
-	/**
-	 * Returns the current platform configuration. This method replaces the one we used
-	 * to call on BootLoader.
-	 * 
-	 * @return platform configuration used in current instance of platform
-	 * @since 3.0
-	 */
-	public static IPlatformConfiguration getCurrentPlatformConfiguration() {
-		// acquire factory service first
-		BundleContext context = ConfigurationActivator.getBundleContext();
-		ServiceReference configFactorySR = context.getServiceReference(IPlatformConfigurationFactory.class.getName());
-		if (configFactorySR == null)
-			throw new IllegalStateException();
-		IPlatformConfigurationFactory configFactory = (IPlatformConfigurationFactory) context.getService(configFactorySR);
-		if (configFactory == null)
-			throw new IllegalStateException();
-		// get the configuration using the factory
-		IPlatformConfiguration currentConfig = configFactory.getCurrentPlatformConfiguration();
-		context.ungetService(configFactorySR);
-		return currentConfig;
-	}
-	
-	/**
-	 * Returns a platform configuration object, optionally initialized with previously saved
-	 * configuration information. We will use this method instead of the old one in BootLoader.
-	 * 
-	 * @param url location of previously save configuration information. If <code>null</code>
-	 * is specified, an empty configuration object is returned
-	 * @return platform configuration used in current instance of platform
-	 */
-	public static IPlatformConfiguration getPlatformConfiguration(URL url) throws IOException {
-		// acquire factory service first
-		BundleContext context = ConfigurationActivator.getBundleContext();
-		ServiceReference configFactorySR = context.getServiceReference(IPlatformConfigurationFactory.class.getName());
-		if (configFactorySR == null)
-			throw new IllegalStateException();
-		IPlatformConfigurationFactory configFactory = (IPlatformConfigurationFactory) context.getService(configFactorySR);
-		if (configFactory == null)
-			throw new IllegalStateException();
-		// get the configuration using the factory
-		IPlatformConfiguration config = configFactory.getPlatformConfiguration(url);
-		context.ungetService(configFactorySR);
-		return config;
-	}
-	
-	/**
-	 * @return the URL of this eclispe installation
-	 */
-	public static URL getInstallURL() {
-		return ConfigurationActivator.getInstallURL();
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfiguration.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfiguration.java
deleted file mode 100644
index 829d4d8..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfiguration.java
+++ /dev/null
@@ -1,590 +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 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.update.configurator;
-
-import java.io.IOException;
-import java.net.URL;
-
-/**
- * Platform configuration interface. Represents the runtime
- * configuration used by the Eclipse platform. Any configuration
- * changes do not take effect until next startup of the Eclipse
- * platform.
- * <p>
- * Do not provide implementations of this interface or its nested interfaces. Use the factory methods 
- * on IPlatformConfigurationFactory to create a IPlatformConfiguration, then use the factory methods
- * on the IPlatformConfiguration to create instances of ISiteEntry,IFeatureEntry and ISitePolicy.
- * </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>
- * @since 3.0
- */
-public interface IPlatformConfiguration {
-
-	/**
-	 * Configuration entry representing an install site.
-	 * 
-	 * @since 2.0 
-	 */
-	public interface ISiteEntry {
-
-		/**
-		 * Returns the URL for this site
-		 * 
-		 * @return site url
-		 * @since 2.0
-		 */
-		public URL getURL();
-
-		/**
-		 * Returns the policy for this site
-		 * 
-		 * @return site policy
-		 * @since 2.0
-		 */
-		public ISitePolicy getSitePolicy();
-
-		/**
-		 * Sets the site policy
-		 * 
-		 * @param policy site policy
-		 * @since 2.0
-		 */
-		public void setSitePolicy(ISitePolicy policy);
-
-		/**
-		 * Returns a list of features visible on the site. Note, that this is simply a 
-		 * reflection of the site content. The features may or may not be actually configured.
-		 * 
-		 * @return an array of feature entries, or an empty array if no features are found.
-		 * A feature entry is returned as a path relative to the site URL
-		 * @since 2.0
-		 */
-		public String[] getFeatures();
-
-		/**
-		 * Returns a list of plug-ins visible on the site. Note, that this is simply a 
-		 * reflection of the site content and the current policy for the site. The plug-ins
-		 * may or may not end up being used by Eclipse (depends on which plug-in are 
-		 * actually bound by the platform).
-		 * 
-		 * @return an array of plug-in entries, or an empty array if no plug-ins are found.
-		 * A plug-in entry is returned as a path relative to the site URL		 * 
-		 * @since 2.0
-		 */
-		public String[] getPlugins();
-
-		/**
-		 * Returns a stamp reflecting the current state of the site. If called repeatedly,
-		 * returns the same value as long as no changes were made to the site (changes to
-		 * features or plugins).
-		 * 
-		 * @return site change stamp
-		 * @since 2.0
-		 */
-		public long getChangeStamp();
-
-		/**
-		 * Returns a stamp reflecting the current state of the features on the site. 
-		 * If called repeatedly, returns the same value as long as no changes were made to
-		 * features on the site.
-		 * 
-		 * @return site features change stamp 
-		 * @since 2.0
-		 * @deprecated Do not use this method
-		 */
-		public long getFeaturesChangeStamp();
-
-		/**
-		 * Returns a stamp reflecting the current state of the plug-ins on the site. 
-		 * If called repeatedly, returns the same value as long as no changes were made to
-		 * plug-ins on the site.
-		 * 
-		 * @return site plug-ins change stamp 
-		 * @since 2.0
-		 * @deprecated Do not use this method
-		 */
-		public long getPluginsChangeStamp();
-
-		/**
-		 * Returns an indication whether the site can be updated.
-		 * 
-		 * @return <code>true</code> if site can be updated, <code>false</code> otherwise
-		 * @since 2.0
-		 */
-		public boolean isUpdateable();
-
-		/**
-		 * Returns an indication whether the site represents an install site
-		 * that has been linked via a native installer (using the links/<linkfile>
-		 * mechanism)
-		 * 
-		 * @return <code>true</code> if the site is linked, <code>false</code> otherwise
-		 * @since 2.0
-		 */
-		public boolean isNativelyLinked();
-	}
-
-	/**
-	 * Site policy. The site policy object determines how plug-ins
-	 * contained on the site are processed during startup. In general,
-	 * there are 3 ways of configuring a site policy
-	 * <ul>
-	 * <li>explicitly specify which plug-ins are to be included at
-	 * startup (type==USER_INCLUDE). Any other plug-ins located
-	 * at the site are ignored at startup. This is typically the best
-	 * policy when using remote sites where the user wishes
-	 * to retain explicit control over the plug-ins that are included
-	 * from such site.
-	 * <li>explicitly specify which plug-ins are to be excluded at
-	 * startup (type==USER-EXCLUDE). All other plug-ins located
-	 * at the site are used at startup. This policy requires that
-	 * the site support an access "protocol" that allows plug-in
-	 * discovery. In general, these are sites defined using the "file"
-	 * URL protocol. This is typically the best policy for local
-	 * install sites (on the user system).
-	 * </ul>
-	 * 
-	 * @since 2.0
-	 */
-	public interface ISitePolicy {
-
-		/**
-		 * Policy type constants.
-		 */
-
-		/** 
-		 * User-defined inclusion list. The list associated with this
-		 * policy type is interpreted as path entries to included plugin.xml
-		 * or fragment.xml <b>relative</b> to the site URL
-		 */
-		public static final int USER_INCLUDE = 0;
-
-		/**
-		 * User-defined exclusion list. The list associated with this
-		 * policy type is interpreted as path entries to excluded plugin.xml
-		 * or fragment.xml <b>relative</b> to the site URL
-		 */
-		public static final int USER_EXCLUDE = 1;
-		
-		/**
-		 * When this site policy is used, only plug-ins specified by the configured features
-		 * are contributed to the runtime.
-		 * @since 3.1
-		 */
-		public static final int MANAGED_ONLY = 2;
-
-		/**
-		 * Return policy type
-		 * 
-		 * @return policy type
-		 * @since 2.0
-		 */
-		public int getType();
-
-		/**
-		 * Return policy inclusion/ exclusion list
-		 * 
-		 * @return the list as an array
-		 * @since 2.0
-		 */
-		public String[] getList();
-
-		/**
-		 * Set new policy list. The list entries are interpreted based on the policy
-		 * type. See description of the policy type constants for details.
-		 * 
-		 * @param list policy inclusion/ exclusion list as an array.
-		 * Returns an empty array if there are no entries.
-		 * @see #USER_INCLUDE
-		 * @see #USER_EXCLUDE
-		 * @since 2.0
-		 */
-		public void setList(String[] list);
-	}
-
-	/**
-	 * Feature entry.
-	 * Represents runtime "hints" about configured features.
-	 * The information is used during execution to locate the
-	 * correct attribution information for a feature. Note,
-	 * that a typical configuration can declare multiple feature
-	 * entries. At execution time, only one can be selected as
-	 * the active primary feature. This is determined based on 
-	 * specified command line arguments or computed defaults.
-	 * 
-	 * @since 2.0
-	 */
-	public interface IFeatureEntry {
-
-		/**
-		 * Returns feature identifier.
-		 * @return feature identifier
-		 * @since 2.0
-		 */
-		public String getFeatureIdentifier();
-
-		/**
-		 * Returns the currently configured version for the feature.
-		 * @return feature version (as string), or <code>null</code>
-		 * @since 2.0
-		 */
-		public String getFeatureVersion();
-
-		/**
-		 * Returns the identifier of the feature plug-in for this feature entry.
-			 *  Note,      that there is no guarantee that a feature in fact
-			 * supplies a corresponding feature plugin, so the result can be
-			 * <code>null</code>. Also, if supplied, there is no guarantee that the
-			 * plugin will in fact be loaded into the plug-in registry at runtime
-			 * (due to rules and constraint checking performed by the registry
-			 * loading support). Consequently code making use of this method must
-			 * handle these conditions.
-		 * @return feature identifier (as string), or <code>null</code>
-		 * @since 2.1
-		 */
-		public String getFeaturePluginIdentifier();
-
-		/**
-		 * Returns the version of the feature plug-in for this feature
-		 * entry. Note, that there is no guarantee that a feature in fact
-		 * supplies a corresponding feature plugin, so the result can be
-		 * <code>null</code>. Also, if supplied, there is no guarantee that the
-		 * plugin will in fact be loaded into the plug-in registry at runtime
-		 * (due to rules and constraint checking performed by the registry
-		 * loading support). Consequently code making use of this method must
-		 * handle these conditions.
-		 * @return feature version (as string), or <code>null</code>
-		 * @since 2.0
-		 */
-		public String getFeaturePluginVersion();
-
-		/**
-		 * Returns the application to run when this feature is the
-		 * primary feature.
-		 * @return application identifier, or <code>null</code> 
-		 * @since 2.0
-		 */
-		public String getFeatureApplication();
-
-		/**
-		 * Returns URLs to the feature "root" locations. The root
-		 * URLs are install locations of the feature plugin and its
-		 * fragments.
-		 *
-		 * @return array of URLs, or an empty array
-		 * @since 2.0
-		 */
-		public URL[] getFeatureRootURLs();
-
-		/**
-		 * Returns an indication whether this feature has been defined
-		 * to act as a primary feature.
-		 * @return <code>true</code> if the feature can be primary,
-		 * <code>false</code> otherwise.
-		 * @since 2.0
-		 */
-		public boolean canBePrimary();
-	}
-
-	/**
-	 * Create a site entry
-	 *
-	 * @param url site URL
-	 * @param policy site policy
-	 * @return created site entry
-	 * @since 2.0
-	 */
-	public ISiteEntry createSiteEntry(URL url, ISitePolicy policy);
-
-	/**
-	 * Create a site policy. The policy determines the way the site
-	 * plug-in are processed at startpu
-	 *
-	 * @param type policy type
-	 * @param list an array of site-relative paths representing the
-	 * inclusion/ exclusion list
-	 * @return created site policy entry
-	 * @since 2.0
-	 */
-	public ISitePolicy createSitePolicy(int type, String[] list);
-
-	/**
-	 * Create a feature entry
-	 * @param id feature identifier. Must not be <code>null</code>.
-	 * @param version feature version (as String). Can be <code>null</code>.
-	 * @param pluginVersion version of the feature plugin (as String). Can be
-	 * <code>null</code>.
-	 * @param primary <code>true</code> if the feature is defined as a primary
-	 * feature, otherwise <code>false</code>.
-	 * @param application identifier of the application to run when 
-	 * this feature is the primary feature. Can be <code>null</code>.
-	 * If specified, the identifier must represent a valid extension 
-	 * registered in the <code>org.eclipse.core.runtime.applications</code>
-	 * extension point.
-	 * @param root an array of URLs to feature root directories.
-	 * These are URLs to install locations for the feature plugin
-	 * and its fragments. Can be <code>null</code>.
-	 * @return create feature entry
-	 * @since 2.0
-	 */
-	public IFeatureEntry createFeatureEntry(String id, String version, String pluginVersion, boolean primary, String application, URL[] root);
-
-	/**
-	 * Create a feature entry
-	 * @param id feature identifier. Must not be <code>null</code>.
-	 * @param version feature version (as String). Can be <code>null</code>.
-	 * @param pluginIdentifier identifier of the feature plugin (as String). Can
-	 * be <code>null</code>.
-	 * @param  pluginVersion  version of the feature plugin (as String). Can be
-	 * <code>null</code>.
-	 * @param primary <code>true</code> if the feature is defined as a primary
-	 * feature, otherwise <code>false</code>.
-	 * @param application identifier of the application to run when
-	 * this feature is the primary feature. Can be <code>null</code>.
-	 * If specified, the identifier must represent a valid extension
-	 * registered in the <code>org.eclipse.core.runtime.applications</code>
-	 * extension point.
-	 * @param root an array of URLs to feature root directories.
-	 * These are URLs to install locations for the feature plugin
-	 * and its fragments. Can be <code>null</code>.
-	 * @return create feature entry
-	 * @since 2.1
-	 */
-	public IFeatureEntry createFeatureEntry(String id, String version, String pluginIdentifier, String pluginVersion, boolean primary, String application, URL[] root);
-
-	/**
-	 * Configures the specified site entry. If a site entry with the
-	 * same site URL is already configured, the entry is <b>not</b> replaced.
-	 * 
-	 * @param entry site entry 
-	 * @since 2.0
-	 */
-	public void configureSite(ISiteEntry entry);
-
-	/**
-	 * Configures the specified site entry. If a site entry with the
-	 * same site URL is already configured, the replacement behavior for
-	 * the entry can be specified.
-	 * 
-	 * @param entry site entry 
-	 * @param  replace indicating whether an existing configured entry with
-	 * the same URL should be replaced (<code>true</code>) or not (<code>false</code>).
-	 * @since 2.0
-	 */
-	public void configureSite(ISiteEntry entry, boolean replace);
-
-	/**
-	 * Unconfigures the specified entry. Does not do anything if the entry
-	 * is not configured.
-	 * 
-	 * @param entry site entry
-	 * @since 2.0
-	 */
-	public void unconfigureSite(ISiteEntry entry);
-
-	/**
-	 * Returns configured site entries
-	 * 
-	 * @return array of site entries. Returns an empty array if no sites are
-	 * configured
-	 * @since 2.0
-	 */
-	public ISiteEntry[] getConfiguredSites();
-
-	/**
-	 * Returns a site entry matching the specified URL
-	 * 
-	 * @param url site url
-	 * @return matching site entry, or <code>null</code> if no match found
-	 * @since 2.0
-	 */
-	public ISiteEntry findConfiguredSite(URL url);
-
-	/**
-	 * Configures the feature entry.
-	 * If another feature entry with the same feature identifier 
-	 * already exists, it is replaced.
-	 * @param entry feature entry
-	 * @since 2.0
-	 */
-	public void configureFeatureEntry(IFeatureEntry entry);
-
-	/**
-	 * Unconfigures the specified feature entry if it exists.
-	 * @param entry feature entry
-	 * @since 2.0
-	 */
-	public void unconfigureFeatureEntry(IFeatureEntry entry);
-
-	/**
-	 * Returns a list of configured feature entries.
-	 * @return array or entries, or an empty array if no entries
-	 * are configured
-	 * @since 2.0
-	 */
-	public IFeatureEntry[] getConfiguredFeatureEntries();
-
-	/**
-	 * Locates the specified feature entry.
-	 * @param id feature identifier
-	 * @return ferature entry, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public IFeatureEntry findConfiguredFeatureEntry(String id);
-
-	/**
-	 * Returns the URL location of the configuration information
-	 * 
-	 * @return configuration location URL, or <code>null</code> if the
-	 * configuration location could not be determined.
-	 * @since 2.0
-	 */
-	public URL getConfigurationLocation();
-
-	/**
-	 * Returns a stamp reflecting the current state of the configuration. If called repeatedly,
-	 * returns the same value as long as no changes were made to the configuration (changes to
-	 * sites, features or plugins).
-	 * 
-	 * @return configuration change stamp
-	 * @since 2.0
-	 */
-	public long getChangeStamp();
-
-	/**
-	 * Returns a stamp reflecting the current state of the features in the configuration. 
-	 * If called repeatedly, returns the same value as long as no changes were made to
-	 * features in the configuration.
-	 * 
-	 * @return configuration features change stamp 
-	 * @since 2.0
-	 * @deprecated Do not use this method.
-	 */
-	public long getFeaturesChangeStamp();
-
-	/**
-	 * Returns a stamp reflecting the current state of the plug-ins in the configuration. 
-	 * If called repeatedly, returns the same value as long as no changes were made to
-	 * plug-ins in the configuration.
-	 * 
-	 * @return configuration plug-ins change stamp 
-	 * @since 2.0
-	 * @deprecated Do not use this method
-	 */
-	public long getPluginsChangeStamp();
-
-	/**
-	 * Returns the identifier of the configured primary feature. A primary feature
-	 * is used to specify product customization information for a running instance
-	 * of Eclipse. 
-	 * 
-	 * @return primary feature identifier, or <code>null</code> if none configured
-	 * @since 2.0
-	 */
-	public String getPrimaryFeatureIdentifier();
-
-	/**
-	 * Computes the plug-in path for this configuration. The result includes all plug-ins
-	 * visible on each of the configured sites based on each site policy.
-	 * 
-	 * @return an array of plug-in path elements (full URL entries), or an empty array.
-	 * @since 2.0
-	 */
-	public URL[] getPluginPath();
-
-	/**
-	 * Returns an array of bootstrap plugin identifiers whose
-	 * location needs to be explicitly identified in the configuration.
-	 * 
-	 * @return an array of identifiers, or empty array
-	 * otherwise
-	 * @since 2.0
-	 * @deprecated Do not use this method. Check the osgi.bundles system property for the
-	 * urls of the automatically started bundles
-	 */
-	public String[] getBootstrapPluginIdentifiers();
-
-	/**
-	 * Sets the location of a bootstrap plugin.
-	 * 
-	 * @see IPlatformConfiguration#getBootstrapPluginIdentifiers()
-	 * @param id plugin identifier. Must match one of the entries returned
-	 * by getBootstrapPluginIdentifiers()
-	 * @param location
-	 * @since 2.0
-	 * @deprecated Do not use this method. Use the osig.bundles system property contains
-	 * the urls of the automatically started bundles.
-	 */
-	public void setBootstrapPluginLocation(String id, URL location);
-
-	/**
-	 * Returns an indication whether the configuration can be updated.
-	 * 
-	 * @return <code>true</code> if configuration can be updated, <code>false</code> 
-	 * otherwise
-	 * @since 2.0
-	 */
-	public boolean isUpdateable();
-
-	/**
-	 * Returns an indication whether the configuration is transient. A transient
-	 * configuration typically represents a scenario where the configuration
-	 * was computed for a single instantiation of the platform and is not
-	 * guaranteed to be valid on subsequent instantiations.
-	 * 
-	 * @return <code>true</code> if configuration is transient, <code>false</code> 
-	 * otherwise
-	 * @since 2.0
-	 */
-	public boolean isTransient();
-
-	/**
-	 * Indicates whether the configuration is transient or not. A transient
-	 * configuration typically represents a scenario where the configuration
-	 * was computed for a single instantiation of the platform and is not
-	 * guaranteed to be valid on subsequent instantiations. This method has
-	 * no effect if called on the current platform configuration.
-	 * 
-	 * @param value <code>true</code> if configuration is transient, <code>false</code> 
-	 * otherwise
-	 * @since 2.0
-	 */
-	public void isTransient(boolean value);
-
-	/**
-	 * Called to refresh the configuration information. In particular,
-	 * causes change stamps to be recomputed based on the current
-	 * configuration state, and updates the lists of available plug-ins.
-	 * @since 2.0
-	 */
-	public void refresh();
-
-	/**
-	 * Called to save the configuration information
-	 * @since 2.0
-	 */
-	public void save() throws IOException;
-
-	/**
-	 * Called to save the configuration information in the
-	 * specified location
-	 * 
-	 * @param url save location.
-	 * @since 2.0
-	 */
-	public void save(URL url) throws IOException;
-
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfigurationFactory.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfigurationFactory.java
deleted file mode 100644
index a98af00..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfigurationFactory.java
+++ /dev/null
@@ -1,41 +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 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.update.configurator;
-
-import java.io.IOException;
-import java.net.URL;
-
-/**
- * Factory for creating platform configurations.
- * <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 IPlatformConfigurationFactory {
-	/**
-	 * Returns the current platform configuration.
-	 * 
-	 * @return platform configuration used in current instance of platform
-	 */	
-	public IPlatformConfiguration getCurrentPlatformConfiguration();
-	/**
-	 * Returns a platform configuration object, optionally initialized with previously saved
-	 * configuration information.
-	 * 
-	 * @param url location of previously save configuration information. If <code>null</code>
-	 * is specified, an empty configuration object is returned
-	 * @return platform configuration used in current instance of platform
-	 */	
-	public IPlatformConfiguration getPlatformConfiguration(URL url) throws IOException;
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/package.html b/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/package.html
deleted file mode 100644
index fa0f9f6..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/package.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.72 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for accessing platform configuration data.
-<h2>
-Package Specification</h2>
-This package contains interfaces for accessing and manipulating the local
-system installation and configuration information. 
-<p>
-<b>Note:</b> This package 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>
-</body>
-</html>
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/BootDescriptor.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/BootDescriptor.java
deleted file mode 100644
index bc63b75..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/BootDescriptor.java
+++ /dev/null
@@ -1,44 +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 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.update.internal.configurator;
-
-import java.net.*;
-
-
-public class BootDescriptor {
-	private String id;
-	private String version;
-	private String[] libs;
-	private URL dir;
-
-	public BootDescriptor(String id, String version, String[] libs, URL dir) {
-		this.id = id;
-		this.version = version;
-		this.libs = libs;
-		this.dir = dir;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public String getVersion() {
-		return version;
-	}
-
-	public String[] getLibraries() {
-		return libs;
-	}
-
-	public URL getPluginDirectoryURL() {
-		return dir;
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/BundleManifest.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/BundleManifest.java
deleted file mode 100644
index bdaba9e..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/BundleManifest.java
+++ /dev/null
@@ -1,130 +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 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.update.internal.configurator;
-import java.io.*;
-import java.util.jar.*;
-
-import org.eclipse.osgi.util.*;
-import org.osgi.framework.*;
-/**
- * Parses MANIFEST.MF
- */
-public class BundleManifest implements IConfigurationConstants {
-	private File manifestFile;
-	private PluginEntry pluginEntry;
-	private IOException exception;
-	private String bundleURL;
-	/**
-	 * Constructor for local file
-	 */
-	public BundleManifest(File manifest) {
-		super();
-		manifestFile = manifest;
-		if (manifest.exists() && !manifest.isDirectory()) {
-			FileInputStream fos = null;
-			try {
-				fos = new FileInputStream(manifest);
-				parse(fos);
-			} catch (IOException ioe) {
-			} finally {
-				if (fos != null) {
-					try {
-						fos.close();
-					} catch (IOException e) {
-					}
-				}
-			}
-		}
-	}
-		/**
-		 * Constructor for local file
-		 */
-		public BundleManifest(InputStream input, String bundleUrl) {
-			super();
-			bundleURL = bundleUrl;
-			if (input != null) {
-				parse(input);
-			}
-		}
-	/**
-	 * Parses manifest, creates PluginEntry if manifest is valid, stores
-	 * exception if any occurs
-	 * 
-	 * @param in
-	 *            InputStream
-	 */
-	private void parse(InputStream in) {
-		try {
-			Manifest m = new Manifest(in);
-			Attributes a = m.getMainAttributes();
-			// plugin id
-			String symbolicName = a.getValue(Constants.BUNDLE_SYMBOLICNAME);
-			if (symbolicName == null) {
-				// In Eclipse manifest must have Bundle-SymbolicName attribute
-				return;
-			}
-			String id;
-			try {
-				ManifestElement[] elements = ManifestElement.parseHeader(
-						Constants.BUNDLE_SYMBOLICNAME, symbolicName);
-				id = elements[0].getValue();
-			} catch (BundleException be) {
-				throw new IOException(be.getMessage());
-			}
-			// plugin version
-			String version = a.getValue(Constants.BUNDLE_VERSION);
-			if (version == null) {
-				Utils.log(Messages.getString(
-						"BundleManifest.noVersion", Constants.BUNDLE_VERSION, //$NON-NLS-1$
-						id));
-				return;
-			}
-			String hostPlugin = a.getValue(Constants.FRAGMENT_HOST);
-			pluginEntry = new PluginEntry();
-			pluginEntry.setVersionedIdentifier(new VersionedIdentifier(id,
-					version));
-			pluginEntry.isFragment(hostPlugin != null
-					&& hostPlugin.length() > 0);
-			// Set URL
-			if(bundleURL!=null){
-				pluginEntry.setURL(bundleURL);
-			}else{
-				File pluginDir = manifestFile.getParentFile();
-				if (pluginDir != null) {
-					pluginDir = pluginDir.getParentFile();
-				}
-				if (pluginDir != null){
-					pluginEntry.setURL(PLUGINS + "/" + pluginDir.getName() + "/"); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-			//
-		} catch (IOException ioe) {
-			exception = ioe;
-		}
-	}
-	public boolean exists() {
-		return exception != null || pluginEntry != null;
-	}
-	/**
-	 * Obtains PluginEntry from a manifest.
-	 * 
-	 * @return PluginEntry or null if valid manifest does not exist
-	 * @throws IOException
-	 *             if exception during parsing
-	 */
-	public PluginEntry getPluginEntry() throws IOException {
-		if (exception != null) {
-			throw exception;
-		} else {
-			return pluginEntry;
-		}
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Configuration.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Configuration.java
deleted file mode 100644
index 2c4a760..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Configuration.java
+++ /dev/null
@@ -1,163 +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 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.update.internal.configurator;
-
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configurator.*;
-import org.w3c.dom.*;
-
-
-public class Configuration implements IConfigurationConstants {
-	
-	private HashMap sites = new HashMap();
-	private Date date;
-	private long lastModified; // needed to account for file system limitations
-	private URL url;
-	private boolean transientConfig;
-	private boolean isDirty;
-	private Configuration linkedConfig; // shared configuration
-	
-	public Configuration() {
-		this(new Date());
-		// the config is created now or out of a platform.xml without a date
-		isDirty = true;
-	}
-	public Configuration(Date date)  {
-		this.date = date;
-	}
-	
-	public void setURL(URL url) {
-		this.url = url;
-	}
-	
-	public URL getURL() {
-		return url;
-	}
-	
-	public void setLinkedConfig(Configuration linkedConfig) {
-		this.linkedConfig = linkedConfig;
-		// make all the sites read-only
-		SiteEntry[] linkedSites = linkedConfig.getSites();
-		for (int i=0; i<linkedSites.length; i++)
-			linkedSites[i].setUpdateable(false);
-	}
-	
-	public Configuration getLinkedConfig() {
-		return linkedConfig;
-	}
-	
-	/**
-	 * @return true if the config needs to be saved
-	 */
-	public boolean isDirty() {
-		return isDirty;
-	}
-	
-	public void setDirty(boolean dirty) {
-		isDirty = dirty;
-	}
-	
-	public void addSiteEntry(String url, SiteEntry site) {
-		// only add the same site once
-		if (sites.get(url) == null && (linkedConfig == null || linkedConfig.sites.get(url) == null)) {
-			site.setConfig(this);
-			sites.put(url, site);
-		}
-	}
-	
-	public void removeSiteEntry(String url) {
-		sites.remove(url);
-	}
-	
-	public SiteEntry getSiteEntry(String url) {
-		SiteEntry site = (SiteEntry)sites.get(url);
-		if (site == null && linkedConfig != null)
-			site = linkedConfig.getSiteEntry(url);
-		return site;
-	}
-	
-	public SiteEntry[] getSites() {
-		if (linkedConfig == null)
-			return (SiteEntry[]) sites.values().toArray(new SiteEntry[sites.size()]);
-		else {
-			ArrayList combinedSites = new ArrayList(sites.values());
-			combinedSites.addAll(linkedConfig.sites.values());
-			return (SiteEntry[]) combinedSites.toArray(new SiteEntry[combinedSites.size()]);
-		}
-	}
-	
-	public Element toXML(Document doc) throws CoreException {	
-		try {
-			Element configElement = doc.createElement(CFG);
-
-			configElement.setAttribute(CFG_VERSION, VERSION);
-			configElement.setAttribute(CFG_DATE, String.valueOf(date.getTime()));
-			String transitory = isTransient() ? "true" : "false"; //$NON-NLS-1$ //$NON-NLS-2$
-			configElement.setAttribute(CFG_TRANSIENT, transitory);
-						
-			if (linkedConfig != null) {
-				configElement.setAttribute(CFG_SHARED_URL, linkedConfig.getURL().toExternalForm());
-			}
-
-			// collect site entries
-			SiteEntry[] list = (SiteEntry[]) sites.values().toArray(new SiteEntry[0]);
-			for (int i = 0; i < list.length; i++) {
-				if (linkedConfig != null && linkedConfig.getSiteEntry(list[i].getURL().toExternalForm()) != null)
-					continue;
-				Element siteElement = list[i].toXML(doc);
-				configElement.appendChild(siteElement);
-			}
-			
-			return configElement;
-			
-		} catch (Exception e) {
-			throw Utils.newCoreException("", e); //$NON-NLS-1$
-		} 
-	}
-	
-	public boolean isTransient() {
-		return transientConfig;
-	}
-	
-	public void setTransient(boolean isTransient) {
-		this.transientConfig = isTransient;
-	}
-	
-	public Date getDate() {
-		return date;
-	}
-	
-	public void setDate(Date date) {
-		this.date = date;
-	}
-	
-	public boolean unconfigureFeatureEntry(IPlatformConfiguration.IFeatureEntry feature) {
-		SiteEntry[] sites = getSites();
-		for (int i=0; i<sites.length; i++)
-			if (sites[i].unconfigureFeatureEntry(feature))
-				return true;
-		return false;
-	}
-	
-	public void setLastModified(long lastModified) {
-		this.lastModified = lastModified;
-	}
-	
-	public long lastModified() {
-		if (lastModified != 0)
-			return lastModified;
-		else
-			return date.getTime();
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationActivator.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationActivator.java
deleted file mode 100644
index c6e93e8..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationActivator.java
+++ /dev/null
@@ -1,475 +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 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.update.internal.configurator;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.framework.log.*;
-import org.eclipse.osgi.service.datalocation.*;
-import org.eclipse.osgi.service.debug.*;
-import org.eclipse.update.configurator.*;
-import org.osgi.framework.*;
-import org.osgi.service.packageadmin.*;
-import org.osgi.service.startlevel.*;
-import org.osgi.util.tracker.*;
-
-public class ConfigurationActivator implements BundleActivator, IBundleGroupProvider, IConfigurationConstants {
-
-	public static String PI_CONFIGURATOR = "org.eclipse.update.configurator"; //$NON-NLS-1$
-	public static final String INSTALL_LOCATION = "osgi.installLocation"; //$NON-NLS-1$
-	public static final String LAST_CONFIG_STAMP = "last.config.stamp"; //$NON-NLS-1$
-	public static final String NAME_SPACE = "org.eclipse.update"; //$NON-NLS-1$
-	public static final String UPDATE_PREFIX = "update@"; //$NON-NLS-1$
-	private static final String INITIAL_PREFIX = "initial@"; //$NON-NLS-1$
-	
-	// debug options
-	public static String OPTION_DEBUG = PI_CONFIGURATOR + "/debug"; //$NON-NLS-1$
-	// debug values
-	public static boolean DEBUG = false;
-	// os
-	private static boolean isWindows = System.getProperty("os.name").startsWith("Win"); //$NON-NLS-1$ //$NON-NLS-2$
-	
-	private static BundleContext context;
-	private ServiceTracker platformTracker;
-	private ServiceRegistration configurationFactorySR;
-	private PlatformConfiguration configuration;
-	
-	// Install location
-	private static URL installURL;
-	
-	// Location of the configuration data
-	private Location configLocation;
-	
-	//Need to store that because it is not provided by the platformConfiguration
-	private long lastTimeStamp;
-
-	// The expected states timestamp
-	private long lastStateTimeStamp;
-	
-	// Singleton
-	private static ConfigurationActivator configurator;
-
-	public ConfigurationActivator() {
-		configurator = this;
-	}
-	
-	public void start(BundleContext ctx) throws Exception {
-		context = ctx;
-		loadOptions();
-		acquireFrameworkLogService();
-		initialize();
-		
-		//Short cut, if the configuration has not changed
-		if (canRunWithCachedData()) {		
-			Utils.debug("Running with cached data"); //$NON-NLS-1$
-			Platform.registerBundleGroupProvider(this);
-			return;
-		}
-
-		Utils.debug("Starting update configurator..."); //$NON-NLS-1$
-
-		installBundles();
-		Platform.registerBundleGroupProvider(this);
-	}
-
-
-	private void initialize() throws Exception {
-		// TODO this test is not really needed any more than any plugin has 
-		// to test to see if the runtime is running.  It was there from earlier days
-		// where startup was much more disjoint.  Some day that level of decoupling
-		// will return but for now...
-		if (!Platform.isRunning())
-			throw new Exception(Messages.getString("ConfigurationActivator.initialize")); //$NON-NLS-1$
-		
-		configLocation = Platform.getConfigurationLocation();
-		// create the name space directory for update (configuration/org.eclipse.update)
-		if (!configLocation.isReadOnly()) {
-			try {
-				URL privateURL = new URL(configLocation.getURL(), NAME_SPACE);
-				File f = new File(privateURL.getFile());
-				if(!f.exists())
-					f.mkdirs();
-			} catch (MalformedURLException e1) {
-				// ignore
-			}
-		}
-		configurationFactorySR = context.registerService(IPlatformConfigurationFactory.class.getName(), new PlatformConfigurationFactory(), null);
-		configuration = getPlatformConfiguration(getInstallURL(), configLocation);
-		if (configuration == null)
-			throw Utils.newCoreException(Messages.getString("ConfigurationActivator.createConfig", configLocation.getURL().toExternalForm()), null); //$NON-NLS-1$
-
-		DataInputStream stream = null;
-		try {
-			stream = new DataInputStream(new URL(configLocation.getURL(),NAME_SPACE+'/'+LAST_CONFIG_STAMP).openStream());
-			lastTimeStamp = stream.readLong();
-			lastStateTimeStamp = stream.readLong();
-		} catch (Exception e) {
-			lastTimeStamp = configuration.getChangeStamp() - 1;
-			lastStateTimeStamp = -1;
-		} finally {
-			if (stream != null)
-				try {
-					stream.close();
-				} catch (IOException e1) {
-					Utils.log(e1.getLocalizedMessage());
-				}
-		}
-	}
-
-
-	public void stop(BundleContext ctx) throws Exception {
-		// quick fix (hack) for bug 47861
-		try {
-			PlatformConfiguration.shutdown();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		configurationFactorySR.unregister();
-	}
-
-	public boolean installBundles() {
-		Utils.debug("Installing bundles..."); //$NON-NLS-1$
-		ServiceReference reference = context.getServiceReference(StartLevel.class.getName());
-		int startLevel = 4;
-		String defaultStartLevel = System.getProperty("osgi.bundles.defaultStartLevel"); //$NON-NLS-1$
-		if (defaultStartLevel != null) {
-			try {
-				startLevel = Integer.parseInt(defaultStartLevel);
-			} catch (NumberFormatException e1) {
-				startLevel = 4;
-			}
-		}
-		if (startLevel < 1)
-			startLevel = 4;
-		
-		StartLevel start = null;
-		if (reference != null)
-			start = (StartLevel) context.getService(reference);
-		try {
-			// Get the list of cached bundles and compare with the ones to be installed.
-			// Uninstall all the cached bundles that do not appear on the new list
-			Bundle[] cachedBundles = context.getBundles();		
-			URL[] plugins = configuration.getPluginPath();
-				
-			// starts the list of bundles to refresh with all currently unresolved bundles (see bug 50680)
-			List toRefresh = getUnresolvedBundles();
-
-			Bundle[] bundlesToUninstall = getBundlesToUninstall(cachedBundles, plugins);
-			for (int i=0; i<bundlesToUninstall.length; i++) {
-				try {
-					if (DEBUG)
-						Utils.debug("Uninstalling " + bundlesToUninstall[i].getLocation()); //$NON-NLS-1$
-					// include every bundle being uninstalled in the list of bundles to refresh (see bug 82393)					
-					toRefresh.add(bundlesToUninstall[i]);					
-					bundlesToUninstall[i].uninstall();
-				} catch (Exception e) {
-					Utils.log(Messages.getString("ConfigurationActivator.uninstallBundle", bundlesToUninstall[i].getLocation())); //$NON-NLS-1$
-				}
-			}
-			
-			// Get the urls to install
-			String[] bundlesToInstall = getBundlesToInstall(cachedBundles, plugins);
-
-			for (int i = 0; i < bundlesToInstall.length; i++) {
-				try {
-					if (DEBUG)
-						Utils.debug("Installing " + bundlesToInstall[i]); //$NON-NLS-1$
-					URL bundleURL = new URL("reference:file:"+bundlesToInstall[i]); //$NON-NLS-1$
-					//Bundle target = context.installBundle(bundlesToInstall[i]);
-					Bundle target = context.installBundle(UPDATE_PREFIX+bundlesToInstall[i], bundleURL.openStream());
-					// any new bundle should be refreshed as well
-					toRefresh.add(target);
-					if (start != null)
-						start.setBundleStartLevel(target, startLevel);
-				
-				} catch (Exception e) {
-					if (!Utils.isAutomaticallyStartedBundle(bundlesToInstall[i]))
-						Utils.log(Messages.getString("ConfigurationActivator.installBundle", bundlesToInstall[i]) + "   " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-			context.ungetService(reference);
-			removeInitialBundles(toRefresh, cachedBundles);
-			refreshPackages((Bundle[]) toRefresh.toArray(new Bundle[toRefresh.size()]));
-			
-			// keep track of the last config successfully processed
-			writePlatformConfigurationTimeStamp();
-			return true;
-		} catch (Exception e) {
-			return false;
-		} 
-	}
-
-	private void removeInitialBundles(List bundles, Bundle[] cachedBundles) {
-		String[] initialSymbolicNames = getInitialSymbolicNames(cachedBundles);
-		Iterator iter = bundles.iterator();
-		while(iter.hasNext()) {
-			Bundle bundle = (Bundle) iter.next();
-			String symbolicName = bundle.getSymbolicName();
-			for(int i = 0; i < initialSymbolicNames.length; i++) {
-				if (initialSymbolicNames[i].equals(symbolicName)) {
-					iter.remove();
-					break;
-				}
-			}
-		}
-	}
-
-	private String[] getInitialSymbolicNames(Bundle[] cachedBundles) {
-		ArrayList initial = new ArrayList();
-		for (int i = 0; i < cachedBundles.length; i++) {
-			Bundle bundle = cachedBundles[i];
-			if (bundle.getLocation().startsWith(INITIAL_PREFIX)) {
-				String symbolicName = bundle.getSymbolicName();
-				if (symbolicName != null)
-					initial.add(symbolicName);
-			}
-		}
-		return (String[]) initial.toArray(new String[initial.size()]);
-	}
-
-	private List getUnresolvedBundles() {
-		Bundle[] allBundles = context.getBundles();
-		List unresolved = new ArrayList(); 
-		for (int i = 0; i < allBundles.length; i++)
-			if (allBundles[i].getState() == Bundle.INSTALLED)
-				unresolved.add(allBundles[i]);
-		return unresolved;
-	}
-
-	private String[] getBundlesToInstall(Bundle[] cachedBundles, URL[] newPlugins) {
-		// First, create a map of the cached bundles, for faster lookup
-		HashSet cachedBundlesSet = new HashSet(cachedBundles.length);
-		int offset = UPDATE_PREFIX.length();
-		for (int i=0; i<cachedBundles.length; i++) {
-			if (cachedBundles[i].getBundleId() == 0)
-				continue; // skip the system bundle
-			String bundleLocation = cachedBundles[i].getLocation();
-			// Ignore bundles not installed by us
-			if (!bundleLocation.startsWith(UPDATE_PREFIX))
-				continue;
-			
-			bundleLocation = bundleLocation.substring(offset);
-			cachedBundlesSet.add(bundleLocation);
-			// On windows, we will be doing case insensitive search as well, so lower it now
-			if (isWindows)
-				cachedBundlesSet.add(bundleLocation.toLowerCase());
-		}
-		
-		ArrayList bundlesToInstall = new ArrayList(newPlugins.length);
-		for (int i = 0; i < newPlugins.length; i++) {
-			String location = newPlugins[i].getFile();
-			// check if already installed
-			if (cachedBundlesSet.contains(location))
-				continue;
-			if (isWindows && cachedBundlesSet.contains(location.toLowerCase()))
-				continue;
-			
-			bundlesToInstall.add(location);
-		}
-		return (String[])bundlesToInstall.toArray(new String[bundlesToInstall.size()]);	
-	}
-	
-	
-	private Bundle[] getBundlesToUninstall(Bundle[] cachedBundles, URL[] newPlugins) {
-		// First, create a map for faster lookups
-		HashSet newPluginsSet = new HashSet(newPlugins.length);
-		for (int i=0; i<newPlugins.length; i++) {
-			
-			String pluginLocation = newPlugins[i].getFile();
-			newPluginsSet.add(pluginLocation);
-			// On windows, we will be doing case insensitive search as well, so lower it now
-			if (isWindows)
-				newPluginsSet.add(pluginLocation.toLowerCase());
-		}
-		
-		ArrayList bundlesToUninstall = new ArrayList();
-		int offset = UPDATE_PREFIX.length();
-		for (int i=0; i<cachedBundles.length; i++) {
-			if (cachedBundles[i].getBundleId() == 0)
-				continue; // skip the system bundle
-			String cachedBundleLocation = cachedBundles[i].getLocation();
-			// Only worry about bundles we installed
-			if (!cachedBundleLocation.startsWith(UPDATE_PREFIX))
-				continue;
-			cachedBundleLocation = cachedBundleLocation.substring(offset);
-
-			if (newPluginsSet.contains(cachedBundleLocation))
-				continue;
-			if (isWindows && newPluginsSet.contains(cachedBundleLocation.toLowerCase()))
-				continue;
-			
-			bundlesToUninstall.add(cachedBundles[i]);
-		}
-		return (Bundle[])bundlesToUninstall.toArray(new Bundle[bundlesToUninstall.size()]);
-	}
-	
-
-	/**
-	 * Creates and starts the platform configuration.
-	 * @return the just started platform configuration
-	 */
-	private PlatformConfiguration getPlatformConfiguration(URL installURL, Location configLocation) {
-		try {
-			PlatformConfiguration.startup(installURL, configLocation);
-		} catch (Exception e) {
-			if (platformTracker != null) {
-				String message = e.getMessage();
-				if (message == null)
-					message = ""; //$NON-NLS-1$
-				Utils.log(Utils.newStatus(message, e));
-			}
-		}
-		return PlatformConfiguration.getCurrent();
-
-	}
-
-	/**
-	 * Do PackageAdmin.refreshPackages() in a synchronous way.  After installing
-	 * all the requested bundles we need to do a refresh and want to ensure that 
-	 * everything is done before returning.
-	 * @param bundles
-	 */
-	private void refreshPackages(Bundle[] bundles) {
-		if (bundles.length == 0)
-			return;
-		ServiceReference packageAdminRef = context.getServiceReference(PackageAdmin.class.getName());
-		PackageAdmin packageAdmin = null;
-		if (packageAdminRef != null) {
-			packageAdmin = (PackageAdmin) context.getService(packageAdminRef);
-			if (packageAdmin == null)
-				return;
-		}
-		// TODO this is such a hack it is silly.  There are still cases for race conditions etc
-		// but this should allow for some progress...
-		// (patch from John A.)
-		final boolean[] flag = new boolean[] {false};
-		FrameworkListener listener = new FrameworkListener() {
-			public void frameworkEvent(FrameworkEvent event) {
-				if (event.getType() == FrameworkEvent.PACKAGES_REFRESHED)
-					synchronized (flag) {
-						flag[0] = true;
-						flag.notifyAll();
-					}
-			}
-		};
-		context.addFrameworkListener(listener);
-		packageAdmin.refreshPackages(bundles);
-		synchronized (flag) {
-			while (!flag[0]) {
-				try {
-					flag.wait();
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-		context.removeFrameworkListener(listener);
-		context.ungetService(packageAdminRef);
-	}
-	
-	private void writePlatformConfigurationTimeStamp() {
-		DataOutputStream stream = null;
-		try {
-			if (configLocation.isReadOnly())
-				return;
-			
-			String configArea = configLocation.getURL().getFile();
-			lastTimeStamp = configuration.getChangeStamp();
-			lastStateTimeStamp = Platform.getPlatformAdmin().getState(false).getTimeStamp();
-			stream = new DataOutputStream(new FileOutputStream(configArea +File.separator+ NAME_SPACE+ File.separator+ LAST_CONFIG_STAMP));
-			stream.writeLong(lastTimeStamp);
-			stream.writeLong(lastStateTimeStamp);
-		} catch (Exception e) {
-			Utils.log(e.getLocalizedMessage());
-		} finally {
-			if (stream != null)
-				try {
-					stream.close();
-				} catch (IOException e1) {
-					Utils.log(e1.getLocalizedMessage());
-				}
-		}
-	}
-
-	private void loadOptions() {
-		// all this is only to get the application args		
-		DebugOptions service = null;
-		ServiceReference reference = context.getServiceReference(DebugOptions.class.getName());
-		if (reference != null)
-			service = (DebugOptions) context.getService(reference);
-		if (service == null)
-			return;
-		try {
-			DEBUG = service.getBooleanOption(OPTION_DEBUG, false);
-		} finally {
-			// we have what we want - release the service
-			context.ungetService(reference);
-		}
-	}
-	
-	private boolean canRunWithCachedData() {
-		return  !"true".equals(System.getProperty("osgi.checkConfiguration")) && //$NON-NLS-1$ //$NON-NLS-2$
-				lastTimeStamp==configuration.getChangeStamp() &&
-				lastStateTimeStamp==Platform.getPlatformAdmin().getState(false).getTimeStamp();
-	}
-				
-	public static BundleContext getBundleContext() {
-		return context;
-	}
-		
-	public static URL getInstallURL() {
-		if (installURL == null)
-			installURL = Platform.getInstallLocation().getURL();
-		return installURL;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IBundleGroupProvider#getName()
-	 */
-	public String getName() {
-		return Messages.getString("BundleGroupProvider"); //$NON-NLS-1$
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IBundleGroupProvider#getBundleGroups()
-	 */
-	public IBundleGroup[] getBundleGroups() {
-		if (configuration == null)
-			return new IBundleGroup[0];
-		else {
-			IPlatformConfiguration.IFeatureEntry[] features = configuration.getConfiguredFeatureEntries();
-			ArrayList bundleGroups = new ArrayList(features.length);
-			for (int i=0; i<features.length; i++) {
-				if (features[i] instanceof FeatureEntry 
-					&& ((FeatureEntry)features[i]).hasBranding())
-					bundleGroups.add(features[i]);
-			}
-			return (IBundleGroup[])bundleGroups.toArray(new IBundleGroup[bundleGroups.size()]);
-		}
-	}
-
-	public static void setConfigurator(ConfigurationActivator configurator) {
-		ConfigurationActivator.configurator = configurator;
-	}
-
-	public static ConfigurationActivator getConfigurator() {
-		return configurator;
-	}
-	
-	private void acquireFrameworkLogService() throws Exception{
-		ServiceReference logServiceReference = context.getServiceReference(FrameworkLog.class.getName());
-		if (logServiceReference == null)
-			return;
-		Utils.log  = (FrameworkLog) context.getService(logServiceReference);
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationParser.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationParser.java
deleted file mode 100644
index 976564e..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationParser.java
+++ /dev/null
@@ -1,362 +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 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.update.internal.configurator;
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-import java.util.*;
-import javax.xml.parsers.*;
-
-import org.eclipse.core.runtime.*;
-import org.xml.sax.*;
-import org.xml.sax.helpers.*;
-
-/**
- * parse the default site.xml
- */
-
-public class ConfigurationParser extends DefaultHandler implements IConfigurationConstants {
-	
-	private final static SAXParserFactory parserFactory =
-		SAXParserFactory.newInstance();
-	private SAXParser parser;
-	
-	private URL currentSiteURL;
-	private Configuration config;
-	private URL configURL;
-	private InputStream input;
-	
-	/**
-	 * Constructor for ConfigurationParser
-	 */
-	public ConfigurationParser() throws InvocationTargetException {
-
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			Utils.log(Utils.newStatus("ConfigurationParser", e)); //$NON-NLS-1$
-			throw new InvocationTargetException(e);
-		} catch (SAXException e) {
-			Utils.log(Utils.newStatus("ConfigurationParser", e)); //$NON-NLS-1$
-			throw new InvocationTargetException(e);
-		}
-	}
-	
-	public Configuration parse(URL url) throws Exception {
-
-		// DEBUG:		
-		Utils.debug("Start parsing Configuration:" + url); //$NON-NLS-1$	
-		long lastModified = 0;
-		try {
-			configURL = url;
-			if ("file".equals(url.getProtocol())) { //$NON-NLS-1$
-				File inputFile = new File(url.getFile());
-				if (!inputFile.exists() || !inputFile.canRead())
-					return null;
-				lastModified = inputFile.lastModified();
-				input = new FileInputStream(inputFile);
-			} else 
-				input = url.openStream();
-			parser.parse(new InputSource(input), this);
-			return config;
-		} catch (Exception e) {
-			Utils.log(Utils.newStatus("ConfigurationParser.parse() error:", e)); //$NON-NLS-1$
-			throw e;
-		} finally {
-			if (config != null)
-				config.setLastModified(lastModified);
-			try {
-				if (input != null) { 
-					input.close();
-					input = null;
-				}
-			} catch (IOException e1) {
-				Utils.log(e1.getLocalizedMessage());
-			}
-		}
-	}
-
-	/**
-	 * @see DefaultHandler#startElement(String, String, String, Attributes)
-	 */
-	public void startElement(
-		String uri,
-		String localName,
-		String qName,
-		Attributes attributes)
-		throws SAXException {
-
-		// DEBUG:		
-		Utils.debug("Start Element: uri:" + uri + " local Name:" + localName + " qName:" + qName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		try {
-
-			String tag = localName.trim();
-
-			if (tag.equalsIgnoreCase(CFG)) {
-				processConfig(attributes);
-				return;
-			}
-
-			if (tag.equalsIgnoreCase(CFG_SITE)) {
-				processSite(attributes);
-				return;
-			}
-
-			if (tag.equalsIgnoreCase(CFG_FEATURE_ENTRY)) {
-				processFeature(attributes);
-				return;
-			}
-
-		} catch (MalformedURLException e) {
-			throw new SAXException(Messages.getString("InstalledSiteParser.UnableToCreateURL", e.getMessage()), e); //$NON-NLS-1$
-		} catch (CoreException e) {
-			throw new SAXException(Messages.getString("InstalledSiteParser.InternalError", e.toString()), e); //$NON-NLS-1$
-		}
-	}
-
-	/** 
-	 * process the Site info
-	 */
-	private void processSite(Attributes attributes)
-		throws MalformedURLException, CoreException {
-
-		if (config == null)
-			return;
-		
-		// reset current site
-		currentSiteURL = null;
-		
-		String urlString = attributes.getValue(CFG_URL); //$NON-NLS-1$
-		if (urlString == null)
-			return;
-
-		URL url = null;
-		try {
-			url = new URL(urlString);
-		} catch (MalformedURLException e) {
-			// try relative to install url
-			url = new URL(PlatformConfiguration.getInstallURL(), urlString);
-			return;
-		}
-		
-		if (!isValidSite(url))
-			return;
-		
-		// use this new site
-		currentSiteURL = url;
-
-		int policyType;
-		String[] policyList = null;
-		String typeString = attributes.getValue(CFG_POLICY); //$NON-NLS-1$
-		if (typeString == null) {
-			policyType = DEFAULT_POLICY_TYPE;
-			policyList = DEFAULT_POLICY_LIST;
-		} else {
-			int i;
-			for (i = 0; i < CFG_POLICY_TYPE.length; i++) {
-				if (typeString.equals(CFG_POLICY_TYPE[i])) {
-					break;
-				}
-			}
-			if (i >= CFG_POLICY_TYPE.length) {
-				policyType = DEFAULT_POLICY_TYPE;
-				policyList = DEFAULT_POLICY_LIST;
-			} else {
-				policyType = i;
-				String pluginList = attributes.getValue(CFG_LIST);
-				if (pluginList != null) {
-					StringTokenizer st = new StringTokenizer(pluginList,","); //$NON-NLS-1$
-					policyList = new String[st.countTokens()];
-					for (i=0; i<policyList.length; i++)
-						policyList[i] = st.nextToken();
-				}
-			}
-		}
-
-		SitePolicy sp = new SitePolicy(policyType, policyList);
-		SiteEntry site = (SiteEntry) new SiteEntry(url, sp);
-
-		String flag = attributes.getValue(CFG_UPDATEABLE); //$NON-NLS-1$
-		if (flag != null) {
-			if (flag.equals("true")) //$NON-NLS-1$
-				site.setUpdateable(true);
-			else
-				site.setUpdateable(false);
-		}
-		
-		flag = attributes.getValue(CFG_ENABLED); //$NON-NLS-1$
-		if (flag != null && flag.equals("false")) //$NON-NLS-1$
-			site.setEnabled(false);
-		else
-			site.setEnabled(true);
-
-		String linkname = attributes.getValue(CFG_LINK_FILE); //$NON-NLS-1$
-		if (linkname != null && !linkname.equals("")) { //$NON-NLS-1$
-			site.setLinkFileName(linkname.replace('/', File.separatorChar));
-		}
-
-		// DEBUG:		
-		Utils.debug("End process config site url:" + urlString + " policy:" + typeString + " updatable:"+flag ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		
-		config.addSiteEntry(url.toExternalForm(), site);
-	}
-	
-	/** 
-	 * process the DefaultFeature info
-	 */
-	private void processFeature(Attributes attributes)
-		throws MalformedURLException, CoreException {
-
-		if (currentSiteURL == null)
-			return; // the site was not correct
-			
-		String id = attributes.getValue(CFG_FEATURE_ENTRY_ID); //$NON-NLS-1$
-		if (id == null)
-			return;
-		String version = attributes.getValue(CFG_FEATURE_ENTRY_VERSION); //$NON-NLS-1$
-		String pluginVersion = attributes.getValue(CFG_FEATURE_ENTRY_PLUGIN_VERSION); //$NON-NLS-1$
-		if (pluginVersion == null || pluginVersion.trim().length() == 0)
-			pluginVersion = version;
-		String pluginIdentifier = attributes.getValue(CFG_FEATURE_ENTRY_PLUGIN_IDENTIFIER); //$NON-NLS-1$
-		if (pluginIdentifier != null && pluginIdentifier.trim().length() == 0)
-			pluginIdentifier = null;
-		String application = attributes.getValue(CFG_FEATURE_ENTRY_APPLICATION); //$NON-NLS-1$
-		
-		// get install locations
-		String locations = attributes.getValue(CFG_FEATURE_ENTRY_ROOT);
-		StringTokenizer st = locations != null ? new StringTokenizer(locations,",") : new StringTokenizer(""); //$NON-NLS-1$ //$NON-NLS-2$
-		ArrayList rootList = new ArrayList(st.countTokens());
-		while (st.hasMoreTokens()){
-			try{
-				URL rootEntry = new URL(st.nextToken());
-				rootList.add(rootEntry);
-			} catch (MalformedURLException e) {
-				// skip bad entries ...
-			}
-		}
-		URL[] roots = (URL[]) rootList.toArray(new URL[rootList.size()]);
-
-		// get primary flag
-		boolean primary = false;
-		String flag = attributes.getValue(CFG_FEATURE_ENTRY_PRIMARY); //$NON-NLS-1$
-		if (flag != null) {
-			if (flag.equals("true")) //$NON-NLS-1$
-				primary = true;
-		}
-		
-		FeatureEntry featureEntry =  new FeatureEntry(id, version, pluginIdentifier, pluginVersion, primary, application, roots);
-
-		// set the url
-		String url = attributes.getValue(CFG_URL); //$NON-NLS-1$
-		if (url != null && url.trim().length() > 0)
-			featureEntry.setURL(url);
-		
-		SiteEntry site = config.getSiteEntry(currentSiteURL.toExternalForm());
-		site.addFeatureEntry(featureEntry);
-		
-		// configured ?
-//		String configuredString = attributes.getValue("configured"); //$NON-NLS-1$
-//		boolean configured = configuredString.trim().equalsIgnoreCase("true") ? true : false; //$NON-NLS-1$
-	}
-
-
-	/** 
-	 * process the Config info
-	 */
-	private void processConfig(Attributes attributes) {
-		String date = attributes.getValue(CFG_DATE);
-		if (date == null || date.trim().length() == 0)
-			config = new Configuration(); // constructed with current date
-		else {
-			long time = 0;
-			try {
-				time = Long.parseLong(date);
-				config = new Configuration(new Date(time));
-			} catch (NumberFormatException e1) {
-				time = new Date().getTime();
-				Utils.log(Messages.getString("InstalledSiteParser.date", date)); //$NON-NLS-1$
-				config = new Configuration(); // constructed with current date
-			}
-		}
-		
-		config.setURL(configURL);
-		
-		try {
-			String sharedURL = attributes.getValue(CFG_SHARED_URL);
-			if (sharedURL != null) {
-				ConfigurationParser parser = new ConfigurationParser();
-				Configuration sharedConfig = parser.parse(new URL(sharedURL));
-				if (sharedConfig == null)
-					throw new Exception();
-				config.setLinkedConfig(sharedConfig);
-			}
-		} catch (Exception e) {
-			// could not load from shared install
-			Utils.log(Utils.newStatus(Messages.getString("ConfigurationParser.cannotLoadSharedInstall"), e)); //$NON-NLS-1$
-		}
-
-		String flag = attributes.getValue(CFG_TRANSIENT);
-		if (flag != null) {
-			config.setTransient(flag.equals("true")); //$NON-NLS-1$
-		}
-		
-		// DEBUG:		
-		Utils.debug("End Processing Config Tag: date:" + attributes.getValue(CFG_DATE)); //$NON-NLS-1$
-	}
-	
-	private boolean isValidSite(URL url) {
-		URL resolvedURL=  url;
-		if (url.getProtocol().equals("platform")) { // $NON-NLS-1$
-			try {
-				resolvedURL = PlatformConfiguration.resolvePlatformURL(url); // 19536
-			} catch (IOException e) {
-				// will use the baseline URL ...
-			}
-		}
-		
-		if (!PlatformConfiguration.supportsDetection(resolvedURL))
-			return false;
-
-		File siteRoot = new File(resolvedURL.getFile().replace('/', File.separatorChar));
-		if (!siteRoot.exists()) {
-			Utils.debug("Site " + resolvedURL + " does not exist "); //$NON-NLS-1$ //$NON-NLS-2$
-			return false;
-		} else
-			return true;
-	}
-	/* (non-Javadoc)
-	 * @see org.xml.sax.ContentHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public void endElement(String uri, String localName, String qName)
-			throws SAXException {
-		super.endElement(uri, localName, qName);
-		
-		// DEBUG:		
-		Utils.debug("End Element: uri:" + uri + " local Name:" + localName + " qName:" + qName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		try {
-
-			String tag = localName.trim();
-
-			if (tag.equalsIgnoreCase(CFG)) {
-				 // This is a bit of a hack.
-				 // When no features were added to the site, but the site is initialized from platform.xml 
-				 // we need to set the feature set to empty, so we don't try to detect them.
-				SiteEntry[] sites = config.getSites();
-				for (int i=0; i<sites.length; i++)
-					sites[i].initialized();
-				return;
-			}
-		} catch (Exception e) {
-			// silent ignore
-		}
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FeatureEntry.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FeatureEntry.java
deleted file mode 100644
index 8debb9d..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FeatureEntry.java
+++ /dev/null
@@ -1,361 +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 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.update.internal.configurator;
-
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.internal.configurator.branding.*;
-import org.osgi.framework.*;
-import org.w3c.dom.*;
-
-
-/**
- * 
- * Feature information
- */
-public class FeatureEntry
-		implements
-			IPlatformConfiguration.IFeatureEntry,
-			IConfigurationConstants,
-			IBundleGroup,
-			IBundleGroupConstants,
-			IProduct,
-			IProductConstants {
-	private String id;
-	private String version;
-	private String pluginVersion;
-	private String application;
-	private URL[] root;
-	private boolean primary;
-	private String pluginIdentifier;
-	private String url;
-	private String description;
-	private String licenseURL;
-	private ArrayList plugins;
-	private AboutInfo branding;
-	private SiteEntry site;
-	private ResourceBundle resourceBundle;
-	private boolean fullyParsed;
-
-	public FeatureEntry(String id, String version, String pluginIdentifier, String pluginVersion, boolean primary, String application, URL[] root) {
-		if (id == null)
-			throw new IllegalArgumentException();
-		this.id = id;
-		this.version = version;
-		this.pluginVersion = pluginVersion;
-		this.pluginIdentifier = pluginIdentifier;
-		this.primary = primary;
-		this.application = application;
-		this.root = (root == null ? new URL[0] : root);
-	}
-
-	public FeatureEntry( String id, String version, String pluginVersion, boolean primary, String application, URL[] root) {
-		this(id, version, id, pluginVersion, primary, application, root);
-	}
-
-	public void setSite(SiteEntry site) {
-		this.site = site;
-	}
-	
-	public SiteEntry getSite() {
-		return this.site;
-	}
-	
-	public void addPlugin(PluginEntry plugin) {
-		if (plugins == null)
-			plugins = new ArrayList();
-		plugins.add(plugin);
-	}
-	
-	public PluginEntry[] getPluginEntries() {
-		if (plugins == null)
-			fullParse();
-		return (PluginEntry[])plugins.toArray(new PluginEntry[plugins.size()]);
-	}
-	
-	/**
-	 * Sets the url string (relative to the site url)
-	 * @param url
-	 */
-	public void setURL(String url) {
-		this.url = url;
-	}
-	
-	/**
-	 * @return the feature url (relative to the site): features/org.eclipse.platform/
-	 */
-	public String getURL() {
-//		if (url == null)
-//			url = FEATURES + "/" + id + "_" + version + "/";
-		return url;
-	}
-	
-	/*
-	 * @see IFeatureEntry#getFeatureIdentifier()
-	 */
-	public String getFeatureIdentifier() {
-		return id;
-	}
-
-	/*
-	 * @see IFeatureEntry#getFeatureVersion()
-	 */
-	public String getFeatureVersion() {
-		return version;
-	}
-
-	/*
-	 * @see IFeatureEntry#getFeaturePluginVersion()
-	 */
-	public String getFeaturePluginVersion() {
-		return pluginVersion != null && pluginVersion.length() > 0 ? pluginVersion : null;
-	}
-
-	/*
-	 * @see IFeatureEntry#getFeaturePluginIdentifier()
-	 */
-	public String getFeaturePluginIdentifier() {
-		// if no plugin is specified, use the feature id
-		return pluginIdentifier != null && pluginIdentifier.length() > 0 ? pluginIdentifier : id;
-	}
-	
-	/*
-	 * @see IFeatureEntry#getFeatureApplication()
-	 */
-	public String getFeatureApplication() {
-		return application;
-	}
-
-	/*
-	 * @see IFeatureEntry#getFeatureRootURLs()
-	 */
-	public URL[] getFeatureRootURLs() {
-		return root;
-	}
-
-	/*
-	 * @see IFeatureEntry#canBePrimary()
-	 */
-	public boolean canBePrimary() {
-		return primary;
-	}
-
-	public Element toXML(Document doc) {
-	
-		Element featureElement = doc.createElement(CFG_FEATURE_ENTRY);		
-		// write out feature entry settings
-		if (id != null)
-			featureElement.setAttribute(CFG_FEATURE_ENTRY_ID, id); 
-		if (primary)
-			featureElement.setAttribute(CFG_FEATURE_ENTRY_PRIMARY, "true"); //$NON-NLS-1$
-		if (version != null)
-			featureElement.setAttribute(CFG_FEATURE_ENTRY_VERSION, version); 
-		if (pluginVersion != null && !pluginVersion.equals(version) && pluginVersion.length() > 0)
-			featureElement.setAttribute(CFG_FEATURE_ENTRY_PLUGIN_VERSION, pluginVersion); 
-		if (pluginIdentifier != null && !pluginIdentifier.equals(id) && pluginIdentifier.length() > 0)
-			featureElement.setAttribute(CFG_FEATURE_ENTRY_PLUGIN_IDENTIFIER, pluginIdentifier);
-		if (application != null)
-			featureElement.setAttribute(CFG_FEATURE_ENTRY_APPLICATION, application);
-		if (url != null)
-			featureElement.setAttribute(CFG_URL, url);
-		
-		URL[] roots = getFeatureRootURLs();
-		for (int i=0; i<roots.length; i++) {
-			String root = roots[i].toExternalForm();
-			if (root != null && root.trim().length() > 0){
-				Element rootElement = doc.createElement(CFG_FEATURE_ENTRY_ROOT);
-				rootElement.appendChild(doc.createTextNode(root));
-				featureElement.appendChild(rootElement);
-			}
-		}
-		
-		return featureElement;
-	}
-	
-	public void setDescription(String description) {
-		this.description = description;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IBundleGroup#getBundles()
-	 */
-	public Bundle[] getBundles() {
-		if (plugins == null)
-			fullParse();
-		
-		ArrayList bundles = new ArrayList(plugins.size());
-		for (int i=0; i<plugins.size(); i++) {
-			PluginEntry plugin = (PluginEntry)plugins.get(i);
-			// get the highest version for the plugin
-			Bundle bundle = Platform.getBundle(plugin.getPluginIdentifier());
-			if (bundle != null)
-				bundles.add(bundle);
-		}
-		return (Bundle[])bundles.toArray(new Bundle[bundles.size()]);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IBundleGroup#getDescription()
-	 */
-	public String getDescription() {
-		if (description == null)
-			fullParse();
-		return description;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IBundleGroup#getIdentifier()
-	 */
-	public String getIdentifier() {
-		return id;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IBundleGroup#getName()
-	 */
-	public String getName() {
-		if (branding == null)
-			branding = AboutInfo.readFeatureInfo(id, version, getFeaturePluginIdentifier());
-		return branding.getProductName();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IBundleGroup#getProperty(java.lang.String)
-	 */
-	public String getProperty(String key) {
-		if (key == null)
-			return null;
-		
-		if (branding == null)
-			branding = AboutInfo.readFeatureInfo(id, version, getFeaturePluginIdentifier());
-		
-		// IBundleGroupConstants
-		if (key.equals(FEATURE_IMAGE))
-			return branding.getFeatureImageURL() == null ? null : branding.getFeatureImageURL().toExternalForm();
-		else if (key.equals(TIPS_AND_TRICKS_HREF)) 
-			return branding.getTipsAndTricksHref();
-		else if (key.equals(IBundleGroupConstants.WELCOME_PAGE)) // same value is used by product and bundle group
-			return branding.getWelcomePageURL() == null ? null : branding.getWelcomePageURL().toExternalForm();
-		else if (key.equals(WELCOME_PERSPECTIVE))
-			return branding.getWelcomePerspectiveId();
-		// IProductConstants
-		else if (key.equals(APP_NAME)) 
-			return branding.getAppName();
-		else if (key.equals(ABOUT_TEXT))
-			return branding.getAboutText();
-		else if (key.equals(ABOUT_IMAGE))
-			return branding.getAboutImageURL() == null ? null : branding.getAboutImageURL().toExternalForm();
-		else if (key.equals(WINDOW_IMAGE))
-			return branding.getWindowImageURL()== null ? null : branding.getWindowImageURL().toExternalForm();
-		else if (key.equals(WINDOW_IMAGES)) {
-			URL[] urls = branding.getWindowImagesURLs();
-			if (urls == null)
-				return null;
-			StringBuffer windowImagesURLs = new StringBuffer();
-			for (int i=0; i<urls.length; i++){
-				windowImagesURLs.append(urls[i].toExternalForm());
-				if (i != urls.length-1)
-					windowImagesURLs.append(',');
-			}
-			return windowImagesURLs.toString();
-		} else if (key.equals(LICENSE_HREF))
-			return getLicenseURL();
-		
-		return null;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IBundleGroup#getProviderName()
-	 */
-	public String getProviderName() {
-		if (branding == null)
-			branding = AboutInfo.readFeatureInfo(id, version, getFeaturePluginIdentifier());
-		return branding.getProviderName();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IBundleGroup#getVersion()
-	 */
-	public String getVersion() {
-		return version;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IProduct#getApplication()
-	 */
-	public String getApplication() {
-		return application;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IProduct#getId()
-	 */
-	public String getId() {
-		return id;
-	}
-	
-	public ResourceBundle getResourceBundle(){
-		if (resourceBundle != null)
-			return resourceBundle;
-		
-		// Determine the properties file location
-		if (site == null)
-			return null;
-		
-		ResourceBundle bundle = null;
-		try {
-			URL propertiesURL = new URL(site.getResolvedURL(), getURL());
-			ClassLoader l = new URLClassLoader(new URL[] { propertiesURL }, null);
-			bundle = ResourceBundle.getBundle(IConfigurationConstants.CFG_FEATURE_ENTRY, Utils.getDefaultLocale(), l);
-		} catch (MissingResourceException e) {
-			Utils.log(e.getLocalizedMessage()); 
-		} catch (MalformedURLException e) {
-			Utils.log(e.getLocalizedMessage()); 
-		}
-		return bundle;
-	}
-	
-	public void setLicenseURL(String licenseURL) {
-		this.licenseURL = licenseURL;
-	}
-	
-	public String getLicenseURL() {
-		if (licenseURL == null)
-			fullParse();
-		if (licenseURL == null)
-			return null;
-		
-		String resolvedURL = Utils.getResourceString(getResourceBundle(), licenseURL);
-		if (resolvedURL.startsWith("http://")) //$NON-NLS-1$
-			return resolvedURL;
-		else {
-			try {
-				return new URL(getSite().getResolvedURL(), getURL() + resolvedURL).toExternalForm();
-			} catch (MalformedURLException e) {
-				return resolvedURL;
-			}
-		}
-	}
-	
-	private void fullParse() {
-		if (fullyParsed)
-			return;
-		fullyParsed = true;
-		if (plugins == null) 
-			plugins = new ArrayList();
-		FullFeatureParser parser = new FullFeatureParser(this);
-		parser.parse();
-	}
-	
-	public Bundle getDefiningBundle() {
-		return Platform.getBundle(getFeaturePluginIdentifier());
-	}
-	
-	public boolean hasBranding() {
-        String bundleId = getFeaturePluginIdentifier();
-		return bundleId != null && Platform.getBundle(bundleId) != null;
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FeatureParser.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FeatureParser.java
deleted file mode 100644
index 86429de..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FeatureParser.java
+++ /dev/null
@@ -1,135 +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 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.update.internal.configurator;
-
-
-import java.io.*;
-import java.net.*;
-
-import javax.xml.parsers.*;
-
-import org.xml.sax.*;
-import org.xml.sax.helpers.*;
-
-/**
- * Default feature parser.
- * Parses the feature manifest file as defined by the platform.
- * 
- * @since 3.0
- */
-public class FeatureParser extends DefaultHandler {
-
-	private SAXParser parser;
-	private FeatureEntry feature;
-	private URL url;
-
-	private final static SAXParserFactory parserFactory =
-		SAXParserFactory.newInstance();
-
-	/**
-	 * Constructs a feature parser.
-	 */
-	public FeatureParser() {
-		super();
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			System.out.println(e);
-		} catch (SAXException e) {
-			System.out.println(e);
-		}
-	}
-	/**
-	 * Parses the specified url and constructs a feature
-	 */
-	public FeatureEntry parse(URL featureURL){
-		feature=null;
-		InputStream in = null;
-		try {
-			this.url = featureURL;
-			in = featureURL.openStream();
-			parser.parse(new InputSource(in), this);
-		} catch (SAXException e) {;
-		} catch (IOException e) {
-		} finally {
-			if (in != null)
-				try {
-					in.close();
-				} catch (IOException e1) {
-					Utils.log(e1.getLocalizedMessage());
-				}
-		}
-		return feature;
-	}
-
-	/**
-	 * Handle start of element tags
-	 * @see DefaultHandler#startElement(String, String, String, Attributes)
-	 * @since 2.0
-	 */
-	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-
-		Utils.debug("Start Element: uri:" + uri + " local Name:" + localName + " qName:" + qName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-		if ("feature".equals(localName)) { //$NON-NLS-1$
-			processFeature(attributes);
-			// stop parsing now
-			throw new SAXException(""); //$NON-NLS-1$
-		} else {
-		}
-		
-	}
-
-	/*
-	 * Process feature information
-	 */
-	private void processFeature(Attributes attributes) {
-
-		// identifier and version
-		String id = attributes.getValue("id"); //$NON-NLS-1$
-		String ver = attributes.getValue("version"); //$NON-NLS-1$
-
-		if (id == null || id.trim().equals("") //$NON-NLS-1$
-		|| ver == null || ver.trim().equals("")) { //$NON-NLS-1$
-			System.out.println(Messages.getString("FeatureParser.IdOrVersionInvalid", new String[] { id, ver})); //$NON-NLS-1$
-		} else {
-//			String label = attributes.getValue("label"); //$NON-NLS-1$
-//			String provider = attributes.getValue("provider-name"); //$NON-NLS-1$
-//			String imageURL = attributes.getValue("image"); //$NON-NLS-1$
-			String os = attributes.getValue("os"); //$NON-NLS-1$
-			String ws = attributes.getValue("ws"); //$NON-NLS-1$
-			String nl = attributes.getValue("nl"); //$NON-NLS-1$
-			String arch = attributes.getValue("arch"); //$NON-NLS-1$
-			if (!Utils.isValidEnvironment(os, ws, arch, nl)) 
-				return;
-//			String exclusive = attributes.getValue("exclusive"); //$NON-NLS-1$
-//			String affinity = attributes.getValue("colocation-affinity"); //$NON-NLS-1$
-
-			String primary = attributes.getValue("primary"); //$NON-NLS-1$
-			boolean isPrimary = "true".equals(primary); //$NON-NLS-1$
-			String application = attributes.getValue("application"); //$NON-NLS-1$
-			String plugin = attributes.getValue("plugin"); //$NON-NLS-1$
-
-			//TODO rootURLs
-			feature = new FeatureEntry(id, ver, plugin, "", isPrimary, application, null ); //$NON-NLS-1$
-			if ("file".equals(url.getProtocol())) { //$NON-NLS-1$
-				File f = new File(url.getFile().replace('/', File.separatorChar));
-				feature.setURL("features" + "/" + f.getParentFile().getName() + "/");// + f.getName()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			} else {
-				feature.setURL(url.toExternalForm());
-			}
-
-			Utils.
-				debug("End process DefaultFeature tag: id:" +id + " ver:" +ver + " url:" + feature.getURL()); 	 //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FullFeatureParser.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FullFeatureParser.java
deleted file mode 100644
index 69e14e1..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FullFeatureParser.java
+++ /dev/null
@@ -1,149 +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 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.update.internal.configurator;
-
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import javax.xml.parsers.*;
-
-import org.xml.sax.*;
-import org.xml.sax.helpers.*;
-
-/**
- * A more complete feature parser. It adds the plugins listed to the feature.
- */
-public class FullFeatureParser extends DefaultHandler implements IConfigurationConstants{
-
-	private SAXParser parser;
-	private FeatureEntry feature;
-	private URL url;
-	private boolean isDescription;
-	private StringBuffer description = new StringBuffer();
-
-	private final static SAXParserFactory parserFactory =
-		SAXParserFactory.newInstance();
-
-	/**
-	 * Constructs a feature parser.
-	 */
-	public FullFeatureParser(FeatureEntry feature) {
-		super();
-		this.feature = feature;
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			System.out.println(e);
-		} catch (SAXException e) {
-			System.out.println(e);
-		}
-	}
-	/**
-	 */
-	public void parse(){
-		InputStream in = null;
-		try {
-			if (feature.getSite() == null)
-				return;
-			this.url = new URL(feature.getSite().getResolvedURL(), feature.getURL() + FEATURE_XML);
-			in = url.openStream();
-			parser.parse(new InputSource(in), this);
-		} catch (SAXException e) {;
-		} catch (IOException e) {
-		} finally {
-			if (in != null)
-				try {
-					in.close();
-				} catch (IOException e1) {
-					Utils.log(e1.getLocalizedMessage());
-				}
-		}
-	}
-
-	/**
-	 * Handle start of element tags
-	 * @see DefaultHandler#startElement(String, String, String, Attributes)
-	 * @since 2.0
-	 */
-	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-
-		Utils.debug("Start Element: uri:" + uri + " local Name:" + localName + " qName:" + qName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-		if ("plugin".equals(localName)) { //$NON-NLS-1$
-			processPlugin(attributes);
-		} else if ("description".equals(localName)){ //$NON-NLS-1$
-			isDescription = true;
-		} else if ("license".equals(localName)) { //$NON-NLS-1$
-			processLicense(attributes);
-		}
-	}
-
-	/*
-	 * Process feature information
-	 */
-	private void processPlugin(Attributes attributes) {
-
-		// identifier and version
-		String id = attributes.getValue("id"); //$NON-NLS-1$
-		String ver = attributes.getValue("version"); //$NON-NLS-1$
-
-		if (id == null || id.trim().equals("") //$NON-NLS-1$
-		|| ver == null || ver.trim().equals("")) { //$NON-NLS-1$
-			System.out.println(Messages.getString("FeatureParser.IdOrVersionInvalid", new String[] { id, ver})); //$NON-NLS-1$
-		} else {
-//			String label = attributes.getValue("label"); //$NON-NLS-1$
-//			String provider = attributes.getValue("provider-name"); //$NON-NLS-1$
-			String nl = attributes.getValue("nl"); //$NON-NLS-1$
-			String os = attributes.getValue("os"); //$NON-NLS-1$
-			String ws = attributes.getValue("ws"); //$NON-NLS-1$
-			String arch = attributes.getValue("arch"); //$NON-NLS-1$
-			if (!Utils.isValidEnvironment(os, ws, arch,nl))
-				return;
-
-			PluginEntry plugin = new PluginEntry();
-			plugin.setPluginIdentifier(id);
-			plugin.setPluginVersion(ver);
-			feature.addPlugin(plugin);
-			
-			Utils.
-				debug("End process DefaultFeature tag: id:" +id + " ver:" +ver + " url:" + feature.getURL()); 	 //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-	
-	private void processLicense(Attributes attributes ){
-		feature.setLicenseURL(attributes.getValue("url")); //$NON-NLS-1$
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.xml.sax.ContentHandler#characters(char[], int, int)
-	 */
-	public void characters(char[] ch, int start, int length)
-			throws SAXException {
-		if (!isDescription)
-			return;
-		description.append(ch, start, length);
-	}
-	/* (non-Javadoc)
-	 * @see org.xml.sax.ContentHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public void endElement(String uri, String localName, String qName)
-			throws SAXException {
-		if ("description".equals(localName)) { //$NON-NLS-1$
-			isDescription = false;
-			String d = description.toString().trim();
-			ResourceBundle bundle = feature.getResourceBundle();
-			feature.setDescription(Utils.getResourceString(bundle, d));
-		}
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/IConfigurationConstants.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/IConfigurationConstants.java
deleted file mode 100644
index b75c9d2..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/IConfigurationConstants.java
+++ /dev/null
@@ -1,64 +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 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.update.internal.configurator;
-
-import org.eclipse.update.configurator.IPlatformConfiguration.*;
-
-/**
- * Constants
- */
-public interface IConfigurationConstants {
-	public static final String ECLIPSE_PRODUCT = "eclipse.product"; //$NON-NLS-1$
-	public static final String ECLIPSE_APPLICATION = "eclipse.application"; //$NON-NLS-1$
-	public static final String CFG = "config"; //$NON-NLS-1$
-	public static final String CFG_BOOT_PLUGIN = "bootstrap"; //$NON-NLS-1$
-	public static final String CFG_SITE = "site"; //$NON-NLS-1$
-	public static final String CFG_URL = "url"; //$NON-NLS-1$
-	public static final String CFG_POLICY = "policy"; //$NON-NLS-1$
-	public static final String[] CFG_POLICY_TYPE = { "USER-INCLUDE", "USER-EXCLUDE", "MANAGED-ONLY" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	public static final String CFG_POLICY_TYPE_UNKNOWN = "UNKNOWN"; //$NON-NLS-1$
-	public static final String CFG_LIST = "list"; //$NON-NLS-1$
-	public static final String CFG_STAMP = "stamp"; //$NON-NLS-1$
-	public static final String CFG_FEATURE_STAMP = "stamp.features"; //$NON-NLS-1$
-	public static final String CFG_PLUGIN_STAMP = "stamp.plugins"; //$NON-NLS-1$
-	public static final String CFG_UPDATEABLE = "updateable"; //$NON-NLS-1$
-	public static final String CFG_LINK_FILE = "linkfile"; //$NON-NLS-1$
-	public static final String CFG_FEATURE_ENTRY = "feature"; //$NON-NLS-1$
-	public static final String CFG_FEATURE_ENTRY_ID = "id"; //$NON-NLS-1$
-	public static final String CFG_FEATURE_ENTRY_PRIMARY = "primary"; //$NON-NLS-1$
-	public static final String CFG_FEATURE_ENTRY_VERSION = "version"; //$NON-NLS-1$
-	public static final String CFG_FEATURE_ENTRY_PLUGIN_VERSION = "plugin-version"; //$NON-NLS-1$
-	public static final String CFG_FEATURE_ENTRY_PLUGIN_IDENTIFIER = "plugin-identifier"; //$NON-NLS-1$
-	public static final String CFG_FEATURE_ENTRY_APPLICATION = "application"; //$NON-NLS-1$
-	public static final String CFG_FEATURE_ENTRY_ROOT = "root"; //$NON-NLS-1$
-	public static final String CFG_DATE = "date"; //$NON-NLS-1$
-	public static final String CFG_PLUGIN = "plugin"; //$NON-NLS-1$
-	public static final String CFG_FRAGMENT = "fragment"; //$NON-NLS-1$
-	public static final String CFG_ENABLED = "enabled"; //$NON-NLS-1$
-	public static final String CFG_SHARED_URL = "shared_ur"; //$NON-NLS-1$
-	
-
-	public static final String CFG_VERSION = "version"; //$NON-NLS-1$
-	public static final String CFG_TRANSIENT = "transient"; //$NON-NLS-1$
-	public static final String VERSION = "3.0"; //$NON-NLS-1$
-//	public static final String EOF = "eof"; //$NON-NLS-1$
-	public static final int CFG_LIST_LENGTH = 10;
-
-	public static final int DEFAULT_POLICY_TYPE = ISitePolicy.USER_EXCLUDE;
-	public static final String[] DEFAULT_POLICY_LIST = new String[0];
-	
-	public static final String PLUGINS = "plugins"; //$NON-NLS-1$
-	public static final String FEATURES = "features"; //$NON-NLS-1$
-	public static final String PLUGIN_XML = "plugin.xml"; //$NON-NLS-1$
-	public static final String FRAGMENT_XML = "fragment.xml"; //$NON-NLS-1$
-	public static final String META_MANIFEST_MF = "META-INF/MANIFEST.MF"; //$NON-NLS-1$
-	public static final String FEATURE_XML = "feature.xml"; //$NON-NLS-1$
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker.java
deleted file mode 100644
index 4752fef..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker.java
+++ /dev/null
@@ -1,21 +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.update.internal.configurator;
-
-import java.io.IOException;
-
-/**
- * Internal class.
- */
-public interface Locker {
-	public boolean lock() throws IOException;
-	public void release();
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker_JavaIo.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker_JavaIo.java
deleted file mode 100644
index 28b1fef..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker_JavaIo.java
+++ /dev/null
@@ -1,53 +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.update.internal.configurator;
-
-import java.io.*;
-
-/**
- * Internal class.
- */
-public class Locker_JavaIo implements Locker {
-	private File lockFile;
-	private RandomAccessFile lockRAF;
-
-	public Locker_JavaIo(File lockFile) {
-		this.lockFile = lockFile;
-	}
-
-	public synchronized boolean lock() throws IOException {
-		//if the lock file already exists, try to delete,
-		//assume failure means another eclipse has it open
-		if (lockFile.exists())
-			lockFile.delete();
-		if (lockFile.exists())
-			return false;
-
-		//open the lock file so other instances can't co-exist
-		lockRAF = new RandomAccessFile(lockFile, "rw"); //$NON-NLS-1$
-		lockRAF.writeByte(0);
-
-		return true;
-	}
-
-	public synchronized void release() {
-		try {
-			if (lockRAF != null) {
-				lockRAF.close();
-				lockRAF = null;
-			}
-		} catch (IOException e) {
-			//don't complain, we're making a best effort to clean up
-		}
-		if (lockFile != null)
-			lockFile.delete();
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker_JavaNio.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker_JavaNio.java
deleted file mode 100644
index c7d8a6c..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker_JavaNio.java
+++ /dev/null
@@ -1,46 +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.update.internal.configurator;
-
-import java.io.*;
-import java.nio.channels.FileLock;
-
-/**
- * Internal class.
- */
-public class Locker_JavaNio implements Locker {
-	private File lockFile;
-	private FileLock fileLock;
-
-	public Locker_JavaNio(File lockFile) {
-		this.lockFile = lockFile;
-	}
-
-	public synchronized boolean lock() throws IOException {
-		RandomAccessFile raf = new RandomAccessFile(lockFile, "rw"); //$NON-NLS-1$
-		fileLock = raf.getChannel().lock();
-		
-		if (fileLock != null)
-			return true;
-		return false;
-	}
-
-	public synchronized void release() {
-		if (fileLock != null) {
-			try {
-				fileLock.release();
-			} catch (IOException e) {
-				//don't complain, we're making a best effort to clean up
-			}
-			fileLock = null;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Messages.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Messages.java
deleted file mode 100644
index 211c181..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Messages.java
+++ /dev/null
@@ -1,69 +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 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.update.internal.configurator;
-
-import java.text.MessageFormat;
-import java.util.*;
-
-public class Messages {
-	private static String bundleName = "org.eclipse.update.internal.configurator.messages"; //$NON-NLS-1$
-	private static ResourceBundle bundle = ResourceBundle.getBundle(bundleName, Locale.getDefault());
-
-	/**
-	 * Lookup the message with the given ID in this catalog 
-	 */
-	public static String getString(String id) {
-		return getString(id, (String[]) null);
-	}
-	/**
-	 * Lookup the message with the given ID in this catalog and bind its
-	 * substitution locations with the given string.
-	 */
-	public static String getString(String id, String binding) {
-		return getString(id, new String[] { binding });
-	}
-	/**
-	 * Lookup the message with the given ID in this catalog and bind its
-	 * substitution locations with the given strings.
-	 */
-	public static String getString(String id, String binding1, String binding2) {
-		return getString(id, new String[] { binding1, binding2 });
-	}
-
-	/**
-	 * Lookup the message with the given ID in this catalog and bind its
-	 * substitution locations with the given string values.
-	 */
-	public static String getString(String id, String[] bindings) {
-		if (id == null)
-			return "No message available"; //$NON-NLS-1$
-		String message = null;
-		try {
-			message = bundle.getString(id);
-		} catch (MissingResourceException e) {
-			// If we got an exception looking for the message, fail gracefully by just returning
-			// the id we were looking for.  In most cases this is semi-informative so is not too bad.
-			return "Missing message: " + id + " in: " + bundleName; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		if (bindings == null)
-			return message;
-		return MessageFormat.format(message, bindings);
-	}
-	/**
-	 * Print a debug message to the console. If the given boolean is <code>true</code> then
-	 * pre-pend the message with the current date.
-	 */
-	public static void debug(boolean includeDate, String message) {
-		if (includeDate)
-			message = new Date(System.currentTimeMillis()).toString() + " - " + message; //$NON-NLS-1$
-		System.out.println(message);
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java
deleted file mode 100644
index 20313a5..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java
+++ /dev/null
@@ -1,1182 +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 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.update.internal.configurator;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-//PAL nio optional
-//import java.nio.channels.*;
-import java.util.*;
-
-import javax.xml.parsers.*;
-//PAL cdcFoundation
-//import javax.xml.transform.*;
-//import javax.xml.transform.dom.*;
-//import javax.xml.transform.stream.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.service.datalocation.*;
-import org.eclipse.update.configurator.*;
-import org.w3c.dom.*;
-
-/**
- * This class is responsible for providing the features and plugins (bundles) to 
- * the runtime. Configuration data is stored in the configuration/org.eclipse.update/platform.xml file.
- * When eclipse starts, it tries to load the config info from platform.xml.
- * If the file does not exist, then it also tries to read it from a temp or backup file.
- * If this does not succeed, a platform.xml is created by inspecting the eclipse 
- * installation directory (its features and plugin folders).
- * If platform.xml already exists, a check is made to see when it was last modified
- * and whether there are any file system changes that are newer (users may manually unzip 
- * features and plugins). In this case, the newly added features and plugins are picked up.
- * A check for existence of features and plugins is also performed, to detect deletions.
- */
-public class PlatformConfiguration implements IPlatformConfiguration, IConfigurationConstants {
-
-	private static PlatformConfiguration currentPlatformConfiguration = null;
-	private static final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-//	private static final TransformerFactory transformerFactory = TransformerFactory.newInstance();
-	private static final String XML_ENCODING = "UTF-8";
-
-	private Configuration config;
-	private URL configLocation;
-	private HashMap externalLinkSites; // used to restore prior link site state
-	private long changeStamp;
-	private long featuresChangeStamp;
-	private boolean featuresChangeStampIsValid;
-	private long pluginsChangeStamp;
-	private boolean pluginsChangeStampIsValid;
-	//PAL nio optional
-	//private FileLock lock;
-	private Locker lock = null;
-	private static boolean checkNio = false;
-	private static boolean useNio;
-
-	private static final String ECLIPSE = "eclipse"; //$NON-NLS-1$
-	private static final String CONFIG_HISTORY = "history"; //$NON-NLS-1$
-	private static final String PLATFORM_XML = "platform.xml"; //$NON-NLS-1$
-	private static final String CONFIG_NAME = ConfigurationActivator.NAME_SPACE + "/" + PLATFORM_XML; //$NON-NLS-1$
-	private static final String CONFIG_INI = "config.ini"; //NON-NLS-1$ //$NON-NLS-1$
-	private static final String CONFIG_FILE_LOCK_SUFFIX = ".lock"; //$NON-NLS-1$
-	private static final String CONFIG_FILE_TEMP_SUFFIX = ".tmp"; //$NON-NLS-1$
-	private static final String LINKS = "links"; //$NON-NLS-1$
-	private static final String[] BOOTSTRAP_PLUGINS = {}; //$NON-NLS-1$
-
-	private static final String DEFAULT_FEATURE_APPLICATION = "org.eclipse.ui.ide.workbench"; //$NON-NLS-1$
-
-	private static final String LINK_PATH = "path"; //$NON-NLS-1$
-	private static final String LINK_READ = "r"; //$NON-NLS-1$
-	private static final String LINK_READ_WRITE = "rw"; //$NON-NLS-1$
-	private static URL installURL;
-	
-	private PlatformConfiguration(Location platformConfigLocation) throws CoreException, IOException {
-
-		this.externalLinkSites = new HashMap();
-		this.config = null;
-		
-		// initialize configuration
-		initializeCurrent(platformConfigLocation);
-
-		// Detect external links. These are "soft link" to additional sites. The link
-		// files are usually provided by external installation programs. They are located
-		// relative to this configuration URL.
-		// Note: don't do it for self hosting
-		if (!isTransient())
-			configureExternalLinks();
-
-		// Validate sites in the configuration. Causes any sites that do not exist to
-		// be removed from the configuration
-		validateSites();
-
-		// compute differences between configuration and actual content of the sites
-		// (base sites and link sites)
-		// Note: when the config is transient (generated by PDE, etc.) we don't reconcile
-		if (isTransient())
-			return;
-		
-		changeStamp = computeChangeStamp();
-		if (changeStamp > config.getDate().getTime())
-			reconcile();
-	}
-
-	PlatformConfiguration(URL url) throws Exception {
-		this.externalLinkSites = new HashMap();
-		initialize(url);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#createSiteEntry(URL, ISitePolicy)
-	 */
-	public ISiteEntry createSiteEntry(URL url, ISitePolicy policy) {
-		return new SiteEntry(url, policy);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#createSitePolicy(int, String[])
-	 */
-	public ISitePolicy createSitePolicy(int type, String[] list) {
-		return new SitePolicy(type, list);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#createFeatureEntry(String, String, String, boolean, String, URL)
-	 */
-	public IFeatureEntry createFeatureEntry(String id, String version, String pluginVersion, boolean primary, String application, URL[] root) {
-		return new FeatureEntry(id, version, pluginVersion, primary, application, root);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#createFeatureEntry(String, String, String,
-	 * String, boolean, String, URL)
-	 */
-	public IFeatureEntry createFeatureEntry(String id, String version, String pluginIdentifier, String pluginVersion, boolean primary, String application, URL[] root) {
-		return new FeatureEntry(id, version, pluginIdentifier, pluginVersion, primary, application, root);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#configureSite(ISiteEntry)
-	 */
-	public void configureSite(ISiteEntry entry) {
-		configureSite(entry, false);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#configureSite(ISiteEntry, boolean)
-	 */
-	public synchronized void configureSite(ISiteEntry entry, boolean replace) {
-
-		if (entry == null)
-			return;
-	
-		URL url = entry.getURL();
-		if (url == null)
-			return;
-
-		String key = url.toExternalForm();
-		if (config.getSiteEntry(key) != null && !replace)
-			return;
-	
-		if (entry instanceof SiteEntry)
-			config.addSiteEntry(key, (SiteEntry)entry);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#unconfigureSite(ISiteEntry)
-	 */
-	public synchronized void unconfigureSite(ISiteEntry entry) {
-		if (entry == null)
-			return;
-
-		URL url = entry.getURL();
-		if (url == null)
-			return;
-		
-		String key = url.toExternalForm();	
-		if (entry instanceof SiteEntry)
-			config.removeSiteEntry(key);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#getConfiguredSites()
-	 */
-	public ISiteEntry[] getConfiguredSites() {
-		if (config == null)
-			return new ISiteEntry[0];
-		
-		SiteEntry[] sites = config.getSites();
-		ArrayList enabledSites = new ArrayList(sites.length);
-		for (int i=0; i<sites.length; i++) {
-			if (sites[i].isEnabled())
-				enabledSites.add(sites[i]);
-		}
-		return (ISiteEntry[])enabledSites.toArray(new ISiteEntry[enabledSites.size()]);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#findConfiguredSite(URL)
-	 */
-	public ISiteEntry findConfiguredSite(URL url) {
-		return findConfiguredSite(url, true);
-	}
-	
-	/**
-	 * 
-	 * @param url site url
-	 * @param checkPlatformURL if true, check for url format that is platform:/...
-	 * @return
-	 */
-	public SiteEntry findConfiguredSite(URL url, boolean checkPlatformURL) {
-		if (url == null)
-			return null;
-		String key = url.toExternalForm();
-
-		SiteEntry result = config.getSiteEntry(key);	
-		if (result == null) { // retry with decoded URL string
-			try {
-				//PAL foundation
-				//key = URLDecoder.decode(key, "UTF-8"); //$NON-NLS-1$
-				key = UpdateURLDecoder.decode(key, "UTF-8"); //$NON-NLS-1$
-			} catch (UnsupportedEncodingException e) {
-				// ignore
-			}
-			result = config.getSiteEntry(key);
-		}
-			
-		if (result == null && checkPlatformURL) {
-			try {
-				result = findConfiguredSite(Utils.asPlatformURL(url), false);
-			} catch (Exception e) {
-				//ignore
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * @see IPlatformConfiguration#configureFeatureEntry(IFeatureEntry)
-	 */
-	public synchronized void configureFeatureEntry(IFeatureEntry entry) {
-		if (entry == null)
-			return;
-
-		String key = entry.getFeatureIdentifier();
-		if (key == null)
-			return;
-
-		// we should check each site and find where the feature is
-		// located and then configure it
-		if (config == null)
-			config = new Configuration();
-
-		SiteEntry[] sites = config.getSites();
-		for (int i=0; i<sites.length; i++) {
-			// find out what site contains the feature and configure it
-			try {
-				URL url = new URL(sites[i].getURL(), FEATURES + "/" + entry.getFeatureIdentifier()+ "_" + entry.getFeatureVersion() + "/"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				if (new File(url.getFile()).exists())
-					sites[i].addFeatureEntry(entry);
-				else  {
-					url = new URL(sites[i].getURL(), FEATURES + "/" + entry.getFeatureIdentifier() + "/"); //$NON-NLS-1$ //$NON-NLS-2$
-					if (new File(url.getFile()).exists())
-						sites[i].addFeatureEntry(entry);
-				}
-			} catch (MalformedURLException e) {
-			}
-		}
-	}
-
-	/*
-	 * @see IPlatformConfiguration#unconfigureFeatureEntry(IFeatureEntry)
-	 */
-	public synchronized void unconfigureFeatureEntry(IFeatureEntry entry) {
-		if (entry == null)
-			return;
-
-		String key = entry.getFeatureIdentifier();
-		if (key == null)
-			return;
-
-		config.unconfigureFeatureEntry(entry);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#getConfiguredFeatureEntries()
-	 */
-	public IFeatureEntry[] getConfiguredFeatureEntries() {
-		ArrayList configFeatures = new ArrayList();
-		SiteEntry[] sites = config.getSites();
-		for (int i=0; i<sites.length; i++) {
-			FeatureEntry[] features = sites[i].getFeatureEntries();
-			for (int j=0; j<features.length; j++)
-				configFeatures.add(features[j]);
-		}
-		return (IFeatureEntry[])configFeatures.toArray(new FeatureEntry[configFeatures.size()]);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#findConfiguredFeatureEntry(String)
-	 */
-	public IFeatureEntry findConfiguredFeatureEntry(String id) {
-		if (id == null)
-			return null;
-
-		SiteEntry[] sites = config.getSites();
-		for (int i=0; i<sites.length; i++) {
-			FeatureEntry f = sites[i].getFeatureEntry(id);
-			if (f != null)
-				return f;
-		}
-		return null;
-	}
-
-	/*
-	 * @see IPlatformConfiguration#getConfigurationLocation()
-	 */
-	public URL getConfigurationLocation() {
-		return configLocation;
-	}
-
-	/*
-	 * @see IPlatformConfiguration#getChangeStamp()
-	 */
-	public long getChangeStamp() {
-		if (config.getLinkedConfig() == null)
-			return config.getDate().getTime();
-		else
-			return Math.max(config.getDate().getTime(), config.getLinkedConfig().getDate().getTime());
-	}
-
-	/*
-	 * @see IPlatformConfiguration#getFeaturesChangeStamp()
-	 * @deprecated Don't use this method
-	 */
-	public long getFeaturesChangeStamp() {
-		return 0;
-	}
-
-	/*
-	 * @see IPlatformConfiguration#getPluginsChangeStamp()
-	 * @deprecated Don't use this method
-	 */
-	public long getPluginsChangeStamp() {
-		return 0;
-	}
-
-
-	public String getApplicationIdentifier() {
-		// Return the app if defined in system properties
-		String application = System.getProperty(ECLIPSE_APPLICATION);
-		if (application != null)
-			return application;
-
-		// Otherwise, try to get it from the primary feature (aka product)
-		String feature = getPrimaryFeatureIdentifier();
-
-		// lookup application for feature (specified or defaulted)
-		if (feature != null) {
-			IFeatureEntry fe = findConfiguredFeatureEntry(feature);
-			if (fe != null) {
-				if (fe.getFeatureApplication() != null)
-					return fe.getFeatureApplication();
-			}
-		}
-
-		// return hardcoded default if we failed
-		return DEFAULT_FEATURE_APPLICATION;
-	}
-
-	/*
-	 * @see IPlatformConfiguration#getPrimaryFeatureIdentifier()
-	 */
-	public String getPrimaryFeatureIdentifier() {
-		// Return the product if defined in system properties
-		String primaryFeatureId = System.getProperty(ECLIPSE_PRODUCT);
-		if (primaryFeatureId != null) {
-			// check if feature exists
-			IFeatureEntry feature = findConfiguredFeatureEntry(primaryFeatureId);
-			if (feature != null && feature.canBePrimary())
-				return primaryFeatureId;
-		}
-		return null;
-	}
-
-	/*
-	 * @see IPlatformConfiguration#getPluginPath()
-	 */
-	public URL[] getPluginPath() {
-		ArrayList path = new ArrayList();
-		Utils.debug("computed plug-in path:"); //$NON-NLS-1$
-
-		ISiteEntry[] sites = getConfiguredSites();
-		URL pathURL;
-		for (int i = 0; i < sites.length; i++) {
-			String[] plugins = sites[i].getPlugins();
-			for (int j = 0; j < plugins.length; j++) {
-				try {
-					pathURL = new URL(((SiteEntry) sites[i]).getResolvedURL(), plugins[j]);
-					path.add(pathURL);
-					Utils.debug("   " + pathURL.toString()); //$NON-NLS-1$
-				} catch (MalformedURLException e) {
-					// skip entry ...
-					Utils.debug("   bad URL: " + e); //$NON-NLS-1$
-				}
-			}
-		}
-		return (URL[]) path.toArray(new URL[0]);
-	}
-	
-
-	/*
-	 * A variation of the getPluginPath, but it returns the actual plugin entries
-	 */
-	public PluginEntry[] getPlugins() {
-		ArrayList allPlugins = new ArrayList();
-		Utils.debug("computed plug-ins:"); //$NON-NLS-1$
-
-		ISiteEntry[] sites = getConfiguredSites();
-		for (int i = 0; i < sites.length; i++) {
-			if (!(sites[i] instanceof SiteEntry)) {
-				Utils.debug("Site " + sites[i].getURL() + " is not a SiteEntry"); //$NON-NLS-1$ //$NON-NLS-2$
-				continue;
-			}
-			PluginEntry[] plugins = ((SiteEntry)sites[i]).getPluginEntries();
-			for (int j = 0; j < plugins.length; j++) {
-				allPlugins.add(plugins[j]);
-				Utils.debug("   " + plugins[j].getURL()); //$NON-NLS-1$
-			}
-		}
-		return (PluginEntry[]) allPlugins.toArray(new PluginEntry[0]);
-	}
-	
-
-	/*
-	 * @see IPlatformConfiguration#getBootstrapPluginIdentifiers()
-	 */
-	public String[] getBootstrapPluginIdentifiers() {
-		return BOOTSTRAP_PLUGINS;
-	}
-
-	/*
-	 * @see IPlatformConfiguration#setBootstrapPluginLocation(String, URL)
-	 */
-	public void setBootstrapPluginLocation(String id, URL location) {
-	}
-
-	/*
-	 * @see IPlatformConfiguration#isUpdateable()
-	 */
-	public boolean isUpdateable() {
-		return true;
-	}
-
-	/*
-	 * @see IPlatformConfiguration#isTransient()
-	 */
-	public boolean isTransient() {
-		if (config != null)
-			return config.isTransient();
-		else
-			return false;
-	}
-
-	/*
-	 * @see IPlatformConfiguration#isTransient(boolean)
-	 */
-	public void isTransient(boolean value) {
-		if (this != getCurrent() && config != null)
-			config.setTransient(value);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#refresh()
-	 */
-	public synchronized void refresh() {
-		// Reset computed values. Will be lazily refreshed
-		// on next access
-		ISiteEntry[] sites = getConfiguredSites();
-		for (int i = 0; i < sites.length; i++) {
-			// reset site entry
-			 ((SiteEntry) sites[i]).refresh();
-		}
-	}
-
-	/*
-	 * @see IPlatformConfiguration#save()
-	 */
-	public void save() throws IOException {
-		if (isUpdateable())
-			save(configLocation);
-	}
-
-	/*
-	 * @see IPlatformConfiguration#save(URL)
-	 */
-	public synchronized void save(URL url) throws IOException {
-		if (url == null)
-			throw new IOException(Messages.getString("cfig.unableToSave.noURL")); //$NON-NLS-1$
-
-		OutputStream os = null;
-		if (!url.getProtocol().equals("file")) { //$NON-NLS-1$
-			// not a file protocol - attempt to save to the URL
-			URLConnection uc = url.openConnection();
-			uc.setDoOutput(true);
-			os = uc.getOutputStream();
-			try {
-				saveAsXML(os);
-				config.setDirty(false);
-			} catch (CoreException e) {
-				Utils.log(e.getMessage());
-				Utils.log(e.getStatus());
-				throw new IOException(Messages.getString("cfig.unableToSave", url.toExternalForm())); //$NON-NLS-1$
-			} finally {
-				os.close();
-			}
-		} else {
-			// file protocol - do safe i/o
-			File cfigFile = new File(url.getFile().replace('/', File.separatorChar));
-			if (!cfigFile.getName().equals(PLATFORM_XML)) {
-				if (cfigFile.exists() && cfigFile.isFile()) {
-					Utils.log(Messages.getString("PlatformConfiguration.expectingPlatformXMLorDirectory") + cfigFile.getName()); //$NON-NLS-1$
-					cfigFile = cfigFile.getParentFile();
-				}
-				cfigFile = new File(cfigFile, CONFIG_NAME);
-			}
-			File workingDir = cfigFile.getParentFile();
-			if (workingDir != null && !workingDir.exists())
-				workingDir.mkdirs();
-
-			// Do safe i/o: 
-			//    - backup current config, by moving it to the history folder
-			//    - write new config to platform.xml.tmp file
-			//    - rename the temp file to platform.xml
-			File cfigFileOriginal = new File(cfigFile.getAbsolutePath());
-			File cfigTmp = new File(cfigFile.getAbsolutePath() + CONFIG_FILE_TEMP_SUFFIX);
-			
-			// Backup old file
-			if (cfigFile.exists()){
-				File backupDir = new File(workingDir, CONFIG_HISTORY);
-				if (!backupDir.exists())
-					backupDir.mkdir();
-				long timestamp = cfigFile.lastModified();
-				File preservedFile = new File(backupDir, String.valueOf(timestamp)+".xml"); //$NON-NLS-1$
-				// If the target file exists, increment the timestamp. Try at most 100 times.
-				long increment = 1;
-				while (preservedFile.exists() && increment < 100){
-					preservedFile = new File(backupDir, String.valueOf(timestamp+increment++)+".xml"); //$NON-NLS-1$
-				}
-				if (!preservedFile.exists()) {
-					// try renaming current config to backup copy
-					if (!cfigFile.renameTo(preservedFile))
-						Utils.log(Messages.getString("PlatformConfiguration.cannotBackupConfig")); //$NON-NLS-1$
-				}
-			}
-
-			// first save the file as temp
-			os = new FileOutputStream(cfigTmp);
-			
-			try {
-				saveAsXML(os);
-				// Try flushing any internal buffers, and synchronize with the disk
-				try {
-					os.flush();
-					((FileOutputStream)os).getFD().sync();
-				} catch (SyncFailedException e2) {
-					Utils.log(e2.getMessage());
-				} catch (IOException e2) {
-					Utils.log(e2.getMessage());
-				}
-				try {
-					os.close();
-					os = null;
-				} catch (IOException e1) {
-					Utils.log(Messages.getString("PlatformConfiguration.cannotCloseStream") + cfigTmp); //$NON-NLS-1$
-					Utils.log(e1.getMessage());
-				}
-				// set file time stamp to match that of the config element
-				cfigTmp.setLastModified(config.getDate().getTime());
-				// set this on config, in case the value was rounded off
-				config.setLastModified(cfigTmp.lastModified());
-				// make the change stamp to be the same as the config file
-				changeStamp = config.getDate().getTime();
-				config.setDirty(false);
-			} catch (CoreException e) {
-				throw new IOException(Messages.getString("cfig.unableToSave", cfigTmp.getAbsolutePath())); //$NON-NLS-1$
-			} finally {
-				if (os != null)
-					try {
-						os.close();
-					} catch (IOException e1) {
-						Utils.log(Messages.getString("PlatformConfiguration.cannotCloseTempFile") + cfigTmp); //$NON-NLS-1$
-					}
-			}
-
-			// at this point we have old config (if existed) as "bak" and the
-			// new config as "tmp".
-			boolean ok = cfigTmp.renameTo(cfigFileOriginal);
-			if (!ok) {
-				// this codepath represents a tiny failure window. The load processing
-				// on startup will detect missing config and will attempt to start
-				// with "tmp" (latest), then "bak" (the previous). We can also end up
-				// here if we failed to rename the current config to "bak". In that
-				// case we will restart with the previous state.
-				Utils.log(Messages.getString("PlatformConfiguration.cannotRenameTempFile")); //$NON-NLS-1$
-				
-				throw new IOException(Messages.getString("cfig.unableToSave", cfigTmp.getAbsolutePath())); //$NON-NLS-1$
-			}
-		}
-	}
-
-
-	public static PlatformConfiguration getCurrent() {
-		return currentPlatformConfiguration;
-	}
-
-	/**
-	 * Starts a platform installed at specified installURL using configuration located at platformConfigLocation.
-	 */
-	public static synchronized void startup(URL installURL, Location platformConfigLocation) throws Exception {
-		PlatformConfiguration.installURL = installURL;
-	
-		// create current configuration
-		if (currentPlatformConfiguration == null) {
-			currentPlatformConfiguration = new PlatformConfiguration(platformConfigLocation);
-			if (currentPlatformConfiguration.config == null)
-				throw new Exception(Messages.getString("PlatformConfiguration.cannotLoadConfig") + platformConfigLocation.getURL()); //$NON-NLS-1$
-			if (currentPlatformConfiguration.config.isDirty())
-				// If this is a transient config (generated by PDE),do nothing
-				// otherwise, save the configuration with proper date
-				if (!currentPlatformConfiguration.isTransient())
-					currentPlatformConfiguration.save();
-		}
-	}
-
-	public static synchronized void shutdown() throws IOException {
-
-		// save platform configuration
-		PlatformConfiguration config = getCurrent();
-		if (config != null) {
-			// only save if there are changes in the config
-			if (config.config.isDirty() && !config.isTransient()) {
-				try {
-					config.save();
-				} catch (IOException e) {
-					Utils.debug("Unable to save configuration " + e.toString()); //$NON-NLS-1$
-					// will recover on next startup
-				}
-			}
-		}
-	}
-
-
-	private synchronized void initializeCurrent(Location platformConfigLocation) throws IOException {
-
-		// Configuration URL was is specified by the OSGi layer. 
-		// Default behavior is to look
-		// for configuration in the specified meta area. If not found, look
-		// for pre-initialized configuration in the installation location.
-		// If it is found it is used as the initial configuration. Otherwise
-		// a new configuration is created. In either case the resulting
-		// configuration is written into the specified configuration area.
-
-		URL configFileURL = new URL(platformConfigLocation.getURL(), CONFIG_NAME);
-		try {	
-			// check concurrent use lock
-			getConfigurationLock(platformConfigLocation.getURL());
-
-			// try loading the configuration
-			try {
-				config = loadConfig(configFileURL);
-				Utils.debug("Using configuration " + configFileURL.toString()); //$NON-NLS-1$
-			} catch (Exception e) {
-				// failed to load, see if we can find pre-initialized configuration.
-				try {
-					Location parentLocation = platformConfigLocation.getParentLocation();
-					if (parentLocation == null)
-						throw new IOException(); // no platform.xml found, need to create default site
-					
-					URL sharedConfigFileURL = new URL(parentLocation.getURL(), CONFIG_NAME);
-					config = loadConfig(sharedConfigFileURL);
-					
-					// pre-initialized config loaded OK ... copy any remaining update metadata
-					// Only copy if the default config location is not the install location
-					if (!sharedConfigFileURL.equals(configFileURL)) {
-						// need to link config info instead of using a copy
-						linkInitializedState(config, parentLocation, platformConfigLocation);
-						Utils.debug("Configuration initialized from    " + sharedConfigFileURL.toString()); //$NON-NLS-1$
-					}
-					return;
-				} catch (Exception ioe) {
-					Utils.debug("Creating default configuration from " + configFileURL.toExternalForm()); //$NON-NLS-1$
-					createDefaultConfiguration(configFileURL);
-				}
-			}
-		} finally {
-			configLocation = configFileURL;
-			if (config.getURL() == null)
-				config.setURL(configFileURL);
-			verifyPath(configLocation);
-			Utils.debug("Creating configuration " + configFileURL.toString()); //$NON-NLS-1$
-			// releaes concurrent use lock
-			clearConfigurationLock();
-		}
-	}
-
-	
-	private synchronized void initialize(URL url) throws Exception {
-		if (url != null) {
-			config = loadConfig(url);	
-			Utils.debug("Using configuration " + url.toString()); //$NON-NLS-1$
-		}
-		if (config == null) {
-			config = new Configuration();		
-			Utils.debug("Creating empty configuration object"); //$NON-NLS-1$
-		}
-		config.setURL(url);
-		configLocation = url;
-	}
-
-	private void createDefaultConfiguration(URL url)throws IOException{
-		// we are creating new configuration
-		config = new Configuration();
-		config.setURL(url);
-		SiteEntry defaultSite = (SiteEntry)getRootSite();
-		configureSite(defaultSite);
-		try {
-			// parse the site directory to discover features
-			defaultSite.loadFromDisk(0);
-		} catch (CoreException e1) {
-			Utils.log(Messages.getString("PlatformConfiguration.cannotLoadDefaultSite") + defaultSite.getResolvedURL()); //$NON-NLS-1$
-			return;
-		}
-	}
-	private ISiteEntry getRootSite() {
-		// create default site entry for the root
-		ISitePolicy defaultPolicy = createSitePolicy(DEFAULT_POLICY_TYPE, DEFAULT_POLICY_LIST);
-		URL siteURL = null;
-		try {
-			siteURL = new URL("platform:/base/"); //$NON-NLS-1$  // try using platform-relative URL
-		} catch (MalformedURLException e) {
-			siteURL = getInstallURL(); // ensure we come up ... use absolute file URL
-		}
-		ISiteEntry defaultSite = createSiteEntry(siteURL, defaultPolicy);
-		return defaultSite;
-	}
-	
-	/**
-	 * Gets the configuration lock
-	 * @param url configuration directory
-	 */
-	private void getConfigurationLock(URL url) {
-		if (!url.getProtocol().equals("file")) //$NON-NLS-1$
-			return;
-
-		File lockFile = new File(url.getFile(), ConfigurationActivator.NAME_SPACE+ File.separator+CONFIG_FILE_LOCK_SUFFIX);
-		verifyPath(url);
-		// PAL nio optional
-		lock = createLocker(lockFile); 
-		try {
-			lock.lock();
-		} catch (IOException ioe) {
-			lock = null;
-		}	
-	}
-	
-	private void clearConfigurationLock() {
-		// PAL nio optional
-		if (lock != null) {
-			lock.release();
-		}
-	}
-	
-	/**
-	 * Create a locker using java new I/O or regular I/O
-	 * depending whether we run in J2SE or cdcFoundation
-	 * PAL nio optional
-	 */
-	private static Locker createLocker(File lock) {
-		if (!checkNio) {
-			useNio = true;
-			try {
-				 Class.forName("java.nio.channels.FileLock"); //$NON-NLS-1$
-			} catch (ClassNotFoundException e) {
-				useNio = false;
-			}
-		}
-		if (useNio)
-			return new Locker_JavaNio(lock);
-		else
-			return new Locker_JavaIo(lock);
-	}
-	
-	private long computeChangeStamp() {
-		featuresChangeStamp = computeFeaturesChangeStamp();
-		pluginsChangeStamp = computePluginsChangeStamp();
-		changeStamp = Math.max(featuresChangeStamp, pluginsChangeStamp);
-		// round off to seconds
-		changeStamp = (changeStamp/1000)*1000;
-		return changeStamp;
-	}
-
-	private long computeFeaturesChangeStamp() {
-		if (featuresChangeStampIsValid)
-			return featuresChangeStamp;
-
-		long result = 0;
-		ISiteEntry[] sites = config.getSites();
-		for (int i = 0; i < sites.length; i++) {
-			result = Math.max(result, sites[i].getFeaturesChangeStamp());
-		}
-		featuresChangeStamp = result;
-		featuresChangeStampIsValid = true;
-		return featuresChangeStamp;
-	}
-
-	private long computePluginsChangeStamp() {
-		if (pluginsChangeStampIsValid)
-			return pluginsChangeStamp;
-
-		long result = 0;
-		ISiteEntry[] sites = config.getSites();
-		for (int i = 0; i < sites.length; i++) {
-			result = Math.max(result, sites[i].getPluginsChangeStamp());
-		}
-		pluginsChangeStamp = result;
-		pluginsChangeStampIsValid = true;
-		return pluginsChangeStamp;
-	}
-
-	private void configureExternalLinks() {
-		URL linkURL = getInstallURL();
-		if (!supportsDetection(linkURL))
-			return;
-
-		try {
-			linkURL = new URL(linkURL, LINKS + "/"); //$NON-NLS-1$
-		} catch (MalformedURLException e) {
-			// skip bad links ...
-			Utils.debug("Unable to obtain link URL"); //$NON-NLS-1$
-			return;
-		}
-
-		File linkDir = new File(linkURL.getFile());
-		File[] links = linkDir.listFiles();
-		if (links == null || links.length == 0) {
-			Utils.debug("No links detected in " + linkURL.toExternalForm()); //$NON-NLS-1$
-			return;
-		}
-
-		for (int i = 0; i < links.length; i++) {
-			if (links[i].isDirectory())
-				continue;
-			Utils.debug("Link file " + links[i].getAbsolutePath()); //$NON-NLS-1$
-			Properties props = new Properties();
-			FileInputStream is = null;
-			try {
-				is = new FileInputStream(links[i]);
-				props.load(is);
-				configureExternalLinkSite(links[i], props);
-			} catch (IOException e) {
-				// skip bad links ...
-				Utils.debug("   unable to load link file " + e); //$NON-NLS-1$
-				continue;
-			} finally {
-				if (is != null) {
-					try {
-						is.close();
-					} catch (IOException e) {
-						// ignore ...
-					}
-				}
-			}
-		}
-	}
-
-	private void configureExternalLinkSite(File linkFile, Properties props) {
-		String path = props.getProperty(LINK_PATH);
-		if (path == null) {
-			Utils.debug("   no path definition"); //$NON-NLS-1$
-			return;
-		}
-
-		String link;
-		boolean updateable = true;
-		URL siteURL;
-
-		// parse out link information
-		if (path.startsWith(LINK_READ + " ")) { //$NON-NLS-1$
-			updateable = false;
-			link = path.substring(2).trim();
-		} else if (path.startsWith(LINK_READ_WRITE + " ")) { //$NON-NLS-1$
-			link = path.substring(3).trim();
-		} else {
-			link = path.trim();
-		}
-
-		// 	make sure we have a valid link specification
-		try {
-			File siteFile = new File(link);
-			siteFile = new File(siteFile, ECLIPSE);
-			siteURL = siteFile.toURL();
-			if (findConfiguredSite(siteURL, true) != null)
-				// linked site is already known
-				return;
-		} catch (MalformedURLException e) {
-			// ignore bad links ...
-			Utils.debug("  bad URL " + e); //$NON-NLS-1$
-			return;
-		}
-		
-		// process the link
-		SiteEntry linkSite = (SiteEntry) externalLinkSites.get(siteURL);
-		if (linkSite == null) {
-			// this is a link to a new target so create site for it
-			ISitePolicy linkSitePolicy = createSitePolicy(DEFAULT_POLICY_TYPE, DEFAULT_POLICY_LIST);
-			linkSite = (SiteEntry) createSiteEntry(siteURL, linkSitePolicy);
-		}
-		// update site entry if needed
-		linkSite.setUpdateable(updateable);
-		linkSite.setLinkFileName(linkFile.getAbsolutePath());
-
-		// configure the new site
-		// NOTE: duplicates are not replaced (first one in wins)
-		configureSite(linkSite);
-		// there are changes in the config
-		config.setDirty(true);
-		Utils.debug("   " + (updateable ? "R/W -> " : "R/O -> ") + siteURL.toString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	private void validateSites() {
-
-		// check to see if all sites are valid. Remove any sites that do not exist.
-		SiteEntry[] list = config.getSites();
-		for (int i = 0; i < list.length; i++) {
-			URL siteURL = list[i].getResolvedURL();
-			if (!supportsDetection(siteURL))
-				continue;
-
-			File siteRoot = new File(siteURL.getFile().replace('/', File.separatorChar));
-			if (!siteRoot.exists()) {
-				unconfigureSite(list[i]);
-				Utils.debug("Site " + siteURL + " does not exist ... removing from configuration"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			
-			// If multiple paths are defined in the same link file
-			// or if the path changes, the old site will still be kept.
-			// A better algorithm could be implemented by keeping track 
-			// of the previous content of the link file.
-			// TODO do the above
-			String linkName = list[i].getLinkFileName();
-			if (linkName != null) {
-				File linkFile = new File(linkName);
-				if (!linkFile.exists())  {
-					unconfigureSite(list[i]);
-					config.setDirty(true);
-					Utils.debug("Site " + siteURL + " is no longer linked ... removing from configuration"); //$NON-NLS-1$ //$NON-NLS-2$	
-				}
-			}
-		}
-	}
-	
-	private void linkInitializedState(Configuration sharedConfig, Location sharedConfigLocation, Location newConfigLocation) {
-		try {
-			URL newConfigIniURL = new URL(newConfigLocation.getURL(), CONFIG_INI);
-			if (!newConfigIniURL.getProtocol().equals("file")) //$NON-NLS-1$
-				return; // need to be able to do write
-
-			// modify config.ini and platform.xml to only link original files
-			File configIni = new File(newConfigIniURL.getFile());
-			Properties props = new Properties();
-			props.put("osgi.sharedConfiguration.area", sharedConfigLocation.getURL().toExternalForm()); //$NON-NLS-1$
-			props.store(new FileOutputStream(configIni), "Linked configuration"); //$NON-NLS-1$
-			
-			config = new Configuration(new Date());
-			config.setURL(new URL(newConfigLocation.getURL(), CONFIG_NAME));
-			config.setLinkedConfig(sharedConfig);
-			config.setDirty(true);
-		} catch (IOException e) {
-			// this is an optimistic copy. If we fail, the state will be reconciled
-			// when the update manager is triggered.
-			System.out.println(e);
-		}
-	}
-	
-	private Configuration loadConfig(URL url) throws Exception {
-		if (url == null)
-			throw new IOException(Messages.getString("cfig.unableToLoad.noURL")); //$NON-NLS-1$
-
-		// try to load saved configuration file (watch for failed prior save())
-		ConfigurationParser parser = null;
-		try {
-			parser = new ConfigurationParser();
-		} catch (InvocationTargetException e) {
-			throw (Exception)e.getTargetException();
-		}
-		
-		config = null;
-		Exception originalException = null;
-		try {
-			config = parser.parse(url);
-			if (config == null)
-				throw new Exception(Messages.getString("PlatformConfiguration.cannotFindConfigFile")); //$NON-NLS-1$
-		} catch (Exception e1) {
-			// check for save failures, so open temp and backup configurations
-			originalException = e1;
-			try {
-				URL tempURL = new URL(url.toExternalForm()+CONFIG_FILE_TEMP_SUFFIX);
-				config = parser.parse(tempURL); 
-				if (config == null)
-					throw new Exception();
-				else
-					config.setDirty(true); // force saving to platform.xml
-			} catch (Exception e2) {
-				try {
-					// check the backup
-					if ("file".equals(url.getProtocol())) { //$NON-NLS-1$
-						File cfigFile = new File(url.getFile().replace('/', File.separatorChar));
-						File workingDir = cfigFile.getParentFile();
-						if (workingDir != null && workingDir.exists()) {
-							File[] backups = workingDir.listFiles(new FileFilter(){
-								public boolean accept(File pathname) {
-									return pathname.isFile() && pathname.getName().endsWith(".xml"); //$NON-NLS-1$
-								}});
-							if (backups != null && backups.length > 0) {
-								URL backupUrl = backups[backups.length-1].toURL();
-								config = parser.parse(backupUrl);
-							}
-						}
-					}
-					if (config == null)
-						throw originalException; // we tried, but no config here ...
-					else
-						config.setDirty(true); // force saving to platform.xml
-				} catch (IOException e3) {
-					throw originalException; // we tried, but no config here ...
-				}
-			}
-		}
-
-		return config;
-	}
-
-	public static boolean supportsDetection(URL url) {
-		String protocol = url.getProtocol();
-		if (protocol.equals("file")) //$NON-NLS-1$
-			return true;
-		else if (protocol.equals("platform")) {
-			URL resolved = null;
-			try {
-				resolved = resolvePlatformURL(url); // 19536
-			} catch (IOException e) {
-				return false; // we tried but failed to resolve the platform URL
-			}
-			return resolved.getProtocol().equals("file"); //$NON-NLS-1$
-		} else
-			return false;
-	}
-
-	private static void verifyPath(URL url) {
-		String protocol = url.getProtocol();
-		String path = null;
-		if (protocol.equals("file")) //$NON-NLS-1$
-			path = url.getFile();
-		else if (protocol.equals("platform")) { // $NON-NLS-1$
-			URL resolved = null;
-			try {
-				resolved = resolvePlatformURL(url); // 19536
-				if (resolved.getProtocol().equals("file")) //$NON-NLS-1$
-					path = resolved.getFile();
-			} catch (IOException e) {
-				// continue ...
-			}
-		}
-
-		if (path != null) {
-			File dir = new File(path).getParentFile();
-			if (dir != null)
-				dir.mkdirs();
-		}
-	}
-
-	public static URL resolvePlatformURL(URL url) throws IOException {
-		// 19536
-		if (url.getProtocol().equals("platform")) { // $NON-NLS-1$;
-			url = Platform.asLocalURL(url);
-			// TODO URL resolution by platform returns url file:d:/path as opposed to file:/d:/path
-			File f = new File(url.getFile());
-			url = f.toURL();
-		}
-		return url;
-	}
-	
-	public static URL getInstallURL() {
-		return installURL;
-	}
-	
-	// Patch from Phil to support cdc/foundation: will use the method below instead of this one.
-//	private void saveAsXML(OutputStream stream) throws CoreException {	
-//		StreamResult result = null;
-//		try {
-//			DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder();
-//			Document doc = docBuilder.newDocument();
-//
-//			if (config == null)
-//				throw Utils.newCoreException(Messages.getString("PlatformConfiguration.cannotSaveNonExistingConfig"),null); //$NON-NLS-1$
-//			
-//			config.setDate(new Date());
-//			doc.appendChild(doc.createComment("Created on " + config.getDate().toString())); //$NON-NLS-1$
-//			Element configElement = config.toXML(doc);
-//			doc.appendChild(configElement);
-//
-//			// Write out to a file
-//			
-//			Transformer transformer=transformerFactory.newTransformer();
-//			transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
-//			transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); //$NON-NLS-1$
-//			transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
-//			DOMSource source = new DOMSource(doc);
-//			result = new StreamResult(stream);
-//
-//			transformer.transform(source,result);
-//			//will close the stream in the caller
-//			//stream.close();
-//		} catch (Exception e) {
-//			throw Utils.newCoreException("", e); //$NON-NLS-1$
-//		} finally {
-//			result.setOutputStream(null);
-//			result = null;
-//		}
-//	}
-
-	private void saveAsXML(OutputStream stream) throws CoreException,IOException {			
-		BufferedWriter xmlWriter = new BufferedWriter(new OutputStreamWriter(stream,XML_ENCODING));
-		try {
-			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-			factory.setExpandEntityReferences(false);
-			factory.setValidating(false);
-			factory.setIgnoringComments(true);
-			DocumentBuilder docBuilder = factory.newDocumentBuilder();
-			Document doc = docBuilder.newDocument();
-			
-			if (config == null)
-				throw Utils.newCoreException(Messages.getString("PlatformConfiguration.cannotSaveNonExistingConfig"),null); //$NON-NLS-1$
-			
-			config.setDate(new Date());
-			Element configElement = config.toXML(doc);
-			doc.appendChild(configElement);
-			
-			// This is not DBCS friendly... PAL
-			//XMLPrintHandler.printComment(xmlWriter,"Created on " + config.getDate().toString());
-			XMLPrintHandler.printNode(xmlWriter,doc,XML_ENCODING);
-			
-		} catch (Exception e) {
-			throw Utils.newCoreException("", e); //$NON-NLS-1$
-		} finally {
-			xmlWriter.flush();
-			// will close the stream in the caller	
-			//xmlWriter.close();
-		}
-	} 
-	
-	private void reconcile() throws CoreException {
-		long lastChange = config.getDate().getTime();
-		SiteEntry[] sites = config.getSites();
-		for (int s=0; s<sites.length; s++) {
-			long siteTimestamp = sites[s].getChangeStamp();
-			if (siteTimestamp > lastChange)
-				sites[s].loadFromDisk(lastChange);
-		}
-		config.setDirty(true);
-	}
-	
-	public Configuration getConfiguration() {
-		return config;
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfigurationFactory.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfigurationFactory.java
deleted file mode 100644
index 80c4457..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfigurationFactory.java
+++ /dev/null
@@ -1,34 +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 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.update.internal.configurator;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.update.configurator.*;
-
-
-
-public class PlatformConfigurationFactory implements IPlatformConfigurationFactory {
-	public IPlatformConfiguration getCurrentPlatformConfiguration() {
-		return PlatformConfiguration.getCurrent();
-	}
-	public IPlatformConfiguration getPlatformConfiguration(URL url) throws IOException {
-		try {
-			return new PlatformConfiguration(url);
-		} catch (Exception e) {
-			if(e instanceof IOException)
-				throw (IOException)e;
-			else
-				throw new IOException(e.getMessage());
-		}
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginEntry.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginEntry.java
deleted file mode 100644
index c2b46cd..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginEntry.java
+++ /dev/null
@@ -1,164 +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 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.update.internal.configurator;
-
-
-/**
- */
-public class PluginEntry {
-
-	private String pluginId;
-	private String pluginVersion;
-	private boolean isFragment = false;
-	private VersionedIdentifier versionId;
-	private String url;
-	
-	public PluginEntry() {
-		super();
-	}
-
-	/**
-	 * @return url relative to the site location: plugins/org.eclipse.foo/plugin.xml
-	 * Note: to do: we should probably only use plugins/org.eclipse.foo/ in the future
-	 */
-	public String getURL() {
-		return url;
-	}
-	
-	/**
-	 * url is relative to the site
-	 */
-	public void setURL(String url) {
-		this.url = url;
-	}
-
-	/**
-	 * Returns the plug-in identifier for this entry.
-	 * 
-	 * @return the plug-in identifier, or <code>null</code>
-	 */
-	public String getPluginIdentifier() {
-		return pluginId;
-	}
-
-	/**
-	 * Returns the plug-in version for this entry.
-	 * 
-	 * @return the plug-in version, or <code>null</code>
-	 */
-	public String getPluginVersion() {
-		return pluginVersion;
-	}
-
-	/**
-	 * Indicates whether the entry describes a full plug-in, or 
-	 * a plug-in fragment.
-	 * 
-	 * @return <code>true</code> if the entry is a plug-in fragment, 
-	 * <code>false</code> if the entry is a plug-in
-	 */
-	public boolean isFragment() {
-		return isFragment;
-	}
-
-	/**
-	 * Sets the entry plug-in identifier.
-	 * Throws a runtime exception if this object is marked read-only.
-	 *
-	 * @param pluginId the entry identifier.
-	 */
-	void setPluginIdentifier(String pluginId) {
-		this.pluginId = pluginId;
-	}
-
-	/**
-	 * Sets the entry plug-in version.
-	 * Throws a runtime exception if this object is marked read-only.
-	 *
-	 * @param pluginVersion the entry version.
-	 */
-	void setPluginVersion(String pluginVersion) {
-		this.pluginVersion = pluginVersion;
-	}
-
-	/**
-	 * Indicates whether this entry represents a fragment or plug-in.
-	 * Throws a runtime exception if this object is marked read-only.
-	 *
-	 * @param isFragment fragment setting
-	 */
-	public void isFragment(boolean isFragment) {
-		this.isFragment = isFragment;
-	}
-
-	/**
-	 * @see Object#toString()
-	 */
-	public String toString() {
-		String msg = (getPluginIdentifier()!=null)?getPluginIdentifier().toString():""; //$NON-NLS-1$
-		msg += getPluginVersion()!=null?" "+getPluginVersion().toString():""; //$NON-NLS-1$ //$NON-NLS-2$
-		msg += isFragment()?" fragment":" plugin"; //$NON-NLS-1$ //$NON-NLS-2$
-		return msg;
-	}
-
-
-	/**
-	 * Returns the identifier of this plugin entry
-	 */
-	public VersionedIdentifier getVersionedIdentifier() {
-		if (versionId != null)
-			return versionId;
-
-		String id = getPluginIdentifier();
-		String ver = getPluginVersion();
-		if (id != null && ver != null) {
-			try {
-				versionId = new VersionedIdentifier(id, ver);
-				return versionId;
-			} catch (Exception e) {
-				Utils.log(Messages.getString("PluginEntry.versionError", id, ver)); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-
-		versionId = new VersionedIdentifier("",null); //$NON-NLS-1$
-		return versionId;
-	}
-
-	/**
-	 * Sets the identifier of this plugin entry. 
-	 * 
-	 */
-	void setVersionedIdentifier(VersionedIdentifier identifier) {
-		setPluginIdentifier(identifier.getIdentifier());
-		setPluginVersion(identifier.getVersion().toString());
-	}	
-
-	/**
-	 * Compares two plugin entries for equality
-	 * 
-	 * @param object plugin entry object to compare with
-	 * @return <code>true</code> if the two entries are equal, 
-	 * <code>false</code> otherwise
-	 */
-	public boolean equals(Object object) {
-		if (!(object instanceof PluginEntry))
-			return false;
-		PluginEntry e = (PluginEntry) object;
-		return getVersionedIdentifier().equals(e.getVersionedIdentifier());
-	}
-	
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return getVersionedIdentifier().hashCode();
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginParser.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginParser.java
deleted file mode 100644
index 3c5a1dc..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginParser.java
+++ /dev/null
@@ -1,128 +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 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.update.internal.configurator;
-
-
-import java.io.*;
-
-import javax.xml.parsers.*;
-
-import org.xml.sax.*;
-import org.xml.sax.helpers.*;
-
-/**
- * Parse default feature.xml
- */
-
-public class PluginParser extends DefaultHandler implements IConfigurationConstants {
-	private final static SAXParserFactory parserFactory =
-		SAXParserFactory.newInstance();
-	private SAXParser parser;
-	private PluginEntry pluginEntry;
-    private String location;
-
-	private class ParseCompleteException extends SAXException {
-		
-        private static final long serialVersionUID = 1L;
-
-        public ParseCompleteException(String arg0) {
-			super(arg0);
-		}
-	}
-
-	/**
-	 * Constructor for DefaultFeatureParser
-	 */
-	public PluginParser() {
-		super();
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			System.out.println(e);
-		} catch (SAXException e) {
-			System.out.println(e);
-		}
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public synchronized PluginEntry parse(File pluginFile) throws SAXException, IOException {
-		FileInputStream in = null;;
-		try{
-			in = new FileInputStream(pluginFile);
-			return parse(in, PLUGINS + "/" + pluginFile.getParentFile().getName() + "/"); //$NON-NLS-1$ //$NON-NLS-2$
-		}finally{
-			if (in != null){
-				try{
-					in.close();
-				}catch(IOException e){
-				}
-			}
-		}
-	}
-	/**
-	 * @since 3.0
-	 */
-	public synchronized PluginEntry parse(InputStream in, String bundleUrl) throws SAXException, IOException {
-		try {
-            location = bundleUrl;
-			pluginEntry = new PluginEntry();
-			pluginEntry.setURL(bundleUrl);
-			parser.parse(new InputSource(in), this);
-		} catch (ParseCompleteException e) {
-			// expected, we stopped the parsing when we have the information we need
-			/// no need to pursue the parsing
-		}
-		return pluginEntry;
-	}
-
-	/**
-	 * @see DefaultHandler#startElement(String, String, String, Attributes)
-	 */
-	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-
-		String tag = localName.trim();
-
-		if (tag.equalsIgnoreCase(CFG_PLUGIN)) {
-			pluginEntry.isFragment(false);			
-			processPlugin(attributes);
-			return;
-		}
-
-		if (tag.equalsIgnoreCase(CFG_FRAGMENT)) {
-			pluginEntry.isFragment(true);			
-			processPlugin(attributes);
-			return;
-		}
-	}
-
-	/** 
-	 * process plugin entry info
-	 */
-	private void processPlugin(Attributes attributes) throws ParseCompleteException {
-		String id = attributes.getValue("id"); //$NON-NLS-1$
-		String version = attributes.getValue("version"); //$NON-NLS-1$
-		if (id == null || id.trim().length() == 0) {
-			id = "_no_id_"; //$NON-NLS-1$
-            Utils.log(Messages.getString("PluginParser.plugin_no_id", location));
-        }
-        if (version == null || version.trim().length() == 0) {
-            version = "0.0.0"; //$NON-NLS-1$
-            Utils.log(Messages.getString("PluginParser.plugin_no_version", location));
-        }
-		pluginEntry.setVersionedIdentifier(new VersionedIdentifier(id, version));
-		
-		// stop parsing now
-		throw new ParseCompleteException(""); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ProductProvider.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ProductProvider.java
deleted file mode 100644
index 6c7f199..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ProductProvider.java
+++ /dev/null
@@ -1,46 +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 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.update.internal.configurator;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configurator.*;
-
-/**
- * Maps primary features to IProduct
- */
-public class ProductProvider implements IProductProvider{
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IProductProvider#getProducts()
-	 */
-	public IProduct[] getProducts() {
-		IPlatformConfiguration configuration = ConfiguratorUtils.getCurrentPlatformConfiguration();
-		if (configuration == null)
-			return new IProduct[0];
-		else {
-			IPlatformConfiguration.IFeatureEntry[] features = configuration.getConfiguredFeatureEntries();
-			ArrayList primaryFeatures = new ArrayList();
-			for (int i=0; i<features.length; i++)
-				if (features[i].canBePrimary())
-					primaryFeatures.add(features[i]);
-			// TODO handle unmanaged plugins later
-			return (IProduct[])primaryFeatures.toArray(new IProduct[primaryFeatures.size()]);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IProductProvider#getName()
-	 */
-	public String getName() {
-		return Messages.getString("ProductProvider"); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SiteEntry.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SiteEntry.java
deleted file mode 100644
index 7aa8599..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SiteEntry.java
+++ /dev/null
@@ -1,761 +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 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.update.internal.configurator;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.zip.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.service.environment.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.configurator.IPlatformConfiguration.*;
-import org.w3c.dom.*;
-import org.xml.sax.*;
-
-
-public class SiteEntry implements IPlatformConfiguration.ISiteEntry, IConfigurationConstants{	
-	private static final String MAC_OS_MARKER = ".DS_Store";
-	
-	private URL url; // this is the external URL for the site
-	private URL resolvedURL; // this is the resolved URL used internally
-	private ISitePolicy policy;
-	private boolean updateable = true;
-	private Map featureEntries;
-	private ArrayList pluginEntries;
-	private long changeStamp;
-	private long featuresChangeStamp;
-	private long pluginsChangeStamp;
-	private String linkFileName;
-	private boolean enabled = true;
-	private Configuration config;
-	
-	private static FeatureParser featureParser = new FeatureParser();
-	private static PluginParser pluginParser = new PluginParser();
-	private static boolean isMacOS = Platform.getOS().equals(Constants.OS_MACOSX);
-
-	public SiteEntry(URL url) {
-		this(url,null);
-	}
-	
-	public SiteEntry(URL url, ISitePolicy policy) {
-		if (url == null)
-			try {
-				url = new URL("platform:/base/"); //$NON-NLS-1$ try using platform-relative URL
-			} catch (MalformedURLException e) {
-				url = PlatformConfiguration.getInstallURL(); // ensure we come up ... use absolute file URL
-			}
-			
-		if (policy == null)
-			policy = new SitePolicy(DEFAULT_POLICY_TYPE, DEFAULT_POLICY_LIST);
-
-		if (url.getProtocol().equals("file")) { //$NON-NLS-1$
-			try {
-				// TODO remove this when platform fixes local file url's
-				this.url = new File(url.getFile()).toURL(); 
-			} catch (MalformedURLException e1) {
-				this.url = url;
-			}
-		} else
-			this.url = url;
-		
-		this.policy = policy;
-		this.resolvedURL = this.url;
-		if (url.getProtocol().equals("platform")) { // $NON-NLS-1$
-			try {
-				resolvedURL = PlatformConfiguration.resolvePlatformURL(url); // 19536
-			} catch (IOException e) {
-				// will use the baseline URL ...
-			}
-		}
-	}
-
-	public void setConfig(Configuration config) {
-		this.config = config;
-	}
-	
-	public Configuration getConfig() {
-		return config;
-	}
-	
-	/*
-	 * @see ISiteEntry#getURL()
-	 */
-	public URL getURL() {
-		return url;
-	}
-
-	/*
-	* @see ISiteEntry#getSitePolicy()
-	*/
-	public ISitePolicy getSitePolicy() {
-		return policy;
-	}
-
-	/*
-	 * @see ISiteEntry#setSitePolicy(ISitePolicy)
-	 */
-	public synchronized void setSitePolicy(ISitePolicy policy) {
-		if (policy == null)
-			throw new IllegalArgumentException();
-		this.policy = policy;
-	}
-
-	/*
-	 * @see ISiteEntry#getFeatures()
-	 */
-	public String[] getFeatures() {
-		return getDetectedFeatures();
-	}
-
-	/*
-	 * @see ISiteEntry#getPlugins()
-	 */
-	public String[] getPlugins() {
-
-		ISitePolicy policy = getSitePolicy();
-
-		if (policy.getType() == ISitePolicy.USER_INCLUDE)
-			return policy.getList();
-
-		if (policy.getType() == ISitePolicy.USER_EXCLUDE) {
-			ArrayList detectedPlugins = new ArrayList(Arrays.asList(getDetectedPlugins()));
-			String[] excludedPlugins = policy.getList();
-			for (int i = 0; i < excludedPlugins.length; i++) {
-				if (detectedPlugins.contains(excludedPlugins[i]))
-					detectedPlugins.remove(excludedPlugins[i]);
-			}
-			return (String[]) detectedPlugins.toArray(new String[0]);
-		}
-		
-		if (policy.getType() == ISitePolicy.MANAGED_ONLY) {
-			PluginEntry[] managedPlugins = getManagedPlugins();
-			String[] managedPluginsURLs = new String[managedPlugins.length];
-			for (int i=0; i<managedPlugins.length; i++)
-				managedPluginsURLs[i] = managedPlugins[i].getURL();
-			
-			return managedPluginsURLs;
-		}
-
-		// bad policy type
-		return new String[0];
-	}
-
-	private PluginEntry[] getManagedPlugins() {
-		// Note:
-		// We detect all the plugins on the site, but it would be faster
-		// to just lookup the plugins that correspond to the entries found in each feature.
-		// TODO fix the above
-		if (pluginEntries == null)
-			detectPlugins();
-		if (featureEntries == null)
-			detectFeatures();
-		
-		// cache all the plugin entries for faster lookup later
-		Map cachedPlugins = new HashMap(pluginEntries.size());
-		for (int i=0; i<pluginEntries.size(); i++) {
-			PluginEntry p = (PluginEntry)pluginEntries.get(i);
-			cachedPlugins.put(p.getVersionedIdentifier(), p);
-		}
-		
-		ArrayList managedPlugins = new ArrayList();
-		for (Iterator iterator=featureEntries.values().iterator(); iterator.hasNext();) {
-			Object feature = iterator.next();
-			if (!(feature instanceof FeatureEntry))
-				continue;
-			
-			PluginEntry[] plugins = ((FeatureEntry)feature).getPluginEntries();
-			for (int i=0; i<plugins.length; i++)
-				if (cachedPlugins.containsKey(plugins[i].getVersionedIdentifier()))
-					managedPlugins.add(cachedPlugins.get(plugins[i].getVersionedIdentifier()));
-					
-		}
-		return (PluginEntry[])managedPlugins.toArray(new PluginEntry[managedPlugins.size()]);
-	}
-	
-	public PluginEntry[] getPluginEntries() {
-		String[] pluginURLs = getPlugins();
-		// hash the array, for faster lookups
-		HashMap map = new HashMap(pluginURLs.length);
-		for (int i=0; i<pluginURLs.length; i++)
-			map.put(pluginURLs[i], pluginURLs[i]);
-		
-		if (pluginEntries == null)
-				detectPlugins();
-		
-		ArrayList plugins = new ArrayList(pluginURLs.length);
-		for (int i=0; i<pluginEntries.size(); i++) {
-			PluginEntry p = (PluginEntry)pluginEntries.get(i);
-			if (map.containsKey(p.getURL()))
-				plugins.add(p);
-		}
-		return (PluginEntry[])plugins.toArray(new PluginEntry[plugins.size()]);
-	}
-	
-	/*
-	 * @see ISiteEntry#getChangeStamp()
-	 */
-	public long getChangeStamp() {
-		if (changeStamp == 0)
-			computeChangeStamp();
-		return changeStamp;
-	}
-
-	/*
-	 * @see ISiteEntry#getFeaturesChangeStamp()
-	 */
-	public long getFeaturesChangeStamp() {
-		if (featuresChangeStamp == 0)
-			computeFeaturesChangeStamp();
-		return featuresChangeStamp;
-	}
-
-	/*
-	 * @see ISiteEntry#getPluginsChangeStamp()
-	 */
-	public long getPluginsChangeStamp() {
-		if (pluginsChangeStamp == 0)
-			computePluginsChangeStamp();
-		return pluginsChangeStamp;
-	}
-
-	/*
-	 * @see ISiteEntry#isUpdateable()
-	 */
-	public boolean isUpdateable() {
-		return updateable;
-	}
-	
-	public void setUpdateable(boolean updateable) {
-		this.updateable = updateable;
-	}
-
-	/*
-	 * @see ISiteEntry#isNativelyLinked()
-	 */
-	public boolean isNativelyLinked() {
-		return isExternallyLinkedSite();
-	}
-
-	public URL getResolvedURL() {
-		return resolvedURL;
-	}
-	
-	/**
-	 * Detect new features (timestamp > current site timestamp)
-	 * and validates existing features (they might have been removed)
-	 */
-	private void detectFeatures() {
-
-		if (featureEntries != null)
-			validateFeatureEntries();
-		else
-			featureEntries = new HashMap();
-
-		if (!PlatformConfiguration.supportsDetection(resolvedURL))
-			return;
-
-		// locate feature entries on site
-		File siteRoot = new File(resolvedURL.getFile().replace('/', File.separatorChar));
-		File featuresDir = new File(siteRoot, FEATURES);
-		if (featuresDir.exists()) {
-			// handle the installed features under the features directory
-			File[] dirs = featuresDir.listFiles(new FileFilter() {
-				public boolean accept(File f) {
-					// mac os folders contain a file .DS_Store in each folder, and we need to skip it (bug 76869) 
-					if (isMacOS && f.getName().equals(MAC_OS_MARKER))
-						return false;
-					boolean valid = f.isDirectory() && (new File(f,FEATURE_XML).exists());
-					if (!valid)
-						Utils.log(Messages.getString("SiteEntry.cannotFindFeatureInDir", f.getAbsolutePath())); //$NON-NLS-1$
-					return valid;
-				}
-			});
-		
-			for (int index = 0; index < dirs.length; index++) {
-				try {
-					File featureXML = new File(dirs[index], FEATURE_XML);
-					if (featureXML.lastModified() <= featuresChangeStamp &&
-						dirs[index].lastModified() <= featuresChangeStamp)
-						continue;
-					URL featureURL = featureXML.toURL();
-					FeatureEntry featureEntry = featureParser.parse(featureURL);
-					if (featureEntry != null)
-						addFeatureEntry(featureEntry);
-				} catch (MalformedURLException e) {
-					Utils.log(Messages.getString("InstalledSiteParser.UnableToCreateURLForFile", featuresDir.getAbsolutePath()));//$NON-NLS-1$
-				}
-			}
-		}
-		
-		Utils.debug(resolvedURL.toString() + " located  " + featureEntries.size() + " feature(s)"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Detect new plugins (timestamp > current site timestamp)
-	 * and validates existing plugins (they might have been removed)
-	 */
-	private void detectPlugins() {
-		boolean compareTimeStamps = false;
-		if (pluginEntries != null) {
-			validatePluginEntries();
-			compareTimeStamps = true; // only pick up newer plugins
-		} else
-			pluginEntries = new ArrayList();
-
-		if (!PlatformConfiguration.supportsDetection(resolvedURL))
-			return;
-
-		// locate plugin entries on site
-		File pluginsDir = new File(resolvedURL.getFile(), PLUGINS);
-		
-		if (pluginsDir.exists() && pluginsDir.isDirectory()) {
-			File[] files = pluginsDir.listFiles();
-			for (int i = 0; i < files.length; i++) {
-				if(files[i].isDirectory()){
-					detectUnpackedPlugin(files[i], compareTimeStamps);
-				}else if(files[i].getName().endsWith(".jar")){ //$NON-NLS-1$
-					detectPackedPlugin(files[i], compareTimeStamps);
-				}else{
-					// not bundle file
-				}
-			}
-		} 
-		
-		Utils.debug(resolvedURL.toString() + " located  " + pluginEntries.size() + " plugin(s)"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * @param file a plugin jar
-	 * @param compareTimeStamps set to true when looking for plugins changed since last time they were detected
-	 */
-	private void detectPackedPlugin(File file, boolean compareTimeStamps) {
-		// plugin to run directly from jar
-		if (compareTimeStamps && file.lastModified() <= pluginsChangeStamp) {
-			return;
-		}
-		String entryName = META_MANIFEST_MF;
-		ZipFile z = null;
-		InputStream bundleManifestIn = null;
-		InputStream pluginManifestIn = null;
-		String pluginURL = PLUGINS + "/" + file.getName(); //$NON-NLS-1$
-		try {
-			// First, check if has valid bundle manifest
-			z = new ZipFile(file);
-			if (z.getEntry(entryName) != null) {
-				bundleManifestIn = z.getInputStream(new ZipEntry(entryName));
-				BundleManifest manifest = new BundleManifest(bundleManifestIn,
-						pluginURL);
-				if (manifest.exists()) {
-					addPluginEntry(manifest.getPluginEntry());
-					return;
-				}
-			}
-			// no bundle manifest, check for plugin.xml or fragment.xml
-			entryName = PLUGIN_XML;
-			if (z.getEntry(entryName) == null) {
-				entryName = FRAGMENT_XML;
-			}
-			if (z.getEntry(entryName) != null) {
-				pluginManifestIn = z.getInputStream(new ZipEntry(entryName));
-				PluginEntry entry1 = pluginParser.parse(pluginManifestIn,
-						pluginURL);
-				addPluginEntry(entry1);
-			}
-		} catch (IOException e5) {
-			String pluginFileString2 = pluginURL + "!" + entryName; //$NON-NLS-1$
-			Utils.log(Messages.getString("InstalledSiteParser.ErrorAccessing", //$NON-NLS-1$
-					pluginFileString2)); //$NON-NLS-1$
-		} catch (SAXException e3) {
-			String pluginFileString1 = pluginURL + "!" + entryName; //$NON-NLS-1$
-			Utils.log(Messages.getString(
-					"InstalledSiteParser.ErrorParsingFile", pluginFileString1)); //$NON-NLS-1$
-		} finally {
-			if (bundleManifestIn != null) {
-				try {
-					bundleManifestIn.close();
-				} catch (IOException e4) {
-				}
-			}
-			if (pluginManifestIn != null) {
-				try {
-					pluginManifestIn.close();
-				} catch (IOException e2) {
-				}
-			}
-			if (z != null) {
-				try {
-					z.close();
-				} catch (IOException e1) {
-				}
-			}
-		}
-	}
-	/**
-	 * @param file a plugin directory
-	 * @param compareTimeStamps set to true when looking for plugins changed since last time they were detected
-	 */
-	private void detectUnpackedPlugin(File file, boolean compareTimeStamps) {
-		// unpacked plugin
-		long dirTimestamp = file.lastModified();
-		File pluginFile = new File(file, META_MANIFEST_MF);
-		try {
-			// First, check if has valid bundle manifest
-			BundleManifest bundleManifest = new BundleManifest(pluginFile);
-			if (bundleManifest.exists()) {
-				if (compareTimeStamps
-						&& dirTimestamp <= pluginsChangeStamp
-						&& pluginFile.lastModified() <= pluginsChangeStamp)
-					return;
-				PluginEntry entry = bundleManifest.getPluginEntry();
-				addPluginEntry(entry);
-			} else {
-				// no bundle manifest, check for plugin.xml or fragment.xml
-				pluginFile = new File(file, PLUGIN_XML);
-				if (!pluginFile.exists()) { //$NON-NLS-1$
-					pluginFile = new File(file, FRAGMENT_XML); //$NON-NLS-1$
-				}
-				if (pluginFile.exists() && !pluginFile.isDirectory()) {
-					// TODO in the future, assume that the timestamps are not
-					// reliable,
-					// or that the user manually modified an existing plugin,
-					// so
-					// the apparently modifed plugin may actually be configured
-					// already.
-					// We will need to double check for this. END to do.
-					if (compareTimeStamps 
-							&& dirTimestamp <= pluginsChangeStamp
-							&& pluginFile.lastModified() <= pluginsChangeStamp)
-						return;
-					PluginEntry entry = pluginParser.parse(pluginFile);
-					addPluginEntry(entry);
-				}
-			}
-		} catch (IOException e) {
-			String pluginFileString = pluginFile.getAbsolutePath();
-			if (ConfigurationActivator.DEBUG)
-				Utils.log(Utils.newStatus(Messages.getString(
-						"InstalledSiteParser.ErrorParsingFile", pluginFileString), e));//$NON-NLS-1$
-			else
-				Utils.log(Messages.getString("InstalledSiteParser.ErrorAccessing", //$NON-NLS-1$
-						pluginFileString)); //$NON-NLS-1$
-		} catch (SAXException e) {
-			String pluginFileString = pluginFile.getAbsolutePath();
-			Utils.log(Messages.getString(
-					"InstalledSiteParser.ErrorParsingFile", pluginFileString)); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * @return list of feature url's (relative to site)
-	 */
-	private synchronized String[] getDetectedFeatures() {
-		if (featureEntries == null)
-			detectFeatures();
-		String[] features = new String[featureEntries.size()];
-		Iterator iterator = featureEntries.values().iterator();
-		for (int i=0; i<features.length; i++)
-			features[i] = ((FeatureEntry)iterator.next()).getURL();
-		return features;
-	}
-
-	/**
-	 * @return list of plugin url's (relative to site)
-	 */
-	private synchronized String[] getDetectedPlugins() {
-		if (pluginEntries == null)
-			detectPlugins();
-		
-		String[] plugins = new String[pluginEntries.size()];
-		for (int i=0; i<plugins.length; i++)
-			plugins[i] = ((PluginEntry)pluginEntries.get(i)).getURL();
-		return plugins;
-	}
-
-	private void computeChangeStamp() {
-		changeStamp = Math.max(computeFeaturesChangeStamp(), computePluginsChangeStamp());
-//		changeStampIsValid = true;
-	}
-
-	private synchronized long computeFeaturesChangeStamp() {
-		if (featuresChangeStamp > 0)
-			return featuresChangeStamp;
-		
-		long start = 0;
-		if (ConfigurationActivator.DEBUG)
-			start = (new Date()).getTime();
-		String[] features = getFeatures();
-	
-		// compute stamp for the features directory
-		long dirStamp = 0;
-		if (PlatformConfiguration.supportsDetection(resolvedURL)) {
-			File root = new File(resolvedURL.getFile().replace('/', File.separatorChar));
-			File featuresDir = new File(root, FEATURES);
-			dirStamp = featuresDir.lastModified();
-		}
-		featuresChangeStamp = Math.max(dirStamp, computeStamp(features));
-		if (ConfigurationActivator.DEBUG) {
-			long end = (new Date()).getTime();
-			Utils.debug(resolvedURL.toString() + " feature stamp: " + featuresChangeStamp + " in " + (end - start) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-		}
-		return featuresChangeStamp;
-	}
-
-	private synchronized long computePluginsChangeStamp() {
-		if (pluginsChangeStamp > 0)
-			return pluginsChangeStamp;
-		
-		if (!PlatformConfiguration.supportsDetection(resolvedURL)) {
-			Utils.log(Messages.getString("SiteEntry.computePluginStamp", resolvedURL.toExternalForm())); //$NON-NLS-1$
-			return 0;
-		}
-
-		// compute stamp for the plugins directory
-		File root = new File(resolvedURL.getFile().replace('/', File.separatorChar));
-		File pluginsDir = new File(root, PLUGINS);
-		if (!pluginsDir.exists() || !pluginsDir.isDirectory()) {
-			Utils.log(Messages.getString("SiteEntry.pluginsDir", pluginsDir.getAbsolutePath())); //$NON-NLS-1$
-			return 0;
-		}
-
-		pluginsChangeStamp = pluginsDir.lastModified();
-		return pluginsChangeStamp;
-	}
-
-	private long computeStamp(String[] targets) {
-
-		long result = 0;
-		if (!PlatformConfiguration.supportsDetection(resolvedURL)) {
-			// NOTE:  this path should not be executed until we support running
-			//        from an arbitrary URL (in particular from http server). For
-			//        now just compute stamp across the list of names. Eventually
-			//        when general URLs are supported we need to do better (factor
-			//        in at least the existence of the target). However, given this
-			//        code executes early on the startup sequence we need to be
-			//        extremely mindful of performance issues.
-			// In fact, we should get the last modified from the connection
-			for (int i = 0; i < targets.length; i++)
-				result ^= targets[i].hashCode();
-			Utils.debug("*WARNING* computing stamp using URL hashcodes only"); //$NON-NLS-1$
-		} else {
-			// compute stamp across local targets
-			File rootFile = new File(resolvedURL.getFile().replace('/', File.separatorChar));
-			if (rootFile.exists()) {
-				File f = null;
-				for (int i = 0; i < targets.length; i++) {
-					f = new File(rootFile, targets[i]);
-					if (f.exists())
-						result = Math.max(result, f.lastModified());
-				}
-			}
-		}
-
-		return result;
-	}
-	
-	public void setLinkFileName(String linkFileName) {
-		this.linkFileName = linkFileName;
-	}
-	
-	public String getLinkFileName() {
-		return linkFileName;
-	}
-
-	public boolean isExternallyLinkedSite() {
-		return (linkFileName != null && !linkFileName.trim().equals("")); //$NON-NLS-1$
-	}
-
-	public synchronized void refresh() {
-		// reset computed values. Will be updated on next access.
-		featuresChangeStamp = 0;
-		pluginsChangeStamp = 0;
-		changeStamp = 0;
-		featureEntries = null;
-		pluginEntries = null;
-	}
-	
-	public void refreshPlugins() {
-		// reset computed values. Will be updated on next access.
-		pluginsChangeStamp = 0;
-		changeStamp = 0;
-		pluginEntries = null;
-	}
-	
-	public void addFeatureEntry(IFeatureEntry feature) {
-		if (featureEntries == null)
-			featureEntries = new HashMap();
-		// Make sure we keep the larger version of same feature
-		IFeatureEntry existing = (FeatureEntry)featureEntries.get(feature.getFeatureIdentifier());
-		if (existing != null) {
-			VersionedIdentifier existingVersion = new VersionedIdentifier(existing.getFeatureIdentifier(), existing.getFeatureVersion());
-			VersionedIdentifier newVersion = new VersionedIdentifier(feature.getFeatureIdentifier(), feature.getFeatureVersion());
-			if (existingVersion.compareVersion(newVersion) == VersionedIdentifier.LESS_THAN) {
-				featureEntries.put(feature.getFeatureIdentifier(), feature);
-				pluginsChangeStamp = 0;
-			} else if (existingVersion.equals(newVersion)) {
-				// log error if same feature version/id but a different url
-				if (feature instanceof FeatureEntry && existing instanceof FeatureEntry &&
-						!((FeatureEntry)feature).getURL().equals(((FeatureEntry)existing).getURL()))
-				Utils.log(Messages.getString("SiteEntry.duplicateFeature",getURL().toExternalForm(), existing.getFeatureIdentifier())); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		} else {
-			featureEntries.put(feature.getFeatureIdentifier(), feature);
-			pluginsChangeStamp = 0;
-		}
-		if (feature instanceof FeatureEntry)
-			((FeatureEntry)feature).setSite(this);
-	}
-	
-	public FeatureEntry[] getFeatureEntries() {
-		if (featureEntries == null)
-			detectFeatures();
-		
-		if (featureEntries == null)
-			return new FeatureEntry[0];
-		else
-			return (FeatureEntry[])featureEntries.values().toArray(new FeatureEntry[featureEntries.size()]);
-	}
-	
-	public void addPluginEntry(PluginEntry plugin) {
-		if (pluginEntries == null)
-			pluginEntries = new ArrayList();
-		// Note: we could use the latest version of the same plugin, like we do for features, but we let the runtime figure it out
-		pluginEntries.add(plugin);
-	}
-	
-	public PluginEntry[] getAllPluginEntries() {
-		if (pluginEntries == null)
-			detectPlugins();
-		return (PluginEntry[])pluginEntries.toArray(new PluginEntry[pluginEntries.size()]);
-	}
-	
-	public void loadFromDisk(long lastChange) throws CoreException{
-		featuresChangeStamp = lastChange;
-		pluginsChangeStamp = lastChange;
-		detectFeatures();
-		detectPlugins();
-	}
-	
-	/**
-	 * Saves state as xml content in a given parent element
-	 * @param doc
-	 */
-	public Element toXML(Document doc) {
-
-		Element siteElement = doc.createElement(CFG_SITE);
-		
-		if (getURL().toString() != null)
-			siteElement.setAttribute(CFG_URL, getURL().toString());
-
-		siteElement.setAttribute(CFG_ENABLED, isEnabled() ? "true" : "false"); //$NON-NLS-1$ //$NON-NLS-2$
-		siteElement.setAttribute(CFG_UPDATEABLE, isUpdateable() ? "true" : "false"); //$NON-NLS-1$ //$NON-NLS-2$
-		if (isExternallyLinkedSite()) 
-			siteElement.setAttribute(CFG_LINK_FILE, getLinkFileName().trim().replace(File.separatorChar, '/')); 
-
-		int type = getSitePolicy().getType();
-		String typeString = CFG_POLICY_TYPE_UNKNOWN;
-		try {
-			typeString = CFG_POLICY_TYPE[type];
-		} catch (IndexOutOfBoundsException e) {
-			// ignore bad attribute ...
-		}
-		siteElement.setAttribute(CFG_POLICY, typeString); 
-		String[] list = getSitePolicy().getList();
-		if (list.length > 0) {
-			StringBuffer sb = new StringBuffer(256);
-			for (int i=0; i<list.length-1; i++) {
-				sb.append(list[i]);
-				sb.append(',');
-			}
-			sb.append(list[list.length-1]);
-			siteElement.setAttribute(CFG_LIST, sb.toString());
-		}
-//		// note: we don't save features inside the site element.
-		
-		// collect feature entries
-//		configElement.setAttribute(CFG_FEATURE_ENTRY_DEFAULT, defaultFeature);
-		FeatureEntry[] feats = getFeatureEntries();
-		for (int i = 0; i < feats.length; i++) {
-			Element featureElement = feats[i].toXML(doc);
-			siteElement.appendChild(featureElement);
-		}
-		
-		return siteElement;
-	}
-	
-	private void validateFeatureEntries() {
-		File root = new File(resolvedURL.getFile().replace('/', File.separatorChar));
-		Iterator iterator = featureEntries.values().iterator();
-		Collection deletedFeatures = new ArrayList();
-		while(iterator.hasNext()) {
-			FeatureEntry feature = (FeatureEntry)iterator.next();
-			// Note: in the future, we can check for absolute url as well.
-			//       For now, feature url is features/org.eclipse.foo/feature.xml
-			File featureXML = new File(root, feature.getURL());
-			if (!featureXML.exists())
-				deletedFeatures.add(feature.getFeatureIdentifier());
-		}
-		for(Iterator it=deletedFeatures.iterator(); it.hasNext();){
-			featureEntries.remove(it.next());
-		}
-	}
-	
-	private void validatePluginEntries() {
-		File root = new File(resolvedURL.getFile().replace('/', File.separatorChar));
-		Collection deletedPlugins = new ArrayList();
-		for (int i=0; i<pluginEntries.size(); i++) {
-			PluginEntry plugin = (PluginEntry)pluginEntries.get(i);
-			// Note: in the future, we can check for absolute url as well.
-			//       For now, feature url is plugins/org.eclipse.foo/plugin.xml
-			File pluginLocation = new File(root, plugin.getURL());
-			if (!pluginLocation.exists())
-				deletedPlugins.add(plugin);
-		}
-		for(Iterator it=deletedPlugins.iterator(); it.hasNext();){
-			pluginEntries.remove(it.next());
-		}
-	}
-	
-	public boolean isEnabled() {
-		return enabled;
-	}
-	
-	public void setEnabled(boolean enable) {
-		this.enabled = enable;
-	}
-	
-	public FeatureEntry getFeatureEntry(String id) {
-		FeatureEntry[] features = getFeatureEntries();
-		for (int i=0; i<features.length; i++)
-			if (features[i].getFeatureIdentifier().equals(id)) 
-				return features[i];
-		return null;
-	}
-	
-	
-	public boolean unconfigureFeatureEntry(IFeatureEntry feature) {
-		FeatureEntry existingFeature = getFeatureEntry(feature.getFeatureIdentifier());
-		if (existingFeature != null)
-			featureEntries.remove(existingFeature.getFeatureIdentifier());
-		return existingFeature != null;
-	}
-	
-	/*
-	 * This is a bit of a hack.
-	 * When no features were added to the site, but the site is initialized from platform.xml 
-	 * we need to set the feature set to empty, so we don't try to detect them.
-	 */
-	void initialized() { 
-		if (featureEntries == null)
-			featureEntries = new HashMap();
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SitePolicy.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SitePolicy.java
deleted file mode 100644
index 34988f8..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SitePolicy.java
+++ /dev/null
@@ -1,59 +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 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.update.internal.configurator;
-
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.configurator.IPlatformConfiguration.*;
-
-
-public class SitePolicy implements IPlatformConfiguration.ISitePolicy {
-
-	private int type;
-	private String[] list;
-
-	public SitePolicy() {
-	}
-	public SitePolicy(int type, String[] list) {
-		if (type != ISitePolicy.USER_INCLUDE && type != ISitePolicy.USER_EXCLUDE && type != ISitePolicy.MANAGED_ONLY)
-			throw new IllegalArgumentException();
-		this.type = type;
-
-		if (list == null)
-			this.list = new String[0];
-		else
-			this.list = list;
-	}
-
-	/*
-	 * @see ISitePolicy#getType()
-	 */
-	public int getType() {
-		return type;
-	}
-
-	/*
-	* @see ISitePolicy#getList()
-	*/
-	public String[] getList() {
-		return list;
-	}
-
-	/*
-	 * @see ISitePolicy#setList(String[])
-	 */
-	public synchronized void setList(String[] list) {
-		if (list == null)
-			this.list = new String[0];
-		else
-			this.list = list;
-	}
-
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/UpdateURLDecoder.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/UpdateURLDecoder.java
deleted file mode 100644
index 6f4079d..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/UpdateURLDecoder.java
+++ /dev/null
@@ -1,38 +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.update.internal.configurator;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-
-public class UpdateURLDecoder {
-	static boolean init=false;
-	static boolean useEnc=true;
-	
-	public static String decode(String s, String enc) throws UnsupportedEncodingException {
-		if (!init) {
-			init = true;
-			try {
-				return URLDecoder.decode(s, enc);
-			} catch (NoSuchMethodError e) {
-				useEnc=false;				
-			}
-		}
-		
-		if (useEnc) {
-			return URLDecoder.decode(s, enc);
-		} else {
-			return URLDecoder.decode(s);
-		}
-
-	}
-
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Utils.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Utils.java
deleted file mode 100644
index abe5142..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Utils.java
+++ /dev/null
@@ -1,259 +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.update.internal.configurator;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.framework.log.*;
-
-public class Utils {
-	private static final String KEY_PREFIX = "%"; //$NON-NLS-1$
-	private static final String KEY_DOUBLE_PREFIX = "%%"; //$NON-NLS-1$
-	static FrameworkLog log;
-	
-	public static void debug(String s) {
-		if (ConfigurationActivator.DEBUG)
-			System.out.println("PlatformConfig: " + s); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Creates a CoreException from some other exception.
-	 * The type of the CoreException is <code>IStatus.ERROR</code>
-	 * If the exception passed as a parameter is also a CoreException,
-	 * the new CoreException will contain all the status of the passed
-	 * CoreException.
-	 * 
-	 * @see IStatus#ERROR
-	 * @param s exception string
-	 * @param e actual exception being reported
-	 * @return a CoreException
-	 * @since 2.0
-	 */
-	public static CoreException newCoreException(String s, Throwable e) {
-
-		// check the case of a multistatus
-		IStatus status;
-		if (e instanceof CoreException) {
-			if (s == null)
-				s = ""; //$NON-NLS-1$
-			status = new MultiStatus("org.eclipse.update.configurator", 0, s, e); //$NON-NLS-1$
-			IStatus childrenStatus = ((CoreException) e).getStatus();
-			((MultiStatus) status).add(childrenStatus);
-			((MultiStatus) status).addAll(childrenStatus);
-		} else {
-			StringBuffer completeString = new StringBuffer(""); //$NON-NLS-1$
-			if (s != null)
-				completeString.append(s);
-			if (e != null) {
-				completeString.append(" ["); //$NON-NLS-1$
-				String msg = e.getLocalizedMessage();
-				completeString.append(msg!=null?msg:e.toString());
-				completeString.append("]"); //$NON-NLS-1$
-			}
-			status = newStatus(completeString.toString(), e);
-		}
-		return new CoreException(status); //$NON-NLS-1$
-	}
-
-	public static IStatus newStatus(String message, Throwable e) {
-		return new Status(IStatus.ERROR, "org.eclipse.update.configurator", IStatus.OK, message, e); //$NON-NLS-1$
-	}
-	
-	public static void log(String message) {
-		log(newStatus(message, null));
-	}
-	
-	public static void log(IStatus status) {
-		if (log != null) {
-			log.log(new FrameworkLogEntry(ConfigurationActivator.PI_CONFIGURATOR, status.getMessage(), 0, status.getException(), null));
-		} else {
-			System.out.println(status.getMessage());
-			if (status.getException() != null)
-				status.getException().printStackTrace();
-		}
-	}
-	
-	/**
-	 * Returns the url as a platform:/ url, if possible, else leaves it unchanged
-	 * @param url
-	 * @return
-	 */
-	public static URL asPlatformURL(URL url) {
-		try {
-			URL platformURL = new URL("platform:/base/"); //$NON-NLS-1$  // try using platform-relative URL
-			URL resolvedPlatformURL = Platform.asLocalURL(platformURL);
-			// TODO workaround bug in platform url resolution
-			if (resolvedPlatformURL.getProtocol().equals("file")) //$NON-NLS-1$
-				resolvedPlatformURL = new File(resolvedPlatformURL.getFile()).toURL();
-			String platformURLAsString = resolvedPlatformURL.toExternalForm();
-			String urlAsString = url.toExternalForm();
-			if (urlAsString.startsWith(platformURLAsString))
-				return new URL(platformURL.toExternalForm() + urlAsString.substring(platformURLAsString.length()) );
-			else
-				return url;
-		} catch (Exception e) {
-			return url;
-		}
-	}
-	
-
-	/**
-	 * 
-	 */
-	public static boolean isValidEnvironment(String os, String ws, String arch, String nl) {
-		if (os!=null && !isMatching(os, Platform.getOS())) return false;
-		if (ws!=null && !isMatching(ws, Platform.getWS())) return false;
-		if (arch!=null && !isMatching(arch, Platform.getOSArch())) return false;
-		if (nl!=null && !isMatchingLocale(nl, Platform.getNL())) return false;
-		return true;
-	}
-
-	/**
-	 * 
-	 */	
-	private static boolean isMatching(String candidateValues, String siteValues) {
-		if (siteValues==null) return false;
-		if ("*".equalsIgnoreCase(candidateValues)) return true; //$NON-NLS-1$
-		siteValues = siteValues.toUpperCase();		
-		StringTokenizer stok = new StringTokenizer(candidateValues, ","); //$NON-NLS-1$
-		while (stok.hasMoreTokens()) {
-			String token = stok.nextToken().toUpperCase();
-			if (siteValues.indexOf(token)!=-1) return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * 
-	 */	
-	private static boolean isMatchingLocale(String candidateValues, String locale) {
-		if (locale==null) return false;
-		if ("*".equalsIgnoreCase(candidateValues)) return true; //$NON-NLS-1$
-		
-		locale = locale.toUpperCase();
-		candidateValues = candidateValues.toUpperCase();	
-		StringTokenizer stok = new StringTokenizer(candidateValues, ","); //$NON-NLS-1$
-		while (stok.hasMoreTokens()) {
-			String candidate = stok.nextToken();
-			if (locale.indexOf(candidate) == 0)
-				return true;
-			if (candidate.indexOf(locale) == 0)
-				return true;
-		}
-		return false;
-	}
-	
-	public static Locale getDefaultLocale() {
-		String nl = Platform.getNL();
-		// sanity test
-		if (nl == null)
-			return Locale.getDefault();
-		
-		// break the string into tokens to get the Locale object
-		StringTokenizer locales = new StringTokenizer(nl,"_"); //$NON-NLS-1$
-		if (locales.countTokens() == 1)
-			return new Locale(locales.nextToken(), ""); //$NON-NLS-1$
-		else if (locales.countTokens() == 2)
-			return new Locale(locales.nextToken(), locales.nextToken());
-		else if (locales.countTokens() == 3)
-			return new Locale(locales.nextToken(), locales.nextToken(), locales.nextToken());
-		else
-			return Locale.getDefault();
-	}
-	
-	
-	/**
-	 * Returns a resource string corresponding to the given argument 
-	 * value and bundle.
-	 * If the argument value specifies a resource key, the string
-	 * is looked up in the given resource bundle. If the argument does not
-	 * specify a valid key, the argument itself is returned as the
-	 * resource string. The key lookup is performed against the
-	 * specified resource bundle. If a resource string 
-	 * corresponding to the key is not found in the resource bundle
-	 * the key value, or any default text following the key in the
-	 * argument value is returned as the resource string.
-	 * A key is identified as a string begining with the "%" character.
-	 * Note that the "%" character is stripped off prior to lookup
-	 * in the resource bundle.
-	 * <p>
-	 * For example, assume resource bundle plugin.properties contains
-	 * name = Project Name
-	 * <pre>
-	 *     resolveNLString(b,"Hello World") returns "Hello World"</li>
-	 *     resolveNLString(b,"%name") returns "Project Name"</li>
-	 *     resolveNLString(b,"%name Hello World") returns "Project Name"</li>
-	 *     resolveNLString(b,"%abcd Hello World") returns "Hello World"</li>
-	 *     resolveNLString(b,"%abcd") returns "%abcd"</li>
-	 *     resolveNLString(b,"%%name") returns "%name"</li>
-	 * </pre>
-	 * </p>
-	 * 
-	 * @param resourceBundle resource bundle.
-	 * @param string translatable string from model
-	 * @return string, or <code>null</code>
-	 * @since 2.0
-	 */
-	public static String getResourceString(ResourceBundle resourceBundle, String string) {
-
-		if (string == null)
-			return null;
-
-		String s = string.trim();
-
-		if (s.equals("")) //$NON-NLS-1$
-			return string;
-
-		if (!s.startsWith(KEY_PREFIX))
-			return string;
-
-		if (s.startsWith(KEY_DOUBLE_PREFIX))
-			return s.substring(1);
-
-		int ix = s.indexOf(" "); //$NON-NLS-1$
-		String key = ix == -1 ? s : s.substring(0, ix);
-		String dflt = ix == -1 ? s : s.substring(ix + 1);
-
-		if (resourceBundle == null)
-			return dflt;
-
-		try {
-			return resourceBundle.getString(key.substring(1));
-		} catch (MissingResourceException e) {
-			return dflt;
-		}
-	}
-
-	public static boolean isAutomaticallyStartedBundle(String bundleURL) {
-		if (bundleURL.indexOf("org.eclipse.osgi") != -1) //$NON-NLS-1$
-			return true;
-		
-		String osgiBundles = System.getProperty("osgi.bundles"); //$NON-NLS-1$
-		StringTokenizer st = new StringTokenizer(osgiBundles, ","); //$NON-NLS-1$
-		while (st.hasMoreTokens()) {
-			String token = st.nextToken().trim();
-			int index = token.indexOf('@');
-			if (index != -1)
-				token = token.substring(0,index);
-			if (token.startsWith("reference:file:")) { //$NON-NLS-1$
-				File f = new File(token.substring(15));
-				if (bundleURL.indexOf(f.getName()) != -1)
-					return true;
-			}
-			if (bundleURL.indexOf(token) != -1)
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/VersionedIdentifier.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/VersionedIdentifier.java
deleted file mode 100644
index 53d86c8..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/VersionedIdentifier.java
+++ /dev/null
@@ -1,168 +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 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.update.internal.configurator;
-
-import java.util.*;
-
-
-public class VersionedIdentifier {
-	private String identifier = ""; //$NON-NLS-1$
-	private int major = 0;
-	private int minor = 0;
-	private int service = 0;
-	private String qualifier = ""; //$NON-NLS-1$
-	private String version;
-
-	private static final String VER_SEPARATOR = "."; //$NON-NLS-1$
-	private static final String ID_SEPARATOR = "_"; //$NON-NLS-1$
-
-	public static final int LESS_THAN = -1;
-	public static final int EQUAL = 0;
-	public static final int EQUIVALENT = 1;
-	public static final int COMPATIBLE = 2;
-	public static final int GREATER_THAN = 3;
-
-	public VersionedIdentifier(String s) {
-		if (s == null || (s = s.trim()).equals("")) //$NON-NLS-1$
-			return;
-
-		int loc = s.lastIndexOf(ID_SEPARATOR);
-		if (loc != -1) {
-			this.identifier = s.substring(0, loc);
-			version = s.substring(loc + 1);
-			if(version==null)
-				version = "0.0.0";
-			parseVersion(version);
-		} else
-			this.identifier = s;
-	}
-	
-	public VersionedIdentifier(String id, String version) {
-		this(id+ID_SEPARATOR+ (version==null?"0.0.0":version) );
-		this.version = version;
-	}
-	
-	public String getVersion() {
-		return version;
-	}
-	
-	public String getIdentifier() {
-		return identifier;
-	}
-
-	public boolean equalIdentifiers(VersionedIdentifier id) {
-		if (id == null)
-			return identifier == null;
-		else
-			return id.identifier.equals(identifier);
-	}
-
-	public int compareVersion(VersionedIdentifier id) {
-
-		if (id == null) {
-			if (major == 0 && minor == 0 && service == 0)
-				return -1;
-			else
-				return 1;
-		}
-
-		if (major > id.major)
-			return GREATER_THAN;
-		if (major < id.major)
-			return LESS_THAN;
-		if (minor > id.minor)
-			return COMPATIBLE;
-		if (minor < id.minor)
-			return LESS_THAN;
-		if (service > id.service)
-			return EQUIVALENT;
-		if (service < id.service)
-			return LESS_THAN;
-		return compareQualifiers(qualifier, id.qualifier);
-	}
-
-	private int compareQualifiers(String q1, String q2) {
-		int result = q1.compareTo(q2);
-		if (result < 0)
-			return LESS_THAN;
-		else if (result > 0)
-			return EQUIVALENT;
-		else
-			return EQUAL;
-	}
-
-	private void parseVersion(String v) {
-		if (v == null || (v = v.trim()).equals("")) //$NON-NLS-1$
-			return;
-
-		try {
-			StringTokenizer st = new StringTokenizer(v, VER_SEPARATOR);
-			ArrayList elements = new ArrayList(4);
-
-			while (st.hasMoreTokens()) {
-				elements.add(st.nextToken());
-			}
-
-			if (elements.size() >= 1)
-				this.major = (new Integer((String) elements.get(0))).intValue();
-			if (elements.size() >= 2)
-				this.minor = (new Integer((String) elements.get(1))).intValue();
-			if (elements.size() >= 3)
-				this.service = (new Integer((String) elements.get(2))).intValue();
-			if (elements.size() >= 4)
-				this.qualifier = removeWhiteSpace((String) elements.get(3));
-
-		} catch (Exception e) {
-			// use what we got so far ...
-		}
-	}
-
-	private String removeWhiteSpace(String s) {
-		char[] chars = s.trim().toCharArray();
-		boolean whitespace = false;
-		for (int i = 0; i < chars.length; i++) {
-			if (Character.isWhitespace(chars[i])) {
-				chars[i] = '_';
-				whitespace = true;
-			}
-		}
-		return whitespace ? new String(chars) : s;
-	}
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (!(obj instanceof VersionedIdentifier))
-			return false;
-		
-		VersionedIdentifier other = (VersionedIdentifier)obj;
-		return equalIdentifiers(other) &&
-			this.major == other.major &&
-			this.minor == other.minor &&
-			this.service == other.service &&
-			compareQualifiers(this.qualifier, other.qualifier) == EQUAL;
-	}
-	
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return (identifier + "_" + version).hashCode();
-	}
-	/* (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return identifier + "_" + version;
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/XMLPrintHandler.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/XMLPrintHandler.java
deleted file mode 100644
index 5356367..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/XMLPrintHandler.java
+++ /dev/null
@@ -1,146 +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.update.internal.configurator;
-
-import java.io.*;
-
-import org.w3c.dom.*;
-
-
-public class XMLPrintHandler {
-	//	used to print XML file
-	public static final String XML_COMMENT_END_TAG = "-->";
-	public static final String XML_COMMENT_BEGIN_TAG = "<!--";
-	public static final String XML_HEAD = "<?xml version=\"1.0\" encoding=\"";
-	public static final String XML_HEAD_END_TAG = "?>";
-	public static final String XML_DBL_QUOTES = "\"";
-	public static final String XML_SPACE = " ";
-	public static final String XML_BEGIN_TAG = "<";
-	public static final String XML_END_TAG = ">";
-	public static final String XML_EQUAL = "=";
-	public static final String XML_SLASH = "/";
-
-	public static void printBeginElement(Writer xmlWriter, String elementString) throws IOException{
-		StringBuffer temp = new StringBuffer(XML_BEGIN_TAG);
-		temp.append(elementString).append(XML_END_TAG).append("\n");
-		xmlWriter.write(temp.toString());
-
-	}
-
-	public static void printEndElement(Writer xmlWriter, String elementString) throws IOException{
-		StringBuffer temp = new StringBuffer(XML_BEGIN_TAG);
-		temp.append(XML_SLASH).append(elementString).append(XML_END_TAG).append("\n");
-		xmlWriter.write(temp.toString());
-
-	}
-
-	
-	public static void printText(Writer xmlWriter, String text) throws IOException{
-		xmlWriter.write(encode(text).toString());
-	}
-
-	public static void printComment(Writer xmlWriter, String comment)throws IOException {
-		StringBuffer temp = new StringBuffer(XML_COMMENT_BEGIN_TAG);
-		temp.append(encode(comment).toString()).append(XML_COMMENT_END_TAG).append("\n");
-		xmlWriter.write(temp.toString());
-	}
-
-	public static void printHead(Writer xmlWriter, String encoding) throws IOException {
-		StringBuffer temp = new StringBuffer(XML_HEAD);
-		temp.append(encoding).append(XML_DBL_QUOTES).append(XML_HEAD_END_TAG).append("\n");
-		xmlWriter.write(temp.toString());
-	}
-
-	public static String wrapAttributeForPrint(String attribute, String value) throws IOException {
-		StringBuffer temp = new StringBuffer(XML_SPACE);
-		temp.append(attribute).append(XML_EQUAL).append(XML_DBL_QUOTES)
-				.append(encode(value).toString()).append(XML_DBL_QUOTES);
-		return temp.toString();
-
-	}
-
-	public static void printNode(Writer xmlWriter, Node node,String encoding)  throws Exception{
-		if (node == null) {
-			return;
-		}
-
-		switch (node.getNodeType()) {
-		case Node.DOCUMENT_NODE: {
-			printHead(xmlWriter,encoding);
-			printNode(xmlWriter, ((Document) node).getDocumentElement(),encoding);
-			break;
-		}
-		case Node.ELEMENT_NODE: {
-			//get the attribute list for this node.
-			StringBuffer tempElementString = new StringBuffer(node.getNodeName());
-			NamedNodeMap attributeList = node.getAttributes();
-			if ( attributeList != null ) {
-				for(int i= 0; i <attributeList.getLength();i++){
-					Node attribute = attributeList.item(i);
-					tempElementString.append(wrapAttributeForPrint(attribute.getNodeName(),attribute.getNodeValue()));
-				}
-			}
-			printBeginElement(xmlWriter,tempElementString.toString());
-			
-			// do this recursively for the child nodes.
-			NodeList childNodes = node.getChildNodes();
-			if (childNodes != null) {
-				int length = childNodes.getLength();
-				for (int i = 0; i < length; i++) {
-					printNode(xmlWriter, childNodes.item(i),encoding);
-				}
-			}
-			
-			printEndElement(xmlWriter,node.getNodeName());
-			break;
-		}
-		
-		case Node.TEXT_NODE: {
-			xmlWriter.write(encode(node.getNodeValue()).toString());
-			break;
-		}
-		default: {
-			throw new UnsupportedOperationException("Unsupported XML Node Type.");
-			
-		}
-		}
-
-	}
-
-	public static StringBuffer encode(String value) {
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < value.length(); i++) {
-			char c = value.charAt(i);
-			switch (c) {
-				case '&' :
-					buf.append("&amp;"); //$NON-NLS-1$
-					break;
-				case '<' :
-					buf.append("&lt;"); //$NON-NLS-1$
-					break;
-				case '>' :
-					buf.append("&gt;"); //$NON-NLS-1$
-					break;
-				case '\'' :
-					buf.append("&apos;"); //$NON-NLS-1$
-					break;
-				case '\"' :
-					buf.append("&quot;"); //$NON-NLS-1$
-					break;
-				default :
-					buf.append(c);
-					break;
-			}
-		}
-		return buf;
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/AboutInfo.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/AboutInfo.java
deleted file mode 100644
index dd2b59f..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/AboutInfo.java
+++ /dev/null
@@ -1,254 +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 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.update.internal.configurator.branding;
-
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-
-
-/**
- * The information within this object is obtained from the about INI file.
- * This file resides within an install configurations directory and must be a 
- * standard java property file.  
- * <p>
- * This class is not intended to be instantiated or subclassed by clients.
- * </p>
- */
-public final class AboutInfo {
-	private final static String INI_FILENAME = "about.ini"; //$NON-NLS-1$
-	private final static String PROPERTIES_FILENAME = "about.properties"; //$NON-NLS-1$
-	private final static String MAPPINGS_FILENAME = "about.mappings"; //$NON-NLS-1$
-
-	private String featureId;
-	private String versionId = ""; //$NON-NLS-1$
-	private String featurePluginLabel;
-	private String providerName;
-	private String appName;
-	private URL windowImageURL;
-	private URL[] windowImagesURLs;
-	private URL aboutImageURL;
-	private URL featureImageURL;
-	private URL welcomePageURL;
-	private String aboutText;
-	private String welcomePerspective;
-	private String tipsAndTricksHref;
-
-
-	/*
-	 * Create a new about info for a feature with the given id.
-	 */
-	/* package */ AboutInfo(String featureId) {
-		super();
-		this.featureId = featureId;
-	}
-
-	/**
-	 * Returns the configuration information for the feature with the 
-	 * given id.
-	 * 
-	 * @param featureId the feature id
-	 * @param versionId the version id (of the feature)
-	 * @param pluginId the plug-in id
-	 * @return the configuration information for the feature
-	 */
-	public static AboutInfo readFeatureInfo(String featureId, String versionId, String pluginId) {
-//		Assert.isNotNull(featureId);
-//		Assert.isNotNull(versionId);
-//		Assert.isNotNull(pluginId);
-		IniFileReader reader = new IniFileReader(featureId, pluginId, INI_FILENAME, PROPERTIES_FILENAME, MAPPINGS_FILENAME);
-		IStatus status = reader.load();
-// bug 78031
-//		if (!status.isOK()) {
-//			//return null;
-//			return new AboutInfo(featureId); // dummy about info
-//		}
-		
-		AboutInfo info = new AboutInfo(featureId);
-		Hashtable runtimeMappings  = new Hashtable();
-		runtimeMappings.put("{featureVersion}", versionId); //$NON-NLS-1$
-		info.versionId = versionId;
-		info.featurePluginLabel = reader.getFeaturePluginLabel();
-		info.providerName = reader.getProviderName();
-		info.appName = reader.getString("appName", true, runtimeMappings); //$NON-NLS-1$
-		info.aboutText = reader.getString("aboutText", true, runtimeMappings); //$NON-NLS-1$
-		info.windowImageURL = reader.getURL("windowImage"); //$NON-NLS-1$
-		// look for the newer array, but if its not there then use the older,
-		// single image definition
-		info.windowImagesURLs = reader.getURLs("windowImages"); //$NON-NLS-1$
-		info.aboutImageURL = reader.getURL("aboutImage"); //$NON-NLS-1$
-		info.featureImageURL = reader.getURL("featureImage"); //$NON-NLS-1$
-		info.welcomePageURL = reader.getURL("welcomePage"); //$NON-NLS-1$
-		info.welcomePerspective = reader.getString("welcomePerspective", false, runtimeMappings); //$NON-NLS-1$
-		info.tipsAndTricksHref = reader.getString("tipsAndTricksHref", false, runtimeMappings); //$NON-NLS-1$
-		return info;
-	}
-	
-	/**
-	 * Returns the URL for an image which can be shown in an "about" dialog 
-	 * for this product. Products designed to run "headless" typically would not 
-	 * have such an image.
-	 * 
-	 * @return the URL for an about image, or <code>null</code> if none
-	 */
-	public URL getAboutImageURL() {
-		return aboutImageURL;
-	}
-
-	/**
-	 * Returns the URL for an image which can be shown in an "about features" 
-	 * dialog. Products designed to run "headless" typically would not have such an image.
-	 * 
-	 * @return the URL for a feature image, or <code>null</code> if none
-	 */
-	public URL getFeatureImageURL() {
-		return featureImageURL;
-	}
-
-	/**
-	 * Returns the simple name of the feature image file.
-	 * 
-	 * @return the simple name of the feature image file,
-	 * or <code>null</code> if none
-	 */
-	public String getFeatureImageName() {
-		if (featureImageURL != null) {
-			IPath path = new Path(featureImageURL.getPath());
-			return path.lastSegment();
-		} else {
-			return null;
-		}
-	}
-
-		
-	/**
-	 * Returns a label for the feature plugn, or <code>null</code>.
-	 */
-	public String getFeatureLabel() {
-		return featurePluginLabel;
-	}
-
-	/**
-	 * Returns the id for this feature.
-	 * 
-	 * @return the feature id
-	 */
-	public String getFeatureId() {
-		return featureId;
-	}
-	
-	/**
-	 * Returns the text to show in an "about" dialog for this product.
-	 * Products designed to run "headless" typically would not have such text.
-	 * 
-	 * @return the about text, or <code>null</code> if none
-	 */
-	public String getAboutText() {
-		return aboutText;
-	}
-
-	/**
-	 * Returns the application name or <code>null</code>.
-	 * Note this is never shown to the user.
-	 * It is used to initialize the SWT Display.
-	 * <p>
-	 * On Motif, for example, this can be used
-	 * to set the name used for resource lookup.
-	 * </p>
-	 *
-	 * @return the application name, or <code>null</code>
-	 */
-	public String getAppName() {
-		return appName;
-	}
-
-	/**
-	 * Returns the product name or <code>null</code>.
-	 * This is shown in the window title and the About action.
-	 *
-	 * @return the product name, or <code>null</code>
-	 */
-	public String getProductName() {
-		return featurePluginLabel;
-	}
-
-	/**
-	 * Returns the provider name or <code>null</code>.
-	 *
-	 * @return the provider name, or <code>null</code>
-	 */
-	public String getProviderName() {
-		return providerName;
-	}
-
-	/**
-	 * Returns the feature version id.
-	 *
-	 * @return the version id of the feature
-	 */
-	public String getVersionId() {
-		return versionId;
-	}
-
-	/**
-	 * Returns a <code>URL</code> for the welcome page.
-	 * Products designed to run "headless" typically would not have such an page.
-	 * 
-	 * @return the welcome page, or <code>null</code> if none
-	 */
-	public URL getWelcomePageURL() {
-		return welcomePageURL;
-	}
-
-	/**
-	 * Returns the ID of a perspective in which to show the welcome page.
-	 * May be <code>null</code>.
-	 * 
-	 * @return the welcome page perspective id, or <code>null</code> if none
-	 */
-	public String getWelcomePerspectiveId() {
-		return welcomePerspective;
-	}
-
-	/**
-	 * Returns a <code>String</code> for the tips and trick href.
-	 * 
-	 * @return the tips and tricks href, or <code>null</code> if none
-	 */
-	public String getTipsAndTricksHref() {
-		return tipsAndTricksHref;
-	}
-
-	/**
-	 * Returns the image url for the window image to use for this product.
-	 * Products designed to run "headless" typically would not have such an image.
-	 * 
-	 * @return the image url for the window image, or <code>null</code> if none
-	 */
-	public URL getWindowImageURL() {
-		return windowImageURL;
-	}
-	
-	/**
-	 * Return an array of image URLs for the window images to use for
-	 * this product. The expectations is that the elements will be the same
-	 * image rendered at different sizes. Products designed to run "headless"
-	 * typically would not have such images.
-	 * 
-	 * @return an array of the image descriptors for the window images, or
-	 *         <code>null</code> if none
-	 * @since 3.0
-	 */
-	public URL[] getWindowImagesURLs() {
-		return windowImagesURLs;
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IBundleGroupConstants.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IBundleGroupConstants.java
deleted file mode 100644
index 45179c0..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IBundleGroupConstants.java
+++ /dev/null
@@ -1,49 +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.update.internal.configurator.branding;
-
-/**
- * These constants define the set of properties that the UI expects to
- * be available via <code>IBundleGroup.getProperty(String)</code>.
- * 
- * @since 3.0
- * @see org.eclipse.core.runtime.IBundleGroup#getProperty(String)
- */
-public interface IBundleGroupConstants {
-	/**
-	 * An image which can be shown in an "about features" dialog (32x32).
-	 */
-	public static final String FEATURE_IMAGE = "featureImage"; //$NON-NLS-1$
-
-	/**
-	 * A help reference for the feature's tips and tricks page (optional).
-	 */
-	public static final String TIPS_AND_TRICKS_HREF = "tipsAndTricksHref"; //$NON-NLS-1$
-
-	/**
-	 * A URL for the feature's welcome page (special XML-based format)
-     * ($nl$/ prefix to permit locale-specific translations of entire file).
-	 * Products designed to run "headless" typically would not have such a page.
-	 */
-	public static final String WELCOME_PAGE = "welcomePage"; //$NON-NLS-1$
-
-	/**
-	 * The id of a perspective in which to show the welcome page
-	 * (optional).
-	 */
-	public static final String WELCOME_PERSPECTIVE = "welcomePerspective"; //$NON-NLS-1$
-	
-	/**
-	 * The URL of the license page for the feature
-	 * (optional).
-	 */
-	public static final String LICENSE_HREF = "licenseHref"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IProductConstants.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IProductConstants.java
deleted file mode 100644
index 179ef52..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IProductConstants.java
+++ /dev/null
@@ -1,77 +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.update.internal.configurator.branding;
-
-/**
- * These constants define the set of properties that the UI expects to
- * be available via <code>IProduct.getProperty(String)</code>.
- * 
- * @since 3.0
- * @see org.eclipse.core.runtime.IProduct#getProperty(String)
- */
-public interface IProductConstants {
-	/**
-	 * The application name, used to initialize the SWT Display.  This
-	 * value is distinct from the string displayed in the application
-	 * title bar.
-	 * <p>
-	 * E.g., On motif, this can be used to set the name used for
-	 * resource lookup.
-	 * </p>
-	 */
-	public static final String APP_NAME = "appName"; //$NON-NLS-1$
-
-	/**
-	 * The text to show in an "about" dialog for this product.
-	 * Products designed to run "headless" typically would not
-	 * have such text.
-	 */
-	public static final String ABOUT_TEXT = "aboutText"; //$NON-NLS-1$
-
-	/**
-	 * An image which can be shown in an "about" dialog for this
-	 * product. Products designed to run "headless" typically would not 
-	 * have such an image.
-	 * <p>
-     * A full-sized product image (no larger than 500x330 pixels) is
-     * shown without the "aboutText" blurb.  A half-sized product image
-     * (no larger than 250x330 pixels) is shown with the "aboutText"
-     * blurb beside it.
-     */
-	public static final String ABOUT_IMAGE = "aboutImage"; //$NON-NLS-1$
-
-	/**
-	 * An image to be used as the window icon for this product (16x16).  
-	 * Products designed to run "headless" typically would not have such an image.
-	 * <p>
-	 * If the <code>WINDOW_IMAGES</code> property is given, then it supercedes
-	 * this one.
-	 * </p>
-	 */
-	public static final String WINDOW_IMAGE = "windowImage"; //$NON-NLS-1$
-
-	/**
-	 * An array of one or more images to be used for this product.  The
-	 * expectation is that the array will contain the same image rendered
-	 * at different sizes (16x16 and 32x32).  
-	 * Products designed to run "headless" typically would not have such images.
-	 * <p>
-	 * If this property is given, then it supercedes <code>WINDOW_IMAGE</code>.
-	 * </p>
-	 */
-	public static final String WINDOW_IMAGES = "windowImages"; //$NON-NLS-1$
-	/**
-	 * A URL for the products's welcome page (special XML-based format)
-	 * ($nl$/ prefix to permit locale-specific translations of entire file).
-	 * Products designed to run "headless" typically would not have such a page.
-	 */
-	public static final String WELCOME_PAGE = "welcomePage";  //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IniFileReader.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IniFileReader.java
deleted file mode 100644
index 72e2235..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IniFileReader.java
+++ /dev/null
@@ -1,378 +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 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.update.internal.configurator.branding;
-
-import java.io.*;
-import java.net.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.internal.configurator.*;
-import org.osgi.framework.*;
-
-/**
- * Reads the information found in an "INI" file. This file must be in a
- * standard Java properties format. A properties file may also be provided
- * to NL values in the INI file - values must start with the % prefix. A
- * mapping file may also be provided that contains "fill-ins" for the
- * properties file - format being "n = some text", where n is a number.
- */
-public class IniFileReader {
-	private static final String PID = "org.eclipse.update.configurator"; //$NON-NLS-1$
-	private static final Status OK_STATUS = new Status(IStatus.OK, PID, 0, "", null); //$NON-NLS-1$
-	private static final String KEY_PREFIX = "%"; //$NON-NLS-1$
-	private static final String KEY_DOUBLE_PREFIX = "%%"; //$NON-NLS-1$
-	private static final String NLS_TAG = "$nl$"; //$NON-NLS-1$
-
-	private String featureId;
-	private String pluginId;
-	private String iniFilename;
-	private String propertiesFilename;
-	private String mappingsFilename;
-	private Properties ini = null;
-	private PropertyResourceBundle properties = null;
-	private String[] mappings = null;
-	private Bundle bundle;
-
-	/**
-	 * Creates an INI file reader that can parse the contents into key,value pairs.
-	 * 
-	 * @param featureId the unique identifier of the feature, must not be <code>null</code>
-	 * @param pluginId the unique identifier of the feature plug-in, must not be <code>null</code>
-	 * @param iniFilename the INI file name, must not be <code>null</code>
-	 * @param propertiesFilename the properties filename, can be <code>null</code> if not required
-	 * @param mappingsFilename the mappings filename, can be <code>null</code> if not required
-	 */
-	public IniFileReader(String featureId, String pluginId, String iniFilename, String propertiesFilename, String mappingsFilename) {
-		super();
-		
-		if (featureId == null || pluginId == null || iniFilename == null) {
-			throw new IllegalArgumentException();
-		}
-			
-		this.featureId = featureId;
-		this.pluginId = pluginId;
-		this.iniFilename = iniFilename;
-		this.propertiesFilename = propertiesFilename;
-		this.mappingsFilename = mappingsFilename;
-	}
-
-	/**
-	 * Read the contents of the INI, properties, and mappings files.
-	 * Does nothing if the content has already been read and parsed.
-	 * 
-	 * @return an <code>IStatus</code> indicating the success or failure
-	 * 	of reading and parsing the INI file content
-	 */
-	public IStatus load() {
-		if (ini != null)
-			return OK_STATUS;
-			
-		// attempt to locate the corresponding plugin
-		bundle = Platform.getBundle(pluginId);
-		if (bundle == null || bundle.getState() == Bundle.UNINSTALLED || bundle.getState() == Bundle.INSTALLED) {
-			bundle = null; // make it null for other test down the road
-			String message = Messages.getString("IniFileReader.MissingDesc", featureId);  //$NON-NLS-1$
-			return new Status(IStatus.ERROR, PID, 0, message, null);
-		}
-
-		// Determine the ini file location
-		URL iniURL = null;
-		IOException ioe = null;
-		try {
-			iniURL = Platform.find(bundle, new Path(NLS_TAG).append(iniFilename));
-			if (iniURL != null)
-				iniURL = Platform.resolve(iniURL);
-		} catch (IOException e) {
-			ioe = e;
-		}
-		if (iniURL == null) {
-			String message = Messages.getString("IniFileReader.OpenINIError", iniFilename);  //$NON-NLS-1$
-			return new Status(IStatus.ERROR, PID, 0, message, ioe);
-		}
-		
-		// Determine the properties file location
-		URL propertiesURL = null;
-		if (propertiesFilename != null & propertiesFilename.length() > 0) {
-			try {
-				propertiesURL = Platform.find(bundle, new Path(NLS_TAG).append(propertiesFilename));
-				if (propertiesURL != null)
-					propertiesURL = Platform.resolve(propertiesURL);
-			} catch (IOException e) {
-				String message = Messages.getString("IniFileReader.OpenPropError", propertiesFilename); //$NON-NLS-1$
-				return new Status(IStatus.ERROR, PID, 0, message, e);
-			}
-		}
-
-		// Determine the mappings file location
-		URL mappingsURL = null;
-		if (mappingsFilename != null && mappingsFilename.length() > 0) {
-			try {
-				mappingsURL = Platform.find(bundle, new Path(NLS_TAG).append(mappingsFilename));
-				if (mappingsURL != null)
-					mappingsURL = Platform.resolve(mappingsURL);
-			} catch (IOException e) {
-				String message = Messages.getString("IniFileReader.OpenMapError", mappingsFilename); //$NON-NLS-1$
-				return new Status(IStatus.ERROR, PID, 0, message, e);
-			}
-		}
-
-		// OK to pass null properties and/or mapping file
-		return load(iniURL, propertiesURL, mappingsURL);
-	}
-		
-	/**
-	 * Returns the string value for the given key, or <code>null</code>.
-	 * The string value is NLS if requested.
-	 * 
-	 * @return the string value for the given key, or <code>null</code>
-	 */
-	public String getString(String key, boolean doNls, Hashtable runtimeMappings) {
-		if (ini == null)
-			return null;
-		String value = ini.getProperty(key);
-		if (value != null && doNls)
-			return getResourceString(value, runtimeMappings);
-		return value;
-	}
-
-
-	/**
-	 * Returns a URL for the given key, or <code>null</code>.
-	 * 
-	 * @return a URL for the given key, or <code>null</code>
-	 */
-	public URL getURL(String key) {
-		if (ini == null)
-			return null;
-
-		URL url = null;
-		String fileName = ini.getProperty(key);
-		if (fileName != null) {
-			if (bundle == null)
-				return null;
-			url = Platform.find(bundle, new Path(fileName));
-		}
-		return url;
-	}
-	
-	/**
-	 * Returns a array of URL for the given key, or <code>null</code>. The
-	 * property value should be a comma separated list of urls, tokens for
-	 * which bundle cannot build an url will have a null entry.
-	 * 
-	 * @param key name of the property containing the requested urls
-	 * @return a URL for the given key, or <code>null</code>
-	 * @since 3.0
-	 */
-	public URL[] getURLs(String key) {
-		if (ini == null || bundle == null)
-			return null;
-
-		String value = ini.getProperty(key);
-		if (value == null)
-			return null;
-
-		StringTokenizer tokens = new StringTokenizer(value, ","); //$NON-NLS-1$
-		ArrayList array = new ArrayList(10);
-		while (tokens.hasMoreTokens()) {
-			String str = tokens.nextToken().trim();
-			array.add(Platform.find(bundle, new Path(str)));
-		}
-
-		URL[] urls = new URL[array.size()];
-		array.toArray(urls);
-		return urls;
-	}
-
-	/**
-	 * Returns the feature plugin label, or <code>null</code>.
-	 * 
-	 * @return the feature plugin lable, or <code>null</code> if none.
-	 */
-	public String getFeaturePluginLabel() {
-		if (bundle == null)
-			return null;
-		else {
-			return (String)bundle.getHeaders().get(Constants.BUNDLE_NAME);
-		}
-	}
-	
-	/**
-	 * Returns the provider name for this feature, or <code>null</code>.
-	 * 
-	 * @return the provider name for this feature, or <code>null</code>
-	 */
-	public String getProviderName() {
-		if (bundle == null)
-			return null;
-		else {
-			return (String)bundle.getHeaders().get(Constants.BUNDLE_VENDOR);
-		}
-	}
-	
-	/*
-	 * Returns a resource string corresponding to the given argument 
-	 * value and bundle.
-	 * If the argument value specifies a resource key, the string
-	 * is looked up in the given resource bundle. If the argument does not
-	 * specify a valid key, the argument itself is returned as the
-	 * resource string. The key lookup is performed against the
-	 * specified resource bundle. If a resource string 
-	 * corresponding to the key is not found in the resource bundle
-	 * the key value, or any default text following the key in the
-	 * argument value is returned as the resource string.
-	 * A key is identified as a string begining with the "%" character.
-	 * Note that the "%" character is stripped off prior to lookup
-	 * in the resource bundle.
-	 * <p>
-	 * For example, assume resource bundle plugin.properties contains
-	 * name = Project Name
-	 * <pre>
-	 *     <li>getResourceString("Hello World") returns "Hello World"</li>
-	 *     <li>getResourceString("%name") returns "Project Name"</li>
-	 *     <li>getResourceString("%name Hello World") returns "Project Name"</li>
-	 *     <li>getResourceString("%abcd Hello World") returns "Hello World"</li>
-	 *     <li>getResourceString("%abcd") returns "%abcd"</li>
-	 *     <li>getResourceString("%%name") returns "%name"</li>
-	 *     <li>getResourceString(<code>null</code>) returns <code>null</code></li>
-	 * </pre>
-	 * </p>
-	 *
-	 * @param value the value or <code>null</code>
-	 * @param runtimeMappings runtime mappings or <code>null</code>
-	 * @return the resource string
-	 */
-	 public String getResourceString(String value, Hashtable runtimeMappings) {
-		
-		if (value == null)
-			return null;
-		String s = value.trim();
-
-		if (!s.startsWith(KEY_PREFIX))
-			return s;
-
-		if (s.startsWith(KEY_DOUBLE_PREFIX))
-			return s.substring(1);
-
-		int ix = s.indexOf(" "); //$NON-NLS-1$
-		String key = ix == -1 ? s : s.substring(0, ix);
-		String dflt = ix == -1 ? s : s.substring(ix + 1);
-
-		if (properties == null)
-			return dflt;
-
-		String result = null;
-		try {
-			result = properties.getString(key.substring(1));
-		} catch (MissingResourceException e) {
-			return dflt;
-		}
-		if (runtimeMappings != null) {
-			for (Enumeration e = runtimeMappings.keys(); e.hasMoreElements();) {
-				String keyValue = (String) e.nextElement();
-				int i = result.indexOf(keyValue);
-				if (i != -1) {
-					String s1 = result.substring(0,i);
-					String s2 = (String) runtimeMappings.get(keyValue);
-					String s3 = result.substring(i+keyValue.length());
-					result = s1 + s2 + s3;
-				}
-			}
-		}
-	
-		if (result.indexOf('{') != -1) {
-			// We test for the curly braces since due to NL issues we do not
-			// want to use MessageFormat unless we have to.
-			result = MessageFormat.format(result, mappings);
-		}
-		
-		return result;	
-	}
-
-	/*
-	 * Read the contents of the ini, properties, and mappings files.
-	 */
-	private IStatus load(URL iniURL, URL propertiesURL, URL mappingsURL) {
-
-		InputStream is = null;
-		try {
-			is = iniURL.openStream();
-			ini = new Properties();
-			ini.load(is);
-		} catch (IOException e) {
-			ini = null;
-			String message = Messages.getString("IniFileReader.ReadIniError", iniURL.toExternalForm()); //$NON-NLS-1$
-			return new Status(IStatus.ERROR, PID, 0, message, e);
-		} finally {
-			try {
-				if (is != null)
-					is.close();
-			} catch (IOException e) {
-			}
-		}
-
-		if (propertiesURL != null) {
-			is = null;
-			try {
-				is = propertiesURL.openStream();
-				properties = new PropertyResourceBundle(is);
-			} catch (IOException e) {
-				properties = null;
-				String message = Messages.getString("IniFileReader.ReadPropError", propertiesURL.toExternalForm()); //$NON-NLS-1$
-				return new Status(IStatus.ERROR, PID, 0, message, e);
-			} finally {
-				try {
-					if (is != null)
-						is.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-
-		PropertyResourceBundle bundle = null;
-		if (mappingsURL != null) {
-			is = null;
-			try {
-				is = mappingsURL.openStream();
-				bundle = new PropertyResourceBundle(is);
-			} catch (IOException e) {
-				bundle = null;
-				String message = Messages.getString("IniFileReader.ReadMapError", mappingsURL.toExternalForm()); //$NON-NLS-1$
-				return new Status(IStatus.ERROR, PID, 0, message, e);
-			} finally {
-				try {
-					if (is != null)
-						is.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-
-		ArrayList mappingsList = new ArrayList();
-		if (bundle != null) {
-			boolean found = true;
-			int i = 0;
-			while (found) {
-				try {
-					mappingsList.add(bundle.getString(Integer.toString(i)));
-				} catch (MissingResourceException e) {
-					found = false;
-				}
-				i++;
-			}
-		}
-		mappings = (String[])mappingsList.toArray(new String[mappingsList.size()]);
-		
-		return OK_STATUS;
-	}
-}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/messages.properties b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/messages.properties
deleted file mode 100644
index 639b480..0000000
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/messages.properties
+++ /dev/null
@@ -1,93 +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 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
-###############################################################################
-### Boot plugin message catalog
-
-ok = OK
-
-### URL
-url.badVariant=Unsupported \"platform:\" protocol variation {0}
-url.invalidURL=Invalid "platform:" URL {0}
-url.createConnection=Unable to create connection {0}
-url.noaccess=Unable to access URL as local {0}.
-
-### Platform Configuration
-cfig.inUse=\nConfiguration file \"{0}\" is in use by another instance of the platform, \n\
-	or there was a failure in deleting the old lock file.  If no other platform instances are running, \n\
-	delete file \"{1}\" and try starting the platform again.
-cfig.failCreateLock=Failed to create lock for configuration file \"{0}\"
-cfig.badUrlArg=Bad -configuration argument \"{0}\"
-cfig.unableToLoad.incomplete=Unable to load {0}
-cfig.unableToLoad.noURL=Configuration file location not specified
-cfig.unableToSave.noURL=Configuration file save location not specified
-cfig.unableToSave=Unable to save configuration file \"{0}\"
-cfig.badVersion=Unsupported configuration version \"{0}\"
-cfg.unableToCreateConfig.ini = Unable to create config.ini
-
-platform.running=The Platform is already running.
-platform.mustNotBeRunning=The Platform must not be running.
-platform.notRunning=The Platform is not running.
-
-ignore.plugin=Ignoring invalid plug-in location: {0}.
-application.notFound=Application not found: {0}.
-error.fatal=Fatal Error: Unable to determine platform installation URL {0}.
-error.boot=Fatal Error: Unable to locate boot.xml file for executing org.eclipse.core.boot.
-error.runtime=Fatal Error: Unable to locate matching org.eclipse.core.runtime plug-in.
-error.xerces=Fatal Error: Unable to locate matching org.apache.xerces plug-in.
-error.badNL=Bad value: \"{0}\" for NL. Using system default.
-
-InstalledSiteParser.DirectoryDoesNotExist=The directory \"{0}\" does not exist on the file system.
-InstalledSiteParser.UnableToCreateURL= Internal Error. Unable to create URL from \"{0}\".
-InstalledSiteParser.FileDoesNotExist= The file \"{0}\" does not exist.
-InstalledSiteParser.UnableToCreateURLForFile= Unable to create URL from \"{0}\".
-InstalledSiteParser.ErrorParsingFile= Unable to parse file \"{0}\".
-InstalledSiteParser.ErrorAccessing= Unable to access file \"{0}\".
-InstalledSiteParser.date = Invalid date attribute {0}
-BundleManifest.noVersion = {0} attribute not found in manifest for bundle \"{1}\".  Bundle will be ignored.
-
-FeatureParser.IdOrVersionInvalid= Error parsing feature stream. The unique identifier or the version is null or empty: unique identifier=\"{0}\" version=\"{1}\".
-
-BundleGroupProvider=Update Manager Configurator
-ProductProvider=Update Manager Configurator
-
-AboutInfo.notSpecified=Unspecified
-ConfigurationActivator.initialize=Cannot initialize the Update Configurator
-ConfigurationActivator.createConfig=Cannot create configuration in {0}
-ConfigurationActivator.uninstallBundle=Could not uninstall unused bundle {0} 
-ConfigurationParser.cannotLoadSharedInstall=Could not load from shared install
-ConfigurationActivator.installBundle=Could not install bundle {0}
-PluginEntry.versionError=Unable to create versioned identifier: {0} {1}
-
-IniFileReader.MissingDesc = Cannot find plugin for feature {0}
-IniFileReader.OpenINIError = Cannot open branding file {0}
-IniFileReader.OpenPropError = Cannot open branding properties file {0}
-IniFileReader.OpenMapError = Cannot open mapping file {0}
-IniFileReader.ReadIniError = Error reading branding file {0}
-IniFileReader.ReadPropError = Error reading branding properties file {0}
-IniFileReader.ReadMapError = Error reading mapping files {0}
-
-SiteEntry.computePluginStamp = Cannot compute plugins change stamp for site {0} because it does not support plugin detection.
-SiteEntry.cannotFindFeatureInDir=Unable to find feature.xml in directory: {0}
-SiteEntry.duplicateFeature=Duplicate feature found on site {0} : {1}
-SiteEntry.pluginsDir = {0} is not a valid plugins directory.
-PlatformConfiguration.expectingPlatformXMLorDirectory=Either specify the configuration directory or a file named platform.xml 
-PlatformConfiguration.cannotBackupConfig=Cannot backup current configuration
-PlatformConfiguration.cannotCloseStream=Could not close output stream for 
-PlatformConfiguration.cannotCloseTempFile=Could not close output stream for temp file 
-PlatformConfiguration.cannotRenameTempFile=Could not rename configuration temp file
-PlatformConfiguration.cannotLoadConfig=Cannot load configuration from 
-PlatformConfiguration.cannotLoadDefaultSite=Cannot load default site 
-PlatformConfiguration.cannotFindConfigFile=Platform configuration file cannot be found
-PlatformConfiguration.cannotSaveNonExistingConfig=Configuration cannot be saved because it does not exist
-HttpResponse.rangeExpected=Server returned full content instead of a range.
-HttpResponse.wrongRange=Server returned wrong range
-
-PluginParser.plugin_no_id = Plugin does not have a valid identifier: {0}
-PluginParser.pluing_no_version = Plugin does not have a valid version: {0}
\ No newline at end of file
diff --git a/update/org.eclipse.update.core.linux/.classpath b/update/org.eclipse.update.core.linux/.classpath
deleted file mode 100644
index 4848249..0000000
--- a/update/org.eclipse.update.core.linux/.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/update/org.eclipse.update.core.linux/.cvsignore b/update/org.eclipse.update.core.linux/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/update/org.eclipse.update.core.linux/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/update/org.eclipse.update.core.linux/.project b/update/org.eclipse.update.core.linux/.project
deleted file mode 100644
index 178e2b7..0000000
--- a/update/org.eclipse.update.core.linux/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.update.core.linux</name>

-	<comment></comment>

-	<projects>

-		<project>org.eclipse.core.boot</project>

-		<project>org.eclipse.core.runtime</project>

-		<project>org.eclipse.core.runtime.compatibility</project>

-		<project>org.eclipse.update.configurator</project>

-		<project>org.eclipse.update.core</project>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/update/org.eclipse.update.core.linux/about.html b/update/org.eclipse.update.core.linux/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/update/org.eclipse.update.core.linux/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/update/org.eclipse.update.core.linux/build.properties b/update/org.eclipse.update.core.linux/build.properties
deleted file mode 100644
index 68d414f..0000000
--- a/update/org.eclipse.update.core.linux/build.properties
+++ /dev/null
@@ -1,17 +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 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
-###############################################################################
-bin.includes = fragment.xml,\
-               os/,\
-               fragment.properties,\
-               about.html
-src.includes = src/,\
-               fragment.xml,\
-               about.html
diff --git a/update/org.eclipse.update.core.linux/fragment.xml b/update/org.eclipse.update.core.linux/fragment.xml
deleted file mode 100644
index 6740684..0000000
--- a/update/org.eclipse.update.core.linux/fragment.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<fragment
-   id="org.eclipse.update.core.linux"
-   name="%fragmentNameLinux"
-   version="3.0.0"
-   provider-name="%providerName"
-   plugin-id="org.eclipse.update.core"
-   plugin-version="3.0.0"
-   match="compatible">
-
-   <runtime>
-   </runtime>
-
-
-</fragment>
diff --git a/update/org.eclipse.update.core.linux/os/linux/x86/libupdate.so b/update/org.eclipse.update.core.linux/os/linux/x86/libupdate.so
deleted file mode 100644
index d70a9e9..0000000
--- a/update/org.eclipse.update.core.linux/os/linux/x86/libupdate.so
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.core.linux/src/build.xml b/update/org.eclipse.update.core.linux/src/build.xml
deleted file mode 100644
index cf44ead..0000000
--- a/update/org.eclipse.update.core.linux/src/build.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="buildlibrary" default="run" basedir="."> 
-  
-  <!-- The properties ${eclipse-home} ${jdk-path} should be passed into this script -->
-  <!-- Set a meaningful default value for when it is not. -->
-  <property name="eclipse-home" value="${basedir}/../.."/>
-  <property name="jdk-path" value="${java.home}"/>  
-  <property name="destination" value="${eclipse-home}/org.eclipse.update.core.linux/os/linux/x86/"/>
-  <property name="obj-path" value="${eclipse-home}/org.eclipse.update.core.linux/src/"/>
-  <property name="src-path" value="${eclipse-home}/org.eclipse.update.core.linux/src/"/>  
-  
-  <!-- sets the properties -->
-  <property name="library-name" value="libupdate"/>  
-  <property name="library-platform" value="so"/>    
-  <property name="library-file" value="${library-name}.${library-platform}"/>
-  
-  <!-- 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="${obj-path}" includes="${library-file}"/>
-      <fileset dir="${obj-path}" includes="${library-name}.o"/>
-    </delete>
-  </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">
-      <delete>
-      <fileset dir="${obj-path}" includes="${library-file}"/>
-      <fileset dir="${obj-path}" includes="${library-name}.o"/>
-    </delete>
-  </target>
-  
-  
-  <!-- This target runs the build. -->
-  <target name="run" depends="init,build,cleanup">
-  </target>
-  
-  <!-- This target build the library -->
-  <target name="build">
-    <echo message="Building ${library-file}"/>
-
-    <property name="header-path" value="${jdk-path}/../include"/>
-    <property name="header-linux-path" value="${header-path}/linux" />
-
-	<echo message="gcc -o  ${library-file} -shared -I${src-path} -I${header-linux-path} ${library-file} -static -lc"/>
-
-    <apply executable="gcc" dest="${eclipse-home}/" parallel="false">
-      <arg value="-o"/>
-      <arg value="${library-file}"/>
-      <arg value="-shared"/>
-      <arg value="-I${src-path}"/>
-      <arg value="-I${header-path}"/>      
-      <arg value="-I${header-linux-path}"/>  
-	  <srcfile/>
-	  <arg value="-static"/>           
-      <arg value="-lc"/>	  
-      <fileset dir="${src-path}" includes="*.c"/>
-      <mapper type="glob" from="*.c" to="*.o"/>
-    </apply>
-    
-	<move file="${library-file}" todir="${destination}"/>
-  </target>
-  
-  
-</project>
\ No newline at end of file
diff --git a/update/org.eclipse.update.core.linux/src/update.c b/update/org.eclipse.update.core.linux/src/update.c
deleted file mode 100644
index a4508d7..0000000
--- a/update/org.eclipse.update.core.linux/src/update.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2002 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License 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

- *******************************************************************************/

-

-/* bug 82520 : need to include stdlib.h */

-# include <stdlib.h>

-# include <sys/types.h>

-# include <sys/statfs.h>

-# include <update.h>

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetFreeSpace

- * Signature: (Ljava/io/File;)J

- */

-JNIEXPORT jlong JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetFreeSpace(

-	JNIEnv * jnienv,

-	jclass javaClass,

-	jobject file) {

-

-	// to retrive the String

-	jclass cls;

-	jmethodID id;

-	jobject obj;

-

-	// java.io.File.getAbsolutePath()

-	const char * lpDirectoryName;

-

-	// Linux Parameters

-	struct statfs buffer;

-

-	// the result

-	jlong result = org_eclipse_update_configuration_LocalSystemInfo_SIZE_UNKNOWN;

-

-	cls = (*jnienv) -> GetObjectClass(jnienv, file);

-	id = (*jnienv) -> GetMethodID(jnienv, cls, "getAbsolutePath", "()Ljava/lang/String;");

-	obj = (*jnienv) -> CallObjectMethod(jnienv, file, id);

-	lpDirectoryName = (*jnienv) -> GetStringUTFChars(jnienv, (jstring) obj, 0);

-

-	// cast one argument as jlong to have a jlong result

-	int err = statfs(lpDirectoryName,&buffer);

-	if (err==0){

-		long size = buffer.f_bsize;

-		jlong free = buffer.f_bfree;

-		result = size*free;

-	}

-

-	return result;

-}

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetLabel

- * Signature: (Ljava/io/File;)Ljava/lang/String;

- */

-JNIEXPORT jstring JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetLabel(

-	JNIEnv * jnienv,

-	jclass javaClass,

-	jobject file) {

-

-	// to retrive the String

-	jclass cls;

-	jmethodID id;

-	jobject obj;

-

-	// java.io.File.getAbsolutePath()

-	const char * lpDirectoryName;

-

-	// obtain the String from the parameter

-	cls = (*jnienv) -> GetObjectClass(jnienv, file);

-	id = (*jnienv) -> GetMethodID(jnienv, cls, "getAbsolutePath", "()Ljava/lang/String;");

-	obj = (*jnienv) -> CallObjectMethod(jnienv, file, id);

-	lpDirectoryName = (*jnienv) -> GetStringUTFChars(jnienv, (jstring) obj, 0);

-

-	jstring result = NULL;

-

-	// Linux implementation following

-

-	return result;

-}

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetType

- * Signature: (Ljava/io/File;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetType(

-	JNIEnv * jnienv,

-	jclass javaClass,

-	jobject file) {

-

-	// to retrive the String

-	jclass cls;

-	jmethodID id;

-	jobject obj;

-

-	// java.io.File.getAbsolutePath()

-	const char * lpDirectoryName;

-

-	// obtain the String from the parameter

-	cls = (*jnienv) -> GetObjectClass(jnienv, file);

-	id = (*jnienv) -> GetMethodID(jnienv, cls, "getAbsolutePath", "()Ljava/lang/String;");

-	obj = (*jnienv) -> CallObjectMethod(jnienv, file, id);

-	lpDirectoryName = (*jnienv) -> GetStringUTFChars(jnienv, (jstring) obj, 0);

-

-	int result;

-	

-	// Linux implemantation

-

-	result = org_eclipse_update_configuration_LocalSystemInfo_VOLUME_INVALID_PATH;

-	return result;

-}

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeListMountPoints

- * Signature: ()[Ljava/lang/String;

- */

-JNIEXPORT jobjectArray JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeListMountPoints(

-	JNIEnv * jnienv,

-	jclass javaClass) {

-

-	//

-	int drive;

-	char driveName[100];

-	jobjectArray returnArray;

-	int nDrive = 0;

-

-	// 

-	jclass stringClass;

-	jobject empty;

-	int index = 0;

-	jobject str;

-

-	// Linux implementation

-	// find mount points

-

-	drive = 0;

-	stringClass = (*jnienv) -> FindClass(jnienv, "java/lang/String");

-	empty = (*jnienv) -> NewStringUTF(jnienv, "");

-	//returnArray = (*jnienv) -> NewObjectArray(jnienv, nDrive, stringClass, empty);

-

-	// for now return null as method is not implemented

-	returnArray = NULL;

-

-	int i;

-	for (i = 0; i < drive; i++) {

-		// Linux implementation, create String for each mount point

-

-		str = (*jnienv) -> NewStringUTF(jnienv, driveName);

-		(*jnienv) -> SetObjectArrayElement(jnienv, returnArray, index, str);

-

-		index++;

-	}

-

-	return returnArray;

-}

diff --git a/update/org.eclipse.update.core.linux/src/update.h b/update/org.eclipse.update.core.linux/src/update.h
deleted file mode 100644
index fef0347..0000000
--- a/update/org.eclipse.update.core.linux/src/update.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */

-

-/*******************************************************************************

- * Copyright (c) 2000, 2002 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License 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

- *******************************************************************************/

- 

-#include <jni.h>

-/* Header for class org_eclipse_update_configuration_LocalSystemInfo */

-

-#ifndef _Included_org_eclipse_update_configuration_LocalSystemInfo

-#define _Included_org_eclipse_update_configuration_LocalSystemInfo

-#ifdef __cplusplus

-extern "C" {

-#endif

-#undef org_eclipse_update_configuration_LocalSystemInfo_SIZE_UNKNOWN

-#define org_eclipse_update_configuration_LocalSystemInfo_SIZE_UNKNOWN -1L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_UNKNOWN

-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_UNKNOWN -1L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_INVALID_PATH

-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_INVALID_PATH -2L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOVABLE

-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOVABLE 1L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FIXED

-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FIXED 2L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOTE

-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOTE 3L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_CDROM

-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_CDROM 4L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_RAMDISK

-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_RAMDISK 5L

-/* Inaccessible static: listeners */

-/* Inaccessible static: hasNatives */

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetFreeSpace

- * Signature: (Ljava/io/File;)J

- */

-JNIEXPORT jlong JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetFreeSpace

-  (JNIEnv *, jclass, jobject);

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetLabel

- * Signature: (Ljava/io/File;)Ljava/lang/String;

- */

-JNIEXPORT jstring JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetLabel

-  (JNIEnv *, jclass, jobject);

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetType

- * Signature: (Ljava/io/File;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetType

-  (JNIEnv *, jclass, jobject);

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeListMountPoints

- * Signature: ()[Ljava/lang/String;

- */

-JNIEXPORT jobjectArray JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeListMountPoints

-  (JNIEnv *, jclass);

-

-#ifdef __cplusplus

-}

-

-#endif

-#endif

diff --git a/update/org.eclipse.update.core.win32/.project b/update/org.eclipse.update.core.win32/.project
deleted file mode 100644
index 8c9b28f..0000000
--- a/update/org.eclipse.update.core.win32/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.update.core.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/update/org.eclipse.update.core.win32/about.html b/update/org.eclipse.update.core.win32/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/update/org.eclipse.update.core.win32/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/update/org.eclipse.update.core.win32/build.properties b/update/org.eclipse.update.core.win32/build.properties
deleted file mode 100644
index 99cd557..0000000
--- a/update/org.eclipse.update.core.win32/build.properties
+++ /dev/null
@@ -1,17 +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 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
-###############################################################################
-bin.includes = fragment.xml,\
-               os/,\
-               fragment.properties,\
-               about.html
-src.includes = fragment.xml,\
-               about.html,\
-               src/
diff --git a/update/org.eclipse.update.core.win32/fragment.xml b/update/org.eclipse.update.core.win32/fragment.xml
deleted file mode 100644
index 81d8e7b..0000000
--- a/update/org.eclipse.update.core.win32/fragment.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<fragment
-   id="org.eclipse.update.core.win32"
-   name="%fragmentNameWin"
-   version="3.0.0"
-   provider-name="%providerName"
-   plugin-id="org.eclipse.update.core"
-   plugin-version="3.0.0"
-   match="compatible">
-
-   <runtime>
-   </runtime>
-
-
-</fragment>
diff --git a/update/org.eclipse.update.core.win32/os/win32/x86/update.dll b/update/org.eclipse.update.core.win32/os/win32/x86/update.dll
deleted file mode 100644
index 428e60e..0000000
--- a/update/org.eclipse.update.core.win32/os/win32/x86/update.dll
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.core.win32/src/build.xml b/update/org.eclipse.update.core.win32/src/build.xml
deleted file mode 100644
index 92286b7..0000000
--- a/update/org.eclipse.update.core.win32/src/build.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="buildlibrary" default="run" basedir="."> 
-  
-  <!-- The properties ${eclipse-home} ${jdk-path} should be passed into this script -->
-  <!-- The Path should point to the bin directory of BCC55 -->
-  <!-- http://www.borland.com/products/downloads/download_cbuilder.html -->
-  
-  <!-- Set a meaningful default value for when it is not. -->
-  <property name="eclipse-home" value="${basedir}/../.."/>
-  <property name="jdk-path" value="${java.home}"/>  
-  <property name="destination" value="${eclipse-home}/org.eclipse.update.core.win32/os/win32/x86/"/>
-  <property name="obj-path" value="${eclipse-home}/org.eclipse.update.core.win32/src"/>
-  <property name="src-path" value="${eclipse-home}/org.eclipse.update.core.win32/src/"/>  
-  
-  <!-- sets the properties -->
-  <property name="library-name" value="update"/>  
-  <property name="library-platform" value="dll"/>    
-  <property name="library-file" value="${library-name}.${library-platform}"/>
-  
-  <!-- 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="${obj-path}" includes="${library-file}"/>
-      <fileset dir="${obj-path}" includes="${library-name}.obj"/>
-      <fileset dir="${obj-path}" includes="${library-name}.tds"/>            
-    </delete>
-  </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">
-      <delete>
-      <fileset dir="${obj-path}" includes="${library-file}"/>
-      <fileset dir="${obj-path}" includes="${library-name}.obj"/>
-      <fileset dir="${obj-path}" includes="${library-name}.tds"/>            
-    </delete>
-  </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,build,cleanup">
-  </target>
-  
-  <!-- This target build the dll -->
-  <target name="build">
-    <echo message="Building ${library-file}"/>
-
-    <property name="header-path" value="${jdk-path}/include"/>
-    <property name="header-windows-path" value="${header-path}/win32" />
-
-	<echo message="bcc32 -I${src-path} -I${header-windows-path} -WD"/>
-
-    <apply executable="bcc32" dest="${eclipse-home}/" parallel="false">
-      <arg value="-I${src-path}"/>
-      <arg value="-I${header-path}"/>      
-      <arg value="-I${header-windows-path}"/> 
-      <!-- arg value="-DUNICODE" --> 
-	  <arg value="-w-8057"/>           
-      <arg value="-WD"/>
-	  <srcfile/>
-      <fileset dir="${src-path}" includes="*.cpp"/>
-      <mapper type="glob" from="*.cpp" to="*.obj"/>
-    </apply>
-    
-	<move file="${library-file}" todir="${destination}"/>
-  </target>
-  
-  
-</project>
\ No newline at end of file
diff --git a/update/org.eclipse.update.core.win32/src/update.cpp b/update/org.eclipse.update.core.win32/src/update.cpp
deleted file mode 100644
index cb27fd5..0000000
--- a/update/org.eclipse.update.core.win32/src/update.cpp
+++ /dev/null
@@ -1,487 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2002 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License 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

- *******************************************************************************/

-

-# include <update.h>

-# include <windows.h>

-# include <winioctl.h> // IOCTL codes: MediaType

-

-// Windows Version

-int WIN98 = 0;

-int WINNT = 1;

-int WINME = 2;

-int WIN2000 = 3;

-int WINXP = 4;

-

-// set to 1 for DEBUG

-int DEBUG = 0;

-

-// set to 0 to run on Windows 95 *Unsupported*

-int NOWIN95 = 1;

-

-

-// GLOBAL METHODS

-// ---------------

-

-/*

- *

- */

-jstring WindowsTojstring( JNIEnv* jnienv, char* buf )

-{

-  jstring rtn = 0;

-  wchar_t* buffer = 0;

-  int bufferLen = strlen(buf);  

-  if( bufferLen == 0 ){

-    rtn = jnienv ->NewStringUTF(buf);

-	if (DEBUG)

-		printf("WindowsToJString Buffer is empty\n");    

-  } else {

-    int length = MultiByteToWideChar( CP_ACP, 0, (LPCSTR)buf, bufferLen, NULL, 0 );

-    buffer = (wchar_t*)malloc( length*2 + 1 );

-    if(int err=MultiByteToWideChar( CP_ACP, 0, (LPCSTR)buf, bufferLen, (LPWSTR)buffer, length ) >0 ){

-      rtn = jnienv->NewString((jchar*)buffer, length );

-    } else {

-		if (DEBUG)

-			printf("MultiByteToWideChar %i\n",err);    

-    }

-  }

-  if( buffer )

-   free( buffer );

-  return rtn;

-}

-

-

-

-/*

- * calls GetVolumeInformation to retrive the label of the volume

- * Returns NULL if an error occurs

- * @param driveLetter path to the drive "c:\\"

- * @prama jnienv JNIEnvironment

- */

-jstring getLabel(TCHAR driveLetter[],JNIEnv * jnienv){

-

-	jstring result = NULL;

-	TCHAR buf[128];	

-	

-	// always return null as UNICODE is not implemented

-	// how can we get the label of a volume as UNICODE char ?

-	return result;

-	

-	int err = GetVolumeInformation(

-		driveLetter,

-		buf,

-		sizeof(buf) - 1,

-		NULL,

-		NULL,

-		NULL,

-		NULL,

-		0);

-	if (err){

-		result = WindowsTojstring(jnienv, buf);

-	} else {

-		if (DEBUG)

-			printf("Error GetVolumeInformation %i\n",err);				

- 	}

-	return result;

-}

-

-/*

- * returns the Version of Windows

- * int 0 WIN98;

- * int 1 WINNT;

- * int 2 WINME;

- * int 3 WIN2000;

- * int 4 WINXP;

- * returns -1 otherwise

- */

-int getWindowsVersion(){

-	OSVERSIONINFOEX osvi;

-	int UNKNOWN = -1;

-	

-	ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));

-	osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);

-	

-	if(!(GetVersionEx((OSVERSIONINFO *)&osvi))){

-		if (DEBUG)

-			printf("UNKNOWN VERSION: Cannot execute GetVersionEx\n");

-		// if OSVERSIONEX doesn't work, try OSVERSIONINFO

-		osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);			 	

-		if(!(GetVersionEx((OSVERSIONINFO *)&osvi))){

-		if (DEBUG)

-			printf("UNKNOWN VERSION: Cannot execute GetVersionEx\n");

-			return UNKNOWN;

-		}

-	}

-	

-	switch(osvi.dwPlatformId){

-		case VER_PLATFORM_WIN32_NT:

-			if (DEBUG)

-				printf("VERSION NT: Maj %i Min %i\n",osvi.dwMajorVersion,osvi.dwMinorVersion);				 	

-			if(osvi.dwMajorVersion<=4)

-				return WINNT;

-			if(osvi.dwMajorVersion==5){

-				if (osvi.dwMinorVersion==0)

-					return WIN2000;

-				if (osvi.dwMinorVersion==1)

-					return WINXP;

-			} else {

-				return UNKNOWN;

-			};

-			break;

-		case VER_PLATFORM_WIN32_WINDOWS:

-			if (DEBUG)

-				printf("VERSION Non NT: Maj %i Min %i\n",osvi.dwMajorVersion,osvi.dwMinorVersion);				 	

-			if(osvi.dwMajorVersion==4){

-				if (osvi.dwMinorVersion==10)

-					return WIN98;

-				if (osvi.dwMinorVersion==90)

-					return WINME;

-			} else {

-				return UNKNOWN;

-			}

-			break;

-		default:

-			if (DEBUG)

-				printf("VERSION UNKNOWN: Maj %i Min %i\n",osvi.dwMajorVersion,osvi.dwMinorVersion);				 	

-			return UNKNOWN;

-	}

-	return UNKNOWN;

-} 

-

-/*

- * Returns the type of Removable Drive 

- * Returns 

- * org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FLOPPY_3

- * org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FLOPPY_5

- * org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOVABLE

- */

-jlong getFloppy(TCHAR driveLetter[]){

-

-	TCHAR floppyPath[8];

-	HANDLE handle;

-	DISK_GEOMETRY geometry[20];

-	DWORD dw;

-	jlong UNKNOWN = org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOVABLE;

-

-	sprintf(floppyPath, "\\\\.\\%c:", driveLetter[0]);

-	if (DEBUG)

-		printf("Path %s\n",floppyPath);

-	// BUG 25719

-    SetErrorMode( SEM_FAILCRITICALERRORS ); 		

-	handle=CreateFile(floppyPath,0,FILE_SHARE_READ,NULL,OPEN_ALWAYS,0,NULL);

-	if (handle==INVALID_HANDLE_VALUE){

-		if (DEBUG)

-			printf("Invalid Handle %s\n",floppyPath);

-		return UNKNOWN;

-	} else {

-		if(DeviceIoControl(handle,

-			IOCTL_DISK_GET_MEDIA_TYPES,0,0,

-			geometry,sizeof(geometry),&dw,0) 

-			&& dw>0) {

-			switch(geometry[0].MediaType){

-			 case F5_160_512:

-			 case F5_180_512:

-			 case F5_320_512:

-			 case F5_320_1024:

-			 case F5_360_512:

-			 case F5_1Pt2_512:

-				if (DEBUG)

-					printf("Found 5 1/4 Drive\n");				 	

-			 	return org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FLOPPY_5;

-			 case F3_720_512:			 				 				 				 				 

-			 case F3_1Pt44_512:

-			 case F3_2Pt88_512:

-			 case F3_20Pt8_512:				 				 				 

-				if (DEBUG)

-					printf("Found 3 1/2 Drive\n");				 	

-			 	return org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FLOPPY_3;

-			 default:

-			 	return UNKNOWN;

-			}

-		}

-	}

-	return UNKNOWN;	

-}

-

-/*

- * Returns the UNC name of a remote drive

- * (\\Machine\path\path1\path2$)

- * returns NULL if an error occurs

- */

- jstring getRemoteNetworkName(TCHAR driveLetter[],JNIEnv * jnienv){

- 	

- 	unsigned long size =256;

- 	TCHAR buf[256];	

- 	TCHAR drivePath[2];

- 	DWORD err;

- 	jstring result = NULL;

- 	

- 	// always return NULL as UNICODE not implemented

-	// how can we get the label of a remote network name as UNICODE char ? 	

- 	return result;

- 	

-	sprintf(drivePath, "%c:", driveLetter[0]); 	

- 	err = WNetGetConnection(drivePath,buf,&size);

- 	

- 	if (err==WN_SUCCESS){

-		result = WindowsTojstring(jnienv,buf);

-	} else {

-		if (DEBUG)

-			printf("Error WNEtGetConnection %i",err);				

- 	}

-	return result;

- }

-

-

-// JNI METHODS

-// ---------------

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetFreeSpace

- * Signature: (Ljava/io/File;)J

- */

-JNIEXPORT jlong JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetFreeSpace(

-	JNIEnv * jnienv,

-	jclass javaClass,

-	jobject file) {

-

-	// to retrive the String

-	jclass cls;

-	jmethodID id;

-	jobject obj;

-

-	// java.io.File.getAbsolutePath()

-	const TCHAR * lpDirectoryName;

-

-	// Windows Parameters

-	__int64 i64FreeBytesAvailableToCaller;

-	__int64 i64TotalNumberOfBytes;

-	__int64 i64TotalNumberOfFreeBytes;

-

-	// the result

-	jlong result = org_eclipse_update_configuration_LocalSystemInfo_SIZE_UNKNOWN;

-

-	// first, obtain the Path from the java.io.File parameter

-	cls = jnienv -> GetObjectClass(file);

-	id = jnienv -> GetMethodID(cls, "getAbsolutePath", "()Ljava/lang/String;");

-	obj = jnienv -> CallObjectMethod(file, id);

-	lpDirectoryName = jnienv -> GetStringUTFChars((jstring) obj, 0);

-	if (DEBUG)

-		printf("Directory: [%s]\n",lpDirectoryName);

-

-	if (int win = (int)getWindowsVersion()<0 && NOWIN95){

-		// windows 95 or other

-		if (DEBUG)

-			printf("Unsupported Windows: %i\n",win);		

-		return result;

-	}

-

-	int err = GetDiskFreeSpaceEx(

-				lpDirectoryName,

-				(PULARGE_INTEGER) & i64FreeBytesAvailableToCaller,

-				(PULARGE_INTEGER) & i64TotalNumberOfBytes,

-				(PULARGE_INTEGER) & i64TotalNumberOfFreeBytes);

-			

-	if (err) {

-		result = (jlong) i64FreeBytesAvailableToCaller;

-	}

-

-	return result;

-}

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetLabel

- * Signature: (Ljava/io/File;)Ljava/lang/String;

- */

-JNIEXPORT jstring JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetLabel(

-	JNIEnv * jnienv,

-	jclass javaClass,

-	jobject file) {

-

-	// to retrive the String

-	jclass cls;

-	jmethodID id;

-	jobject obj;

-

-	// java.io.File.getAbsolutePath()

-	const TCHAR * lpDirectoryName;

-

-	// obtain the String from the parameter

-	cls = jnienv -> GetObjectClass(file);

-	id = jnienv -> GetMethodID(cls, "getAbsolutePath", "()Ljava/lang/String;");

-	obj = jnienv -> CallObjectMethod(file, id);

-	lpDirectoryName = jnienv -> GetStringUTFChars((jstring) obj, 0);

-	if (DEBUG)

-		printf("Directory: [%s]\n",lpDirectoryName);

-

-	//

-	jstring result = NULL;

-	int floppy;

-	

-	if (int win = (int)getWindowsVersion()<0 && NOWIN95){

-		// windows 95 or other

-		if (DEBUG)

-			printf("Unsupported Windows: %i\n",win);		

-		return result;

-	}

-		

-	// Make sure we have a String of the Form: <letter>:

-	if (':' == lpDirectoryName[1]) {

-		TCHAR driveLetter[4]; // i.e. -> C:\\

-		memcpy(driveLetter, lpDirectoryName, 2);

-		strcpy(driveLetter + 2, "\\");

-		switch (GetDriveType(driveLetter)) {

-			case DRIVE_REMOTE :

-				// check name of machine and path of remote

-				if (DEBUG)

-					printf("Remote Drive");

-				result = getRemoteNetworkName(driveLetter,jnienv);				

-				break;

-			default :

-				if (DEBUG)

-					printf("Another Drive at %s", driveLetter);

-				result = getLabel(driveLetter,jnienv);

-				break;

-		} 

-	} 

-

-	return result;

-}

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetType

- * Signature: (Ljava/io/File;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetType(

-	JNIEnv * jnienv,

-	jclass javaClass,

-	jobject file) {

-

-	// to retrive the String

-	jclass cls;

-	jmethodID id;

-	jobject obj;

-

-	// java.io.File.getAbsolutePath()

-	const TCHAR * lpDirectoryName;

-

-	// obtain the String from the parameter

-	cls = jnienv -> GetObjectClass(file);

-	id = jnienv -> GetMethodID(cls, "getAbsolutePath", "()Ljava/lang/String;");

-	obj = jnienv -> CallObjectMethod(file, id);

-	lpDirectoryName = jnienv -> GetStringUTFChars((jstring) obj, 0);

-	if (DEBUG)

-		printf("Directory: [%s]\n",lpDirectoryName);

-

-	int result = org_eclipse_update_configuration_LocalSystemInfo_VOLUME_UNKNOWN;

-	if (int win = (int)getWindowsVersion()<0 && NOWIN95){

-		// windows 95 or other

-		if (DEBUG)

-			printf("Unsupported Windows: %i\n",win);		

-		return result;

-	}

-	

-	// Make sure we have a String of the Form: <letter>:

-	if (':' == lpDirectoryName[1]) {

-		TCHAR driveLetter[4]; //C:\\

-		memcpy(driveLetter, lpDirectoryName, 2);

-		strcpy(driveLetter + 2, "\\");

-

-		switch (GetDriveType(driveLetter)) {

-			case DRIVE_REMOVABLE :

-				// check if floppy 3.5, floppy 5.25	

-				// or other removable device (USB,PCMCIA ...)

-				if (DEBUG)

-					printf("Removable Device");

-				result = getFloppy(driveLetter);					

-				break;

-			case DRIVE_CDROM :

-				result = org_eclipse_update_configuration_LocalSystemInfo_VOLUME_CDROM;

-				break;

-			case DRIVE_FIXED :

-				result = org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FIXED;

-				break;

-			case DRIVE_REMOTE :

-				result = org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOTE;

-				break;

-			case DRIVE_NO_ROOT_DIR :

-				result = org_eclipse_update_configuration_LocalSystemInfo_VOLUME_INVALID_PATH;

-				break;

-			case DRIVE_RAMDISK :

-				result = org_eclipse_update_configuration_LocalSystemInfo_VOLUME_RAMDISK;

-				break;			

-			case DRIVE_UNKNOWN :

-			default :

-				result = org_eclipse_update_configuration_LocalSystemInfo_VOLUME_UNKNOWN;

-				break;

-		}

-	} else {

-		result = org_eclipse_update_configuration_LocalSystemInfo_VOLUME_INVALID_PATH;

-	}

-

-	return result;

-}

-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeListMountPoints

- * Signature: ()[Ljava/lang/String;

- */

-JNIEXPORT jobjectArray JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeListMountPoints(

-	JNIEnv * jnienv,

-	jclass javaClass) {

-

-	//

-	DWORD logDrives;

-	UINT drive;

-	TCHAR driveName[100];

-	jobjectArray returnArray;

-	int nDrive = 0;

-

-	// 

-	jclass stringClass;

-	jobject empty;

-	int index = 0;

-	jobject str;

-

-

-	logDrives = GetLogicalDrives();

-	for (drive = 0; drive < 32; drive++) {

-		if (logDrives & (1 << drive)) {

-			nDrive++;

-		}

-	}

-

-	stringClass = jnienv -> FindClass("java/lang/String");

-	empty = jnienv -> NewStringUTF("");

-	returnArray = jnienv -> NewObjectArray(nDrive, stringClass, empty);

-

-	if (int win = (int)getWindowsVersion()<0 && NOWIN95){

-		// windows 95 or other

-		if (DEBUG)

-			printf("Unsupported Windows: %i\n",win);	

-		return NULL;

-	}

-

-	for (drive = 0; drive < 32; drive++) {

-		if (logDrives & (1 << drive)) {

-			sprintf(driveName, "%c:\\", drive + 'A');

-			str = jnienv -> NewStringUTF(driveName);

-			jnienv -> SetObjectArrayElement(returnArray, index, str);

-			index++;

-		}

-	}

-

-	return returnArray;

-}

-

diff --git a/update/org.eclipse.update.core.win32/src/update.h b/update/org.eclipse.update.core.win32/src/update.h
deleted file mode 100644
index 35673d1..0000000
--- a/update/org.eclipse.update.core.win32/src/update.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-
-/*******************************************************************************
- * Copyright (c) 2000, 2002 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License 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
- *******************************************************************************/
-#include <jni.h>

-/* Header for class org_eclipse_update_configuration_LocalSystemInfo */
-
-#ifndef _Included_org_eclipse_update_configuration_LocalSystemInfo
-#define _Included_org_eclipse_update_configuration_LocalSystemInfo

-#ifdef __cplusplus
-extern "C" {
-#endif

-#undef org_eclipse_update_configuration_LocalSystemInfo_SIZE_UNKNOWN
-#define org_eclipse_update_configuration_LocalSystemInfo_SIZE_UNKNOWN -1L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_UNKNOWN
-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_UNKNOWN -1L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_INVALID_PATH
-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_INVALID_PATH -2L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOVABLE
-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOVABLE 1L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FIXED
-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FIXED 2L

-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOTE
-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_REMOTE 3L
-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_CDROM
-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_CDROM 4L
-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_RAMDISK
-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_RAMDISK 5L
-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FLOPPY_5
-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FLOPPY_5 6L
-#undef org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FLOPPY_3
-#define org_eclipse_update_configuration_LocalSystemInfo_VOLUME_FLOPPY_3 7L

-/* Inaccessible static: listeners */

-/* Inaccessible static: hasNatives */

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetFreeSpace

- * Signature: (Ljava/io/File;)J

- */

-JNIEXPORT jlong JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetFreeSpace

-  (JNIEnv *, jclass, jobject);
-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetLabel

- * Signature: (Ljava/io/File;)Ljava/lang/String;

- */

-JNIEXPORT jstring JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetLabel

-  (JNIEnv *, jclass, jobject);
-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeGetType

- * Signature: (Ljava/io/File;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeGetType

-  (JNIEnv *, jclass, jobject);
-

-/*

- * Class:     org_eclipse_update_configuration_LocalSystemInfo

- * Method:    nativeListMountPoints

- * Signature: ()[Ljava/lang/String;

- */

-JNIEXPORT jobjectArray JNICALL Java_org_eclipse_update_configuration_LocalSystemInfo_nativeListMountPoints

-  (JNIEnv *, jclass);
-

-#ifdef __cplusplus
-}
-
-#endif

-#endif

diff --git a/update/org.eclipse.update.core/.classpath b/update/org.eclipse.update.core/.classpath
deleted file mode 100644
index 4848249..0000000
--- a/update/org.eclipse.update.core/.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/update/org.eclipse.update.core/.cvsignore b/update/org.eclipse.update.core/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/update/org.eclipse.update.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/.options b/update/org.eclipse.update.core/.options
deleted file mode 100644
index 7bf6197..0000000
--- a/update/org.eclipse.update.core/.options
+++ /dev/null
@@ -1,9 +0,0 @@
-org.eclipse.update.core/debug=true

-org.eclipse.update.core/debug/warning=false

-org.eclipse.update.core/debug/parsing=false

-org.eclipse.update.core/debug/install=false

-org.eclipse.update.core/debug/configuration=false

-org.eclipse.update.core/debug/type=false

-org.eclipse.update.core/debug/web=false

-org.eclipse.update.core/debug/installhandler=false

-org.eclipse.update.core/debug/reconciler=false

diff --git a/update/org.eclipse.update.core/.project b/update/org.eclipse.update.core/.project
deleted file mode 100644
index 4a0c6a2..0000000
--- a/update/org.eclipse.update.core/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.update.core</name>

-	<comment></comment>

-	<projects>

-		<project>org.eclipse.core.boot</project>

-		<project>org.eclipse.core.runtime</project>

-		<project>org.eclipse.update.configurator</project>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/update/org.eclipse.update.core/Scrapbook.jpage b/update/org.eclipse.update.core/Scrapbook.jpage
deleted file mode 100644
index c2633ae..0000000
--- a/update/org.eclipse.update.core/Scrapbook.jpage
+++ /dev/null
@@ -1,431 +0,0 @@
-		java.util.Enumeration enum =  System.getProperties().keys();

-		String key = null;

-		while (enum.hasMoreElements()){

-			key = (String)enum.nextElement();

-			System.out.print(key);

-			for (int i =0;i<(30-key.length());i++)System.out.print(" ");

-			System.out.println("->"+System.getProperty(key));

-		}

-

-

-new java.net.URL("file://C:/temp/org.eclipse.update.core.feature1_1.0.0/org.eclipse.update.core.feature1.plugin1_1.1.1.jar").openStream()

-

-(new java.io.File("C:\\chris chris\hello\\")).mkdirs();

-

-java.net.URL a =  new java.net.URL("http","www.oti.com","/feature/blah.jar");

-java.net.URL b =  new java.net.URL("jar",null,a.toExternalForm()+"!/hello.txt");

-b

-

-new java.net.URL("file",null,System.getProperty("java.io.tmpdir"));

-new java.net.URL("file",null,System.getProperty("user.home"));

-

-String tempDir = "c:\\TEMP\\features2.jar";

-java.net.URL TEMP_SITE = new java.net.URL("file",null,tempDir);

-java.net.URL file = new java.net.URL("jar",null,TEMP_SITE.toExternalForm()+"!/feature.xml");

-file.openStream();

-file

-

-java.io.File f =  new java.io.File("c:\\temp\\xtf\\file.jar");

-f.mkdirs()

-

-java.util.Locale.getDefault()

-java.util.ResourceBundle

-

-java.net.URL url = new java.net.URL("file",null,"C:\\path"+java.io.File.separator);

-url.getPath().endsWith("/");

-url

-

-java.net.URL url = new java.net.URL("http://machine:8080/path space/file.abc#hello");

-java.net.URL url2 = new java.net.URL(url,"/ ");

-url2.getPath()

-

-java.lang.ClassLoader l = new java.net.URLClassLoader(new java.net.URL[] {new java.net.URL("file",null,"c:\\oti\\wsw205\\eclipse\\install\\features\\org.eclipse.help.feature_1.0.4/") }, null);

-java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("feature", java.util.Locale.getDefault(), l);

-bundle

-

-String[] ss = {"a", "b"}; 

-java.util.List list = new java.util.ArrayList(0);

-list.addAll(java.util.Arrays.asList(ss)); 

-list.add("c");

-list.size();

-

-java.util.List list = new java.util.ArrayList(0);

-list.add("1");

-list.add("2");

-list.add("3");

-list.add("4");

-list.add("5");

-list.add("6");

-list.add("7");

-while (list.size()>5){

-	list.remove(0);

-}

-list.get(0)

-

-

-org.eclipse.update.internal.security.KeyStores k = new org.eclipse.update.internal.security.KeyStores();

-while (k.hasNext()){

-	org.eclipse.update.internal.security.KeystoreHandle handle = (org.eclipse.update.internal.security.KeystoreHandle) k.next();

-	System.out.println("KeyStore:"+handle.getLocation()+":"+handle.getType());

-}

-

-int i = (13/3);

-i

-

-*****************************************

-OLD Feature Code

-

-

-	/**

-	 */

-	private void downloadArchivesLocally(ISite tempSite, String[] archiveIDToInstall, IProgressMonitor monitor) throws CoreException, IOException {

-

-		URL sourceURL;

-		String newFile;

-		URL newURL;

-

-		if (monitor != null) {

-			monitor.beginTask("Download archives bundles to Temporary Space", archiveIDToInstall.length);

-		}

-		for (int i = 0; i < archiveIDToInstall.length; i++) {

-

-			// transform the id by asking the site to map them to real URL inside the SITE

-			if (getSite() != null) {

-				sourceURL = getSite().getSiteContentProvider().getArchivesReferences(archiveIDToInstall[i]);

-				if (monitor != null) {

-					monitor.subTask("..." + archiveIDToInstall[i]);

-				}

-				// the name of the file in the temp directory

-				// should be the regular plugins/pluginID_ver as the Temp site is OUR site

-				newFile = Site.DEFAULT_PLUGIN_PATH + archiveIDToInstall[i];

-				newURL = UpdateManagerUtils.resolveAsLocal(sourceURL, newFile, monitor);

-

-				// transfer the possible mapping to the temp site						

-				 ((Site) tempSite).addArchive(new URLEntry(archiveIDToInstall[i], newURL));

-				if (monitor != null) {

-					monitor.worked(1);

-					if (monitor.isCanceled()) {

-						throw CANCEL_EXCEPTION;

-					}

-				}

-			}

-		}

-

-		// the site of this feature now becomes the TEMP directory

-		// FIXME: make sure there is no other issue

-		// like asking for stuff that hasn't been copied

-		// or reusing this feature

-		// of having an un-manageable temp site

-

-		this.setSite(tempSite);

-

-	}

-

-	/**

-	 */

-	private void downloadDataLocally(IFeature targetFeature, INonPluginEntry[] dataToInstall, IProgressMonitor monitor) throws CoreException, IOException {

-

-		URL sourceURL;

-		// any other data

-		INonPluginEntry[] entries = getNonPluginEntries();

-		if (entries != null) {

-			if (monitor != null) {

-				monitor.beginTask("Installing Other Data information", dataToInstall.length);

-				if (monitor.isCanceled()) {

-					throw CANCEL_EXCEPTION;

-				}

-			}

-

-			for (int j = 0; j < entries.length; j++) {

-				String name = dataToInstall[j].getIdentifier();

-				if (monitor != null) {

-					monitor.subTask("..." + name);

-				}

-

-				// the id is URL format with "/"

-				String dataEntryId = Site.DEFAULT_FEATURE_PATH + getIdentifier().toString() + "/" + name;

-				// transform the id by asking the site to map them to real URL inside the SITE

-				if (getSite() != null) {

-					sourceURL = getSite().getSiteContentProvider().getArchivesReferences(dataEntryId);

-					((Site) targetFeature.getSite()).storeFeatureInfo(getIdentifier(), name, sourceURL.openStream());

-					if (monitor != null) {

-						monitor.worked(1);

-						if (monitor.isCanceled()) {

-							throw CANCEL_EXCEPTION;

-						}

-					}

-				}// getSite==null

-			}

-		}

-	}

-	

-	

-		/**

-		 * Method install.

-		 * @param targetFeature

-		 * @param monitor

-		 * @throws CoreException

-		 */

-	public void old_install(IFeature targetFeature, IProgressMonitor monitor) throws CoreException {

-

-		IPluginEntry[] sourceFeaturePluginEntries = getPluginEntries();

-		IPluginEntry[] targetSitePluginEntries = targetFeature.getSite().getPluginEntries();

-		Site tempSite = (Site) SiteManager.getTempSite();

-

-		// determine list of plugins to install

-		// find the intersection between the two arrays of IPluginEntry...

-		// The one teh site contains and teh one the feature contains

-		IPluginEntry[] pluginsToInstall = intersection(sourceFeaturePluginEntries, targetSitePluginEntries);

-

-		// private abstract - Determine list of content references id /archives id /bundles id that 

-		// map the list of plugins to install

-		String[] archiveIDToInstall = getContentReferenceToInstall(pluginsToInstall);

-

-		try {

-			// download and install data bundles

-			// before we set the site of teh feature to the TEMP site

-			INonPluginEntry[] dataEntries = getNonPluginEntries();

-			if (dataEntries.length > 0) {

-				downloadDataLocally(targetFeature, dataEntries, monitor);

-			}

-

-			// optmization, may be private to implementation

-			// copy *blobs/content references/archives/bundles* in TEMP space

-			if (((Site) getSite()).optimize()) {

-				if (archiveIDToInstall != null) {

-					downloadArchivesLocally(tempSite, archiveIDToInstall, monitor);

-				}

-			}

-

-			// obtain the list of *Streamable Storage Unit*

-			// from the archive

-			if (monitor != null) {

-				int total = pluginsToInstall == null ? 1 : pluginsToInstall.length + 1;

-				monitor.beginTask("Install feature " + getLabel(), total);

-			}

-			if (pluginsToInstall != null) {

-				InputStream inStream = null;

-				for (int i = 0; i < pluginsToInstall.length; i++) {

-					if (monitor != null) {

-						monitor.subTask("Installing plug-in: " + pluginsToInstall[i]);

-						if (monitor.isCanceled()) {

-							throw CANCEL_EXCEPTION;

-						}

-					}

-

-					open(pluginsToInstall[i]);

-					String[] names = getStorageUnitNames(pluginsToInstall[i]);

-					if (names != null) {

-						for (int j = 0; j < names.length; j++) {

-							if ((inStream = getInputStreamFor(pluginsToInstall[i], names[j])) != null)

-								targetFeature.store(pluginsToInstall[i], names[j], inStream);

-						}

-					}

-					close(pluginsToInstall[i]);

-					if (monitor != null) {

-						monitor.worked(1);

-						if (monitor.isCanceled()) {

-							throw CANCEL_EXCEPTION;

-						}

-					}

-

-				}

-			}

-

-			// install the Feature info

-			InputStream inStream = null;

-			String[] names = getStorageUnitNames(this);

-			if (names != null) {

-				openFeature();

-				if (monitor != null) {

-					monitor.subTask("Installing Feature information");

-					if (monitor.isCanceled()) {

-						throw CANCEL_EXCEPTION;

-					}

-				}

-

-				for (int j = 0; j < names.length; j++) {

-					if ((inStream = getInputStreamFor(this, names[j])) != null)

-						 ((Site) targetFeature.getSite()).storeFeatureInfo(getIdentifier(), names[j], inStream);

-				}

-				closeFeature();

-				if (monitor != null) {

-					monitor.worked(1);

-					if (monitor.isCanceled()) {

-						throw CANCEL_EXCEPTION;

-					}

-				}

-

-			}

-

-		} catch (IOException e) {

-			String id = UpdateManagerPlugin.getPlugin().getDescriptor().getUniqueIdentifier();

-			IStatus status = new Status(IStatus.ERROR, id, IStatus.OK, "Error during Install", e);

-			throw new CoreException(status);

-		} finally {

-			//do not clean up TEMP drive

-			// as other feature may be there... clean up when exiting the plugin

-		}

-	}

-	

-	

-		/**

-	 * @see IPluginContainer#store(IPluginEntry, String, InputStream)

-	 */

-	public void store(IPluginEntry pluginEntry, String contentKey, InputStream inStream) throws CoreException {

-		// check if pluginEntry already exists before passing to the site

-		// anything else ?

-		boolean found = false;

-		int i = 0;

-		IPluginEntry[] entries = getPluginEntries();

-		while (i < entries.length && !found) {

-			if (entries[i].equals(pluginEntry)) {

-				found = true;

-			}

-			i++;

-		}

-		if (!found) {

-			String id = UpdateManagerPlugin.getPlugin().getDescriptor().getUniqueIdentifier();

-			IStatus status = new Status(IStatus.ERROR, id, IStatus.OK, "The plugin:" + pluginEntry.getIdentifier().toString() + " is not part of the plugins of the feature:" + this.getIdentifier().toString(), null);

-			throw new CoreException(status);

-		}

-		getSite().store(pluginEntry, contentKey, inStream);

-	}

-	

-		/**

-	 * perform pre processing before opening a plugin archive

-	 * @param entry the plugin about to be opened

-	 */

-	protected void open(IPluginEntry entry) {

-	};

-

-	/**

-	 * perform post processing to close a plugin archive

-	 * @param entry the plugin about to be closed

-	 */

-	protected void close(IPluginEntry entry) throws IOException {

-	};

-

-	/**

-	 * perform pre processing before opening the feature archive

-	 */

-	protected void openFeature() {

-	};

-

-	/**

-	 * perform post processing to close a feature archive

-	 */

-	public void closeFeature() throws IOException {

-	};

-	

-	

-		/**

-	 * return the list of FILE to be transfered for a Plugin

-	 */

-	protected abstract String[] getStorageUnitNames(IPluginEntry pluginEntry) throws CoreException;

-

-	/**

-	 * return the list of FILE to be transfered from within the Feature

-	 */

-	protected abstract String[] getStorageUnitNames(IFeature feature) throws CoreException;

-

-	/**

-	 * return the Stream of the FILE to be transfered for a Plugin

-	 */

-	protected abstract InputStream getInputStreamFor(IPluginEntry pluginEntry, String name) throws CoreException;

-

-	/**

-	 * return the Stream of FILE to be transfered from within the Feature

-	 */

-	protected abstract InputStream getInputStreamFor(IFeature feature, String name) throws IOException, CoreException;

-

-	/**

-	 * returns the list of archive to transfer/install

-	 * in order to install the list of plugins

-	 * 

-	 * @param pluginsToInstall list of plugin to install 

-	 */

-	protected abstract String[] getContentReferenceToInstall(IPluginEntry[] pluginsToInstall);

-	

-	

-		/**

-	 * remove myself...

-	 */

-	public void old_remove(IProgressMonitor monitor) throws CoreException {

-

-		// remove the feature and the plugins if they are not used and not activated

-

-		// get the plugins from the feature

-		IPluginEntry[] pluginsToRemove = ((SiteLocal) SiteManager.getLocalSite()).getDeltaPluginEntries(this);

-

-		try {

-

-			// obtain the list of *Streamable Storage Unit*

-			// from the archive

-			if (monitor != null) {

-				int total = pluginsToRemove == null ? 1 : pluginsToRemove.length + 1;

-				monitor.beginTask("Uninstall feature " + getLabel(), total);

-			}

-			if (pluginsToRemove != null) {

-				for (int i = 0; i < pluginsToRemove.length; i++) {

-					if (monitor != null) {

-						monitor.subTask("Removing plug-in: " + pluginsToRemove[i]);

-						if (monitor.isCanceled()) {

-							throw CANCEL_EXCEPTION;

-						}

-					}

-

-					remove(pluginsToRemove[i]);

-

-					if (monitor != null) {

-						monitor.worked(1);

-						if (monitor.isCanceled()) {

-							throw CANCEL_EXCEPTION;

-						}

-					}

-

-				}

-			}

-

-			// remove the Feature info

-			String[] names = getStorageUnitNames(this);

-			if (names != null) {

-				if (monitor != null) {

-					monitor.subTask("Removing Feature information");

-					if (monitor.isCanceled()) {

-						throw CANCEL_EXCEPTION;

-					}

-				}

-

-				((Site) this.getSite()).removeFeatureInfo(getIdentifier());

-

-				closeFeature();

-				if (monitor != null) {

-					monitor.worked(1);

-					if (monitor.isCanceled()) {

-						throw CANCEL_EXCEPTION;

-					}

-				}

-

-			}

-

-		} catch (IOException e) {

-			String id = UpdateManagerPlugin.getPlugin().getDescriptor().getUniqueIdentifier();

-			IStatus status = new Status(IStatus.ERROR, id, IStatus.OK, "Error during Uninstall", e);

-			throw new CoreException(status);

-		}

-	}

-	

-	System.getProperty("java.io.tmpdir")(java.lang.String) /tmp

-	

-	true^false

-	true^true

-

-	

-org.eclipse.core.runtime.IPath p1= (new org.eclipse.core.runtime.Path("/path1/path2/*.txt"));

-org.eclipse.core.runtime.IPath p2= (new org.eclipse.core.runtime.Path("/path1/path2/a.txt"));

-p1.equals(p2);

-

-

-org.eclipse.update.internal.core.URLEncoder.encode(new java.net.URL("http://www.ourwebsite.com/servlet/update?jar=somefeaturejarfile"));(java.net.URL) http://www.ourwebsite.com/servlet/update?jar=somefeaturejarfile

-

diff --git a/update/org.eclipse.update.core/about.html b/update/org.eclipse.update.core/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/update/org.eclipse.update.core/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/build.properties b/update/org.eclipse.update.core/build.properties
deleted file mode 100644
index 8ee535c..0000000
--- a/update/org.eclipse.update.core/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2003 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

-###############################################################################

-source.updatecore.jar = src/

-bin.includes = plugin.xml,\

-               plugin.properties,\

-               *.jar,\

-               about.html,\

-               .options,\

-               os/

-src.includes = about.html,\

-               schema/

diff --git a/update/org.eclipse.update.core/plugin.properties b/update/org.eclipse.update.core/plugin.properties
deleted file mode 100644
index ee432ef..0000000
--- a/update/org.eclipse.update.core/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2003 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

-###############################################################################

-pluginName= Install/Update Core

-providerName= Eclipse.org

-fragmentNameWin= Install/Update Core for Windows

-fragmentNameLinux= Install/Update Core for Linux

-

-

diff --git a/update/org.eclipse.update.core/plugin.xml b/update/org.eclipse.update.core/plugin.xml
deleted file mode 100644
index e7755f6..0000000
--- a/update/org.eclipse.update.core/plugin.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.0"?>

-<plugin

-   id="org.eclipse.update.core"

-   name="%pluginName"

-   version="3.0.0"

-   provider-name="%providerName"

-   class="org.eclipse.update.internal.core.UpdateCore">

-

-   <runtime>

-      <library name="updatecore.jar">

-         <export name="*"/>

-      </library>

-   </runtime>

-   <requires>

-      <import plugin="org.eclipse.core.runtime"/>

-      <import plugin="org.eclipse.update.configurator"/>

-   </requires>

-

-

-   <extension-point id="featureTypes" name="Install/Update Concrete Feature Type Implementation Factory" schema="schema/featureTypes.exsd"/>

-   <extension-point id="siteTypes" name="Install/Update Concrete Site Type Implementation Factory" schema="schema/siteTypes.exsd"/>

-   <extension-point id="installHandlers" name="Install/Update Global Install Handlers" schema="schema/installHandlers.exsd"/>

-   <!-- The deltaHandler extension point is deprecated. Do not use it -->

-   <extension-point id="deltaHandler" name="Install/Update Delta Handler"/>

-

-   <extension

-         id="preferenceInitializer"

-         point="org.eclipse.core.runtime.preferences">

-      <initializer class="org.eclipse.update.internal.core.UpdatePreferencesInitializer"/>

-   </extension>

-

-   <extension

-         id="packaged"

-         point="org.eclipse.update.core.featureTypes">

-      <feature-factory

-            class="org.eclipse.update.internal.core.FeaturePackagedFactory">

-      </feature-factory>

-   </extension>

-   <extension

-         id="installed"

-         point="org.eclipse.update.core.featureTypes">

-      <feature-factory

-            class="org.eclipse.update.internal.core.FeatureExecutableFactory">

-      </feature-factory>

-   </extension>

-   <extension

-         id="http"

-         point="org.eclipse.update.core.siteTypes">

-      <site-factory

-            class="org.eclipse.update.internal.core.SiteURLFactory">

-      </site-factory>

-   </extension>

-   <extension

-         id="file"

-         point="org.eclipse.update.core.siteTypes">

-      <site-factory

-            class="org.eclipse.update.internal.core.SiteFileFactory">

-      </site-factory>

-   </extension>

-   <extension

-         id="DefaultInstallHandler"

-         point="org.eclipse.update.core.installHandlers">

-      <install-handler

-            class="org.eclipse.update.internal.core.DefaultInstallHandler">

-      </install-handler>

-   </extension>

-   <extension

-         id="DeltaInstallHandler"

-         point="org.eclipse.update.core.installHandlers">

-      <install-handler

-            class="org.eclipse.update.internal.core.DeltaInstallHandler">

-      </install-handler>

-   </extension>

-   <extension

-         id="standaloneUpdate"

-         point="org.eclipse.core.runtime.applications">

-      <application>

-         <run

-               class="org.eclipse.update.standalone.StandaloneUpdateApplication">

-         </run>

-      </application>

-   </extension>

-

-</plugin>

diff --git a/update/org.eclipse.update.core/preferences.ini b/update/org.eclipse.update.core/preferences.ini
deleted file mode 100644
index 7936e7f..0000000
--- a/update/org.eclipse.update.core/preferences.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-# The port number on which the sever listens for http requests.
-# If the port is 0 and arbitrary port is picked by the system.
-
-# Defines the policy url that contains directives for redirecting 
-# updates to different update sites.
-#updatePolicyURL=
-
-
diff --git a/update/org.eclipse.update.core/schema/featureTypes.exsd b/update/org.eclipse.update.core/schema/featureTypes.exsd
deleted file mode 100644
index 8666177..0000000
--- a/update/org.eclipse.update.core/schema/featureTypes.exsd
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.update.core">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.update.core" id="featureTypes" name="Feature Type Factory"/>

-      </appInfo>

-      <documentation>

-         The platform update mechanism supports pluggable feature type
-implementations. A new feature type can be registered in order
-to support
-alternate packaging and verification schemes.
-&lt;p&gt;
-The &lt;code&gt;featureTypes&lt;/code&gt;
-extension point allows alternate feature implementations to be
-registered using a symbolic type identifier. Whenever the 
-type is referenced using this identifier, the supplied factory
-is used to create the correct concrete feature implementation.
-&lt;/p&gt;

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="feature-factory" minOccurs="1" maxOccurs="unbounded"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  must be specified as &lt;b&gt;org.eclipse.update.core.featureTypes&lt;/b&gt;

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  must be specified. Identifies the new feature type

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  optional displayable label for the new feature type

-               </documentation>

-               <appInfo>

-                  <meta.attribute translatable="true"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="feature-factory">

-      <complexType>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  fully qualified name of the factory class for the identified feature type

-               </documentation>

-               <appInfo>

-                  <meta.attribute kind="java" basedOn="org.eclipse.update.configuration.IInstallDeltaHandler"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="examples"/>

-      </appInfo>

-      <documentation>

-         The following is an example of new feature type registration:
-&lt;p&gt;
-&lt;pre&gt;
-   &lt;extension
-      id=&quot;custom&quot;
-      point=&quot;org.eclipse.update.core.featureTypes&quot;
-      name=&quot;Custom packaged feature&quot;&gt;
-      &lt;feature-factory
-          class=&quot;com.xyz.update.CustomFeatureFactory&quot;&gt;
-      &lt;/feature-factory&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         Registered factory classes must implement 
-&lt;code&gt;&lt;b&gt;org.eclipse.update.core.IFeatureFactory&lt;/b&gt;&lt;/code&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="implementation"/>

-      </appInfo>

-      <documentation>

-         The platform supplies two standard implementations of feature
-types. One representing the default packaged feature type, and
-the other representing an installed feature type.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="copyright"/>

-      </appInfo>

-      <documentation>

-         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 &lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;.

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/update/org.eclipse.update.core/schema/installHandlers.exsd b/update/org.eclipse.update.core/schema/installHandlers.exsd
deleted file mode 100644
index d44b963..0000000
--- a/update/org.eclipse.update.core/schema/installHandlers.exsd
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.update.core">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.update.core" id="installHandlers" name="Global Install Handlers"/>

-      </appInfo>

-      <documentation>

-         Extension point for registering global install handlers. Global
-install handlers can be referenced by features 
-(using the &lt;code&gt;&amp;lt;feature&amp;gt; &amp;lt;install-handler&amp;gt;&lt;/code&gt;
-tags) without having to include a copy of the handler code as
-part of the downloadable feature.

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="install-handler" minOccurs="1" maxOccurs="unbounded"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  must be specified as &lt;b&gt;org.eclipse.update.core.installHandlers&lt;/b&gt;

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  must be specified. Identifies the new install handler

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  optional displayable label for the new install handler

-               </documentation>

-               <appInfo>

-                  <meta.attribute translatable="true"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="install-handler">

-      <complexType>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  fully qualified name of the handler implementation class for the identified
-install handler

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="examples"/>

-      </appInfo>

-      <documentation>

-         The following is an example of new global install handler registration:
-&lt;p&gt;
-&lt;pre&gt;
-   &lt;extension
-        id=&quot;custom&quot;
-        point=&quot;org.eclipse.update.core.installHandlers&quot;
-        name=&quot;Custom install handler&quot;&gt;
-     &lt;install-handler
-        class=&quot;com.xyz.update.CustomInstallHandler&quot;&gt;
-     &lt;/install-handler&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         Registered install handler classes must implement 
-&lt;code&gt;org.eclipse.update.core.IInstallHandler&lt;/code&gt; interface.
-Implementers should extend base class &lt;code&gt;org.eclipse.update.core.BaseInstallHandler&lt;/code&gt;.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="implementation"/>

-      </appInfo>

-      <documentation>

-         The platform supplies a simple install handler that is registered as &lt;code&gt;org.eclipse.update.core.DefaultInstallHandler&lt;/code&gt;. If used, it will copy any non-plug-in data entries provided with the feature into the feature installation directory.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="copyright"/>

-      </appInfo>

-      <documentation>

-         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 &lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;.

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/update/org.eclipse.update.core/schema/siteTypes.exsd b/update/org.eclipse.update.core/schema/siteTypes.exsd
deleted file mode 100644
index e04945f..0000000
--- a/update/org.eclipse.update.core/schema/siteTypes.exsd
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.update.core">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.update.core" id="siteTypes" name="Site Type Factory"/>

-      </appInfo>

-      <documentation>

-         The platform update mechanism supports pluggable site type
-implementations. A new site type can be registered in order
-to support alternate site layout schemes.
-&lt;p&gt;
-The &lt;code&gt;siteTypes&lt;/code&gt;
-extension point allows alternate site implementations to be
-registered using a symbolic type identifier. Whenever the 
-type is referenced using this identifier, the supplied factory
-is used to create the correct concrete site implementation.
-&lt;/p&gt;

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="site-factory" minOccurs="1" maxOccurs="unbounded"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  must be specified as &lt;b&gt;org.eclipse.update.core.siteTypes&lt;/b&gt;

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  must be specified. Identifies the new site type

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  optional displayable label for the new site type

-               </documentation>

-               <appInfo>

-                  <meta.attribute translatable="true"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="site-factory">

-      <complexType>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  fully qualified name of the factory class for the identified
-site type

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="examples"/>

-      </appInfo>

-      <documentation>

-         The following is an example of new site type registration.
-&lt;p&gt;
-&lt;pre&gt;
-   &lt;extension
-        id=&quot;custom&quot;
-        point=&quot;org.eclipse.update.core.siteTypes&quot;
-        name=&quot;Custom site&quot;&gt;
-      &lt;site-factory
-          class=&quot;com.xyz.update.CustomSiteFactory&quot;&gt;
-      &lt;/site-factory&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         Registered factory classes must implement 
-&lt;code&gt;&lt;b&gt;org.eclipse.update.core.ISiteFactory&lt;/b&gt;&lt;/code&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="implementation"/>

-      </appInfo>

-      <documentation>

-         The platform supplies two standard implementations of site
-types. One representing the default update server type, and
-the other representing the local file system site.

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="copyright"/>

-      </appInfo>

-      <documentation>

-         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 &lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;.

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IActivity.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IActivity.java
deleted file mode 100644
index 103152f..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IActivity.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.configuration;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Install activity.
- * Represents a record of an installation action performed
- * on a particular installation configuration.
- * <p>
- * This interface is not intended to 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>
- * @see org.eclipse.update.configuration.IInstallConfiguration
- * @since 2.0
- */
-public interface IActivity extends IAdaptable {
-
-	/**
-	 * Indicates feature installation action
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int ACTION_FEATURE_INSTALL = 1;
-
-	/**
-	 * Indicates feature removal (uninstallation) action
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int ACTION_FEATURE_REMOVE = 2;
-
-	/**
-	 * Indicates an addition of a site to a configuration
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int ACTION_SITE_INSTALL = 3;
-
-	/**
-	 * Indicates removal of a site from a configuration
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int ACTION_SITE_REMOVE = 4;
-
-	/**
-	 * Indicates feature unconfiguration action
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int ACTION_UNCONFIGURE = 5;
-
-	/**
-	 * Indicates feature configuration action
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int ACTION_CONFIGURE = 6;
-
-	/**
-	 * Indicates reverting to a prior configuration state
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int ACTION_REVERT = 7;
-
-	/**
-	 * Indicates reconcilliation with changes made directly to the site
-	 * installation directory
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int ACTION_RECONCILIATION = 8;
-
-	/**
-	 * Indicates adding the configuration to a preserved state
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int ACTION_ADD_PRESERVED = 9;
-	
-	/**
-	 * Indicates the action completed cussessfully
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int STATUS_OK = 0;
-
-	/**
-	 * Indicates the action did not complete successfully
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 static final int STATUS_NOK = 1;
-
-	/**
-	 * Returns the action code for this activity
-	 * 
-	 * @see #ACTION_FEATURE_INSTALL
-	 * @see #ACTION_FEATURE_REMOVE
-	 * @see #ACTION_SITE_INSTALL
-	 * @see #ACTION_SITE_REMOVE
-	 * @see #ACTION_UNCONFIGURE
-	 * @see #ACTION_CONFIGURE
-	 * @see #ACTION_REVERT
-	 * @see #ACTION_RECONCILIATION
-	 * @return action code, as defined in this interface
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 int getAction();
-
-	/**
-	 * Returns the displayable label for this action
-	 * 
-	 * @return diplayable label for action
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 String getLabel();
-
-	/**
-	 * Returns the creation date of this activity
-	 * 
-	 * @return activity date
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 Date getDate();
-
-	/** 
-	 * Returns the activity completion status
-	 * 
-	 * @see #STATUS_OK
-	 * @see #STATUS_NOK
-	 * @return completion status, as defined in this interface
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 int getStatus();
-
-	/**
-	 * Returns the installation configuration that was the result of 
-	 * this action
-	 * 
-	 * @return installation configuration
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 IInstallConfiguration getInstallConfiguration();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IConfiguredSite.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IConfiguredSite.java
deleted file mode 100644
index 06d3c0f..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IConfiguredSite.java
+++ /dev/null
@@ -1,372 +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 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.update.configuration;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-
-/**
- * Configured Site.
- * Represents an installation site "filtered" by configuration information.
- * Configured site is the target of the feature update operations (install
- * feature, remove feature, configure feature, unconfigure feature).
- * <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>
- * @since 2.0
- */
-public interface IConfiguredSite extends IAdaptable {
-
-	/**
-	 * Returns the underlying "unfiltered" site.
-	 * 
-	 * @return the underlying site 
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 ISite getSite();
-
-	/**
-	 * Indicates whether updates can be applied to the site.
-	 * 
-	 * <code>IStatus.isOk()</code> return <code>true</code> if
-	 * the site can be updated, <code>false</code> otherwise.
-	 * 
-	 * If updates cannot be aplied, the status contains the error message, and
-	 * the possible exception. 
-	 * 
-	 * @see IStatus
-	 * @return an IStatus
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IStatus verifyUpdatableStatus();
-
-	/**
-	 * Indicates whether updates can be applied to the site.
-	 * 
-	 * A configuration site is tagged a non-updatable by reading
-	 * the platform configuration for this site.
-	 * 
-	 * @return <code>true</code> if the site can be updated, 
-	 * <code>false</code> otherwise
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 boolean isUpdatable();
-
-	/**
-	 * Install the specified feature on this site.
-	 * 
-	 * @param feature feature to install
-	 * @param verificationListener verification listener, or <code>null</code>
-	 * @param monitor progress monitor, or <code>null</code>
-	 * @exception CoreException
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IFeatureReference install(IFeature feature, IVerificationListener verificationListener, IProgressMonitor monitor) throws CoreException;
-
-	/**
-	 * Install the specified feature on this site.
-	 * Only the specified optional features will be installed
-	 * 
-	 * @param feature feature to install
-	 * @param optionalFeatures optional features to install
-	 * @param verificationListener verification listener, or <code>null</code>
-	 * @param monitor progress monitor, or <code>null</code>
-	 * @exception CoreException
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IFeatureReference install(IFeature feature, IFeatureReference[] optionalFeatures, IVerificationListener verificationListener, IProgressMonitor monitor) throws CoreException;
-
-
-	/**
-	 * Remove (uninstall) the specified feature from this site
-	 * 
-	 * @param feature feature to remove
-	 * @param monitor progress monitor, or <code>null</code>
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void remove(IFeature feature, IProgressMonitor monitor) throws CoreException;
-
-	/**
-	 * Indicates if the specified feature is "broken". A feature is considered
-	 * to be broken in the context of this site, if some of the plug-ins
-	 * referenced by the feature are not installed on this site.
-	 * 
-	 * The status code is <code>IStatus.ERROR</code> if the feature is considered
-	 * broken. The Status may contain the reason why the feature is broken.
-	 * The status code is <code>IStatus.OK</code> if the feature is not considered
-	 * broken.
-	 * 
-	 * @param feature the feature
-	 * @return the status for this feature on this configured site
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 IStatus getBrokenStatus(IFeature feature);
-
-	/**
-	 * Indicates if the specified feature is configured on this site.
-	 * 
-	 * @param feature the feature
-	 * @return <code>true</code> if the feature is configured,
-	 * <code>false</code> otherwise
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 boolean isConfigured(IFeature feature);
-
-	/**
-	 * Configure the specified feature on this site. The configured
-	 * feature will be included on next startup.
-	 * 
-	 * @param feature the feature
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void configure(IFeature feature) throws CoreException;
-
-	/**
-	 * Unconfigure the specified feature from this site. The unconfigured
-	 * feature will be omitted on the next startup.
-	 * 
-	 * @param feature the feature
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 boolean unconfigure(IFeature feature) throws CoreException;
-
-	/**
-	 * Return references to features configured on this site.
-	 * 
-	 * @return an array of feature references, or an empty array.
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IFeatureReference[] getConfiguredFeatures();
-
-	/**
-	 * Return all features installed on this site (configured as well
-	 * as unconfigured). Note, that if the site requires reconciliation,
-	 * the result may not match the result of the corresponding method
-	 * on the underlying site.
-	 * 
-	 * @see ISite#getFeatureReferences()
-	 * @return an array of site feature references, or an empty array.
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IFeatureReference[] getFeatureReferences();
-
-	/**
-	 * Returns the install configuration object this site is part of.
-	 * 
-	 * @return install configuration object
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 IInstallConfiguration getInstallConfiguration();
-
-	/**
-	 * Adds a change listener to the configured site.
-	 * 
-	 * @param listener the listener to add
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void addConfiguredSiteChangedListener(IConfiguredSiteChangedListener listener);
-
-	/**
-	 * Removes a change listener from the configured site.
-	 * 
-	 * @param listener the listener to remove
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void removeConfiguredSiteChangedListener(IConfiguredSiteChangedListener listener);
-
-	/**
-	 * Indicates if the site is an extension site.
-	 * 
-	 * @return <code>true</code> if the site is an extension site,
-	 * <code>false</code> otherwise
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 boolean isExtensionSite();
-
-	/**
-	 * Indicates if the site is a product site.
-	 * 
-	 * @return <code>true</code> if the site is a product site,
-	 * <code>false</code> otherwise
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 boolean isProductSite();
-
-	/**
-	 * Indicates if the site is a private site.
-	 * This does not check if this private site belongs to the
-	 * product that is running.
-	 * 
-	 * @return <code>true</code> if the site is a private site,
-	 * <code>false</code> otherwise
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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>
-	 * @deprecated private site are considered the same as extension site (3.0)
-	 */
-	public boolean isPrivateSite();
-
-	/**
-	 * Indicates if the site has been linked by a native
-	 * installer.
-	 * 
-	 * @return <code>true</code> if the site is a natively linked site,
-	 * <code>false</code> otherwise
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 boolean isNativelyLinked() throws CoreException;
-
-	/**
-	 * Sets if the site is enabled
-	 * 
-	 * @param <code>true</code> if the site is enable, <code>false</code>
-	 * otherwise
-	 * @since 2.1
-	 * <p>
-	 * <b>Note:</b> This method 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 void setEnabled(boolean value);
-
-	/**
-	 * Indicates if the site is enabled. 
-	 * If a site is not enable, all teh features are considered disabled.
-	 * 
-	 * @return <code>true</code> if the site is enable, <code>false</code>
-	 * otherwise
-	 * @since 2.1
-	 * <p>
-	 * <b>Note:</b> This method 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 boolean isEnabled();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IConfiguredSiteChangedListener.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IConfiguredSiteChangedListener.java
deleted file mode 100644
index 13634c1..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IConfiguredSiteChangedListener.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.configuration;
-
-import org.eclipse.update.core.*;
-
-/**
- * Configuration change listener. * 
- * <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>
- * @since 2.0
- */
-public interface IConfiguredSiteChangedListener {
-	
-	/**
-	 * Indicates the specified feature was installed.
-	 * 
-	 * @param feature the feature
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void featureInstalled(IFeature feature);
-	
-	/**
-	 * Indicates the specified feature was removed (uninstalled)
-	 * 
-	 * @param feature the feature
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void featureRemoved(IFeature feature);
-	
-	/**
-	 * Indicates the specified feature was configured.
-	 * 
-	 * @param feature the feature
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void featureConfigured(IFeature feature);
-	
-	/**
-	 * Indicates the specified feature was unconfigured.
-	 * 
-	 * @param feature the feature
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void featureUnconfigured(IFeature feature);
-}
-
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallConfiguration.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallConfiguration.java
deleted file mode 100644
index de36911..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallConfiguration.java
+++ /dev/null
@@ -1,234 +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 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.update.configuration;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Installation configuration.
- * Represents a specific configuration of a number of sites as a point
- * in time. Maintains a record of the specific activities that resulted
- * in this configuration. Current installation configuration is
- * the configuration the platform was started with.
- * <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>
- * @since 2.0
- */
-public interface IInstallConfiguration extends IAdaptable {
-
-	/**
-	 * Indicates if this is the current configuration
-	 * 
-	 * @return <code>true</code> if this is the current configuration,
-	 * <code>false</code> otherwise
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 boolean isCurrent();
-
-	/**
-	 * Return the sites that are part of this configuration.
-	 * 
-	 * @return an array of configured sites, or an empty array.
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IConfiguredSite[] getConfiguredSites();
-
-	/**
-	 * Create a new installation site, based on a local file 
-	 * system directory. Note, the site is not added to the
-	 * configuration as a result of this call.
-	 * 
-	 * @param directory file directory
-	 * @return new site
-	 * @exception CoreException
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IConfiguredSite createConfiguredSite(File directory) throws CoreException;
-
-	/**
-	 * Create a new linked site, based on a local file 
-	 * system directory. Note, the site is not added to the
-	 * configuration as a result of this call.
-	 * The linked site is only created if the directory is an
-	 * already existing extension site and if it is not already
-	 * natively linked to the local site.
-	 * 
-	 * @param directory file directory
-	 * @return new linked site
-	 * @exception CoreException
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IConfiguredSite createLinkedConfiguredSite(File directory) throws CoreException;
-
-	/**
-	 * Adds the specified site to this configuration.
-	 * 
-	 * @param site new site
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void addConfiguredSite(IConfiguredSite site);
-
-	/**
-	 * Removes the specified site from this configuration.
-	 * 
-	 * @param site site to remove
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void removeConfiguredSite(IConfiguredSite site);
-
-	/**
-	 * Adds a configuration change listener.
-	 * 
-	 * @param listener the listener
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void addInstallConfigurationChangedListener(IInstallConfigurationChangedListener listener);
-
-	/**
-	 * Removes a configuration change listener.
-	 * 
-	 * @param listener the listener
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void removeInstallConfigurationChangedListener(IInstallConfigurationChangedListener listener);
-
-	/**
-	 * Return the list of activities that resulted in this configuration.
-	 * There is always at least one activity
-	 * 
-	 * @return an array of activities
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IActivity[] getActivities();
-
-	/**
-	 * Retrun the date the configuration was created.
-	 * 
-	 * @return create date
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 Date getCreationDate();
-
-	/**
-	 * Return the configuration label.
-	 * 
-	 * @return the configuration label. If the configuration label was not
-	 * explicitly set, a default label is generated based on the creation
-	 * date
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 String getLabel();
-
-	/**
-	 * Sets the configuration label.
-	 * 
-	 * @param label the label
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void setLabel(String label);
-
-	/**
-	 * Returns an integer that represents a time stamp created at the beginning of a new configuration time line.
-	 * Time line is started when configuration state is created by a full file system reconciliation. All configurations
-	 * subsequently created will have the same time line until the next full reconciliation. Certain operations
- 	 * (e.g. revert) make sense only between objects that belong to the same time line.
- 	 * 
-	 * @since 2.0.2
-	 * @return the time stamp of the full system reconciliation
-	 * 
-	 * <b>Note:</b> This method 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 long getTimeline();
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallConfigurationChangedListener.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallConfigurationChangedListener.java
deleted file mode 100644
index 070a874..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallConfigurationChangedListener.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.configuration;
-
-/**
- * Configuration change listener.
- * <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>
- * @since 2.0
- */
-public interface IInstallConfigurationChangedListener {
-	
-	/**
-	 * Indicates the specified site was added to the configuration
-	 * 
-	 * @param site the site
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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>
-	 */
-	void installSiteAdded(IConfiguredSite site);
-	
-	/**
-	 * Indicates the specified site was removed from the configuration
-	 * 
-	 * @param site the site
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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>
-	 */
-	void installSiteRemoved(IConfiguredSite site);
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallDeltaHandler.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallDeltaHandler.java
deleted file mode 100644
index b53aca6..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IInstallDeltaHandler.java
+++ /dev/null
@@ -1,55 +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 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.update.configuration;
-
-/**
- * Install Delta Handler.
- * Presents the changes the reconciler found to the user
- * <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>
- * @since 2.0
- * @deprecated Do not use this interface. The extension point deltaHandler has been deprecated.
- */
-public interface IInstallDeltaHandler{
-
-	/**
-	 * Sets the list of session delta to present to the user
-	 * 
-	 * @param deltas an Array of <code>ISessionDelta</code>
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void init(ISessionDelta[] deltas);
-
-	/**
-	 * Prompt the user to configure or unconfigure
-	 * new features found during reconciliation
-	 * 
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void open();
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSite.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSite.java
deleted file mode 100644
index 89b8cfc..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSite.java
+++ /dev/null
@@ -1,269 +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 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.update.configuration;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-
-/**
- * Local Site.
- * Represents the local installation. It consists of the current
- * configuration and the configuration history. A local site
- * manages the number of configuration histories kept. It also allows
- * specific configuration histories to be saved.
- * <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> 
- * @since 2.0
- */
-public interface ILocalSite extends IAdaptable {
-
-	/**
-	 * Return the current configuration.
-	 * 
-	 * @return current configuration
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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>
-	 */
-	IInstallConfiguration getCurrentConfiguration();
-
-	/**
-	 * Return configuration history.
-	 * 
-	 * @return an array of configurations, or an empty array.
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IInstallConfiguration[] getConfigurationHistory();
-
-	/**
-	 * Reverts the local site to use the specified configuration.
-	 * The result of this operation is a new configuration that
-	 * contains the same configured features as the specified configuration.
-	 * The new configuration becomes the current configuration.
-	 * 
-	 * @param configuration configuration state to revert to
-	 * @param monitor progress monitor
-	 * @param handler problem handler
-	 * @exception CoreException
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void revertTo(
-		IInstallConfiguration configuration,
-		IProgressMonitor monitor,
-		IProblemHandler handler)
-		throws CoreException;
-
-	/**
-	 * Creates a new configuration containing the same state as the 
-	 * specified configuration. The new configuration is not added to
-	 * this lical site.
-	 * 
-	 * @return cloned configuration
-	 * @exception CoreException
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IInstallConfiguration cloneCurrentConfiguration() throws CoreException;
-
-	/**
-	 * Adds the specified configuration to this local site.
-	 * The new configuration becomes the current one.
-	 * 
-	 * @param config the configuration
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void addConfiguration(IInstallConfiguration config);
-
-	/**
-	 * Saves the local site state
-	 * 
-	 * @exception CoreException
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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>
-	 * @return true if a restart is needed. This return code was added in 3.0.
-	 */
-	public boolean save() throws CoreException;
-
-	/**
-	 * Indicates how many configuration histories should be maintained.
-	 * Histories beyond the specified count are automatically deleted.
-	 * 
-	 * @return number of past configurations to keep as history
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 int getMaximumHistoryCount();
-
-	/**
-	 * Sets the number of past configurations to keep in history
-	 * 
-	 * @param history number of configuration to keep
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void setMaximumHistoryCount(int history);
-
-	/**
-	 * Adds a site change listener
-	 * 
-	 * @param listener the listener
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void addLocalSiteChangedListener(ILocalSiteChangedListener listener);
-
-	/**
-	 * Removes a site listener
-	 * 
-	 * @param listener the listener
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void removeLocalSiteChangedListener(ILocalSiteChangedListener listener);
-
-	/**
-	 * Save the specified configuration. Saved configurations are 
-	 * not deleted based on the history count. They must be explicitly
-	 * removed.
-	 * 
-	 * @param configuration the configuration to save
-	 * @return the preserved configuration or <code>null</code> if the configuration to save is <code>null</code>
-	 * @exception CoreException
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IInstallConfiguration addToPreservedConfigurations(IInstallConfiguration configuration)
-		throws CoreException;
-
-	/**
-	 * Removes the specified configuration from the list of previously
-	 * saved configurations.
-	 * 
-	 * @param configuration the configuration to remove
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void removeFromPreservedConfigurations(IInstallConfiguration configuration);
-
-	/**
-	 * Return the list of saved configurations
-	 * 
-	 * @return an array of configurations, or an empty array.
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IInstallConfiguration[] getPreservedConfigurations();
-	
-	/**
-	 * Indicates if the 'state' of the specified feature and its children features.
-	 * 
-	 * A feature is considered to be 'unhappy' in the context of this site,
-	 * if some of the plug-ins referenced by the feature, or any of its children,
-	 *  are not installed on this site.
-	 * 
-	 * A feature is considered to be 'happy' in the context of a local site
-	 * if all the plug-ins referenced by the feature, or any of its children,
-	 * are installed on the site and no other version of any of the plug-ins
-	 * are installed on any other site of the local site.
-	 * 
-	 * A feature is considered to be 'ambiguous' in the context of a local site
-	 * if all the plug-ins referenced by the feature, or any of its children,
-	 * are installed on the site and other version of any of the plug-ins
-	 * are installed on any other site of the local site.
-	 * 
-	 * @param feature the feature
-	 * @see IFeature#STATUS_HAPPY
-	 * @see IFeature#STATUS_UNHAPPY
-	 * @see IFeature#STATUS_AMBIGUOUS
-	 * @return the state of the feature
-	 * @exception CoreException
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 IStatus getFeatureStatus(IFeature feature) throws CoreException ;	
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSiteChangedListener.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSiteChangedListener.java
deleted file mode 100644
index 9e1162a..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSiteChangedListener.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.configuration;
-
-/**
- * Local site change listener. 
- * <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>
- * @since 2.0
- */
-public interface ILocalSiteChangedListener {
-	
-	/**
-	 * Indicates the current configuration has changed.
-	 * 
-	 * @param configuration the current cunfiguration
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void currentInstallConfigurationChanged(IInstallConfiguration configuration);
-	
-	/**
-	 * Indicates the specified configuration was removed.
-	 * 
-	 * @param configuration the configuration
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void installConfigurationRemoved(IInstallConfiguration configuration);
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSystemInfoListener.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSystemInfoListener.java
deleted file mode 100644
index 25ab62c..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ILocalSystemInfoListener.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.configuration;

- 

-

-

-/**

- * Local system change listener interface.

- * <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>

- * @see LocalSystemInfo#addInfoListener(ILocalSystemInfoListener)

- * @see LocalSystemInfo#removeInfoListener(ILocalSystemInfoListener)

- * @see LocalSystemInfo#fireSystemInfoChanged(IVolume,int)

- * @since 2.0

- */

-public interface ILocalSystemInfoListener {

-	

-	/**

-	 * Volume change notification.

-	 * Called each time there are relevant volume changes

-	 * detected. This specifically includes changes to the

-	 * file system structure as a result of removable drive/ media

-	 * operations (eg. CD insertion), and changes to volume 

-	 * mount structure.

-	 * @param volume volume of the changed file

-	 * system structure. Any current paths beyond

-	 * the specified 'root' file of the volume are assumed to be invalidated.

-	 * @param changeType type of the change that occured.

-	 * @see LocalSystemInfo#VOLUME_ADDED

-	 * @see LocalSystemInfo#VOLUME_REMOVED

-	 * @see LocalSystemInfo#VOLUME_CHANGED

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This method 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 void systemInfoChanged(IVolume volume, int changeType);

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IProblemHandler.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IProblemHandler.java
deleted file mode 100644
index 361e9e8..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IProblemHandler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.configuration;
- 
-/**
- * Generic problem handler. Used to report status from specific
- * install operations. The methods implemented by this interface
- * are callbacks from the update support to the caller of the update
- * methods.
- * <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>
- * @since 2.0
- */
-public interface IProblemHandler {
-
-	/**
-	 * Report problem.
-	 * 
-	 * @param problemText problem text
-	 * @return <code>true</code> if the operation should continue,
-	 * <code>false</code> if the operation should be cancelled
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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>
-	 */
-	boolean reportProblem(String problemText);
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ISessionDelta.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ISessionDelta.java
deleted file mode 100644
index 7cabd85..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/ISessionDelta.java
+++ /dev/null
@@ -1,149 +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 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.update.configuration;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-
-/**
- * Installation Change.
- * Represents the changes the reconciler found.
- * <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>
- * @since 2.0
- * @deprecated Do not use this interface
- */
-public interface ISessionDelta extends IAdaptable {
-
-	/**
-	 * Indicates a processing type to enable the features
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 int ENABLE = 1;
-
-	/**
-	 * Indicates a processing type to disable the features
-	 * 
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This field 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 int DISABLE = 2;
-
-	/**
-	 * Returns the list of Features found during reconciliation
-	 * 
-	 * @return an array of feature references, or an empty array
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 IFeatureReference[] getFeatureReferences();
-
-	/**
-	 * Returns the date the reconciliation occured
-	 * 
-	 * @return the date of the reconciliation
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 Date getDate();
-
-	/**
-	 * Returns the type of the processing type
-	 * that will affect all the associated features. 
-	 * 
-	 * @return the processing type
-	 * @see ISessionDelta#ENABLE
-	 * @see ISessionDelta#DISABLE
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 int getType();
-
-	/**
-	 * Process all the feature references of the 
-	 * Session Delta. 
-	 * Removes the Session Delta from the file system after processing it.
-	 * 
-	 * @param progressMonitor the progress monitor
-	 * @throws CoreException if an error occurs. 
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void process(IProgressMonitor progressMonitor) throws CoreException;
-
-	/**
-	 * Process the selected feature references of the Session Delta.
-	 * Removes the Session Delta from the file system after processing it.
-	 *
-	 * @param selected list of selected feature references to be processed
-	 * @param monitor the progress monitor
-	 * @throws CoreException if an error occurs.
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 void process(IFeatureReference [] selected, IProgressMonitor monitor) throws CoreException;
-	
-	/**
-	 * Removes the Session Delta from the file system without processing it.
-	 * 
-	 * @since 2.0 
-	 * <p>
-	 * <b>Note:</b> This method 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 void delete();	
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IVolume.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IVolume.java
deleted file mode 100644
index defd2a3..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/IVolume.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.configuration;
-
-import java.io.*;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Local Volume Info.
- * Represents local file system information for a specific volume.
- * <p>
- * This interface is not intended to 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>
- * @see org.eclipse.update.configuration.LocalSystemInfo
- * @since 2.0
- */
-public interface IVolume extends IAdaptable {
-
-	/**
-	 * Returns the available free space on this volume.
-	 * Returns the amount of free space available to this
-	 * user on the volume. The
-	 * method takes into account any space quotas or other
-	 * native mechanisms that may restrict space usage
-	 * on a given volume.
-	 * @return the amount of free space available (in units
-	 * of Kbyte), or an indication the size is not known 
-	 * @see LocalSystemInfo#SIZE_UNKNOWN
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 long getFreeSpace();
-	
-	/**
-	 * returns volume label.
-	 * Returns the label of the volume.
-	 * @return volume label (as string), or <code>null</code> if
-	 * the label cannot be determined.
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 String getLabel();
-	
-	/**
-	 * Returns volume type.
-	 * Returns the type of the volume.
-	 * @return volume type
-	 * @see LocalSystemInfo#VOLUME_UNKNOWN
-	 * @see LocalSystemInfo#VOLUME_INVALID_PATH
-	 * @see LocalSystemInfo#VOLUME_REMOVABLE
-	 * @see LocalSystemInfo#VOLUME_FIXED
-	 * @see LocalSystemInfo#VOLUME_REMOTE
-	 * @see LocalSystemInfo#VOLUME_CDROM
-	 * @see LocalSystemInfo#VOLUME_FLOPPY_3
-	 * @see LocalSystemInfo#VOLUME_FLOPPY_5
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 int getType();
-	
-	/**
-	 * Returns the volume path.
-	 * Returns the path that represents the mount point of the volume.
-	 * @return mount point file
-	 * @since 2.0
-	 * <p>
-	 * <b>Note:</b> This method 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 File getFile();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/LocalSystemInfo.java b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/LocalSystemInfo.java
deleted file mode 100644
index 8021ed9..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/LocalSystemInfo.java
+++ /dev/null
@@ -1,424 +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 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.update.configuration;

- 

-import java.io.*;

-import java.util.*;

-

-import org.eclipse.update.internal.core.*;

- 

-/**

- * Utility class providing local file system information.

- * The class attempts to load a native library implementation

- * of its methods. If successful, the method calls are delegated

- * to the native implementation. Otherwise a default non-native

- * implementation is used.  * 

- * <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>

- * @see ILocalSystemInfoListener

- * @since 2.0

- */

-public class LocalSystemInfo {

-	

-	/**

-	 * Indicates the amount of available free space is not known

-	 * 

-	 * @see LocalSystemInfo#getFreeSpace(File)

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final long SIZE_UNKNOWN = -1;

-	

-	/**

-	 * Indicates the volume type is not known

-	 * 

-	 * @see LocalSystemInfo#getType(File)

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_UNKNOWN = -1;

-	

-	/**

-	 * Indicates the volume could not be determined from path

-	 * 

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_INVALID_PATH = -2;

-	

-	/**

-	 * Indicates the volume is removable (other than floppy disk)

-	 * 

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_REMOVABLE = 1;

-	

-	/**

-	 * Indicates the volume is fixed (hard drive)

-	 * 

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_FIXED = 2;

-	

-	/**

-	 * Indicates a remote (network) volume

-	 * 

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_REMOTE = 3;

-	

-	/**

-	 * Indicates a cdrom volume (compact disc)

-	 * 

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_CDROM = 4;	

-	

-	/**

-	 * Indicates a ramdisk volume (memory)

-	 * 

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_RAMDISK = 5;	

-

-	/**

-	 * Indicates the volume is removable (floppy disk 5 1/4)

-	 * 

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_FLOPPY_5 = 6;	

-	

-	/**

-	 * Indicates the volume is removable (floppy disk 3 1/2)

-	 * 

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_FLOPPY_3 = 7;

-	

-	/**

-	 * Indicates a new volume has been added

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_ADDED = 0;

-			

-	/**

-	 * Indicates a volume has been removed

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_REMOVED = 1;

-

-	/**

-	 * Indicates a volume has been changed

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This field 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 static final int VOLUME_CHANGED = 2;

-

-	

-	private static ArrayList listeners = new ArrayList();	

-	private static boolean hasNatives = false;	

-	static {

-		try {

-			System.loadLibrary("update"); //$NON-NLS-1$

-			hasNatives = true;

-		} catch (UnsatisfiedLinkError e) {

-			UpdateCore.warn("Unable to load native library 'update'."); //$NON-NLS-1$

-			hasNatives = false;

-		}

-	}

-	

-	/**

-	 * Determines available free space on a volume.

-	 * Returns the amount of free space available to this

-	 * user on the volume containing the specified path. The

-	 * method takes into account any space quotas or other

-	 * native mechanisms that may restrict space usage

-	 * on a given volume.

-	 * @param path file path. May contain path elements beyond

-	 * the volume "root"

-	 * @return the amount of free space available (in units

-	 * of Kbyte), or an indication the size is not known 

-	 * @see LocalSystemInfo#SIZE_UNKNOWN

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This method 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 static long getFreeSpace(File path) {

-		if (hasNatives) {

-			try {

-				long bytes = nativeGetFreeSpace(path);

-				return (bytes!=0)?bytes/1024:0;

-			} catch (UnsatisfiedLinkError e) {

-			}

-		}

-		return SIZE_UNKNOWN;

-	}

-

-

-	/**

-	 * Lists the file system volume.

-	 * @return array of volume representing mount

-	 * points, or <code>null</code> if none found

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This method 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 static IVolume[] getVolumes() {

-		String[] mountPoints = listMountPoints();

-		Volume[] vol = new Volume[0];

-		if (mountPoints!=null){

-			vol = new Volume[mountPoints.length];

-			for (int i = 0; i < mountPoints.length; i++) {

-				File root = new File(mountPoints[i]);

-				String label = getLabel(root);

-				int type = getType(root);

-				long size = getFreeSpace(root);

-				vol[i] = new Volume(root,label,type,size);

-				vol[i].markReadOnly();

-			}

-		} else {

-			UpdateCore.warn("Unable to find mount points"); //$NON-NLS-1$

-			// fallback

-			File [] roots = File.listRoots();

-			if (roots.length == 1) {

-				// just one root - skip it

-				File root = roots[0];

-				roots = root.listFiles();

-			}

-			vol = new Volume[roots.length];			

-			for (int i = 0; i < roots.length; i++) {

-				vol[i] = new Volume(roots[i],null,LocalSystemInfo.VOLUME_UNKNOWN,LocalSystemInfo.SIZE_UNKNOWN);

-				vol[i].markReadOnly();

-			}			

-		}

-		return vol;

-	}

-

-	

-	/**

-	 * Add local system change listener.

-	 * Allows a listener to be added for monitoring changes

-	 * in the local system information. The listener is notified

-	 * each time there are relevant volume changes

-	 * detected. This specifically includes changes to the

-	 * list of volumes as a result of removable drive/ media

-	 * operations (eg. CD insertion, removal), and changes to volume 

-	 * mount structure.

-	 * @param listener change listener

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This method 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 static void addInfoListener(ILocalSystemInfoListener listener) {

-		if (!listeners.contains(listener))

-			listeners.add(listener);

-	}

-	

-	/**

-	 * Remove local system change listener

-	 * @param listener change listener

-	 * @since 2.0

-	 * <p>

-	 * <b>Note:</b> This method 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 static void removeInfoListener(ILocalSystemInfoListener listener) {

-		listeners.remove(listener);

-	}

-		

-	/**

-	 * Notify listeners of change.

-	 * 

-	 * @param volume the volume representing the

-	 * change file system structure. Any current paths beyond

-	 * the specified "root" file of the volume are assumed to be invalidated.

-	 * @param changeType type of the change that occured.

-	 * @see LocalSystemInfo#VOLUME_ADDED

-	 * @see LocalSystemInfo#VOLUME_REMOVED

-	 * @see LocalSystemInfo#VOLUME_CHANGED

-	 * <p>

-	 * <b>Note:</b> This method 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 static void fireSystemInfoChanged(IVolume volume, int changeType) {

-		for (int i=0; i< listeners.size(); i++) {

-			((ILocalSystemInfoListener)listeners.get(i)).systemInfoChanged(volume,changeType);

-		}

-	}

-		

-	/*

-	 * Determines volume label.

-	 * Returns the label of the volume containing the specified

-	 * path.

-	 * @param path file path. May contain path elements beyond

-	 * the volume "root"

-	 * @return volume label (as string), or <code>null</code> if

-	 * the label cannot be determined.

-	 * @since 2.0

-	 */

-	private static String getLabel(File path) {

-		if (hasNatives) {

-			try {

-				return nativeGetLabel(path);

-			} catch (UnsatisfiedLinkError e) {

-			}

-		}

-		return null;

-	}

-	

-	/*

-	 * Determines volume type.

-	 * Returns the type of the volume containing the specified

-	 * path.

-	 * @param path file path. May contain path elements beyond

-	 * the volume "root"

-	 * @return volume type

-	 * @see LocalSystemInfo#VOLUME_UNKNOWN

-	 * @see LocalSystemInfo#VOLUME_INVALID_PATH

-	 * @see LocalSystemInfo#VOLUME_REMOVABLE

-	 * @see LocalSystemInfo#VOLUME_FIXED

-	 * @see LocalSystemInfo#VOLUME_REMOTE

-	 * @see LocalSystemInfo#VOLUME_CDROM

-	 * @see LocalSystemInfo#VOLUME_FLOPPY_3

-	 * @see LocalSystemInfo#VOLUME_FLOPPY_5

-	 * @since 2.0

-	 */

-	private static int getType(File path) {

-		if (hasNatives) {

-			try {

-				return nativeGetType(path);

-			} catch (UnsatisfiedLinkError e) {

-			}

-		}

-		return VOLUME_UNKNOWN;

-	}

-	

-	/*

-	 * Lists the file system mount points.

-	 * @return array of absolute file paths representing mount

-	 * points, or <code>null</code> if none found

-	 * @since 2.0

-	 */

-	private static String[] listMountPoints() {

-		if (hasNatives) {

-			try {

-				String[] mountPoints = nativeListMountPoints();

-				return mountPoints;

-			} catch (UnsatisfiedLinkError e) {

-			}

-		}

-		return null;

-	}

-		

-	/*

-	 * Native implementations.

-	 */

-	private static native long nativeGetFreeSpace(File path);

-	private static native String nativeGetLabel(File path);

-	private static native int nativeGetType(File path);

-	private static native String[] nativeListMountPoints();

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/package.html b/update/org.eclipse.update.core/src/org/eclipse/update/configuration/package.html
deleted file mode 100644
index e76be03..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/configuration/package.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <meta name="Author" content="IBM">

-   <meta name="GENERATOR" content="Mozilla/4.72 [en] (Windows NT 5.0; U) [Netscape]">

-   <title>Package-level Javadoc</title>

-</head>

-<body>

-Provides support for accessing local installation

-information.

-<h2>

-Package Specification</h2>

-This package contains interfaces for accessing and manipulating the local

-system installation and configuration information. In general, users extending

-the update support&nbsp; by writing additional feature and site implementation

-do not need to make use of interfaces defined in this package.

-<p>

-<b>Note:</b> This package 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>

-</body>

-</html>

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/ArchiveReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/ArchiveReference.java
deleted file mode 100644
index 4964950..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/ArchiveReference.java
+++ /dev/null
@@ -1,55 +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 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.update.core;

-

-import org.eclipse.update.core.model.*;

-

-/**

- * Convenience implementation of a site archive.

- * <p>

- * This class may be instantiated or subclassed 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>

- * @see org.eclipse.update.core.IArchiveReference

- * @see org.eclipse.update.core.model.ArchiveReferenceModel

- * @since 2.0

- */

-public class ArchiveReference

-	extends ArchiveReferenceModel

-	implements IArchiveReference {

-

-	/**

-	 * Constructor for ArchiveReference

-	 * @since 2.0

-	 */

-	public ArchiveReference() {

-		super();

-	}

-

-	/**

-	 * @see Object#toString()

-	 * @since 2.0

-	 */

-	public String toString() {

-		String result = "IArchiveReference: "; //$NON-NLS-1$

-		result =

-			result

-				+ ((getPath() == null)

-					? getURL().toExternalForm()

-					: getPath() + " : " + getURL().toExternalForm()); //$NON-NLS-1$

-		return result;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/BaseFeatureFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/BaseFeatureFactory.java
deleted file mode 100644
index 34e7324..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/BaseFeatureFactory.java
+++ /dev/null
@@ -1,135 +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 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.update.core;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.model.*;

-

-/**

- * Base implementation of a feature factory.

- * The factory is responsible for constructing the correct

- * concrete implementation of the model objects for each particular

- * feature type. This class creates model objects that correspond

- * to the concrete implementation classes provided in this package.

- * The actual feature creation method is subclass responsibility.

- * <p>

- * This class must be subclassed 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>

- * @see org.eclipse.update.core.IFeatureFactory

- * @see org.eclipse.update.core.model.FeatureModelFactory

- * @since 2.0

- */

-public abstract class BaseFeatureFactory extends FeatureModelFactory implements IFeatureFactory {

-

-	/**

-	 * 

-	 * @deprecated implement createFeature(URL, ISite, IProgressMonitor) instead

-	 * @see IFeatureFactory#createFeature(URL,ISite)

-	 * @since 2.0

-	 */

-	public IFeature createFeature(URL url, ISite site) throws CoreException {

-		return createFeature(url, site, null);

-	}

-

-	/**

-	 * Create feature. Implementation of this method must be provided by 

-	 * subclass

-	 * 

-	 * @see IFeatureFactory#createFeature(URL,ISite,IProgressMonitor)

-	 * @since 2.0

-	 */

-	public abstract IFeature createFeature(URL url, ISite site, IProgressMonitor monitor) throws CoreException;

-

-	/**

-	 * Create a concrete implementation of feature model.

-	 * 

-	 * @see Feature

-	 * @return feature model

-	 * @since 2.0

-	 */

-	public FeatureModel createFeatureModel() {

-		return new Feature();

-	}

-

-	/**

-	 * Create a concrete implementation of included feature reference model.

-	 * 

-	 * @see IncludedFeatureReference

-	 * @return feature model

-	 * @since 2.1

-	 */

-	public IncludedFeatureReferenceModel createIncludedFeatureReferenceModel() {

-		return new IncludedFeatureReference();

-	}

-

-	/**

-	 * Create a concrete implementation of install handler model.

-	 * 

-	 * @see InstallHandlerEntry

-	 * @return install handler entry model

-	 * @since 2.0

-	 */

-	public InstallHandlerEntryModel createInstallHandlerEntryModel() {

-		return new InstallHandlerEntry();

-	}

-

-	/**

-	 * Create a concrete implementation of import dependency model.

-	 * 

-	 * @see Import

-	 * @return import dependency model

-	 * @since 2.0

-	 */

-	public ImportModel createImportModel() {

-		return new Import();

-	}

-

-	/**

-	 * Create a concrete implementation of plug-in entry model.

-	 * 

-	 * @see PluginEntry

-	 * @return plug-in entry model

-	 * @since 2.0

-	 */

-	public PluginEntryModel createPluginEntryModel() {

-		return new PluginEntry();

-	}

-

-	/**

-	 * Create a concrete implementation of non-plug-in entry model.

-	 * 

-	 * @see NonPluginEntry

-	 * @return non-plug-in entry model

-	 * @since 2.0

-	 */

-	public NonPluginEntryModel createNonPluginEntryModel() {

-		return new NonPluginEntry();

-	}

-

-	/**

-	 * Create a concrete implementation of annotated URL model.

-	 * 

-	 * @see URLEntry

-	 * @return annotated URL model

-	 * @since 2.0

-	 */

-	public URLEntryModel createURLEntryModel() {

-		return new URLEntry();

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/BaseInstallHandler.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/BaseInstallHandler.java
deleted file mode 100644
index 503f893..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/BaseInstallHandler.java
+++ /dev/null
@@ -1,251 +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 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.update.core;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Base implementation of an install handler.
- * This is a convenience implementation of an install handler with
- * null implementation of its methods. It allows subclasses to selectively
- * implement only the methods required for their installation tasks.
- * <p>
- * This class should be subclassed 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> 
- * @see org.eclipse.update.core.IInstallHandler
- * @since 2.0
- */
-
-public class BaseInstallHandler implements IInstallHandler {
-
-	/**
-	 * Update action type
-	 * 
-	 * @see IInstallHandler#HANDLER_ACTION_INSTALL
-	 * @see IInstallHandler#HANDLER_ACTION_CONFIGURE
-	 * @see IInstallHandler#HANDLER_ACTION_UNCONFIGURE
-	 * @see IInstallHandler#HANDLER_ACTION_UNINSTALL
-	 * @since 2.0
-	 */
-	protected int type;
-
-	/**
-	 * The target of the action
-	 * @since 2.0
-	 */
-	protected IFeature feature;
-
-	/**
-	 * Model entry that defines this handler
-	 * 
-	 * @since 2.0
-	 */
-	protected IInstallHandlerEntry entry;
-
-	/** 
-	 * Optional progress monitor, can be <code>null</code>
-	 * 
-	 * @since 2.0
-	 */
-	protected InstallMonitor monitor;
-
-	/**
-	 * Plug-in entries downloaded
-	 * 
-	 * @see IInstallHandler#HANDLER_ACTION_INSTALL
-	 * @since 2.0
-	 */
-	protected IPluginEntry[] pluginEntries;
-
-	/**
-	 * Non-plug-in entries downloaded
-	 * 
-	 * @see IInstallHandler#HANDLER_ACTION_INSTALL
-	 * @since 2.0
-	 */
-	protected INonPluginEntry[] nonPluginEntries;
-
-	/**
-	 * Indicates if handler has been initialized
-	 * 
-	 * @since 2.0
-	 */
-	protected boolean initialized = false;
-
-	/**
-	 * Initialize the install handler.
-	 * 
-	 * @see IInstallHandler#initialize(int, IFeature, IInstallHandlerEntry, InstallMonitor)
-	 * @since 2.0
-	 */
-	public void initialize(
-		int type,
-		IFeature feature,
-		IInstallHandlerEntry entry,
-		InstallMonitor monitor)
-		throws CoreException {
-
-		if (this.initialized)
-			return;
-		else {
-			if (feature == null)
-				throw new IllegalArgumentException();
-			this.type = type;
-			this.feature = feature;
-			this.entry = entry;
-			this.monitor = monitor;
-			this.initialized = true;
-		}
-	}
-
-	/**
-	 * Called at the start of the install action.
-	 * 
-	 * @see IInstallHandler#installInitiated
-	 * @since 2.0
-	 */
-	public void installInitiated() throws CoreException {
-	}
-
-	/**
-	 * Called after files corresponding to plug-in entries have been downloaded,
-	 * but before they are actully unpacked and installed.
-	 * 
-	 * @see IInstallHandler#pluginsDownloaded(IPluginEntry[])
-	 * @since 2.0
-	 */
-	public void pluginsDownloaded(IPluginEntry[] plugins) throws CoreException {
-
-		this.pluginEntries = plugins;
-	}
-
-	/**
-	 * Called after files corresponding to non-plug-in entries have been 
-	 * downloaded.
-	 * 
-	 * @see IInstallHandler#nonPluginDataDownloaded(INonPluginEntry[], IVerificationListener)
-	 * @since 2.0
-	 */
-	public void nonPluginDataDownloaded(
-		INonPluginEntry[] nonPluginData,
-		IVerificationListener listener)
-		throws CoreException {
-
-		this.nonPluginEntries = nonPluginData;
-	}
-
-	/**
-	 * Called after the feature files and any downloaded plug-ins have
-	 * been installed. 
-	 * 
-	 * @see IInstallHandler#completeInstall(IFeatureContentConsumer)
-	 * @since 2.0
-	 */
-	public void completeInstall(IFeatureContentConsumer consumer)
-		throws CoreException {
-	}
-
-	/**
-	 * Called at the end of the install action.
-	 * 
-	 * @see IInstallHandler#installCompleted(boolean)
-	 * @since 2.0
-	 */
-	public void installCompleted(boolean success) throws CoreException {
-	}
-
-	/**
-	 * Called at the start of the configure action.
-	 * 
-	 * @see IInstallHandler#configureInitiated()
-	 * @since 2.0
-	 */
-	public void configureInitiated() throws CoreException {
-	}
-
-	/**
-	 * Called after the feature has been configured.
-	 * 
-	 * @see IInstallHandler#completeConfigure()
-	 * @since 2.0
-	 */
-	public void completeConfigure() throws CoreException {
-	}
-
-	/**
-	 * Called at the end of the configure action.
-	 * 
-	 * @see IInstallHandler#configureCompleted(boolean)
-	 * @since 2.0
-	 */
-	public void configureCompleted(boolean success) throws CoreException {
-	}
-
-	/**
-	 * Called at the start of the unconfigure action.
-	 * 
-	 * @see IInstallHandler#unconfigureInitiated()
-	 * @since 2.0
-	 */
-	public void unconfigureInitiated() throws CoreException {
-	}
-
-	/**
-	 * Called after the feature has been unconfigured.
-	 * 
-	 * @see IInstallHandler#completeUnconfigure()
-	 * @since 2.0
-	 */
-	public void completeUnconfigure() throws CoreException {
-	}
-
-	/**
-	 * Called at the end of the unconfigure action.
-	 * 
-	 * @see IInstallHandler#unconfigureCompleted(boolean)
-	 * @since 2.0
-	 */
-	public void unconfigureCompleted(boolean success) throws CoreException {
-	}
-
-	/**
-	 * Called at the start of the uninstall action.
-	 * 
-	 * @see IInstallHandler#uninstallInitiated()
-	 * @since 2.0
-	 */
-	public void uninstallInitiated() throws CoreException {
-	}
-
-	/**
-	 * Called after the feature has been uninstalled.
-	 * 
-	 * @see IInstallHandler#completeUninstall()
-	 * @since 2.0
-	 */
-	public void completeUninstall() throws CoreException {
-	}
-
-	/**
-	 * Called at the end of the uninstall action.
-	 * 
-	 * @see IInstallHandler#uninstallCompleted(boolean)
-	 * @since 2.0
-	 */
-	public void uninstallCompleted(boolean success) throws CoreException {
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/BaseSiteFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/BaseSiteFactory.java
deleted file mode 100644
index 277873f..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/BaseSiteFactory.java
+++ /dev/null
@@ -1,148 +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 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.update.core;

- 

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Base implementation of a site factory.

- * The factory is responsible for constructing the correct

- * concrete implementation of the model objects for each particular

- * site type. This class creates model objects that correspond

- * to the concrete implementation classes provided in this package.

- * The actual site creation method is subclass responsibility.

- * <p>

- * This class must be subclassed 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>

- * @see org.eclipse.update.core.ISiteFactory

- * @see org.eclipse.update.core.model.SiteModelFactory

- * @since 2.0

- */

-public abstract class BaseSiteFactory extends SiteModelFactory implements ISiteFactory {

-

-

-	/**

-	 * Create site. Implementation of this method must be provided by 

-	 * subclass

-	 * 

-	 * @see ISiteFactory#createSite(URL)

-	 * @since 2.0

-	 */

-	public abstract ISite createSite(URL url) throws CoreException, InvalidSiteTypeException;

-

-	/**

-	 * Helper method to access resouce bundle for site. The default 

-	 * implementation attempts to load the appropriately localized 

-	 * site.properties file.

-	 * 

-	 * @param url base URL used to load the resource bundle.

-	 * @return resource bundle, or <code>null</code>.

-	 * @since 2.0

-	 */

-	protected ResourceBundle getResourceBundle(URL url) {

-		ResourceBundle bundle = null;

-

-		try {

-			url = UpdateManagerUtils.asDirectoryURL(url);

-			ClassLoader l = new URLClassLoader(new URL[] { url }, null);

-			bundle = ResourceBundle.getBundle(Site.SITE_FILE, Locale.getDefault(), l);

-		} catch (MissingResourceException e) {

-			UpdateCore.warn(e.getLocalizedMessage() + ":" + url.toExternalForm()); //$NON-NLS-1$

-		} catch (MalformedURLException e) {

-			UpdateCore.warn(Policy.bind("BaseSiteFactory.CannotRetriveParentDirectory", url.toExternalForm()));  //$NON-NLS-1$

-		}

-

-		return bundle;

-	}

-

-	/**

-	 * Create a concrete implementation of site model.

-	 * 

-	 * @see Site

-	 * @return site model

-	 * @since 2.0

-	 */

-	public SiteModel createSiteMapModel() {

-		return new Site();

-	}

-

-

-	/**

-	 * Create a concrete implementation of feature reference model.

-	 * 

-	 * @see FeatureReference

-	 * @return feature reference model

-	 * @since 2.0

-	 */

-	public SiteFeatureReferenceModel createFeatureReferenceModel() {

-		return new SiteFeatureReference();

-	}

-

-	/**

-	 * Create a concrete implementation of archive reference model.

-	 * 

-	 * @see ArchiveReference

-	 * @return archive reference model

-	 * @since 2.0

-	 */

-	public ArchiveReferenceModel createArchiveReferenceModel() {

-		return new ArchiveReference();

-	}

-

-

-	/**

-	 * Create a concrete implementation of annotated URL model.

-	 * 

-	 * @see URLEntry

-	 * @return annotated URL model

-	 * @since 2.0

-	 */

-	public URLEntryModel createURLEntryModel() {

-		return new URLEntry();

-	}

-

-

-	/**

-	 * Create a concrete implementation of category model.

-	 * 

-	 * @see Category

-	 * @return category model

-	 * @since 2.0

-	 */

-	public CategoryModel createSiteCategoryModel() {

-		return new Category();

-	}

-

-	/**

-	 * Open a stream on a URL.

-	 * manages a time out if the connection is locked or fails

-	 * 

-	 * @param resolvedURL

-	 * @return InputStream

-	 */

-	protected InputStream openStream(URL resolvedURL)  throws IOException {

-		Response response = UpdateCore.getPlugin().get(resolvedURL);

-		return response.getInputStream();

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/Category.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/Category.java
deleted file mode 100644
index 0976523..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/Category.java
+++ /dev/null
@@ -1,53 +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 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.update.core;

-

-import org.eclipse.update.core.model.*;

-

-/**

- * Convenience implementation of feature category definition.

- * <p>

- * This class may be instantiated or subclassed 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>

- * @see org.eclipse.update.core.ICategory

- * @see org.eclipse.update.core.model.CategoryModel

- * @since 2.0

- */

-public class Category extends CategoryModel implements ICategory {

-

-	/**

-	 * Default Constructor

-	 */

-	public Category() {

-	}

-

-	/**

-	 * Constructor

-	 */

-	public Category(String name, String label) {

-		setName(name);

-		setLabel(label);

-	}

-

-	/**

-	 * Retrieve the detailed category description

-	 * @see ICategory#getDescription()

-	 */

-	public IURLEntry getDescription() {

-		return (IURLEntry) getDescriptionModel();

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/ContentReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/ContentReference.java
deleted file mode 100644
index 31446c1..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/ContentReference.java
+++ /dev/null
@@ -1,334 +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 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.update.core;

-

-import java.io.*;

-import java.net.*;

-

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.internal.core.URLEncoder;

-

-/**

- * Content reference implements a general access wrapper 

- * to feature and site content. The reference specifies

- * a "symbolic" path identifier for the content, and the actual

- * reference as a file, or a URL.

- * <p>

- * This class may be instantiated or subclassed 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>

- * @see org.eclipse.update.core.JarContentReference

- * @see org.eclipse.update.core.JarEntryContentReference

- * @since 2.0

- */

-public class ContentReference {

-

-	/**

-	 * Unknown size indication

-	 * @since 2.0

-	 */

-	public static final long UNKNOWN_SIZE = -1;

-

-	/**

-	 * Default executable permission when installing a content reference

-	 * Will add executable bit if necessary

-	 * 

-	 * @since 2.0.1

-	 */

-	public static final int DEFAULT_EXECUTABLE_PERMISSION = -1;

-

-	private static final String FILE_URL_PROTOCOL = "file"; //$NON-NLS-1$

-

-	private String id;

-	private URL url; // reference is either URL reference *OR*

-	private File file; //    local file reference

-	private Response response;

-	private int permission; 

-	private long length;

-	

-	// <true> if a copy of a Contentreferenec in a temp local directory

-	private boolean tempLocal = false;

-	

-	private long lastModified;

-

-	/*

-	 * do not allow default contruction

-	 */

-	private ContentReference() {

-	}

-

-	/**

-	 * Create content reference from URL.

-	 * 

-	 * @param id "symbolic" path identifier

-	 * @param url actual referenced URL

-	 * @since 2.0

-	 */

-	public ContentReference(String id, URL url) {

-		this.id = (id == null ? "" : id); //$NON-NLS-1$

-		this.url = url; // can be null

-		this.file = null;

-	}

-

-	/**

-	 * Create content reference from file.

-	 * 

-	 * @param id "symbolic" path identifier

-	 * @param file actual referenced file

-	 * @since 2.0

-	 */

-	public ContentReference(String id, File file) {

-		this.id = (id == null ? "" : id); //$NON-NLS-1$

-		this.file = file; // can be null

-		this.url = null;

-	}

-

-	/**

-	 * A factory method to create a content reference of

-	 * the same type.

-	 * 

-	 * @param id "symbolic" path identifier

-	 * @param file actual referenced file

-	 * @return content reference of the same type

-	 * @since 2.0

-	 */

-	public ContentReference createContentReference(String id, File file) {

-		return new ContentReference(id, file,true);

-	}

-	/**

-	 * 

-	 */

-	private ContentReference(String id, File file, boolean b) {

-		this(id,file);

-		setTempLocal(b);

-	}

-

-	/**

-	 * Retrieves the "symbolic" path identifier for the reference.

-	 * 

-	 * @return "symbolic" path identifier

-	 * @since 2.0

-	 */

-	public String getIdentifier() {

-		return id;

-	}

-

-	/**

-	 * Creates an input stream for the reference.

-	 * 

-	 * @return input stream

-	 * @exception IOException unable to create stream

-	 * @since 2.0

-	 */

-	public InputStream getInputStream() throws IOException {

-		if (file != null)

-			return new FileInputStream(file);

-		else if (url != null) {

-			if (response == null) {

-				URL resolvedURL = URLEncoder.encode(url);

-				response = UpdateCore.getPlugin().get(resolvedURL);

-				UpdateManagerUtils.checkConnectionResult(response,resolvedURL);

-			}

-			InputStream is=response.getInputStream();

-			length=response.getContentLength();

-			return is;

-		} else

-			throw new IOException(Policy.bind("ContentReference.UnableToCreateInputStream", this.toString())); //$NON-NLS-1$

-	}

-	/**

-	 * Creates an input stream for the reference.

-	 * 

-	 * @return input stream

-	 * @exception IOException unable to create stream

-	 * @since 2.0

-	 */

-	InputStream getPartialInputStream(long offset) throws IOException {

-		if (url != null && "http".equals(url.getProtocol())) { //$NON-NLS-1$

-			URL resolvedURL = URLEncoder.encode(url);

-			response = UpdateCore.getPlugin().get(resolvedURL);

-			if(response instanceof HttpResponse)

-				((HttpResponse)response).setOffset(offset);

-			UpdateManagerUtils.checkConnectionResult(response,resolvedURL);

-			InputStream is = response.getInputStream();

-			length=offset + response.getContentLength();

-			return is;

-		} else

-			throw new IOException(Policy.bind("ContentReference.UnableToCreateInputStream", this.toString())); //$NON-NLS-1$

-	}

-	

-	/**

-	 * Returns the size of the referenced input, if it can be determined.

-	 * 

-	 * @return input size, or @see #UNKNOWN_SIZE if size cannot be determined.

-	 * @since 2.0

-	 */

-	public long getInputSize() throws IOException {

-		if (length>0)

-			return length;

-		if (file != null)

-			return file.length();

-		else if (url != null) {

-			if (response == null) {

-				URL resolvedURL = null;

-				try {

-					resolvedURL = URLEncoder.encode(url);

-					response = UpdateCore.getPlugin().get(resolvedURL);

-				} catch (IOException e) {

-					return ContentReference.UNKNOWN_SIZE;

-				}

-				UpdateManagerUtils.checkConnectionResult(response,resolvedURL);			

-			}

-			long size = response.getContentLength();

-			return size == -1 ? ContentReference.UNKNOWN_SIZE : size;

-		} else

-			return ContentReference.UNKNOWN_SIZE;

-	}

-

-	/**

-	 * Indicates whether the reference is a local file reference.

-	 * 

-	 * @return <code>true</code> if the reference is local, 

-	 * otherwise <code>false</code>

-	 * @since 2.0

-	 */

-	public boolean isLocalReference() {

-		/*if (file != null)

-			return true;

-		else if (url != null)

-			return FILE_URL_PROTOCOL.equals(url.getProtocol());

-		else

-			return false;*/

-		// only temp files are considered local

-		return tempLocal;

-	}

-

-	/**

-	 * Returns the content reference as a file. Note, that this method

-	 * <b>does not</b> cause the file to be downloaded if it

-	 * is not already local.

-	 * 

-	 * @return reference as file

-	 * @exception IOException reference cannot be returned as file

-	 * @since 2.0

-	 */

-	public File asFile() throws IOException {

-		if (file != null)

-			return file;

-

-		if (url != null && FILE_URL_PROTOCOL.equals(url.getProtocol())) {

-			File result = new File(url.getFile());

-			if (result.exists())

-				return result;

-			else 

-				throw new IOException(Policy.bind("ContentReference.FileDoesNotExist", this.toString())); //$NON-NLS-1$ 			

-		}

-

-		throw new IOException(Policy.bind("ContentReference.UnableToReturnReferenceAsFile", this.toString())); //$NON-NLS-1$ 

-	}

-

-	/**

-	 * Returns the content reference as a URL.

-	 * 

-	 * @return reference as URL

-	 * @exception IOException reference cannot be returned as URL

-	 * @since 2.0

-	 */

-	public URL asURL() throws IOException {

-		if (url != null)

-			return url;

-

-		if (file != null)

-			return file.toURL();

-

-		throw new IOException(Policy.bind("ContentReference.UnableToReturnReferenceAsURL", this.toString())); //$NON-NLS-1$

-	}

-

-	/**

-	 * Return string representation of this reference.

-	 * 

-	 * @return string representation

-	 * @since 2.0

-	 */

-	public String toString() {

-		if (file != null)

-			return file.getAbsolutePath();

-		else

-			return url.toExternalForm();

-	}

-	/**

-	 * Returns the permission for this file.

-	 * 

-	 * @return the content reference permission

-	 * @see #DEFAULT_EXECUTABLE_PERMISSION

-	 * @since 2.0.1

-	 */

-	public int getPermission() {

-		return permission;

-	}

-

-	/**

-	 * Sets the permission of this content reference.

-	 * 

-	 * @param permission The permission to set

-	 */

-	public void setPermission(int permission) {

-		this.permission = permission;

-	}

-

-	/**

-	 * Sets if a content reference is considered local 

-	 * 

-	 * @param tempLocal <code>true</code> if the file is considered local

-	 */

-	protected void setTempLocal(boolean tempLocal) {

-		this.tempLocal = tempLocal;

-	}

-	

-	/**

-	 * Sets the timestamp the content was last modified.

-	 * @param timestamp

-	 * @since 3.0

-	 */

-	public void setLastModified(long timestamp) {

-		this.lastModified = timestamp;

-	}

-	

-	/**

-	 * Returns the timestamp when the content was last modified

-	 * @return the timestamp

-	 * @since 3.0

-	 */

-	public long getLastModified() {

-		if (lastModified == 0) {

-			if (file != null) 

-				lastModified = file.lastModified();

-			else if (url != null) {

-				if (response == null) {

-					try {

-						URL resolvedURL = URLEncoder.encode(url);

-						response = UpdateCore.getPlugin().get(resolvedURL);

-					} catch (MalformedURLException e) {

-						// return 0

-					} catch (IOException e) {

-						// return 0

-					}

-				}

-				lastModified = response.getLastModified();

-			} 

-		}

-		return lastModified;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/Feature.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/Feature.java
deleted file mode 100644
index cb559ae..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/Feature.java
+++ /dev/null
@@ -1,1139 +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 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.update.core;

-

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Convenience implementation of a feature.

- * <p>

- * This class may be instantiated or subclassed 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> 

- * @see org.eclipse.update.core.IFeature

- * @see org.eclipse.update.core.model.FeatureModel

- * @since 2.0

- */

-public class Feature extends FeatureModel implements IFeature {

-

-	/**

-	 * Simple file name of the default feature manifest file

-	 * @since 2.0

-	 */

-	public static final String FEATURE_FILE = "feature"; //$NON-NLS-1$

-

-	/**

-	 * File extension of the default feature manifest file

-	 * @since 2.0

-	 */

-	public static final String FEATURE_XML = FEATURE_FILE + ".xml"; //$NON-NLS-1$

-

-	private ISite site; // feature site

-	private IFeatureContentProvider featureContentProvider; // content provider

-	private List /*of IFeatureReference*/

-	includedFeatureReferences;

-

-	//PERF: new instance variable

-	private VersionedIdentifier versionId;

-

-	private InstallAbortedException abortedException = null;

-

-	/**

-	 * Feature default constructor

-	 * 

-	 * @since 2.0

-	 */

-	public Feature() {

-	}

-

-	/**

-	 * Compares two features for equality

-	 * 

-	 * @param object feature object to compare with

-	 * @return <code>true</code> if the two features are equal, 

-	 * <code>false</code> otherwise

-	 * @since 2.0

-	 */

-	public boolean equals(Object object) {

-		if (!(object instanceof IFeature))

-			return false;

-		IFeature f = (IFeature) object;

-		return getVersionedIdentifier().equals(f.getVersionedIdentifier());

-	}

-

-	/**

-	 * Returns the feature identifier.

-	 * 

-	 * @see IFeature#getVersionedIdentifier()

-	 * @since 2.0

-	 */

-	public VersionedIdentifier getVersionedIdentifier() {

-		if (versionId != null)

-			return versionId;

-

-		String id = getFeatureIdentifier();

-		String ver = getFeatureVersion();

-		if (id != null && ver != null) {

-			try {

-				versionId = new VersionedIdentifier(id, ver);

-				return versionId;

-			} catch (Exception e) {

-				UpdateCore.warn(

-					"Unable to create versioned identifier:" + id + ":" + ver); //$NON-NLS-1$ //$NON-NLS-2$

-			}

-		}

-

-		versionId = new VersionedIdentifier(getURL().toExternalForm(), null);

-		return versionId;

-	}

-

-	/**

-	 * Returns the site this feature is associated with.

-	 * 

-	 * @see IFeature#getSite()

-	 * @since 2.0

-	 */

-	public ISite getSite() {

-		return site;

-	}

-

-	/**

-	 * Returns the feature URL.

-	 * 

-	 * @see IFeature#getURL()

-	 * @since 2.0

-	 */

-	public URL getURL() {

-		IFeatureContentProvider contentProvider = null;

-		try {

-			contentProvider = getFeatureContentProvider();

-		} catch (CoreException e) {

-			UpdateCore.warn("No content Provider", e); //$NON-NLS-1$

-		}

-		return (contentProvider != null) ? contentProvider.getURL() : null;

-	}

-

-	/**

-	 * Returns an information entry referencing the location of the

-	 * feature update site. 

-	 * 

-	 * @see IFeature#getUpdateSiteEntry()

-	 * @since 2.0

-	 */

-	public IURLEntry getUpdateSiteEntry() {

-		return (IURLEntry) getUpdateSiteEntryModel();

-	}

-

-	/**

-	 * Return an array of information entries referencing locations of other

-	 * update sites.

-	 * 

-	 * @see IFeature#getDiscoverySiteEntries()

-	 * @since 2.0

-	 */

-	public IURLEntry[] getDiscoverySiteEntries() {

-		URLEntryModel[] result = getDiscoverySiteEntryModels();

-		if (result.length == 0)

-			return new IURLEntry[0];

-		else

-			return (IURLEntry[]) result;

-	}

-

-	/**

-	 * Returns and optional custom install handler entry.

-	 * 

-	 * @see IFeature#getInstallHandlerEntry()

-	 * @since 2.0

-	 */

-	public IInstallHandlerEntry getInstallHandlerEntry() {

-		return (IInstallHandlerEntry) getInstallHandlerModel();

-	}

-

-	/**

-	 * Returns the feature description.

-	 * 

-	 * @see IFeature#getDescription()

-	 * @since 2.0

-	 */

-	public IURLEntry getDescription() {

-		return (IURLEntry) getDescriptionModel();

-	}

-

-	/**

-	 * Returns the copyright information for the feature.

-	 * 

-	 * @see IFeature#getCopyright()

-	 * @since 2.0

-	 */

-	public IURLEntry getCopyright() {

-		return (IURLEntry) getCopyrightModel();

-	}

-

-	/**

-	 * Returns the license information for the feature.

-	 * 

-	 * @see IFeature#getLicense()

-	 * @since 2.0

-	 */

-	public IURLEntry getLicense() {

-		return (IURLEntry) getLicenseModel();

-	}

-

-	/**

-	 * Return optional image for the feature.

-	 * 

-	 * @see IFeature#getImage()

-	 * @since 2.0

-	 */

-	public URL getImage() {

-		return getImageURL();

-	}

-

-	/**

-	 * Return a list of plug-in dependencies for this feature.

-	 * 

-	 * @see IFeature#getRawImports()

-	 * @since 2.0

-	 */

-	public IImport[] getRawImports() {

-		ImportModel[] result = getImportModels();

-		if (result.length == 0)

-			return new IImport[0];

-		else

-			return (IImport[]) result;

-	}

-

-	/**

-	 * Install the contents of this feature into the specified target feature.

-	 * This method is a reference implementation of the feature installation

-	 * protocol. Other concrete feature implementation that override this

-	 * method need to implement this protocol.

-	 * 

-	 * @see IFeature#install(IFeature, IVerificationListener, IProgressMonitor)

-	 * @since 2.0

-	 */

-	public IFeatureReference install(

-		IFeature targetFeature,

-		IVerificationListener verificationListener,

-		IProgressMonitor progress)

-		throws InstallAbortedException, CoreException {

-		// call other API with all optional features, or setup variable meaning install all

-		return install(targetFeature, null, verificationListener, progress);

-	}

-

-	/**

-	 * Install the contents of this feature into the specified target feature.

-	 * This method is a reference implementation of the feature installation

-	 * protocol. Other concrete feature implementation that override this

-	 * method need to implement this protocol.

-	 * 

-	 * @see IFeature#install(IFeature, IVerificationListener, IProgressMonitor)

-	 * @since 2.0

-	 */

-	public IFeatureReference install(

-		IFeature targetFeature,

-		IFeatureReference[] optionalfeatures,

-		IVerificationListener verificationListener,

-		IProgressMonitor progress)

-		throws InstallAbortedException, CoreException {

-

-		//DEBUG

-		debug("Installing...:" + getURL().toExternalForm()); //$NON-NLS-1$

-		ErrorRecoveryLog recoveryLog = ErrorRecoveryLog.getLog();

-

-		// make sure we have an InstallMonitor		

-		InstallMonitor monitor;

-		if (progress == null)

-			monitor = new InstallMonitor(new NullProgressMonitor());

-		else if (progress instanceof InstallMonitor)

-			monitor = (InstallMonitor) progress;

-		else

-			monitor = new InstallMonitor(progress);

-

-		// Setup optional install handler

-		InstallHandlerProxy handler =

-			new InstallHandlerProxy(

-				IInstallHandler.HANDLER_ACTION_INSTALL,

-				this,

-				this.getInstallHandlerEntry(),

-				monitor);

-		boolean success = false;

-		Throwable originalException = null;

-		abortedException = null;

-

-		// Get source feature provider and verifier.

-		// Initialize target variables.

-		IFeatureContentProvider provider = getFeatureContentProvider();

-		IVerifier verifier = provider.getVerifier();

-		IFeatureReference result = null;

-		IFeatureReference alreadyInstalledFeature = null;

-		IFeatureContentConsumer consumer = null;

-		IPluginEntry[] targetSitePluginEntries = null;

-		ArrayList justInstalledPlugins = new ArrayList();

-

-		try {

-			// determine list of plugins to install

-			// find the intersection between the plugin entries already contained

-			// on the target site, and plugin entries packaged in source feature

-			IPluginEntry[] sourceFeaturePluginEntries = getPluginEntries();

-			ISite targetSite = targetFeature.getSite();

-			if (targetSite == null) {

-				debug("The site to install in is null"); //$NON-NLS-1$

-				targetSitePluginEntries = new IPluginEntry[0];

-			} else {

-				targetSitePluginEntries = targetSite.getPluginEntries();

-			}

-			IPluginEntry[] pluginsToInstall =

-				UpdateManagerUtils.diff(

-					sourceFeaturePluginEntries,

-					targetSitePluginEntries);

-			INonPluginEntry[] nonPluginsToInstall = getNonPluginEntries();

-

-			IFeatureReference[] children = getIncludedFeatureReferences();

-			if (optionalfeatures != null) {

-				children =

-					UpdateManagerUtils.optionalChildrenToInstall(

-						children,

-						optionalfeatures);

-			}

-

-			// determine number of monitor tasks

-			//   2 tasks for the feature jar (download/verify + install)

-			// + 2*n tasks for plugin entries (download/verify + install for each)

-			// + 1*m tasks per non-plugin data entry (download for each)

-			// + 1 task for custom non-plugin entry handling (1 for all combined)

-			// + 5*x tasks for children features (5 subtasks per install)

-			int taskCount =

-				2

-					+ 2 * pluginsToInstall.length

-					+ nonPluginsToInstall.length

-					+ 1

-					+ 5 * children.length;

-			monitor.beginTask("", taskCount); //$NON-NLS-1$

-			SubProgressMonitor subMonitor = null;

-

-			// start log

-			recoveryLog.open(ErrorRecoveryLog.START_INSTALL_LOG);

-

-			// Start the installation tasks			

-			handler.installInitiated();

-

-			// Download and verify feature archive(s)

-			ContentReference[] references =

-				provider.getFeatureEntryArchiveReferences(monitor);

-			verifyReferences(

-				verifier,

-				references,

-				monitor,

-				verificationListener,

-				true);

-			monitorWork(monitor, 1);

-			

-			// Download and verify plugin archives

-			for (int i = 0; i < pluginsToInstall.length; i++) {

-				references = provider.getPluginEntryArchiveReferences(

-						pluginsToInstall[i], monitor);

-				verifyReferences(verifier, references, monitor,

-								verificationListener, false);

-				monitorWork(monitor, 1);

-			}

-			

-			handler.pluginsDownloaded(pluginsToInstall);

-

-			// Download non-plugin archives. Verification handled by optional install handler

-			for (int i = 0; i < nonPluginsToInstall.length; i++) {

-				references =

-					provider.getNonPluginEntryArchiveReferences(

-						nonPluginsToInstall[i],

-						monitor);

-				monitorWork(monitor, 1);

-			}

-			handler.nonPluginDataDownloaded(

-				nonPluginsToInstall,

-				verificationListener);

-

-			// All archives are downloaded and verified. Get ready to install

-			consumer = targetFeature.getFeatureContentConsumer();

-

-			// install the children feature

-			// check if they are optional, and if they should be installed [2.0.1]

-			for (int i = 0; i < children.length; i++) {

-				IFeature childFeature = null;

-				try {

-					childFeature = children[i].getFeature(null);

-				} catch (CoreException e) {

-					UpdateCore.warn(null, e);

-				}

-				if (childFeature != null) {

-					subMonitor = new SubProgressMonitor(monitor, 5);

-					((Site) targetSite).install(// need to cast

-					childFeature,

-						optionalfeatures,

-						consumer,

-						verifier,

-						verificationListener,

-						subMonitor);

-				}

-			}

-

-			// Install plugin files

-			for (int i = 0; i < pluginsToInstall.length; i++) {

-				// if another feature has already installed this plugin, skip it

-				if (InstallRegistry.getInstance().isPluginJustInstalled(pluginsToInstall[i])) {

-					monitor.worked(1);

-					continue;

-				}

-				IContentConsumer pluginConsumer =

-					consumer.open(pluginsToInstall[i]);

-				// TODO consumer.open returns either

-				// SiteFilePackedPluginContentConsumer or SiteFilePluginContentConsumer

-				// and they are fed either

-				// PluginEntryArchiveReference or PluginEntryContentReferences

-				// it would be better to have one that is given PluginEntryArchiveReference

-				// but it would break external IContentConsumers

-

-				if(pluginsToInstall[i] instanceof PluginEntryModel && !((PluginEntryModel)pluginsToInstall[i]).isUnpack()){

-					// plugin can run from a jar

-					references = provider.getPluginEntryArchiveReferences(

-							pluginsToInstall[i], monitor);

-				} else{

-					// plugin must be unpacked

-					references =

-						provider.getPluginEntryContentReferences(

-							pluginsToInstall[i],

-							monitor);

-				}

-

-				String msg = ""; //$NON-NLS-1$

-				subMonitor = new SubProgressMonitor(monitor, 1);

-				VersionedIdentifier pluginVerId =

-					pluginsToInstall[i].getVersionedIdentifier();

-				String pluginID =

-					(pluginVerId == null) ? "" : pluginVerId.getIdentifier(); //$NON-NLS-1$

-				msg = Policy.bind("Feature.TaskInstallPluginFiles", pluginID); //$NON-NLS-1$

-

-				for (int j = 0; j < references.length; j++) {

-					setMonitorTaskName(

-						subMonitor,

-						msg + references[j].getIdentifier());

-					pluginConsumer.store(references[j], subMonitor);

-				}

-

-				if (monitor.isCanceled())

-					abort();

-				else {

-					justInstalledPlugins.add(pluginsToInstall[i]);

-					InstallRegistry.registerPlugin(pluginsToInstall[i]);

-				}

-			}

-

-			// check if we need to install feature files [16718]	

-			// store will throw CoreException if another feature is already

-			// installed in the same place

-			alreadyInstalledFeature = featureAlreadyInstalled(targetSite);

-			// 18867

-			if (alreadyInstalledFeature == null) {

-				//Install feature files

-				references = provider.getFeatureEntryContentReferences(monitor);

-

-				String msg = ""; //$NON-NLS-1$

-				subMonitor = new SubProgressMonitor(monitor, 1);

-				msg = Policy.bind("Feature.TaskInstallFeatureFiles"); //$NON-NLS-1$

-

-				for (int i = 0; i < references.length; i++) {

-					setMonitorTaskName(

-						subMonitor,

-						msg + " " + references[i].getIdentifier()); //$NON-NLS-1$

-					consumer.store(references[i], subMonitor);

-				}

-

-				if (monitor.isCanceled())

-					abort();

-				else

-					InstallRegistry.registerFeature(this);

-			} else {

-				if (monitor.isCanceled())

-					abort();

-				else

-					monitor.worked(1);

-			}

-

-			// call handler to complete installation (eg. handle non-plugin entries)

-			handler.completeInstall(consumer);

-			monitorWork(monitor, 1);

-

-			// indicate install success

-			success = true;

-

-		} catch (InstallAbortedException e) {

-			abortedException = e;

-		} catch (CoreException e) {

-			originalException = e;

-		} finally {

-			Exception newException = null;

-			try {

-				if (consumer != null) {

-					if (success) {

-						result = consumer.close();

-						if (result == null) {

-							result = alreadyInstalledFeature; // 18867

-							if (result != null

-								&& optionalfeatures != null

-								&& optionalfeatures.length > 0) {

-								// reinitialize as new optional children may have been installed

-								reinitializeFeature(result);

-							}

-						}

-						// close the log

-						recoveryLog.close(ErrorRecoveryLog.END_INSTALL_LOG);

-					} else {

-						// unregister the just installed plugins

-						for (int i=0; i<justInstalledPlugins.size(); i++)

-							InstallRegistry.unregisterPlugin(((IPluginEntry)justInstalledPlugins.get(i)));

-						consumer.abort();

-					}

-				}

-				handler.installCompleted(success);

-				// if abort is done, no need for the log to stay

-				recoveryLog.delete();

-			} catch (CoreException e) {

-				newException = e;

-			}

-

-			// original exception wins unless it is InstallAbortedException

-			// and an error occured during abort

-			if (originalException != null) {

-				throw Utilities.newCoreException(

-					Policy.bind("InstallHandler.error", this.getLabel()), //$NON-NLS-1$

-					originalException);

-			}

-

-			if (newException != null)

-				throw Utilities.newCoreException(

-					Policy.bind("InstallHandler.error", this.getLabel()), //$NON-NLS-1$

-					newException);

-

-			if (abortedException != null) {

-				throw abortedException;

-			}

-

-		}

-		return result;

-	}

-

-	/**

-	 * Returns an array of plug-in entries referenced by this feature

-	 * 

-	 * @see IFeature#getPluginEntries()

-	 * @since 2.0

-	 */

-	public IPluginEntry[] getRawPluginEntries() {

-		PluginEntryModel[] result = getPluginEntryModels();

-		if (result.length == 0)

-			return new IPluginEntry[0];

-		else

-			return (IPluginEntry[]) result;

-	}

-

-	/*

-	 * Method filter.

-	 * @param result

-	 * @return IPluginEntry[]

-	 */

-	private IPluginEntry[] filterPluginEntry(IPluginEntry[] all) {

-		List list = new ArrayList();

-		if (all != null) {

-			for (int i = 0; i < all.length; i++) {

-				if (UpdateManagerUtils.isValidEnvironment(all[i]))

-					list.add(all[i]);

-			}

-		}

-

-		IPluginEntry[] result = new IPluginEntry[list.size()];

-		if (!list.isEmpty()) {

-			list.toArray(result);

-		}

-

-		return result;

-	}

-

-	/**

-	 * Returns the count of referenced plug-in entries.

-	 * 

-	 * @see IFeature#getPluginEntryCount()

-	 * @since 2.0

-	 */

-	public int getPluginEntryCount() {

-		return getPluginEntries().length;

-	}

-

-	/**

-	 * Returns an array of non-plug-in entries referenced by this feature

-	 * 

-	 * @see IFeature#getNonPluginEntries()

-	 * @since 2.0

-	 */

-	public INonPluginEntry[] getRawNonPluginEntries() {

-		NonPluginEntryModel[] result = getNonPluginEntryModels();

-		if (result.length == 0)

-			return new INonPluginEntry[0];

-		else

-			return (INonPluginEntry[]) result;

-	}

-

-	/**

-	 * Returns the count of referenced non-plug-in entries.

-	 * 

-	 * @see IFeature#getNonPluginEntryCount()

-	 * @since 2.0

-	 */

-	public int getNonPluginEntryCount() {

-		return getNonPluginEntryModels().length;

-	}

-

-	/**

-	 * Returns an array of feature references included by this feature

-	 * 

-	 * @return an erray of feature references, or an empty array.

-	 * @since 2.0

-	 */

-	public IIncludedFeatureReference[] getRawIncludedFeatureReferences()

-		throws CoreException {

-		if (includedFeatureReferences == null)

-			initializeIncludedReferences();

-

-		if (includedFeatureReferences.size() == 0)

-			return new IncludedFeatureReference[0];

-

-		return (IIncludedFeatureReference[]) includedFeatureReferences.toArray(

-			arrayTypeFor(includedFeatureReferences));

-	}

-	/**

-	 * Returns the download size of the feature, if it can be determined.

-	 * 

-	 * @see IFeature#getDownloadSize()

-	 * @since 2.0

-	 */

-	public long getDownloadSize() {

-		try {

-			Set allPluginEntries = new HashSet();

-			Set allNonPluginEntries = new HashSet();

-

-			IPluginEntry[] plugins = getPluginEntries();

-			allPluginEntries.addAll(Arrays.asList(plugins));

-			INonPluginEntry[] nonPlugins = getNonPluginEntries();

-			allNonPluginEntries.addAll(Arrays.asList(nonPlugins));

-

-			IFeatureReference[] children = getIncludedFeatureReferences();

-			for (int i = 0; i < children.length; i++) {

-				plugins = children[i].getFeature(null).getPluginEntries();

-				allPluginEntries.addAll(Arrays.asList(plugins));

-				nonPlugins = children[i].getFeature(null).getNonPluginEntries();

-				allNonPluginEntries.addAll(Arrays.asList(nonPlugins));

-			}

-

-			IPluginEntry[] totalPlugins =

-				new IPluginEntry[allPluginEntries.size()];

-			INonPluginEntry[] totalNonPlugins =

-				new INonPluginEntry[allNonPluginEntries.size()];

-			if (allPluginEntries.size() != 0) {

-				allPluginEntries.toArray(totalPlugins);

-			}

-			if (allNonPluginEntries.size() != 0) {

-				allNonPluginEntries.toArray(totalNonPlugins);

-			}

-

-			return getFeatureContentProvider().getDownloadSizeFor(

-				totalPlugins,

-				totalNonPlugins);

-

-		} catch (CoreException e) {

-			UpdateCore.warn(null, e);

-			return ContentEntryModel.UNKNOWN_SIZE;

-		}

-	}

-

-	/**

-	 * Returns the install size of the feature, if it can be determined.

-	 * 

-	 * @see IFeature#getInstallSize()

-	 * @since 2.0

-	 */

-	public long getInstallSize() {

-		try {

-			Set allPluginEntries = new HashSet();

-			Set allNonPluginEntries = new HashSet();

-

-			IPluginEntry[] plugins = getPluginEntries();

-			allPluginEntries.addAll(Arrays.asList(plugins));

-			INonPluginEntry[] nonPlugins = getNonPluginEntries();

-			allNonPluginEntries.addAll(Arrays.asList(nonPlugins));

-

-			IFeatureReference[] children = getIncludedFeatureReferences();

-			for (int i = 0; i < children.length; i++) {

-				plugins = children[i].getFeature(null).getPluginEntries();

-				allPluginEntries.addAll(Arrays.asList(plugins));

-				nonPlugins = children[i].getFeature(null).getNonPluginEntries();

-				allNonPluginEntries.addAll(Arrays.asList(nonPlugins));

-			}

-

-			IPluginEntry[] totalPlugins =

-				new IPluginEntry[allPluginEntries.size()];

-			INonPluginEntry[] totalNonPlugins =

-				new INonPluginEntry[allNonPluginEntries.size()];

-			if (allPluginEntries.size() != 0) {

-				allPluginEntries.toArray(totalPlugins);

-			}

-			if (allNonPluginEntries.size() != 0) {

-				allNonPluginEntries.toArray(totalNonPlugins);

-			}

-

-			return getFeatureContentProvider().getInstallSizeFor(

-				totalPlugins,

-				totalNonPlugins);

-

-		} catch (CoreException e) {

-			UpdateCore.warn(null, e);

-			return ContentEntryModel.UNKNOWN_SIZE;

-		}

-	}

-

-	/**

-	 * Returns the content provider for this feature.

-	 * 

-	 * @see IFeature#getFeatureContentProvider()

-	 * @since 2.0

-	 */

-	public IFeatureContentProvider getFeatureContentProvider()

-		throws CoreException {

-		if (featureContentProvider == null) {

-			throw Utilities.newCoreException(

-				Policy.bind(

-					"Feature.NoContentProvider", //$NON-NLS-1$

-					getVersionedIdentifier().toString()),

-				null);	

-		}

-		return this.featureContentProvider;

-	}

-

-	/**

-	 * Returns the content consumer for this feature.

-	 * 

-	 * @see IFeature#getFeatureContentConsumer()

-	 * @since 2.0

-	 */

-	public IFeatureContentConsumer getFeatureContentConsumer()

-		throws CoreException {

-		throw new UnsupportedOperationException();

-	}

-

-	/**

-	 * Sets the site for this feature.

-	 * 

-	 * @see IFeature#setSite(ISite)

-	 * @since 2.0

-	 */

-	public void setSite(ISite site) throws CoreException {

-		if (this.site != null) {

-			String featureURLString =

-				(getURL() != null) ? getURL().toExternalForm() : ""; //$NON-NLS-1$

-			throw Utilities.newCoreException(

-				Policy.bind("Feature.SiteAlreadySet", featureURLString), //$NON-NLS-1$

-				null);

-		}

-		this.site = site;

-	}

-

-	/**

-	 * Sets the content provider for this feature.

-	 * 

-	 * @see IFeature#setFeatureContentProvider(IFeatureContentProvider)

-	 * @since 2.0

-	 */

-	public void setFeatureContentProvider(IFeatureContentProvider featureContentProvider) {

-		this.featureContentProvider = featureContentProvider;

-		featureContentProvider.setFeature(this);

-	}

-

-	/**

-	 * Return the string representation of this fetaure

-	 * 

-	 * @return feature as string

-	 * @since 2.0

-	 */

-	public String toString() {

-		String URLString =

-			(getURL() == null)

-				? Policy.bind("Feature.NoURL") //$NON-NLS-1$

-				: getURL().toExternalForm();

-

-		String verString =

-			Policy.bind(

-				"Feature.FeatureVersionToString", //$NON-NLS-1$

-				URLString,

-				getVersionedIdentifier().toString());

-		String label = getLabel() == null ? "" : getLabel(); //$NON-NLS-1$

-		return verString + " [" + label + "]"; //$NON-NLS-1$ //$NON-NLS-2$

-	}

-

-	/*

-	 * Installation has been cancelled, abort and revert

-	 */

-	private void abort() throws CoreException {

-		String msg = Policy.bind("Feature.InstallationCancelled"); //$NON-NLS-1$

-		throw new InstallAbortedException(msg, null);

-	}

-

-	/*

-	 * Initializes includes feature references

-	 * If the included feature reference is found on the site, add it to the List

-	 * Otherwise attempt to instanciate it using the same type as this feature and

-	 * using the default location on the site.

-	 */

-	private void initializeIncludedReferences() throws CoreException {

-		includedFeatureReferences = new ArrayList();

-

-		IIncludedFeatureReference[] nestedFeatures = getFeatureIncluded();

-		if (nestedFeatures.length == 0)

-			return;

-

-		ISite site = getSite();

-		if (site == null)

-			return;

-

-		for (int i = 0; i < nestedFeatures.length; i++) {

-			IIncludedFeatureReference include = nestedFeatures[i];

-			IIncludedFeatureReference newRef =

-				getPerfectIncludeFeature(site, include);

-			includedFeatureReferences.add(newRef);

-		}

-	}

-

-	/*

-	 * 

-	 */

-	private IIncludedFeatureReference getPerfectIncludeFeature(

-		ISite site,

-		IIncludedFeatureReference include)

-		throws CoreException {

-

-		// [20367] no site, cannot initialize nested references

-		ISiteFeatureReference[] refs = site.getFeatureReferences();

-		VersionedIdentifier identifier = include.getVersionedIdentifier();

-

-		// too long to compute if not a file system

-		// other solution would be to parse feature.xml

-		// when parsing file system to create archive features/FeatureId_Ver.jar

-		if ("file".equals(site.getURL().getProtocol())) { //$NON-NLS-1$

-			// check if declared on the Site

-			if (refs != null) {

-				for (int ref = 0; ref < refs.length; ref++) {

-					if (refs[ref] != null) {

-						VersionedIdentifier id =

-							refs[ref].getVersionedIdentifier();

-						if (identifier.equals(id)) {

-							// found a ISiteFeatureReference that matches our IIncludedFeatureReference

-							IncludedFeatureReference newRef =

-								new IncludedFeatureReference(refs[ref]);

-							newRef.isOptional(include.isOptional());

-							if (include instanceof FeatureReferenceModel)

-								newRef.setLabel(

-									((FeatureReferenceModel) include)

-										.getLabel());

-							newRef.setSearchLocation(

-								include.getSearchLocation());

-							return newRef;

-						}

-					}

-				}

-			}

-		}

-

-		// instanciate by mapping it based on the site.xml

-		// in future we may ask for a factory to create the feature ref

-		IncludedFeatureReference newRef = new IncludedFeatureReference(include);

-		newRef.setSite(getSite());

-		IFeatureReference parentRef = getSite().getFeatureReference(this);

-		if (parentRef instanceof FeatureReference) {

-			newRef.setType(((FeatureReference) parentRef).getType());

-		}

-		String featureID =

-			Site.DEFAULT_FEATURE_PATH + identifier.toString() + ".jar"; //$NON-NLS-1$

-		URL featureURL =

-			getSite().getSiteContentProvider().getArchiveReference(featureID);

-		newRef.setURL(featureURL);

-		newRef.setFeatureIdentifier(identifier.getIdentifier());

-		newRef.setFeatureVersion(identifier.getVersion().toString());

-		try {

-			newRef.resolve(getSite().getURL(), null);

-			// no need to get the bundle

-			return newRef;

-		} catch (Exception e) {

-			throw Utilities.newCoreException(

-				Policy.bind(

-					"Feature.UnableToInitializeFeatureReference", //$NON-NLS-1$

-					identifier.toString()),

-				e);

-		}

-	}

-

-	/*

-	 * 

-	 */

-	private void debug(String trace) {

-		//DEBUG

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_INSTALL) {

-			UpdateCore.debug(trace);

-		}

-	}

-

-	/*

-	 * 

-	 */

-	private void setMonitorTaskName(

-		IProgressMonitor monitor,

-		String taskName) {

-		if (monitor != null)

-			monitor.setTaskName(taskName);

-	}

-

-	/*

-	 *

-	 */

-	private void monitorWork(IProgressMonitor monitor, int tick)

-		throws CoreException {

-		if (monitor != null) {

-			monitor.worked(tick);

-			if (monitor.isCanceled()) {

-				abort();

-			}

-		}

-	}

-

-	/*

-	 * 

-	 */

-	private void verifyReferences(

-		IVerifier verifier,

-		ContentReference[] references,

-		InstallMonitor monitor,

-		IVerificationListener verificationListener,

-		boolean isFeature)

-		throws CoreException {

-		IVerificationResult vr = null;

-		if (verifier != null) {

-			for (int j = 0; j < references.length; j++) {

-				vr = verifier.verify(this, references[j], isFeature, monitor);

-				if (vr != null) {

-					if (verificationListener == null)

-						return;

-

-					int result = verificationListener.prompt(vr);

-

-					if (result == IVerificationListener.CHOICE_ABORT) {

-						String msg = Policy.bind("JarVerificationService.CancelInstall"); //$NON-NLS-1$

-						Exception e = vr.getVerificationException();

-						throw new InstallAbortedException(msg, e);

-					}

-					if (result == IVerificationListener.CHOICE_ERROR) {

-						throw Utilities

-							.newCoreException(

-								Policy.bind(

-									"JarVerificationService.UnsucessfulVerification"),	//$NON-NLS-1$

-						vr.getVerificationException());

-					}

-				}

-			}

-		}

-	}

-

-	/*

-	 * returns reference if the same feature is installed on the site

-	 * [18867]

-	 */

-	private IFeatureReference featureAlreadyInstalled(ISite targetSite) {

-

-		ISiteFeatureReference[] references = targetSite.getFeatureReferences();

-		IFeatureReference currentReference = null;

-		for (int i = 0; i < references.length; i++) {

-			currentReference = references[i];

-			// do not compare URL

-			try {

-				if (this.equals(currentReference.getFeature(null)))

-					return currentReference; // 18867

-			} catch (CoreException e) {

-				UpdateCore.warn(null, e);

-			}

-		}

-

-		UpdateCore.warn(

-			"ValidateAlreadyInstalled:Feature " //$NON-NLS-1$

-				+ this

-				+ " not found on site:" //$NON-NLS-1$

-				+ this.getURL());

-		return null;

-	}

-

-	/*

-	 * re initialize children of the feature, invalidate the cache

-	 * @param result FeatureReference to reinitialize.

-	 */

-	private void reinitializeFeature(IFeatureReference referenceToReinitialize) {

-

-		if (referenceToReinitialize == null)

-			return;

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)

-			UpdateCore.debug(

-				"Re initialize feature reference:" + referenceToReinitialize); //$NON-NLS-1$

-

-		IFeature feature = null;

-		try {

-			feature = referenceToReinitialize.getFeature(null);

-			if (feature != null && feature instanceof Feature) {

-				((Feature) feature).initializeIncludedReferences();

-			}

-			// bug 24981 - recursively go into hierarchy

-			// only if site if file 

-			ISite site = referenceToReinitialize.getSite();

-			if (site == null)

-				return;

-			URL url = site.getURL();

-			if (url == null)

-				return;

-			if ("file".equals(url.getProtocol())) { //$NON-NLS-1$

-				IFeatureReference[] included =

-					feature.getIncludedFeatureReferences();

-				for (int i = 0; i < included.length; i++) {

-					reinitializeFeature(included[i]);

-				}

-			}

-		} catch (CoreException e) {

-			UpdateCore.warn("", e); //$NON-NLS-1$

-		}

-	}

-

-	/**

-	 * @see org.eclipse.update.core.IFeature#getRawIncludedFeatureReferences()

-	 */

-	public IIncludedFeatureReference[] getIncludedFeatureReferences()

-		throws CoreException {

-		return filterFeatures(getRawIncludedFeatureReferences());

-	}

-

-	/*

-	 * Method filterFeatures.

-	 * Also implemented in Site

-	 * 

-	 * @param list

-	 * @return List

-	 */

-	private IIncludedFeatureReference[] filterFeatures(IIncludedFeatureReference[] allIncluded) {

-		List list = new ArrayList();

-		if (allIncluded != null) {

-			for (int i = 0; i < allIncluded.length; i++) {

-				IIncludedFeatureReference included = allIncluded[i];

-				if (UpdateManagerUtils.isValidEnvironment(included))

-					list.add(included);

-				else {

-					if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_WARNINGS) {

-						UpdateCore.warn(

-							"Filtered out feature reference:" + included); //$NON-NLS-1$

-					}

-				}

-			}

-		}

-

-		IIncludedFeatureReference[] result =

-			new IIncludedFeatureReference[list.size()];

-		if (!list.isEmpty()) {

-			list.toArray(result);

-		}

-

-		return result;

-	}

-

-	/**

-	 * @see org.eclipse.update.core.IFeature#getRawNonPluginEntries()

-	 */

-	public INonPluginEntry[] getNonPluginEntries() {

-		return filterNonPluginEntry(getRawNonPluginEntries());

-	}

-

-	/**

-	 * Method filterPluginEntry.

-	 * @param all

-	 * @return INonPluginEntry[]

-	 */

-	private INonPluginEntry[] filterNonPluginEntry(INonPluginEntry[] all) {

-		List list = new ArrayList();

-		if (all != null) {

-			for (int i = 0; i < all.length; i++) {

-				if (UpdateManagerUtils.isValidEnvironment(all[i]))

-					list.add(all[i]);

-			}

-		}

-

-		INonPluginEntry[] result = new INonPluginEntry[list.size()];

-		if (!list.isEmpty()) {

-			list.toArray(result);

-		}

-

-		return result;

-	}

-

-	/**

-	 * @see org.eclipse.update.core.IFeature#getRawPluginEntries()

-	 */

-	public IPluginEntry[] getPluginEntries() {

-		return filterPluginEntry(getRawPluginEntries());

-	}

-

-	/**

-	 * @see org.eclipse.update.core.IFeature#getImports()

-	 */

-	public IImport[] getImports() {

-		return filterImports(getRawImports());

-	}

-

-	/**

-	 * Method filterImports.

-	 * @param all

-	 * @return IImport[]

-	 */

-	private IImport[] filterImports(IImport[] all) {

-		List list = new ArrayList();

-		if (all != null) {

-			for (int i = 0; i < all.length; i++) {

-				if (UpdateManagerUtils.isValidEnvironment(all[i]))

-					list.add(all[i]);

-			}

-		}

-

-		IImport[] result = new IImport[list.size()];

-		if (!list.isEmpty()) {

-			list.toArray(result);

-		}

-

-		return result;

-	}

-

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureContentProvider.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureContentProvider.java
deleted file mode 100644
index ee5cd52..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureContentProvider.java
+++ /dev/null
@@ -1,590 +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 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.update.core;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * Base implementation of a feature content provider. This class provides a set
- * of helper methods useful for implementing feature content providers. In
- * particular, methods dealing with downloading and caching of feature files.
- * <p>
- * This class must be subclassed 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>
- * @see org.eclipse.update.core.IFeatureContentProvider
- * @since 2.0
- */
-public abstract class FeatureContentProvider
-	implements IFeatureContentProvider {
-
-	private static final boolean SWITCH_COPY_LOCAL = true;
-
-	/**
-	 *  
-	 */
-	public class FileFilter {
-
-		private IPath filterPath = null;
-
-		/**
-		 * Constructor for FileFilter.
-		 */
-		public FileFilter(String filter) {
-			super();
-			this.filterPath = new Path(filter);
-		}
-
-		/**
-		 * returns true if the name matches the rule
-		 */
-		public boolean accept(String name) {
-
-			if (name == null)
-				return false;
-
-			// no '*' pattern matching
-			// must be equals
-			IPath namePath = new Path(name);
-			if (filterPath.lastSegment().indexOf('*') == -1) {
-				return filterPath.equals(namePath);
-			}
-
-			// check same file extension if extension exists (a.txt/*.txt)
-			// or same file name (a.txt,a.*)
-			String extension = filterPath.getFileExtension();
-			if (!extension.equals("*")) { //$NON-NLS-1$
-				if (!extension.equalsIgnoreCase(namePath.getFileExtension()))
-					return false;
-			} else {
-				IPath noExtension = filterPath.removeFileExtension();
-				String fileName = noExtension.lastSegment();
-				if (!fileName.equals("*")) { //$NON-NLS-1$
-					if (!namePath.lastSegment().startsWith(fileName))
-						return false;
-				}
-			}
-
-			// check same path
-			IPath p1 = namePath.removeLastSegments(1);
-			IPath p2 = filterPath.removeLastSegments(1);
-			return p1.equals(p2);
-		}
-
-	}
-
-	private URL base;
-	private IFeature feature;
-	private File tmpDir; // local work area for each provider
-	public static final String JAR_EXTENSION = ".jar"; //$NON-NLS-1$	
-
-	private static final String DOT_PERMISSIONS = "permissions.properties"; //$NON-NLS-1$
-	private static final String EXECUTABLES = "permissions.executable"; //$NON-NLS-1$
-
-	// lock
-	private final static Object lock = new Object();
-
-	// hashtable of locks
-	private static Hashtable locks = new Hashtable();
-
-	/**
-	 * Feature content provider constructor
-	 * 
-	 * @param base
-	 *            feature URL. The interpretation of this URL is specific to
-	 *            each content provider.
-	 * @since 2.0
-	 */
-	public FeatureContentProvider(URL base) {
-		this.base = base;
-		this.feature = null;
-	}
-
-	/**
-	 * Returns the feature url.
-	 * 
-	 * @see IFeatureContentProvider#getURL()
-	 */
-	public URL getURL() {
-		return base;
-	}
-
-	/**
-	 * Returns the feature associated with this content provider.
-	 * 
-	 * @see IFeatureContentProvider#getFeature()
-	 */
-	public IFeature getFeature() {
-		return feature;
-	}
-
-	/**
-	 * Sets the feature associated with this content provider.
-	 * 
-	 * @see IFeatureContentProvider#setFeature(IFeature)
-	 */
-	public void setFeature(IFeature feature) {
-		this.feature = feature;
-	}
-
-	/**
-	 * Returns the specified reference as a local file system reference. If
-	 * required, the file represented by the specified content reference is
-	 * first downloaded to the local system
-	 * 
-	 * @param ref
-	 *            content reference
-	 * @param monitor
-	 *            progress monitor, can be <code>null</code>
-	 * @exception IOException
-	 * @exception CoreException
-	 * @since 2.0
-	 */
-	public ContentReference asLocalReference(
-		ContentReference ref,
-		InstallMonitor monitor)
-		throws IOException, CoreException {
-
-		// check to see if this is already a local reference
-		if (ref.isLocalReference())
-			return ref;
-
-		// check to see if we already have a local file for this reference
-		String key = ref.toString();
-
-		// need to synch as another thread my have created the file but
-		// is still copying into it
-		File localFile = null;
-		FileFragment localFileFragment = null;
-		Object keyLock = null;
-		synchronized (lock) {
-			if (locks.get(key) == null)
-				locks.put(key, key);
-			keyLock = locks.get(key);
-		}
-
-		synchronized (keyLock) {
-			localFile = Utilities.lookupLocalFile(key);
-			if (localFile != null) {
-				// check if the cached file is still valid (no newer version on
-				// server)
-				if (UpdateManagerUtils
-					.isSameTimestamp(ref.asURL(), localFile.lastModified()))
-					return ref.createContentReference(
-						ref.getIdentifier(),
-						localFile);
-			}
-
-			if (localFile == null) {
-				localFileFragment =
-					UpdateManagerUtils.lookupLocalFileFragment(key);
-			}
-			// 
-			// download the referenced file into local temporary area
-			InputStream is = null;
-			OutputStream os = null;
-			long bytesCopied = 0;
-			long inputLength = 0;
-			boolean success = false;
-			if (monitor != null) {
-				monitor.saveState();
-				monitor.setTaskName(
-					Policy.bind("FeatureContentProvider.Downloading")); //$NON-NLS-1$
-				monitor.subTask(ref.getIdentifier() + " "); //$NON-NLS-1$
-				monitor.setTotalCount(ref.getInputSize());
-				monitor.showCopyDetails(true);
-			}
-
-			try {
-				if (localFileFragment != null
-					&& "http".equals(ref.asURL().getProtocol())) { //$NON-NLS-1$
-					localFile = localFileFragment.getFile();
-					try {
-						// get partial input stream
-						is =
-							ref.getPartialInputStream(
-								localFileFragment.getSize());
-						inputLength = ref.getInputSize()-localFileFragment.getSize(); 
-						// get output stream to append to file fragment
-						os =
-							new BufferedOutputStream(
-								// PAL foundation
-								//new FileOutputStream(localFile, true));
-								new FileOutputStream(localFile.getPath(), true));
-					} catch (IOException e) {
-						try {
-							if (is != null)
-								is.close();
-						} catch (IOException ioe) {
-						}
-						is = null;
-						os = null;
-						localFileFragment = null;
-					}
-				}
-				if (is == null) {
-					// must download from scratch
-					localFile =
-						Utilities.createLocalFile(getWorkingDirectory(), null);
-					try {
-						is = ref.getInputStream();
-						inputLength = ref.getInputSize(); 
-					} catch (IOException e) {
-						throw Utilities.newCoreException(
-							Policy.bind(
-								"FeatureContentProvider.UnableToRetrieve", //$NON-NLS-1$
-								new Object[] { ref }),
-							e);
-					}
-
-					try {
-						os =
-							new BufferedOutputStream(
-								new FileOutputStream(localFile));
-					} catch (FileNotFoundException e) {
-						throw Utilities.newCoreException(
-							Policy.bind(
-								"FeatureContentProvider.UnableToCreate", //$NON-NLS-1$
-								new Object[] { localFile }),
-							e);
-					}
-				}
-
-				Date start = new Date();
-				if (localFileFragment != null) {
-					bytesCopied = localFileFragment.getSize();
-					if (monitor != null) {
-						monitor.setCopyCount(bytesCopied);
-					}
-				}
-
-				// Transfer as many bytes as possible from input to output stream
-				long offset = UpdateManagerUtils.copy(is, os, monitor, inputLength);
-				if (offset != -1) {
-					bytesCopied += offset;
-					if (bytesCopied > 0) {
-						// preserve partially downloaded file
-						UpdateManagerUtils.mapLocalFileFragment(
-								key,
-								new FileFragment(localFile, bytesCopied));
-					}
-					if (monitor.isCanceled()) {
-						String msg = Policy.bind("Feature.InstallationCancelled"); //$NON-NLS-1$
-						throw new InstallAbortedException(msg, null);
-					} else {
-						throw new FeatureDownloadException(
-							Policy.bind(
-								"FeatureContentProvider.ExceptionDownloading", //$NON-NLS-1$
-								new Object[] { getURL().toExternalForm()}),
-							new IOException());
-					}
-				} else {
-					UpdateManagerUtils.unMapLocalFileFragment(key);
-				}
-
-				Date stop = new Date();
-				long timeInseconds = (stop.getTime() - start.getTime()) / 1000;
-				// time in milliseconds /1000 = time in seconds
-				InternalSiteManager.downloaded(
-					ref.getInputSize(),
-					(timeInseconds),
-					ref.asURL());
-
-				success = true;
-
-				// file is downloaded succesfully, map it
-				Utilities.mapLocalFile(key, localFile);
-			} catch (ClassCastException e) {
-				throw Utilities.newCoreException(
-					Policy.bind(
-						"FeatureContentProvider.UnableToCreate", //$NON-NLS-1$
-						new Object[] { localFile }),
-					e);
-			} finally {
-				//Do not close IS if user cancel,
-				//closing IS will read the entire Stream until the end
-				if (success && is != null)
-					try {
-						is.close();
-					} catch (IOException e) {
-					}
-				if (os != null)
-					try {
-						os.close(); // should flush buffer stream
-					} catch (IOException e) {
-					}
-
-				if (success || bytesCopied > 0) {
-					// set the timestamp on the temp file to match the remote
-					// timestamp
-					localFile.setLastModified(ref.getLastModified());
-				}
-				if (monitor != null)
-					monitor.restoreState();
-			}
-			locks.remove(key);
-		} // end lock
-		ContentReference reference =
-			ref.createContentReference(ref.getIdentifier(), localFile);
-		return reference;
-	}
-
-	/**
-	 * Returns the specified reference as a local file. If required, the file
-	 * represented by the specified content reference is first downloaded to
-	 * the local system
-	 * 
-	 * @param ref
-	 *            content reference
-	 * @param monitor
-	 *            progress monitor, can be <code>null</code>
-	 * @exception IOException
-	 * @exception CoreException
-	 * @since 2.0
-	 */
-	public File asLocalFile(ContentReference ref, InstallMonitor monitor)
-		throws IOException, CoreException {
-		File file = ref.asFile();
-		if (file != null && !SWITCH_COPY_LOCAL)
-			return file;
-		ContentReference localRef = asLocalReference(ref, monitor);
-		file = localRef.asFile();
-		return file;
-	}
-
-	/**
-	 * Returns working directory for this content provider
-	 * 
-	 * @return working directory
-	 * @exception IOException
-	 * @since 2.0
-	 */
-	protected File getWorkingDirectory() throws IOException {
-		if (tmpDir == null)
-			tmpDir = Utilities.createWorkingDirectory();
-		return tmpDir;
-	}
-
-	/**
-	 * Returns the total size of all archives required for the specified
-	 * plug-in and non-plug-in entries (the "packaging" view).
-	 * 
-	 * @see IFeatureContentProvider#getDownloadSizeFor(IPluginEntry[],
-	 *      INonPluginEntry[])
-	 */
-	public long getDownloadSizeFor(
-		IPluginEntry[] pluginEntries,
-		INonPluginEntry[] nonPluginEntries) {
-		long result = 0;
-
-		// if both are null or empty, return UNKNOWN size
-		if ((pluginEntries == null || pluginEntries.length == 0)
-			&& (nonPluginEntries == null || nonPluginEntries.length == 0)) {
-			return ContentEntryModel.UNKNOWN_SIZE;
-		}
-
-		// loop on plugin entries
-		long size = 0;
-		if (pluginEntries != null)
-			for (int i = 0; i < pluginEntries.length; i++) {
-				size = ((PluginEntryModel) pluginEntries[i]).getDownloadSize();
-				if (size == ContentEntryModel.UNKNOWN_SIZE) {
-					return ContentEntryModel.UNKNOWN_SIZE;
-				}
-				result += size;
-			}
-
-		// loop on non plugin entries
-		if (nonPluginEntries != null)
-			for (int i = 0; i < nonPluginEntries.length; i++) {
-				size =
-					((NonPluginEntryModel) nonPluginEntries[i])
-						.getDownloadSize();
-				if (size == ContentEntryModel.UNKNOWN_SIZE) {
-					return ContentEntryModel.UNKNOWN_SIZE;
-				}
-				result += size;
-			}
-
-		return result;
-	}
-
-	/**
-	 * Returns the total size of all files required for the specified plug-in
-	 * and non-plug-in entries (the "logical" view).
-	 * 
-	 * @see IFeatureContentProvider#getInstallSizeFor(IPluginEntry[],
-	 *      INonPluginEntry[])
-	 */
-	public long getInstallSizeFor(
-		IPluginEntry[] pluginEntries,
-		INonPluginEntry[] nonPluginEntries) {
-		long result = 0;
-
-		// if both are null or empty, return UNKNOWN size
-		if ((pluginEntries == null || pluginEntries.length == 0)
-			&& (nonPluginEntries == null || nonPluginEntries.length == 0)) {
-			return ContentEntryModel.UNKNOWN_SIZE;
-		}
-
-		// loop on plugin entries
-		long size = 0;
-		if (pluginEntries != null)
-			for (int i = 0; i < pluginEntries.length; i++) {
-				size = ((PluginEntryModel) pluginEntries[i]).getInstallSize();
-				if (size == ContentEntryModel.UNKNOWN_SIZE) {
-					return ContentEntryModel.UNKNOWN_SIZE;
-				}
-				result += size;
-			}
-
-		// loop on non plugin entries
-		if (nonPluginEntries != null)
-			for (int i = 0; i < nonPluginEntries.length; i++) {
-				size =
-					((NonPluginEntryModel) nonPluginEntries[i])
-						.getInstallSize();
-				if (size == ContentEntryModel.UNKNOWN_SIZE) {
-					return ContentEntryModel.UNKNOWN_SIZE;
-				}
-				result += size;
-			}
-
-		return result;
-	}
-
-	/**
-	 * Returns the path identifier for a plugin entry. <code>plugins/&lt;pluginId>_&lt;pluginVersion>.jar</code>
-	 * 
-	 * @return the path identifier
-	 */
-	protected String getPathID(IPluginEntry entry) {
-		return Site.DEFAULT_PLUGIN_PATH
-			+ entry.getVersionedIdentifier().toString()
-			+ JAR_EXTENSION;
-	}
-
-	/**
-	 * Returns the path identifer for a non plugin entry. <code>features/&lt;featureId>_&lt;featureVersion>/&lt;dataId></code>
-	 * 
-	 * @return the path identifier
-	 */
-	protected String getPathID(INonPluginEntry entry) {
-		String nonPluginBaseID =
-			Site.DEFAULT_FEATURE_PATH
-				+ feature.getVersionedIdentifier().toString()
-				+ "/"; //$NON-NLS-1$
-		return nonPluginBaseID + entry.getIdentifier();
-	}
-
-	/**
-	 * Sets the permission of all the ContentReferences Check for the
-	 * .permissions contentReference and use it to set the permissions of other
-	 * ContentReference
-	 */
-	protected void validatePermissions(ContentReference[] references) {
-
-		if (references == null || references.length == 0)
-			return;
-
-		Map permissions = getPermissions(references);
-		if (permissions.isEmpty())
-			return;
-
-		for (int i = 0; i < references.length; i++) {
-			ContentReference contentReference = references[i];
-			String id = contentReference.getIdentifier();
-			Object value = null;
-			if ((value = matchesOneRule(id, permissions)) != null) {
-				Integer permission = (Integer) value;
-				contentReference.setPermission(permission.intValue());
-			}
-		}
-	}
-
-	/**
-	 * Returns the value of the matching rule or <code>null</code> if none
-	 * found. A rule is matched if the id is equals to a key, or if the id is
-	 * resolved by a key. if the id is <code>/path/file.txt</code> it is
-	 * resolved by <code>/path/*</code> or <code>/path/*.txt</code>
-	 * 
-	 * @param id
-	 *            the identifier
-	 * @param permissions
-	 *            list of rules
-	 * @return Object the value of the matcing rule or <code>null</code>
-	 */
-	private Object matchesOneRule(String id, Map permissions) {
-
-		Set keySet = permissions.keySet();
-		Iterator iter = keySet.iterator();
-		while (iter.hasNext()) {
-			FileFilter rule = (FileFilter) iter.next();
-			if (rule.accept(id)) {
-				return permissions.get(rule);
-			}
-		}
-
-		return null;
-	}
-
-	/*
-	 * returns the permission MAP
-	 */
-	private Map getPermissions(ContentReference[] references) {
-
-		Map result = new HashMap();
-		// search for .permissions
-		boolean notfound = true;
-		ContentReference permissionReference = null;
-		for (int i = 0; i < references.length && notfound; i++) {
-			ContentReference contentReference = references[i];
-			if (DOT_PERMISSIONS.equals(contentReference.getIdentifier())) {
-				notfound = false;
-				permissionReference = contentReference;
-			}
-		}
-		if (notfound)
-			return result;
-
-		Properties prop = new Properties();
-		try {
-			prop.load(permissionReference.getInputStream());
-		} catch (IOException e) {
-			UpdateCore.warn("", e); //$NON-NLS-1$
-		}
-
-		String executables = prop.getProperty(EXECUTABLES);
-		if (executables == null)
-			return result;
-
-		StringTokenizer tokenizer = new StringTokenizer(executables, ","); //$NON-NLS-1$
-		Integer defaultExecutablePermission =
-			new Integer(ContentReference.DEFAULT_EXECUTABLE_PERMISSION);
-		while (tokenizer.hasMoreTokens()) {
-			FileFilter filter = new FileFilter(tokenizer.nextToken());
-			result.put(filter, defaultExecutablePermission);
-		}
-
-		return result;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureReference.java
deleted file mode 100644
index 865caa8..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureReference.java
+++ /dev/null
@@ -1,288 +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 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.update.core;
-
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * Convenience implementation of a feature reference.
- * <p>
- * This class may be instantiated or subclassed 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>
- * @see org.eclipse.update.core.IFeatureReference
- * @see org.eclipse.update.core.model.FeatureReferenceModel
- * @since 2.0
- */
-public class FeatureReference extends FeatureReferenceModel implements IFeatureReference, IPlatformEnvironment {
-
-	private VersionedIdentifier versionId;
-
-	//PERF: new instance variable
-	private IFeature exactFeature;
-
-	/**
-	 * Feature reference default constructor
-	 */
-	public FeatureReference() {
-		super();
-	}
-
-	/**
-	 * Constructor FeatureReference.
-	 * @param ref the reference to copy
-	 */
-	public FeatureReference(IFeatureReference ref) {
-		super((FeatureReferenceModel) ref);
-		try {
-			setURL(ref.getURL());
-		} catch (CoreException e) {
-			UpdateCore.warn("", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Constructor FeatureReference.
-	 * @param ref the reference to copy
-	 */
-	public FeatureReference(FeatureReferenceModel ref) {
-		super(ref);
-		try {
-			setURL(ref.getURL());
-		} catch (CoreException e) {
-			UpdateCore.warn("", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Returns the feature this reference points to 
-	 * @return the feature on the Site
-	 * @deprecated use getFeaure(IProgressMonitor)
-	 */
-	public IFeature getFeature() throws CoreException {
-		return getFeature(null);
-	}
-
-	/**
-	 * Returns the feature this reference points to 
-	 *  @return the feature on the Site
-	 */
-	public IFeature getFeature(IProgressMonitor monitor) throws CoreException {
-
-		if (exactFeature != null)
-			return exactFeature;
-		exactFeature = getFeature(this,monitor);
-		return exactFeature;
-	}
-
-	/**
-	 * Returns the feature the reference points to 
-	 * @param ref the feature reference
-	 * @return the feature on the Site
-	 */
-	protected IFeature getFeature(IFeatureReference ref,IProgressMonitor monitor) throws CoreException {
-
-		IFeature feature = null;
-		URL refURL = ref.getURL();
-		feature = createFeature(refURL,monitor);
-		return feature;
-	}
-
-	/*
-	 * create an instance of a concrete feature corresponding to this reference
-	 */
-	private IFeature createFeature(URL url,IProgressMonitor monitor) throws CoreException {
-		String type = getType();
-		ISite site = getSite();
-		// if the site exists, use the site factory
-		if (site != null) {
-			return site.createFeature(type, url, monitor);
-		}
-		
-		IFeatureFactory factory = FeatureTypeFactory.getInstance().getFactory(type);
-		return factory.createFeature(url, site, monitor);
-	}
-
-	/**
-	 * Returns the update site for the referenced feature
-	 * 
-	 * @see IFeatureReference#getSite()
-	 * @since 2.0 
-	 */
-	public ISite getSite() {
-		return (ISite) getSiteModel();
-	}
-
-	/** 
-	 * Sets the feature reference URL.
-	 * This is typically performed as part of the feature reference creation
-	 * operation. Once set, the url should not be reset.
-	 * 
-	 * @see IFeatureReference#setURL(URL)
-	 * @since 2.0 
-	 */
-	public void setURL(URL url) throws CoreException {
-		if (url != null) {
-			setURLString(url.toExternalForm());
-			try {
-				resolve(url, null);
-			} catch (MalformedURLException e) {
-				throw Utilities.newCoreException(Policy.bind("FeatureReference.UnableToResolveURL", url.toExternalForm()), e);	//$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Associates a site with the feature reference.
-	 * This is typically performed as part of the feature reference creation
-	 * operation. Once set, the site should not be reset.
-	 * 
-	 * @see IFeatureReference#setSite(ISite)
-	 * @since 2.0 
-	 */
-	public void setSite(ISite site) {
-		setSiteModel((SiteModel) site);
-	}
-
-	/**
-	* Returns the feature identifier.
-	* 
-	* @see IFeatureReference#getVersionedIdentifier()
-	* @since 2.0
-	*/
-	public VersionedIdentifier getVersionedIdentifier() {
-
-		if (versionId != null)
-			return versionId;
-
-		String id = getFeatureIdentifier();
-		String ver = getFeatureVersion();
-		if (id != null && ver != null) {
-			try {
-				versionId = new VersionedIdentifier(id, ver);
-				return versionId;
-			} catch (Exception e) {
-				UpdateCore.warn("Unable to create versioned identifier:" + id + ":" + ver); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-
-		// we need the exact match or we may have an infinite loop
-		versionId = new VersionedIdentifier(getURL().toExternalForm(), null);
-		try {
-			versionId = getFeature(null).getVersionedIdentifier();
-		} catch (CoreException e) {
-			UpdateCore.warn("", e); //$NON-NLS-1$
-		}
-		return versionId;
-	}
-
-	/**
-	 * @see org.eclipse.update.core.IFeatureReference#getName()
-	 */
-	public String getName() {
-		if (super.getLabel() != null)
-			return super.getLabel();
-		try {
-			return getFeature(null).getLabel();
-		} catch (CoreException e) {
-			return getVersionedIdentifier().toString();
-		}
-	}
-
-	/**
-	 * Get optional operating system specification as a comma-separated string.
-	 *
-	 * @return the operating system specification string, or <code>null</code>.
-	 * @since 2.1
-	 */
-	public String getOS() {
-		if (super.getOS() == null && getURL()!=null)
-			try {
-				return getFeature(null).getOS();
-			} catch (CoreException e) {
-				return null;
-			}
-		return super.getOS();
-	}
-
-	/**
-	 * Get optional windowing system specification as a comma-separated string.
-	 *
-	 * @return the windowing system specification string, or <code>null</code>.
-	 * @since 2.1
-	 */
-	public String getWS() {
-		if (super.getWS() == null && getURL()!=null)
-			try {
-				return getFeature(null).getWS();
-			} catch (CoreException e) {
-				return null;
-			}
-		return super.getWS();
-	}
-
-	/**
-	 * Get optional system architecture specification as a comma-separated string.
-	 *
-	 * @return the system architecture specification string, or <code>null</code>.
-	 * @since 2.1
-	 */
-	public String getOSArch() {
-		if (super.getOSArch() == null && getURL()!=null)
-			try {
-				return getFeature(null).getOSArch();
-			} catch (CoreException e) {
-				return null;
-			}
-		return super.getOSArch();
-	}
-
-	/**
-	 * Get optional locale specification as a comma-separated string.
-	 *
-	 * @return the locale specification string, or <code>null</code>.
-	 * @since 2.1
-	 */
-	public String getNL() {
-		if (super.getNL() == null && getURL()!=null)
-			try {
-				return getFeature(null).getNL();
-			} catch (CoreException e) {
-				return null;
-			}
-		return super.getNL();
-	}
-
-	/**
-	 * Returns <code>true</code> if this feature is patching another feature,
-	 * <code>false</code> otherwise
-	 * @return boolean
-	 */
-	public boolean isPatch() {
-		if (super.getPatch() == null)
-			try {
-				return getFeature(null).isPatch();
-			} catch (CoreException e) {
-				return false;
-			}
-		return "true".equalsIgnoreCase(super.getPatch()); //$NON-NLS-1$
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IArchiveReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IArchiveReference.java
deleted file mode 100644
index 8971677..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IArchiveReference.java
+++ /dev/null
@@ -1,53 +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 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.update.core;
-
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Site archive interface.
- * Site archive is a representation of a packaged archive (file) located
- * on an update site. It allows a "symbolic" path used to identify
- * a plug-in or non-plug-in feature entry to be explicitly mapped
- * to a specific URL. 
- * <p>
- * Clients may implement this interface. However, in most cases clients should 
- * directly instantiate or subclass the provided implementation of this 
- * interface.
- * </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>
- * @see org.eclipse.update.core.ArchiveReference
- * @since 2.0
- */
-public interface IArchiveReference extends IAdaptable {
-
-	/** 
-	 * 
-	 * @return the archive "symbolic" path, or <code>null</code>
-	 * @since 2.0 
-	 */
-	public String getPath();
-
-	/**
-	 * Retrieve the site archive URL 
-	 * 
-	 * @return the archive URL, or <code>null</code>
-	 * @since 2.0 
-	 */
-	public URL getURL();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/ICategory.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/ICategory.java
deleted file mode 100644
index e57aa75..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/ICategory.java
+++ /dev/null
@@ -1,64 +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 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.update.core;

-

-import org.eclipse.core.runtime.*;

-

-/**

- * Feature category definition.

- * A site can organize its features into categories. Categories

- * can be further organized into hierarchies. Each category name

- * is a composed of the name of its parent and a simple identifier

- * separated by a slash ("/"). For example <code>tools/utilities/print</code>

- * defines a category that is a child of <code>tools/utilities</code> and

- * grandchild of <code>tools</code>.

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.Category

- * @since 2.0

- */

-public interface ICategory  extends IAdaptable{

-

-	/** 

-	 * Retrieve the name of the category. The name can be a simple

-	 * token (root category) or a number of slash-separated ("/") 

-	 * tokens.

-	 * 

-	 * @return the category name

-	 * @since 2.0 

-	 */

-	public String getName();

-

-	/**

-	 * Retrieve the displayable label for the category

-	 * 

-	 * @return displayable category label, or <code>null</code>

-	 * @since 2.0 

-	 */

-	public String getLabel();

-

-	/** 

-	 * Retrieve the detailed category description

-	 * 

-	 * @return category description, or <code>null</code>

-	 * @since 2.0 

-	 */

-	public IURLEntry getDescription();

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IContentConsumer.java
deleted file mode 100644
index 5d9715c..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IContentConsumer.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the 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.update.core;

-

-import org.eclipse.core.runtime.*;

-

-/**

- * Generic content consumer.

- * A generic content consumer is used to store plug-in and non-plug-in files

- * for a feature.

- * <p>

- * Clients may implement this interface. However, in most cases clients 

- * will only use the content consumer provided by the feature type(s)

- * implemented by the platform.

- * </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>

- * @see org.eclipse.update.core.IFeatureContentConsumer

- * @since 2.0

- */

-public interface IContentConsumer {

-

-	/**

-	 * Stores a file.

-	 * 

-	 * @see IFeatureContentConsumer#open(IPluginEntry)

-	 * @see IFeatureContentConsumer#open(INonPluginEntry)

-	 * @param contentReference reference to the file to store

-	 * @param monitor progress monitor, can be <code>null</code>

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public void store(ContentReference contentReference, IProgressMonitor monitor)

-		throws CoreException;

-

-	/**

-	 * Indicates successful completion of the store operations for this

-	 * consumer

-	 * 

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public void close() throws CoreException;

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeature.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeature.java
deleted file mode 100644
index 2dd17cb..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeature.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.core;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.model.*;

-

-/**

- * Feature defines the packaging "container" for a group of related plug-ins,

- * plug-in fragments, and optionally non-plug-in files. 

- * <p>

- * Features are treated purely as an installation and packaging construct. 

- * They do not play a role during Eclipse plug-in execution.

- * They are simply an inclusive "manifest" of the plug-ins, fragments 

- * and other files that make up that feature. If features are logically made 

- * up of plug-ins from "sub-features", the top-level feature "manifest"

- * must be fully resolved at packaging time.

- * </p>

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.Feature

- * @since 2.0

- */

-public interface IFeature extends IAdaptable, IPlatformEnvironment {

-

-	/**

-	 * Indicates a 'happy' feature

-	 * A feature is considered to be 'happy' in the context of a local site

-	 * if all the plug-ins referenced by the feature are installed on the site and no other

-	 * version of any of the plug-ins are installed on any other site of the local site.

-	 * 

-	 * @see org.eclipse.update.configuration.IConfiguredSite#getBrokenStatus(IFeature)

-	 * @since 2.0

-	 */

-	public static final int STATUS_HAPPY = 0;

-

-	/**

-	 * Indicates a 'happy' feature

-	 * A feature is considered to be 'ambiguous' in the context of a local site

-	 * if all the plug-ins referenced by the feature are installed on the site and other

-	 * version of any of the plug-ins are installed on any other site of the local site.

-	 * 

-	 * @see org.eclipse.update.configuration.IConfiguredSite#getBrokenStatus(IFeature)

-	 */	

-	public static final int STATUS_AMBIGUOUS = 1;

-	

-	/**

-	 * Indicates an 'unhappy' feature

-	 * A feature is considered to be 'unhappy' in the context of this site,

-	 * if some of the plug-ins referenced by the feature are not installed on this site.

-	 * 

-	 * @see org.eclipse.update.configuration.IConfiguredSite#getBrokenStatus(IFeature)

-	 * @since 2.0

-	 */	

-	public static final int STATUS_UNHAPPY = 2;

-	

-	

-	/**

-	 * Indicates a disable feature

-	 * 

-	 * @see org.eclipse.update.configuration.IConfiguredSite#getBrokenStatus(IFeature)

-	 * @since 2.0.2

-	 */	

-	public static final int STATUS_DISABLED = -1;

-		

-	/**

-	 * Indicates the one-click update will search the 

-	 * location of the nesting root feature.

-	 * 

-	 * @since 2.0.1

-	 */	

-	public static final int SEARCH_LOCATION_DEFAULT = 0;	

-

-	/**

-	 * Indicates the one-click update will search the 

-	 * location defined by the feature.

-	 * 

-	 * @since 2.0.1

-	 */	

-	public static final int SEARCH_LOCATION_FEATURE = 1;	

-

-	/**

-	 * Indicates the one-click update will search both the 

-	 * location of the nesting root feature and the 

-	 * location defined by the feature.

-	 * 

-	 * @since 2.0.1

-	 */	

-	public static final int SEARCH_LOCATION_BOTH = 2;	

-

-	

-	/**

-	 * Returns the feature identifier.

-	 * 

-	 * @return the feature identifier.

-	 * @since 2.0 

-	 */

-	public VersionedIdentifier getVersionedIdentifier();

-

-	/**

-	 * Returns the site this feature is associated with.

-	 * 

-	 * @return the site for this feature

-	 * @since 2.0 

-	 */

-	public ISite getSite();

-

-	/**

-	 * Returns the displayable label of the feature.

-	 * 

-	 * @return feature label, or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public String getLabel();

-

-	/**

-	 * Returns the feature URL.

-	 * This is the URL that was used to create the feature. The interpretation

-	 * of the URL is dependent on the concrete feature implementation.  * 

-	 * @return feature URL

-	 * @since 2.0 

-	 */

-	public URL getURL();

-

-	/**

-	 * Returns an information entry referencing the location of the

-	 * feature update site. The update site can be accessed to obtain

-	 * feature updates for this feature.

-	 * 

-	 * @return update site entry, or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public IURLEntry getUpdateSiteEntry();

-

-	/**

-	 * Return an array of information entries referencing locations of other

-	 * update sites. This mechanism can be used by features to distribute

-	 * location information about general update sites to clients.

-	 * 

-	 * @return an array of site entries, or an empty array.

-	 * @since 2.0 

-	 */

-	public IURLEntry[] getDiscoverySiteEntries();

-

-	/**

-	 * Returns a displayable label identifying the provider of this feature

-	 * 

-	 * @return provider label, or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public String getProvider();

-

-	/**

-	 * Returns and optional custom install handler entry.

-	 * 

-	 * @return install handler entry, or <code>null</code> if

-	 * none was specified

-	 * @since 2.0

-	 */

-	public IInstallHandlerEntry getInstallHandlerEntry();

-

-	/**

-	 * Returns the feature description.

-	 * 

-	 * @return feature rescription, or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public IURLEntry getDescription();

-

-	/**

-	 * Returns the copyright information for the feature.

-	 * 

-	 * @return copyright information, or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public IURLEntry getCopyright();

-

-	/**

-	 * Returns the license information for the feature.

-	 * 

-	 * @return feature license, or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public IURLEntry getLicense();

-

-	/**

-	 * Return optional image for the feature.

-	 * 

-	 * @return the URL pointing to the image, , or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public URL getImage();

-

-	/**

-	 * Return a list of plug-in dependencies for this feature. A plug-in

-	 * dependency is a reference to a plug-in required for feature execution

-	 * that is not packaged as part of the feature.

-	 * filtered by the operating system, windowing system and architecture system

-	 * set in <code>Sitemanager</code>

-	 * 

-	 * @return the list of required plug-in dependencies, or an empty array.

-	 * @since 2.0 

-	 */

-	public IImport[] getImports();

-

-	/**

-	 * Return a list of plug-in dependencies for this feature. A plug-in

-	 * dependency is a reference to a plug-in required for feature execution

-	 * that is not packaged as part of the feature.

- 	 * No filtering occurs

-	 * 

-	 * @return the list of required plug-in dependencies, or an empty array.

-	 * @since 2.1

-	 */

-	public IImport[] getRawImports();

-	

-	/**

-	 * Return the identifier of the primary plugin associated to this feature

-	 * or <code>null</code> if the feature is not a primary feature.

-	 * If the primary plugin id is not specified and the feature is a primary

-	 * feature, returns the feature identifier.

-	 * 

-	 * @return the identifier of the associated primary plugin or <code>null</code>

-	 * @since 2.1 

-	 */

-	public String getPrimaryPluginID();

-

-

-	/**

-	 * Install the contents of this feature into the specified target feature.

-	 * All optional features will be installed

-	 * 

-	 * @param targetFeature

-	 * @param verificationListener

-	 * @param monitor

-	 * @exception InstallAbortedException when the user cancels the install

-	 * @exception CoreException

-	 * @since 2.0

-	 */

-	public IFeatureReference install(

-		IFeature targetFeature,

-		IVerificationListener verificationListener,

-		IProgressMonitor monitor)

-		throws InstallAbortedException,CoreException;

-

-	/**

-	 * Install the contents of this feature into the specified target feature.

-	 * Only the listed optional features will be installed.

-	 * 

-	 * @param targetFeature

-	 * @param optionalFeatures the optional features to be installed

-	 * @param verificationListener

-	 * @param monitor

-	 * @exception InstallAbortedException when the user cancels the install

-	 * @exception CoreException

-	 * @since 2.0.1

-	 */

-	public IFeatureReference install(

-		IFeature targetFeature,

-		IFeatureReference[] optionalFeatures,

-		IVerificationListener verificationListener,

-		IProgressMonitor monitor)

-		throws InstallAbortedException,CoreException;

-

-	/**

-	 * Returns an array of feature references included by this feature

-	 * filtered by the operating system, windowing system and architecture system

-	 * set in <code>Sitemanager</code>

-	 * 

-	 * @return an erray of feature references, or an empty array.

-	 * @since 2.0

-	 */

-	public IIncludedFeatureReference[] getIncludedFeatureReferences() throws CoreException;

-

-	/**

-	 * Returns an array of feature references included by this feature

-	 * No filtering occurs

-	 * 

-	 * @return an erray of feature references, or an empty array.

-	 * @since 2.0

-	 */

-	public IIncludedFeatureReference[] getRawIncludedFeatureReferences() throws CoreException;

-

-	/**

-	 * Returns an array of plug-in entries referenced by this feature

-	 * filtered by the operating system, windowing system and architecture system

-	 * set in <code>Sitemanager</code>

-	 * 

-	 * @return an erray of plug-in entries, or an empty array.

-	 * @since 2.0

-	 */

-	public IPluginEntry[] getPluginEntries();

-

-	/**

-	 * Returns an array of plug-in entries referenced by this feature

-	 * No filtering occurs

-	 * 

-	 * @return an erray of plug-in entries, or an empty array.

-	 * @since 2.1

-	 */

-	public IPluginEntry[] getRawPluginEntries();

-

-	/**

-	 * Returns the count of referenced plug-in entries.

-	 * 

-	 * @return plug-in entry count

-	 * @since 2.0

-	 */

-	public int getPluginEntryCount();

-

-	/**

-	 * Returns an array of non-plug-in entries referenced by this feature

-	 * filtered by the operating system, windowing system and architecture system

-	 * set in <code>Sitemanager</code>

-	 * 

-	 * @return an erray of non-plug-in entries, or an empty array.

-	 * @since 2.0

-	 */

-	public INonPluginEntry[] getNonPluginEntries();

-

-	/**

-	 * Returns an array of non-plug-in entries referenced by this feature

-	 * No filtering occurs

-	 * 

-	 * @return an erray of non-plug-in entries, or an empty array.

-	 * @since 2.1

-	 */

-	public INonPluginEntry[] getRawNonPluginEntries();

-

-	/**

-	 * Returns the count of referenced non-plug-in entries.

-	 * 

-	 * @return non-plug-in entry count

-	 * @since 2.0

-	 */

-	public int getNonPluginEntryCount();

-

-	/**

-	 * Returns the download size of the feature, if it can be determined.

-	 * 

-	 * @see org.eclipse.update.core.model.ContentEntryModel#UNKNOWN_SIZE

-	 * @return download size of the feature in KiloBytes, or an indication 

-	 * the size could not be determined

-	 * @since 2.0 

-	 */

-	public long getDownloadSize();

-

-	/**

-	 * Returns the install size of the feature, if it can be determined.

-	 * 

-	 * @see org.eclipse.update.core.model.ContentEntryModel#UNKNOWN_SIZE

-	 * @return install size of the feature in KiloBytes, or an indication 

-	 * the size could not be determined

-	 * @since 2.0 

-	 */

-	public long getInstallSize();

-

-	/**

-	 * Indicates whether the feature can be used as a primary feature.

-	 * 

-	 * @return <code>true</code> if this is a primary feature, 

-	 * otherwise <code>false</code>

-	 * @since 2.0 

-	 */

-	public boolean isPrimary();

-	

-	/**

-	 * Indicates whether the feature must be processed alone during installation

-	 * and configuration. Features that are not exclusive can be installed in a

-	 * batch.

-	 * 

-	 * @return <code>true</code> if feature requires exclusive processing,

-	 * <code>false</code> otherwise.

-	 * @since 2.1

-	 */

-	public boolean isExclusive();

-

-	/**

-	 * Returns an optional identifier of an application to be used when

-	 * starting up the platform with this feature as the primary feature.

-	 * The application identifier must represent a valid application registered

-	 * in the <code>org.eclipse.core.runtime.applications</code> extension point.

-	 * 

-	 * @return application identifier, or <code>null</code>

-	 * @since 2.0 

-	 */

-	public String getApplication();

-	

-	/**

-	 * Returns an optional identifier of a colocation affinity feature.

-	 * 

-	 * @return feature identifier, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getAffinityFeature();

-

-	/**

-	 * Returns the content provider for this feature. A content provider

-	 * is an abstraction of each feature internal packaging structure.

-	 * It allows the feature content to be accessed in a standard way

-	 * regardless of the internal packaging. All concrete features

-	 * need to be able to return a content provider.

-	 * 

-	 * @return feature content provider

-	 * @exception CoreException

-	 * @since 2.0

-	 */

-	public IFeatureContentProvider getFeatureContentProvider()

-		throws CoreException;

-

-	/**

-	 * Returns the content consumer for this feature. A content consumer

-	 * is an abstraction of each feature internal packaging mechanism.

-	 * It allows content to be stored into a feature in a standard way

-	 * regardless of the packaging mechanism used. Only concrete features

-	 * that support storing need to implement a content consumer. The platform

-	 * implements at least one feature type supporting content consumer.

-	 * This is the feature type representing a locally-installed

-	 * feature.

-	 * 

-	 * @return feature content consumer

-	 * @exception CoreException

-	 * @exception UnsupportedOperationException

-	 * @since 2.0

-	 */

-	public IFeatureContentConsumer getFeatureContentConsumer()

-		throws CoreException;

-

-	/**

-	 * Sets the site for this feature. This is typically performed as part

-	 * of the feature creation operation. Once set, the site

-	 * should not be reset.

-	 * 

-	 * @param site the site

-	 * @throws CoreException site for this feature is already set

-	 * @since 2.0 

-	 */

-	public void setSite(ISite site) throws CoreException;

-

-	/**

-	 * Sets the content provider for this feature. This is typically

-	 * performed as part of the feature creation operation. Once set, the 

-	 * provider should not be reset.

-	 * 

-	 * @param featureContentProvider content provider

-	 * @since 2.0

-	 */

-	public void setFeatureContentProvider(IFeatureContentProvider featureContentProvider);

-

-	/**

-	 * Returns <code>true</code> if this feature is patching another feature,

-	 * <code>false</code> otherwise

-	 * @return boolean

-	 * @since 2.1

-	 */

-	public boolean isPatch();

-

-

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureContentConsumer.java
deleted file mode 100644
index 3de29f3..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureContentConsumer.java
+++ /dev/null
@@ -1,165 +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 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.update.core;

-

-import org.eclipse.core.runtime.*;

-

-/**

- * Feature content consumer.

- * A feature content consumer is an abstraction of each feature internal

- * packaging mechanism. It allows content to be stored into a feature in

- * a standard way regardless of the packaging mechanism used. Only concrete

- * features that support storing need to implement a content consumer. 

- * The platform implements at least one feature type supporting content

- * consumer. This is the feature type representing a locally-installed

- * feature.

- * <p>

- * A feature content consumer delegates the storage of plug-in and 

- * non-plug-in files to a generic content consumer.

- * </p>

- * <p>

- * Clients may implement this interface. However, in most cases clients 

- * will only use the feature content consumer provided by the feature type(s)

- * implemented by the platform.

- * </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>

- * @see org.eclipse.update.core.IContentConsumer

- * @since 2.0

- */

-public interface IFeatureContentConsumer {

-

-	

-	/**

-	 * Store a feature file.

-	 * Note that only the feature definition files should be stored using

-	 * this method. Plug-in files and non-plug-in data files should be

-	 * stored using the content consumers corresponding to their respective

-	 * entries.

-	 * 

-	 * @see #open(IPluginEntry)

-	 * @see #open(INonPluginEntry)	 

-	 * @param contentReference content reference to feature file

-	 * @param monitor progress monitor, can be <code>null</code>

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public void store(ContentReference contentReference, IProgressMonitor monitor)

-		throws CoreException;

-

-	/**

-	 * Opens a generic content consumer for the specified plug-in entry.

-	 * Plug-in files corresponding to this entry should be stored

-	 * using this content consumer.

-	 * 

-	 * @param pluginEntry plug-in entry

-	 * @return generic content consumer for the entry

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public IContentConsumer open(IPluginEntry pluginEntry) throws CoreException;

-

-	/**

-	 * Opens a generic content consumer for the specified non-plug-in entry.

-	 * Non-plug-in files corresponding to this entry should be stored

-	 * using this content consumer.

-	 * 

-	 * @param nonPluginEntry non-plug-in entry

-	 * @return generic content consumer for the entry

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public IContentConsumer open(INonPluginEntry nonPluginEntry)

-		throws CoreException;

-

-	/**

-	 * Closes this content consumer. This indicates a successful completion

-	 * of the store operations. The content consumer commits any changes

-	 * made by this consumer.

-	 * 

-	 * @return reference to the newly populated feature

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public IFeatureReference close() throws CoreException;

-

-	/**

-	 * Closes this content consumer, indicating the store operations should

-	 * be aborted. The content consumer attempts to back out any changes

-	 * made by this content consumer.

-	 * 

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public void abort() throws CoreException;

-

-	/**

-	 * Sets the feature for this content consumer.

-	 * In general, this method should only be called as part of

-	 * feature creation. Once set, the feature should not be reset.

-	 * 

-	 * @param feature feature for this content consumer

-	 * @since 2.0

-	 */

-	public void setFeature(IFeature feature);

-

-	/**

-	 * Returns the feature for this content consumer.

-	 *

-	 * @return the feature for this content consumer

-	 * @since 2.0

-	 */

-	public IFeature getFeature();

-

-	/**

-	 * Sets the parent for this content consumer.

-	 * In general, this method should only be called as part of

-	 * feature creation. Once set, the feature should not be reset.

-	 * 

-	 * @param parent parent feature content consumer.

-	 * @since 2.0 

-	 */

-	public void setParent(IFeatureContentConsumer parent);

-

-	/**

-	 * Returns the feature content consumer that opened

-	 * this feature content consumer, or <code>null</code>

-	 * if this feature content consumer is a root feature

-	 * content consumer.

-	 *

-	 * @return the parent feature content consumer, or null.

-	 * @since 2.0

-	 */

-	public IFeatureContentConsumer getParent();

-

-	/**

-	 * Link the content consumer of the feature as a child

-	 * content consumer

-	 * 

-	 * @param feature the child feature.

-	 * @throws CoreException 

-	 * @since 2.0 

-	 */

-	public void addChild(IFeature feature) throws CoreException;

-

-	/**

-	 * Returns the feature content consumers that

-	 * this feature content consumer opened

-	 *

-	 * @return an array of feature content consumer, or en empty array.

-	 * @since 2.0

-	 */

-	public IFeatureContentConsumer[] getChildren();

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureContentProvider.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureContentProvider.java
deleted file mode 100644
index cfba79b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureContentProvider.java
+++ /dev/null
@@ -1,268 +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 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.update.core;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-

-/**

- * Feature content provider.

- * A feature content provider is an abstraction of each feature internal 

- * packaging structure. It allows the feature content to be accessed in

- * a standard way regardless of the internal packaging. All concrete feature

- * implementations need to implement a feature content provider.

- * <p>

- * There are two ways of looking at a feature content:

- * <ol>

- * <li>the "logical" view, which is a representation of the actual files that

- * make up the feature. These include any files that describe the feature

- * itself, files that are the actual implementation of referenced plug-ins,

- * and files that are the non-plug-in data files associated with the feature

- * <li>the "packaged" view, which is a set of related archive files that

- * contain the "logical" files.

- * </ol>

- * It is the responsibility of a feature content provider to manage the

- * mapping between the "packaged" and "logical" views.

- * </p>

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.FeatureContentProvider

- * @since 2.0

- */

-public interface IFeatureContentProvider {

-

-	/**

-	 * Returns the feature url. 

-	 * The exact interpretation of this URL is specific to each content

-	 * provider. Typically, the URL is a reference to a file that can be 

-	 * used directly, or indirectly, to determine the content of the feature.

-	 * 

-	 * @return feature url

-	 * @since 2.0

-	 */

-	public URL getURL();

-

-	/**

-	 * Returns a content reference to the feature manifest. The feature manifest

-	 * is an xml file, whose format is specified by the platform. Typically

-	 * a feature will contain the manifest as one of the packaged files.

-	 * For features that do not contain the manifest, or contain a manifest

-	 * that does not follow the specified format, this method returns

-	 * a reference to a computed manifest in the appropriate platform

-	 * format.

-	 * 

-	 * @param monitor progress monitor, can be <code>null</code>

-	 * @return feature manifest reference, or <code>null</code> if the manifest cannot be found.

-	 * @since 2.0

-	 */

-	public ContentReference getFeatureManifestReference(InstallMonitor monitor)

-		throws CoreException;

-

-	/**

-	 * Returns an array of content references of all the "packaged"

-	 * archives that make up this feature. 

-	 * <p>

-	 * The number of returned references is dependent on each feature 

-	 * content provider (i.e is dependent on the packaging mechanism used

-	 * by the particular feature type).

-	 * </p>

-	 * 

-	 * @param monitor progress monitor, can be <code>null</code>

-	 * @return an array of references, or an empty array if no references

-	 * are found

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public ContentReference[] getArchiveReferences(InstallMonitor monitor)

-		throws CoreException;

-

-	/**

-	 * Returns an array of content references of the "packaged"

-	 * archives that contain the feature descriptive information.

-	 * <p>

-	 * In general, the feature descriptive information should be packaged

-	 * separately from the "bulk" of the actual feature content.

-	 * The feature entry archive(s) must be downloaded from an update

-	 * site in order to present information about the feature to the

-	 * client. Consequently, keeping the number and size of the feature

-	 * entry archive(s) to a minimum will speed up the responsiveness of the

-	 * user interface.

-	 * </p>

-	 * <p>

-	 * The number of returned references is dependent on each feature

-	 * content provider (i.e is dependent on the packaging mechanism used

-	 * by the particular feature type).

-	 * </p>

-	 * 

-	 * @see IFeatureContentProvider#getFeatureEntryContentReferences(InstallMonitor)

-	 * @param monitor progress monitor, can be <code>null</code>

-	 * @return an array of references, or an empty array if no references

-	 * are found

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public ContentReference[] getFeatureEntryArchiveReferences(InstallMonitor monitor)

-		throws CoreException;

-

-	/**

-	 * Returns an array of content references of the "packaged"

-	 * archives that contain the files for the specified plug-in entry.

-	 * <p>

-	 * The number of returned references is dependent on each feature

-	 * content provider (i.e is dependent on the packaging mechanism used

-	 * by the particular feature type).

-	 * </p>

-	 * 

-	 * @see IFeatureContentProvider#getPluginEntryContentReferences(IPluginEntry, InstallMonitor)

-	 * @param pluginEntry plug-in entry

-	 * @param monitor progress monitor, can be <code>null</code>

-	 * @return an array of references, or an empty array if no references

-	 * are found

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public ContentReference[] getPluginEntryArchiveReferences(

-		IPluginEntry pluginEntry,

-		InstallMonitor monitor)

-		throws CoreException;

-

-	/**

-	 * Returns an array of content references of the "packaged"

-	 * archives that contain the files for the specified non-plug-in entry.

-	 * <p>

-	 * The number of returned references is dependent on each feature

-	 * content provider (i.e is dependent on the packaging mechanism used

-	 * by the particular feature type).

-	 * </p>

-	 * <p>

-	 * Note, that the platform does not interpret non-plug-in entries in any 

-	 * way, other that performing any required downloads. Non-plug-in entries

-	 * are handled by custom install handlers that must be specified for

-	 * the feature. Consequently, this interface does not make a distinction

-	 * between the "logical" and "packaged" views for non-plug-in entries.

-	 * The "packaged" view (returning references to the non-plug-in archives)

-	 * is the only one supported. It is the responsibility of the custom install

-	 * handler to understand the "logical" view of non-plug-in archives.

-	 * </p>

-	 * 

-	 * @param monitor progress monitor, can be <code>null</code>

-	 * @return an array of references, or an empty array if no references

-	 * are found

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public ContentReference[] getNonPluginEntryArchiveReferences(

-		INonPluginEntry nonPluginEntry,

-		InstallMonitor monitor)

-		throws CoreException;

-

-	/**

-	 * Returns an array of content references to the feature definition files

-	 * (i.e the "logical" view of the files defining the feature). These

-	 * are the files required to present information about the feature to the

-	 * client, and in general, should not contain references to plug-in and 

-	 * non-plug-in files.

-	 * 

-	 * @see IFeatureContentProvider#getFeatureEntryArchiveReferences(InstallMonitor)

-	 * @param monitor progress monitor, can be <code>null</code>

-	 * @return an array of ContentReference or an empty array if no references are found

-	 * @exception CoreException when an error occurs

-	 * @since 2.0 

-	 */

-	public ContentReference[] getFeatureEntryContentReferences(InstallMonitor monitor)

-		throws CoreException;

-

-	/**

-	 * Returns an array of content references to the files implementing

-	 * the specified plug-in. (i.e the "logical" view of the plug-in).

-	 * 

-	 * @see IFeatureContentProvider#getPluginEntryArchiveReferences(IPluginEntry, InstallMonitor)

-	 * @param monitor progress monitor, can be <code>null</code>

-	 * @return an array of ContentReference or an empty array if no references are found

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public ContentReference[] getPluginEntryContentReferences(

-		IPluginEntry pluginEntry,

-		InstallMonitor monitor)

-		throws CoreException;

-

-	/**

-	 * Returns the total size of all archives required for the

-	 * specified plug-in and non-plug-in entries (the "packaging" view).

-	 * 

-	 * @param pluginEntries an array of plug-in entries

-	 * @param nonPluginEntries an array of non-plug-in entries

-	 * @return total download size, or an indication that size could not be

-	 * determined

-	 * @see org.eclipse.update.core.model.ContentEntryModel#UNKNOWN_SIZE

-	 * @since 2.0

-	 */

-	public long getDownloadSizeFor(

-		IPluginEntry[] pluginEntries,

-		INonPluginEntry[] nonPluginEntries);

-

-	/**

-	 * Returns the total size of all files required for the

-	 * specified plug-in and non-plug-in entries (the "logical" view).

-	 * 

-	 * @param pluginEntries an array of plug-in entries

-	 * @param nonPluginEntries an array of non-plug-in entries

-	 * @return total download size, or an indication that size could not be

-	 * determined

-	 * @see org.eclipse.update.core.model.ContentEntryModel#UNKNOWN_SIZE

-	 * @since 2.0

-	 */

-	public long getInstallSizeFor(

-		IPluginEntry[] pluginEntries,

-		INonPluginEntry[] nonPluginEntries);

-

-	/**

-	 * Returns the verifier for this feature.

-	 * If provided, the verifier is called at various point during

-	 * installation processing to verify downloaded archives. The

-	 * type of verification provided is dependent on the content

-	 * provider implementation.

-	 * 

-	 * @return verifier

-	 * @exception CoreException

-	 * @since 2.0

-	 */

-	public IVerifier getVerifier() throws CoreException;

-

-	/**

-	 * Returns the feature associated with this content provider.

-	 * 

-	 * @return feature for this content provider

-	 * @since 2.0

-	 */

-	public IFeature getFeature();

-

-	/**

-	 * Sets the feature associated with this content provider.

-	 * In general, this method should only be called as part of

-	 * feature creation. Once set, the feature should not be reset.

-	 * 

-	 * @param feature feature for this content provider

-	 * @since 2.0

-	 */

-	public void setFeature(IFeature feature);

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureFactory.java
deleted file mode 100644
index 70a5b65..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureFactory.java
+++ /dev/null
@@ -1,71 +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 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.update.core;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-

-/**

- * Feature factory interface.

- * A feature factory is used to construct new instances of concrete

- * features. 

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.BaseFeatureFactory

- * @since 2.0

- */

-public interface IFeatureFactory {

-

-	/**

-	 * Returns a feature defined by the supplied URL. The feature

-	 * is associated with the specified site.

-	 * <p>

-	 * The actual interpretation of the URL is feature-type specific.

-	 * In most cases the URL will point to some feature-specific

-	 * file that can be used (directly or indirectly) to construct

-	 * the feature object.

-	 * </p>

-	 * @param url URL interpreted by the feature

-	 * @param site site to be associated with the feature

-	 * @return concrete feature object

-	 * @exception CoreException

-	 * @deprecated use createFeature(URL, ISite, IProgressMonitor) instead

-	 * @since 2.0 

-	 */

-	public IFeature createFeature(URL url, ISite site) throws CoreException;

-	

-	/**

-	 * Returns a feature defined by the supplied URL. The feature

-	 * is associated with the specified site.

-	 * <p>

-	 * The actual interpretation of the URL is feature-type specific.

-	 * In most cases the URL will point to some feature-specific

-	 * file that can be used (directly or indirectly) to construct

-	 * the feature object.

-	 * </p>

-	 * @param url URL interpreted by the feature

-	 * @param site site to be associated with the feature

-	 * @return concrete feature object

-	 * @exception CoreException

-	 * @since 2.1 

-	 */

-	public IFeature createFeature(URL url, ISite site, IProgressMonitor monitor) throws CoreException;	

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureReference.java
deleted file mode 100644
index 088eaac..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeatureReference.java
+++ /dev/null
@@ -1,120 +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 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.update.core;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-

-/**

- * Feature reference.

- * A reference to a feature.

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.FeatureReference

- * @since 2.0

- */

-public interface IFeatureReference extends IAdaptable,IPlatformEnvironment {

-

-	/**

-	 * Returns the referenced feature URL.

-	 * 

-	 * @return feature URL 

-	 * @since 2.0 

-	 */

-	public URL getURL();

-

-	/**

-	 * Returns the update site for the referenced feature

-	 * 

-	 * @return feature site

-	 * @since 2.0 

-	 */

-	public ISite getSite();

-

-	/**

-	 * Returns the label for the referenced feature

-	 *

-	 * @return the label

-	 * @since 2.1

-	 */

-	public String getName();

-

-

-	/**

-	 * Returns the referenced feature.

-	 * This is a factory method that creates the full feature object.

-	 * 

-	 * @return the referenced feature

-	 * @deprecated use getFeature(IProgressMonitor) instead

-	 * @since 2.0 

-	 */

-	public IFeature getFeature() throws CoreException;

-

-	/**

-	 * Returns the referenced feature.

-	 * This is a factory method that creates the full feature object.

-	 * 

-	 * @param monitor the progress monitor

-	 * @return the referenced feature

-	 * @since 2.1 

-	 */

-	public IFeature getFeature(IProgressMonitor monitor) throws CoreException;

-

-

-	/**

-	 * Returns the feature identifier.

-	 * 

-	 * @return the feature identifier.

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public VersionedIdentifier getVersionedIdentifier() throws CoreException;

-

-	/**

-	 * Sets the feature reference URL.

-	 * This is typically performed as part of the feature reference creation

-	 * operation. Once set, the url should not be reset.

-	 * 

-	 * @param url reference URL

-	 * @since 2.0 

-	 */

-	public void setURL(URL url) throws CoreException;

-

-	/**

-	 * Associates a site with the feature reference.

-	 * This is typically performed as part of the feature reference creation

-	 * operation. Once set, the site should not be reset.

-	 * 

-	 * @param site site for the feature reference

-	 * @since 2.0 

-	 */

-	public void setSite(ISite site);

-	

-	/**

-	 * Returns <code>true</code> if this feature is patching another feature,

-	 * <code>false</code> otherwise

-	 * @return boolean

-	 * @since 2.1

-	 */

-	public boolean isPatch();

-	

-	

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IImport.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IImport.java
deleted file mode 100644
index 824d315..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IImport.java
+++ /dev/null
@@ -1,94 +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 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.update.core;

-

-

-import org.eclipse.core.runtime.*;

-

-/**

- * Plug-in dependency entry.

- * Describes a feture dependency on a particular plug-in. The dependency 

- * can specify a specific plug-in version and a matching rule for 

- * satisfying the dependency.

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.Import

- * @since 2.0

- */

-public interface IImport extends IAdaptable, IUpdateConstants, IPlatformEnvironment {

-

-	/**

-	 * The import relates to a plugin

-	 * @since 2.0.2

-	 */

-	public static final int KIND_PLUGIN = 0;

-	

-	/**

-	 * The import relates to a feature

-	 * @since 2.0.2

-	 */

-	public static final int KIND_FEATURE = 1;

-

-	/** 

-	 * Returns an identifier of the dependent plug-in.

-	 * 

-	 * @return plug-in identifier

-	 * @since 2.0 

-	 */

-	public VersionedIdentifier getVersionedIdentifier();

-

-	/**

-	 * Returns the matching rule for the dependency.

-	 * 

-	 * @return matching rule

-	 * @since 2.0 

-	 */

-	public int getRule();

-	

-	/**

-	 * Returns the matching rule for the dependency identifier.

-	 * 

-	 * @return matching id rule

-	 * @since 2.1 

-	 */

-	public int getIdRule();

-	

-	/**

-	 * Returns the dependency kind

-	 * 

-	 * @see #KIND_PLUGIN

-	 * @see #KIND_FEATURE

-	 * @return KIND_PLUGIN if the dependency relates to a plugin, 

-	 * KIND_FEATURE if the dependency relates to a feature.

-	 */

-	public int getKind();

-	

-	/**

-	 * Returns the patch mode. If the import is in patch mode,

-	 * the referenced feature is considered a patch target,

-	 * and the feature that owns the import is patch carrier.

-	 * Patch carrier and patched feature are linked in a

-	 * distinct way: if a patched feature is disabled,

-	 * all the patches are disabled with it.

-	 * @return true if the element represents a patch

-	 * reference, false otherwise.

-	 */

-	public boolean isPatch();

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IIncludedFeatureReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IIncludedFeatureReference.java
deleted file mode 100644
index 50f8fab..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IIncludedFeatureReference.java
+++ /dev/null
@@ -1,128 +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 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.update.core;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-
-
-
-/**
- * Included Feature reference.
- * A reference to a included feature.
- * <p>
- * Clients may implement this interface. However, in most cases clients should 
- * directly instantiate or subclass the provided implementation of this 
- * interface.
- * </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>
- * @see org.eclipse.update.core.FeatureReference
- * @since 2.0.1
- */
-public interface IIncludedFeatureReference extends IFeatureReference, IAdaptable {
-
-	/**
-	 * Returns the referenced feature.
-	 * This is a factory method that creates the full feature object.
-	 * equivalent to getFeature(false,null);
-	 * 
-	 * @return the referenced feature
-	 * @deprecated use getFeature(IProgressMonitor)
-	 * @since 2.0 
-	 */
-	public IFeature getFeature() throws CoreException;
-
-	/**
-	 * Returns the referenced feature.
-	 * This is a factory method that creates the full feature object.
-	 * 
-	 * @param perfectMatch <code>true</code> if the perfect match feature feature should be returned
-	 * <code>false</code> if the best match feature should be returned.
-	 * @param configuredSite the configured site to search for the Feature. If 
-	 * the configured site is <code>null</code> the search will be done in the current configured site.
-	 * @return the referenced feature
-	 * instead
-	 * @since 2.0.2
-	 * <b>Note:</b> This method 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.
-	 * @deprecated use getFeature(IProgressMonitor)
-	 */
-	public IFeature getFeature(boolean perfectMatch,IConfiguredSite configuredSite) throws CoreException;
-
-	/**
-	 * Returns the referenced feature.
-	 * This is a factory method that creates the full feature object.
-	 * 
-	 * @param perfectMatch <code>true</code> if the perfect match feature feature should be returned
-	 * <code>false</code> if the best match feature should be returned.
-	 * @param configuredSite the configured site to search for the Feature. If 
-	 * the configured site is <code>null</code> the search will be done in the current configured site.
-	 * @param monitor the progress monitor
-	 * @return the referenced feature
-	 * @since 2.1
-	 * <b>Note:</b> This method 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.
-	 * @deprecated use getFeature(IProgressMonitor)
-	 */
-	public IFeature getFeature(boolean perfectMatch,IConfiguredSite configuredSite, IProgressMonitor monitor) throws CoreException;
-
-
-	/**
-	 * Returns <code>true</code> if the feature is optional, <code>false</code> otherwise.
-	 * 
-	 * @return boolean
-	 * @since 2.0.1
-	 */
-	public boolean isOptional();
-
-	/**
-	 * Returns the matching rule for this included feature.
-	 * The rule will determine the ability of the included feature to move version 
-	 * without causing the overall feature to appear broken.
-	 * 
-	 * The default is <code>RULE_PERFECT</code>
-	 * 
-	 * @see IUpdateConstants#RULE_PERFECT
-	 * @see IUpdateConstants#RULE_EQUIVALENT
-	 * @see IUpdateConstants#RULE_COMPATIBLE
-	 * @see IUpdateConstants#RULE_GREATER_OR_EQUAL
-	 * @return int representation of feature matching rule.
-	 * @since 2.0.2
-	 * @deprecated since 3.0 included feature version is exactly specified
-	 */
-	public int getMatch();
-	
-	/**
-	 * Returns the search location for this included feature.
-	 * The location will be used to search updates for this feature.
-	 * 
-	 * The default is <code>SEARCH_ROOT</code>
-	 * 
-	 * @see IUpdateConstants#SEARCH_ROOT
-	 * @see IUpdateConstants#SEARCH_SELF
-	 * @return int representation of feature searching rule.
-	 * @since 2.0.2
-	 */
-
-	public int getSearchLocation();
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IInstallHandler.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IInstallHandler.java
deleted file mode 100644
index ad5614f..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IInstallHandler.java
+++ /dev/null
@@ -1,244 +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 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.update.core;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Custom install handler.
- * Custom install handlers can optionally be associated with a feature.
- * The actual install handler implementation can be physically delivered
- * as part of the feature package, or can already be installed on the client
- * machine and registered via the <code>org.eclipse.update.core.installHandlers</code>
- * extension point. The install handler methods are called at predetermined
- * point during update actions.
- * <p>
- * Clients may implement this interface. However, in most cases clients should 
- * directly subclass the provided implementation of this interface.
- * </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>
- * @see org.eclipse.update.core.BaseInstallHandler
- * @since 2.0
- */
-public interface IInstallHandler {
-
-	/**
-	 * Indicates the handler is being initialized for feature install.
-	 * @since 2.0
-	 */
-	public static final int HANDLER_ACTION_INSTALL = 1;
-
-	/**
-	 * Indicates the handler is being initialized for feature configure.
-	 * @since 2.0
-	 */
-	public static final int HANDLER_ACTION_CONFIGURE = 2;
-
-	/**
-	 * Indicates the handler is being initialized for feature unconfigure.
-	 * @since 2.0
-	 */
-	public static final int HANDLER_ACTION_UNCONFIGURE = 3;
-
-	/**
-	 * Indicates the handler is being initialized for feature uninstall.
-	 * @since 2.0
-	 */
-	public static final int HANDLER_ACTION_UNINSTALL = 4;
-
-	/**
-	 * Initialize the install handler.
-	 * Install handlers are always constructed using the default constructor.
-	 * The are initialized immediately following construction.
-	 * 
-	 * @param type update action type
-	 * @param feature the target of the action
-	 * @param entry model entry that defines this handler
-	 * @param monitor optional progress monitor, can be <code>null</code>
-	 * @exception CoreException
-	 * @since 2.0
-	 */
-	public void initialize(
-		int type,
-		IFeature feature,
-		IInstallHandlerEntry entry,
-		InstallMonitor monitor)
-		throws CoreException;
-
-	/**
-	 * Called at the start of the install action. At this point, no install
-	 * processing has taken place.
-	 * 
-	 * @see #HANDLER_ACTION_INSTALL
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void installInitiated() throws CoreException;
-
-	/**
-	 * Called after files corresponding to plug-in entries have been downloaded,
-	 * but before they are actully unpacked and installed.
-	 * 
-	 * @see #HANDLER_ACTION_INSTALL
-	 * @param plugins downloaded plug-in entries. Note this may be a subset
-	 * of the plug-ins actually references by the feature.
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void pluginsDownloaded(IPluginEntry[] plugins) throws CoreException;
-
-	/**
-	 * Called after files corresponding to non-plug-in entries have been 
-	 * downloaded. The custom install handler can perform any custom
-	 * verification of the non-plug-in entries (these are not interpreted
-	 * in any way by the platform (beyond downloading)).
-	 * 
-	 * @see #HANDLER_ACTION_INSTALL
-	 * @param nonPluginData downloaded non-plug-in entries.
-	 * @param listener verification listener, may be <code>null</code>.
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void nonPluginDataDownloaded(
-		INonPluginEntry[] nonPluginData,
-		IVerificationListener listener)
-		throws CoreException;
-
-	/**
-	 * Called after the feature files and any downloaded plug-ins have
-	 * been installed. Typically this is the point where the custom
-	 * install handler can install any non-plug-in entries (these are not 
-	 * interpreted in any way by the platform (beyond downloading)).
-	 * 
-	 * @see #HANDLER_ACTION_INSTALL
-	 * @param consumer content consumer for the feature. The install handler
-	 * can choose to use this consumer to install the non-plug-in data,
-	 * or can handle the data in any other way. If using the consumer,
-	 * the install handler should only call 
-	 * @see IFeatureContentConsumer#store(ContentReference, IProgressMonitor)
-	 * and @see IFeatureContentConsumer#open(INonPluginEntry)
-	 * methods of the consumer. 
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void completeInstall(IFeatureContentConsumer consumer)
-		throws CoreException;
-
-	/**
-	 * Called at the end of the install action.
-	 * 
-	 * @see #HANDLER_ACTION_INSTALL
-	 * @param success indicates action success. 
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void installCompleted(boolean success) throws CoreException;
-
-	/**
-	 * Called at the start of the configure action
-	 * 
-	 * @see #HANDLER_ACTION_CONFIGURE
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void configureInitiated() throws CoreException;
-
-	/**
-	 * Called after the feature has been configured. The install handler
-	 * should perform any completion tasks. No arguments are passed
-	 * to the method. If needed, the install handler can use arguments
-	 * passed on the initialization call.
-	 * 
-	 * @see #HANDLER_ACTION_CONFIGURE
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void completeConfigure() throws CoreException;
-
-	/**
-	 * Called at the end of the configure action.
-	 * 
-	 * @see #HANDLER_ACTION_CONFIGURE
-	 * @param success indicates action success. 
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void configureCompleted(boolean success) throws CoreException;
-
-	/**
-	 * Called at the start of the unconfigure action
-	 * 
-	 * @see #HANDLER_ACTION_UNCONFIGURE
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void unconfigureInitiated() throws CoreException;
-
-	/**
-	 * Called after the feature has been unconfigured. The install handler
-	 * should perform any completion tasks. No arguments are passed
-	 * to the method. If needed, the install handler can use arguments
-	 * passed on the initialization call.
-	 * 
-	 * @see #HANDLER_ACTION_UNCONFIGURE
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void completeUnconfigure() throws CoreException;
-
-	/**
-	 * Called at the end of the unconfigure action.
-	 * 
-	 * @see #HANDLER_ACTION_UNCONFIGURE
-	 * @param success indicates action success. 
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void unconfigureCompleted(boolean success) throws CoreException;
-
-	/**
-	 * Called at the start of the uninstall action
-	 * 
-	 * @see #HANDLER_ACTION_UNINSTALL
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void uninstallInitiated() throws CoreException;
-
-	/**
-	 * Called after the feature has been uninstalled. The install handler
-	 * should perform any completion tasks. No arguments are passed
-	 * to the method. If needed, the install handler can use arguments
-	 * passed on the initialization call. Note, that at this point
-	 * the feature files and any unreferenced plug-ins have been
-	 * removed.
-	 * 
-	 * @see #HANDLER_ACTION_UNINSTALL
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void completeUninstall() throws CoreException;
-
-	/**
-	 * Called at the end of the uninstall action.
-	 * 
-	 * @see #HANDLER_ACTION_UNINSTALL
-	 * @param success indicates action success. 
-	 * @exception CoreException terminates the action
-	 * @since 2.0
-	 */
-	public void uninstallCompleted(boolean success) throws CoreException;
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IInstallHandlerEntry.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IInstallHandlerEntry.java
deleted file mode 100644
index 4cc094e..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IInstallHandlerEntry.java
+++ /dev/null
@@ -1,76 +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 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.update.core;
-
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Install handler entry.
- * Associates an optional custom install handler with the feature.
- * Install handlers must implement the IInstallHandler interface.
- * <p>
- * Clients may implement this interface. However, in most cases clients should 
- * directly instantiate or subclass the provided implementation of this 
- * interface.
- * </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>
- * @see org.eclipse.update.core.InstallHandlerEntry
- * @see org.eclipse.update.core.IInstallHandler
- * @since 2.0
- */
-public interface IInstallHandlerEntry extends IAdaptable {
-
-	/**
-	 * Returns optional URL used for browser-triggered installation handling.
-	 * 
-	 * @return url
-	 * @since 2.0 
-	 */
-	public URL getURL();
-
-	/**
-	 * Returns optional name of a library containing the install
-	 * handler classes. If specified, the referenced library
-	 * must be contained in the feature archive.
-	 * 
-	 * @return install handler library name
-	 * @since 2.0 
-	 */
-	public String getLibrary();
-
-	/**
-	 * Returns install handler name.
-	 * It is interpreted depending on the value of the library
-	 * specification. If library is not specified, the name
-	 * is intepreted as an identifier of a "global" install
-	 * handler registered in the <code>org.eclipse.update.core.installHandlers</code> 
-	 * extension point. If library is specified, the name is interpreted
-	 * as a fully qualified name of a class contained in the
-	 * library. In both cases, the resulting class must
-	 * implement IInstallHandler. The class is dynamically loaded and
-	 * called at specific points during feature processing.
-	 * The handler has visibility to the API classes from the update plug-in,
-	 * and plug-ins required by the update plugin. 
-	 * 
-	 * @see IInstallHandler
-	 * @return handler name
-	 * @since 2.0 
-	 */
-	public String getHandlerName();
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/INonPluginEntry.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/INonPluginEntry.java
deleted file mode 100644
index 2daa175..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/INonPluginEntry.java
+++ /dev/null
@@ -1,68 +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 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.update.core;

-

-import org.eclipse.core.runtime.*;

-

-/**

- * Non-plug-in entry defines an arbitrary non-plug-in data file packaged

- * as part of a feature. Non-plug-in entries are not interpreted by the

- * platform (other than being downloaded as part of an install action).

- * They require a custom install handler to be specified as part of the

- * feature. Note, that defining a non-plug-in entry does not necessarily

- * indicate the non-plug-in file is packaged together with any other

- * feature files. The actual packaging details are determined by the

- * feature content provider for the feature.

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.NonPluginEntry

- * @see org.eclipse.update.core.FeatureContentProvider

- * @since 2.0

- */

-public interface INonPluginEntry extends IPlatformEnvironment, IAdaptable {

-

-	/** 

-	 * Returns the identifier of this data entry. 

-	 * 

-	 * @return data entry identifier

-	 * @since 2.0 

-	 */

-	public String getIdentifier();

-

-	/**

-	 * Returns the download size of the entry, if it can be determined.

-	 * 

-	 * @see org.eclipse.update.core.model.ContentEntryModel#UNKNOWN_SIZE

-	 * @return download size of the feature in KiloBytes, or an indication 

-	 * the size could not be determined

-	 * @since 2.0 

-	 */

-	public long getDownloadSize();

-

-	/**

-	 * Returns the install size of the feature, if it can be determined.

-	 * 

-	 * @see org.eclipse.update.core.model.ContentEntryModel#UNKNOWN_SIZE

-	 * @return install size of the feature in KiloBytes, or an indication 

-	 * the size could not be determined

-	 * @since 2.0 

-	 */

-	public long getInstallSize();

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IPlatformEnvironment.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IPlatformEnvironment.java
deleted file mode 100644
index 011d36b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IPlatformEnvironment.java
+++ /dev/null
@@ -1,102 +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 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.update.core;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Plug-in entry defines a packaging reference from a feature to a plug-in.
- * It indicates that the referenced plug-in is to be considered as
- * part of the feature. Note, that this does not necessarily indicate
- * that the plug-in files are packaged together with any other
- * feature files. The actual packaging details are determined by the
- * feature content provider for the feature.
- * <p>
- * Clients may implement this interface. However, in most cases clients should 
- * directly instantiate or subclass the provided implementation of this 
- * interface.
- * </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>
- * @see org.eclipse.update.core.PluginEntry
- * @see org.eclipse.update.core.FeatureContentProvider
- * @since 2.0
- */
-public interface IPlatformEnvironment extends IAdaptable {
-
-
-	/**
-	 * Returns optional operating system specification.
-	 * A comma-separated list of os designators defined by the platform.
-	 * Indicates this entry should only be installed on one of the specified
-	 * os systems. If this attribute is not specified, or is <code>*</code>, the
-	 * entry can be installed on all systems (portable implementation). If the
-
-	 * This information is used as a hint by the installation and update
-	 * support.
-	 *
-	 * @return the operating system specification, or <code>null</code>.
-	 * @since 2.0 
-	 */
-	public String getOS();
-
-	/**
-	 * Returns optional system architecture specification. 
-	 * A comma-separated list of arch designators defined by the platform.
-	 * Indicates this entry should only be installed on one of the specified
-	 * systems. If this attribute is not specified, or is <code>*</code>, the
-	 * entry can be installed on all systems (portable implementation).
-	 * 
-	 * This information is used as a hint by the installation and update
-	 * support.
-	 * 
-	 * @return system architecture specification, or <code>null</code>.
-	 * @since 2.0 
-	 */
-	public String getWS();
-
-	/**
-	 * Returns optional system architecture specification. 
-	 * A comma-separated list of arch designators defined by the platform.
-	 * Indicates this entry should only be installed on one of the specified
-	 * systems. If this attribute is not specified, or is <code>*</code>, the
-	 * entry can be installed on all systems (portable implementation).
-	 * 
-	 * This information is used as a hint by the installation and update
-	 * support.
-	 * 
-	 * @return system architecture specification, or <code>null</code>.
-	 * @since 2.0 
-	 */
-	public String getOSArch();
-
-	/**
-	 * Returns optional locale specification. 
-	 * A comma-separated list of locale designators defined by Java.
-	 * Indicates this entry should only be installed on a system running
-	 * with a compatible locale (using Java locale-matching rules).
-	 * If this attribute is not specified, or is <code>*</code>, the entry can
-	 * be installed on all systems (language-neutral implementation).
-	 * 
-	 * This information is used as a hint by the installation and update
-	 *  support.
-	 * 
-	 * @return the locale specification, or <code>null</code>.
-	 * @since 2.0 
-	 */
-	public String getNL();
-
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IPluginEntry.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IPluginEntry.java
deleted file mode 100644
index 23b4585..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IPluginEntry.java
+++ /dev/null
@@ -1,86 +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 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.update.core;

-

-import org.eclipse.core.runtime.*;

-

-/**

- * Plug-in entry defines a packaging reference from a feature to a plug-in.

- * It indicates that the referenced plug-in is to be considered as

- * part of the feature. Note, that this does not necessarily indicate

- * that the plug-in files are packaged together with any other

- * feature files. The actual packaging details are determined by the

- * feature content provider for the feature.

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.PluginEntry

- * @see org.eclipse.update.core.FeatureContentProvider

- * @since 2.0

- */

-public interface IPluginEntry extends IPlatformEnvironment,IAdaptable {

-

-	/** 

-	 * Returns the identifier of this plugin entry

-	 * 

-	 * @return plugin entry identifier

-	 * @since 2.0 

-	 */

-	public VersionedIdentifier getVersionedIdentifier();

-

-	/**

-	 * Returns an indication whethyer this entry represents a fragment.

-	 * 

-	 * @return <code>true</code> if the entry represents a plug-in fragment, 

-	 * <code>false</code> if the entry represents a plug-in

-	 * @since 2.0 

-	 */

-	public boolean isFragment();

-

-	/**

-	 * Returns the download size of the entry, if it can be determined.

-	 * 

-	 * @see org.eclipse.update.core.model.ContentEntryModel#UNKNOWN_SIZE

-	 * @return download size of the feature in KiloBytes, or an indication 

-	 * the size could not be determined

-	 * @since 2.0 

-	 */

-	public long getDownloadSize();

-

-	/**

-	 * Returns the install size of the feature, if it can be determined.

-	 * 

-	 * @see org.eclipse.update.core.model.ContentEntryModel#UNKNOWN_SIZE

-	 * @return install size of the feature in KiloBytes, or an indication 

-	 * the size could not be determined

-	 * @since 2.0 

-	 */

-	public long getInstallSize();

-

-	/** 

-	 * Sets the identifier of this plugin entry. 

-	 * This is typically performed as part of the plug-in entry creation

-	 * operation. Once set, the identifier should not be reset.

-	 * 

-	 * @param identifier plugin entry identifier

-	 * @since 2.0 

-	 */

-	public void setVersionedIdentifier(VersionedIdentifier identifier);

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISite.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/ISite.java
deleted file mode 100644
index ead2ee3..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISite.java
+++ /dev/null
@@ -1,328 +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 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.update.core;

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.core.model.*;

-

-/**

- * Site represents a location containing some number of features (packaged

- * or installed). Sites are treated purely as an installation and packaging

- * construct. They do not play a role during Eclipse plug-in execution. 

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.Site

- * @since 2.0

- */

-public interface ISite extends IAdaptable {

-

-	/**

-	 * Default type for an installed feature. Different concrete feature

-	 * implementations can be registered together with their corresponding type

-	 * using the <code>org.eclipse.update.core.featureTypes</code> 

-	 * extension point.

-	 * 

-	 * @since 2.0

-	 */

-	public static final String DEFAULT_INSTALLED_FEATURE_TYPE = "org.eclipse.update.core.installed"; //$NON-NLS-1$		

-

-	/**

-	 * Default type for a packaged feature. Different concrete feature

-	 * implementations can be registered together with their corresponding type

-	 * using the <code>org.eclipse.update.core.featureTypes</code> 

-	 * extension point.

-	 * 

-	 * @since 2.0

-	 */

-	public static final String DEFAULT_PACKAGED_FEATURE_TYPE = "org.eclipse.update.core.packaged"; //$NON-NLS-1$		

-

-	/**

-	 * If we are unable to access a site, the returned CoreException will contain

-	 * this return code.

-	 * 

-	 * @since 2.0.1

-	 */

-	public static final int SITE_ACCESS_EXCEPTION = 42;

-

-	/**

-	 * Returns the site URL

-	 * 

-	 * @return site URL

-	 * @since 2.0 

-	 */

-	public URL getURL();

-

-	/**

-	 * Return the site type. Different concrete site implementations can be

-	 * registered together with their corresponding type using the

-	 * <code>org.eclipse.update.core.siteTypes</code> extension point.

-	 * 

-	 * @return site type, or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public String getType();

-

-	/**

-	 * Returns the site description.

-	 * 

-	 * @return site description, or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public IURLEntry getDescription();

-

-	/**

-	 * Returns an array of categories defined by the site.

-	 * 

-	 * @return array of site categories, or an empty array.

-	 * @since 2.0 

-	 */

-	public ICategory[] getCategories();

-

-	/**

-	 * Returns the named site category.

-	 * 

-	 * @param name category name

-	 * @return named category, or <code>null</code> ifit does not exist

-	 * @since 2.0

-	 */

-	public ICategory getCategory(String name);

-

-	/**

-	 * Returns an array of references to features on this site.

-	 * 

-	 * @return an array of feature references, or an empty array.

-	 * @since 2.0 

-	 */

-	public ISiteFeatureReference[] getFeatureReferences();

-

-	/**

-	 * Returns an array of references to features on this site.

-	 * No filtering occurs.

-	 * 

-	 * @return an array of feature references, or an empty array..

-	 * @since 2.1

-	 */

-	public ISiteFeatureReference[] getRawFeatureReferences();

-	

-	/**

-	 * Returns a reference to the specified feature if 

-	 * it is installed on this site.

-	 * filtered by the operating system, windowing system and architecture

-	 * system set in <code>Sitemanager</code>

-	 * 

-	 * @param feature feature

-	 * @return feature reference, or <code>null</code> if this feature

-	 * cannot be located on this site.

-	 * @since 2.0

-	 */

-	public ISiteFeatureReference getFeatureReference(IFeature feature);

-

-	/**

-	 * Returns an array of plug-in and non-plug-in archives located

-	 * on this site

-	 * 

-	 * @return an array of archive references, or an empty array if there are

-	 * no archives known to this site. Note, that an empty array does not

-	 * necessarily indicate there are no archives accessible on this site.

-	 * It simply indicates the site has no prior knowledge of such archives.

-	 * @since 2.0 

-	 */

-	public IArchiveReference[] getArchives();

-

-	/**

-	 * Returns the content provider for this site. A content provider

-	 * is an abstraction of each site organization. It allows the 

-	 * content of the site to be accessed in a standard way

-	 * regardless of the organization. All concrete sites

-	 * need to be able to return a content provider.

-	 * 

-	 * @return site content provider

-	 * @exception CoreException

-	 * @since 2.0

-	 */

-	public ISiteContentProvider getSiteContentProvider() throws CoreException;

-

-	/**

-	 * Returns the default type for a packaged feature supported by this site

-	 * 

-	 * @return feature type, as registered in the

-	 * <code>org.eclipse.update.core.featureTypes</code> extension point.

-	 * @since 2.0

-	 */

-	public String getDefaultPackagedFeatureType();

-

-	/**

-	 * Returns an array of entries corresponding to plug-ins installed

-	 * on this site.

-	 * 

-	 * @return array of plug-in entries,or an empty array.

-	 * @since 2.0

-	 */

-	public IPluginEntry[] getPluginEntries();

-

-	/**

-	 * Returns the number of plug-ins installed on this site

-	 * 

-	 * @return number of installed plug-ins

-	 * @since 2.0

-	 */

-	public int getPluginEntryCount();

-

-	/**

-	 * Adds a new plug-in entry to this site.

-	 * 

-	 * @param pluginEntry plug-in entry

-	 * @since 2.0

-	 */

-	public void addPluginEntry(IPluginEntry pluginEntry);

-

-	/**

-	 * Returns an array of entries corresponding to plug-ins that are

-	 * installed on this site and are referenced only by the specified

-	 * feature. These are plug-ins that are not shared with any other

-	 * feature.

-	 * 

-	 * @param feature feature

-	 * @return an array of plug-in entries, or an empty array.

-	 * @exception CoreException

-	 * @since 2.0

-	 */

-	public IPluginEntry[] getPluginEntriesOnlyReferencedBy(IFeature feature) throws CoreException;

-

-	/**

-	 * Returns the size of the files that need to be downloaded in order

-	 * to install the specified feature on this site, if it can be determined.

-	 * This method takes into account any plug-ins that are already

-	 * available on this site.

-	 * 

-	 * @see org.eclipse.update.core.model.ContentEntryModel#UNKNOWN_SIZE

-	 * @param feature candidate feature

-	 * @return download size of the feature in KiloBytes, or an indication 

-	 * the size could not be determined

-	 * @since 2.0 

-	 */

-	public long getDownloadSizeFor(IFeature feature);

-

-	/**

-	 * Returns the size of the files that need to be installed

-	 * for the specified feature on this site, if it can be determined.

-	 * This method takes into account any plug-ins that are already

-	 * installed on this site.

-	 * 

-	 * @see org.eclipse.update.core.model.ContentEntryModel#UNKNOWN_SIZE

-	 * @param feature candidate feature

-	 * @return install size of the feature in KiloBytes, or an indication 

-	 * the size could not be determined

-	 * @since 2.0 

-	 */

-	public long getInstallSizeFor(IFeature feature);

-

-	/**

-	 * Installs the specified feature on this site.

-	 * 

-	 * @param feature feature to install

-	 * @param verificationListener install verification listener

-	 * @param monitor install monitor, can be <code>null</code>

-	 * @exception InstallAbortedException when the user cancels the install

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public IFeatureReference install(IFeature feature, IVerificationListener verificationListener, IProgressMonitor monitor) throws InstallAbortedException, CoreException;

-

-	/**

-	 * Installs the specified feature on this site.

-	 * Only optional features passed as parameter will be installed.

-	 * 

-	 * @param feature feature to install

-	 * @param optionalfeatures list of optional features to be installed

-	 * @param verificationListener install verification listener

-	 * @param monitor install monitor, can be <code>null</code>

-	 * @exception InstallAbortedException when the user cancels the install

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public IFeatureReference install(IFeature feature, IFeatureReference[] optionalfeatures, IVerificationListener verificationListener, IProgressMonitor monitor) throws InstallAbortedException, CoreException;

-

-	/**

-	 * Removes (uninstalls) the specified feature from this site. This method

-	 * takes into account plug-in entries referenced by the specified fetaure

-	 * that continue to be required by other features installed on this site.

-	 * 

-	 * @param feature feature to remove

-	 * @param monitor progress monitor

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public void remove(IFeature feature, IProgressMonitor monitor) throws CoreException;

-

-	/**

-	 * Sets the site content provider. This is typically performed

-	 * as part of the site creation operation. Once set, the 

-	 * provider should not be reset.

-	 * 

-	 * @param siteContentProvider site content provider

-	 * @since 2.0

-	 */

-	public void setSiteContentProvider(ISiteContentProvider siteContentProvider);

-

-	/** 

-	 * Returns the <code>IConfiguredSite</code> for this site in the current 

-	 * configuration or <code>null</code> if none found.

-	 * 

-	 * @since 2.0.2

-	 */

-	public IConfiguredSite getCurrentConfiguredSite();

-

-	/**

-	* Creates a new feature object. The feature must exist on this site

-	* or a core exception will be thrown. Concrete implementations 

-	* may elect to cache instances, in which case subsequent calls 

-	* to create a feature with the same URL will

-	* return the same instance.

-	* param type the feature type that will be used to select the factory. If

-	* <code>null</code> is passed, default feature type will be used.

-	* param url URL of the feature archive as listed in the site.

-	* return newly created feature object, or a cached value if

-	* caching is implemented by this site.

-	* @deprecated use createFeature(String,URL,IProgressMonitor) instead

-	* @since 2.0.2

-	*/

-	IFeature createFeature(String type, URL url) throws CoreException;

-

-	/**

-	* Creates a new feature object. The feature must exist on this site

-	* or a core exception will be thrown. Concrete implementations 

-	* may elect to cache instances, in which case subsequent calls 

-	* to create a feature with the same URL will

-	* return the same instance.

-	* param type the feature type that will be used to select the factory. If

-	* <code>null</code> is passed, default feature type will be used.

-	* param url URL of the feature archive as listed in the site.

-	* return newly created feature object, or a cached value if

-	* caching is implemented by this site.

-	* @param monitor the progress monitor

-	* @since 2.1

-	*/

-	IFeature createFeature(String type, URL url,IProgressMonitor monitor) throws CoreException;

-

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteContentProvider.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteContentProvider.java
deleted file mode 100644
index b53fc55..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteContentProvider.java
+++ /dev/null
@@ -1,78 +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 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.update.core;

- 

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-

-/**

- * Site content provider.

- * A site content provider is an abstraction of each site internal 

- * organization. It allows the site content to be accessed in

- * a standard way regardless of the internal organization. All concrete site

- * implementations need to implement a site content provider.

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.SiteContentProvider

- * @since 2.0

- */

- 

-public interface ISiteContentProvider {

-	

-	/**

-	 * Returns the URL of this site

-	 * 

-	 * @return site URL

-	 * @since 2.0

-	 */	

-	public URL getURL();

-			

-	

-	/**

-	 * Returns a URL for the identified archive 

-	 * 

-	 * @param id archive identifier

-	 * @return archive URL, or <code>null</code>.

-	 * @exception CoreException 

-	 * @since 2.0 

-	 */

-	public URL getArchiveReference(String id)  throws CoreException;

-

-	/**

-	 * Returns the site for this provider

-	 * 

-	 * @return provider site

-	 * @since 2.0

-	 */

-	public ISite getSite();	

-	

-	/**

-	 * Sets the site for this provider.

-	 * In general, this method should only be called as part of

-	 * site creation. Once set, the site should not be reset.

-	 * 

-	 * @param site provider site

-	 * @since 2.0

-	 */

-	public void setSite(ISite site);

-}

-

-

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFactory.java
deleted file mode 100644
index 3f4cd65..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFactory.java
+++ /dev/null
@@ -1,56 +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 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.update.core;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.model.*;

-

-/**

- * Site factory interface.

- * A site factory is used to construct new instances of concrete

- * sites. 

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.BaseSiteFactory

- * @since 2.0

- */

-

-public interface ISiteFactory {

-

-	/**

-	 * Returns a site defined by the supplied URL. 

-	 * <p>

-	 * The actual interpretation of the URL is site-type specific.

-	 * In most cases the URL will point to some site-specific

-	 * file that can be used (directly or indirectly) to construct

-	 * the site object.

-	 * </p>

-	 * @param url URL interpreted by the site

-	 * @return site object

-	 * @exception CoreException

-	 * @exception InvalidSiteTypeException the referenced site type is

-	 * not a supported type for this factory 

-	 * @since 2.0 

-	 */

-	public ISite createSite(URL url)

-		throws CoreException, InvalidSiteTypeException;

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFactoryExtension.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFactoryExtension.java
deleted file mode 100644
index 32a3573..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFactoryExtension.java
+++ /dev/null
@@ -1,59 +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 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.update.core;
-
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.model.*;
-
-/**
- * <p>
- * This is an extension to the standard ISiteFactory interface.
- * If a factory implements this interface and is handling
- * URL connections, a progress monitor can be passed to 
- * allow canceling of frozen connections. 
- * </p>
- * <p>Input stream is obtained from the connection on
- * a separate thread. When connection is canceled, 
- * the thread is still active. It is allowed to terminate
- * when the connection times out on its own.
- * </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>
- * @see org.eclipse.update.core.BaseSiteFactory
- * @since 2.1
- */
-
-public interface ISiteFactoryExtension {
-	/**
-	 * Returns a site defined by the supplied URL. 
-	 * <p>
-	 * The actual interpretation of the URL is site-type specific.
-	 * In most cases the URL will point to some site-specific
-	 * file that can be used (directly or indirectly) to construct
-	 * the site object.
-	 * </p>
-	 * @param url URL interpreted by the site
-	 * @param monitor a progress monitor that can be canceled
-	 * @return site object
-	 * @exception CoreException
-	 * @exception InvalidSiteTypeException the referenced site type is
-	 * not a supported type for this factory 
-	 * @since 2.0 
-	 */
-	public ISite createSite(URL url, IProgressMonitor monitor)
-		throws CoreException, InvalidSiteTypeException;
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFeatureReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFeatureReference.java
deleted file mode 100644
index 0f5c79d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteFeatureReference.java
+++ /dev/null
@@ -1,50 +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 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.update.core;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Site Feature reference.
- * A reference to a feature on a particular update site.
- * <p>
- * Clients may implement this interface. However, in most cases clients should 
- * directly instantiate or subclass the provided implementation of this 
- * interface.
- * </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>
- * @see org.eclipse.update.core.SiteFeatureReference
- * @since 2.1
- */
-public interface ISiteFeatureReference extends IFeatureReference, IAdaptable {
-
-	/**
-	 * Returns an array of categories the referenced feature belong to.
-	 * 
-	 * @return an array of categories, or an empty array
-	 * @since 2.1 
-	 */
-	public ICategory[] getCategories();
-
-	/**
-	 * Adds a category to the referenced feature.
-	 * 
-	 * @param category new category
-	 * @since 2.1 
-	 */
-	public void addCategory(ICategory category);
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteWithMirrors.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteWithMirrors.java
deleted file mode 100644
index 02788bf..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/ISiteWithMirrors.java
+++ /dev/null
@@ -1,30 +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 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.update.core;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * An extension of ISite that supports mirrors.
- * The regular update site contains features (optionally groupped by categories), while
- * a mirrored site can define zero or more updates sites (mirrors) with the same content.
- * This allows users to pick their own update site, for performance purposes.
- */
-public interface ISiteWithMirrors extends ISite {
-
-	/**
-	 * Returns an array of mirror sites that contain the same features/plugins.
-	 * @return array of mirror sites, or empty array
-	 * @throws CoreException
-	 * @since 3.1
-	 */
-	IURLEntry[] getMirrorSiteEntries() throws CoreException;
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IURLEntry.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IURLEntry.java
deleted file mode 100644
index f646ded..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IURLEntry.java
+++ /dev/null
@@ -1,66 +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 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.update.core;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-

-/**

- * URL entry is an annotated URL object. It allows descriptive text to be

- * associated with a URL. When used as description object, the annotation

- * typically corresponds to short descriptive text, with the URL reference

- * pointing to full browsable description.

- * <p>

- * Clients may implement this interface. However, in most cases clients should 

- * directly instantiate or subclass the provided implementation of this 

- * interface.

- * </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>

- * @see org.eclipse.update.core.URLEntry

- * @since 2.0

- */

-public interface IURLEntry extends IAdaptable {

-

-	public static final int UPDATE_SITE = 0;

-	public static final int WEB_SITE = 1;	

-

-	/** 

-	 * Returns the URL annotation or <code>null</code> if none

-	 * 

-	 * @return url annotation or <code>null</code> if none

-	 * @since 2.0 

-	 */

-	public String getAnnotation();

-

-	/**

-	 * Returns the actual URL.

-	 * 

-	 * @return url.

-	 * @since 2.0 

-	 */

-	public URL getURL();

-	

-	/**

-	 * Returns the type of the URLEntry

-	 * 

-	 * @see #UPDATE_SITE

-	 * @see #WEB_SITE

-	 * @return type

-	 * @since 2.0 

-	 */

-	public int getType();	

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IUpdateConstants.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IUpdateConstants.java
deleted file mode 100644
index 7969ae5..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IUpdateConstants.java
+++ /dev/null
@@ -1,83 +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 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.update.core;
-
- 
-/**
- * Manages a list of static constants.
- * 
- * <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>
- * @since 2.0.2
- */
-public interface IUpdateConstants {
-	
-		/**
-	 * No matching rule specified 
-	 * @since 2.0
-	 */
-	public static final int RULE_NONE = 0;
-
-	/**
-	 * Dependency can be satisfied only with plug-in version matching 
-	 * exactly the specified version.
-	 * @since 2.0
-	 */
-	public static final int RULE_PERFECT = 1;
-
-	/**
-	 * Dependency can be satisfied only with plug-in version that is 
-	 * equivalent to the specified version (same major and minor version
-	 * identifier, greater than or equal service identifier).
-	 * @since 2.0
-	 */
-	public static final int RULE_EQUIVALENT = 2;
-
-	/**
-	 * Dependency can be satisfied only with plug-in version that is 
-	 * compatible with the specified version (either is equivalent,
-	 * or greater minor identifier (but same major identifier)).
-	 * @since 2.0
-	 */
-	public static final int RULE_COMPATIBLE = 3;
-
-	/**
-	 * Dependency can be satisfied only with plug-in version that is 
-	 * greater or equal to the specified version.
-	 * @since 2.0
-	 */
-	public static final int RULE_GREATER_OR_EQUAL = 4;
-	
-	/**
-	 * Dependency can be satisfied only if the required identifier
-	 * is a prefix of the specified identifier.
-	 * @since 2.1
-	 */
-	public static final int RULE_PREFIX = 1;
-
-	/**
-	 * The search location for updates is defined by the root feature.
-	 * @since 2.0.2
-	 */
-	public static final int SEARCH_ROOT = 1<<1;
-	
-	/**
-	 * The search location for updates is defined by this feature.
-	 * @since 2.0.2
-	 */
-	public static final int SEARCH_SELF = 1<<2;
-	
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IVerificationListener.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IVerificationListener.java
deleted file mode 100644
index 5982e0d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IVerificationListener.java
+++ /dev/null
@@ -1,79 +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 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.update.core;
- 
-/**
- * Verification listener. This interface abstract the user interaction
- * that may be required as a result of feature installation. In particular,
- * as feature archives are downloaded and verified, the user may need to 
- * indicate whether to accept any one of the archives, or abort the 
- * installation.
- * <p>
- * Clients may implement this interface.
- * </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>
- * @see org.eclipse.update.core.IVerificationResult
- * @see org.eclipse.update.core.IVerifier
- * @since 2.0
- */
-
-public interface IVerificationListener {
-	
-	/**
-	 * Indicate the action that resulted in this notification should be aborted.
-	 * 
-	 * @since 2.0
-	 */
-	public static final int CHOICE_ABORT = 0;
-	
-	/**
-	 * Indicate there was an error in processing the request.
-	 * The action that resulted in this notification should be aborted.
-	 * 
-	 * @since 2.0
-	 */
-	public static final int CHOICE_ERROR = 1;
-	
-	/**
-	 * Indicate that the target of the verification should be accepted,
-	 * but the information supplied with the verification result
-	 * should be trusted only for this request.
-	 * 
-	 * @since 2.0
-	 */
-	public static final int CHOICE_INSTALL_TRUST_ONCE = 2;
-	
-	/**
-	 * Indicate that the target of the verification should be accepted,
-	 * and the information supplied with the verification result
-	 * should be trusted for this request, and subsequent requests.
-	 * 
-	 * @since 2.0
-	 */
-	public static final int CHOICE_INSTALL_TRUST_ALWAYS = 3;
-	
-	/**
-	 * Determine if we should continue with the current action
-	 * based on the indicated verification results. Typically,
-	 * the implementation of this method will prompt the user
-	 * for the appropriate answer. However, other respose 
-	 * implementations can be provided.
-	 * 
-	 * @param result verification result 
-	 * @since 2.0
-	 */
-	public int prompt(IVerificationResult result);
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IVerificationResult.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IVerificationResult.java
deleted file mode 100644
index 1107248..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IVerificationResult.java
+++ /dev/null
@@ -1,161 +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 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.update.core;
-
-/**
- * Verification result. An object implementing this interface represents
- * a token passed between the update framework and the verifier and verification
- * listener. The verifier uses the token to capture the result of the file
- * verification. It is then passed to the verification listener
- * to optionally present this information to the user (in an 
- * implementation-specific way). The verification listener in turn
- * uses this token to capture the desired response.
- * <p>
- * Clients may implement this interface.
- * </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>
- * @since 2.0
- */
-public interface IVerificationResult {
-
-	/**
-	 * Indicates the file type is recognized but the file is not signed
-	 * 
-	 * @see #TYPE_ENTRY_UNRECOGNIZED
-	 * @since 2.0
-	 */
-	public static final int TYPE_ENTRY_NOT_SIGNED = 1;
-
-	/**
-	 * Indicates the file has been modified since it was signed
-	 * 
-	 * @since 2.0
-	 */
-	public static final int TYPE_ENTRY_CORRUPTED = 2;
-
-	/**
-	 * Indicates the file is signed by a known signer
-	 * 
-	 * @since 2.0
-	 */
-	public static final int TYPE_ENTRY_SIGNED_RECOGNIZED = 3;
-
-	/**
-	 * Indicates the file is signed but the signer is not known
-	 * 
-	 * @since 2.0
-	 */
-	public static final int TYPE_ENTRY_SIGNED_UNRECOGNIZED = 5;
-
-	/**
-	 * Error occurred during verification
-	 * 
-	 * @since 2.0
-	 */
-	public static final int UNKNOWN_ERROR = 6;
-
-	/**
-	 * Verification was cancelled
-	 * 
-	 * @since 2.0
-	 */
-	public static final int VERIFICATION_CANCELLED = 7;
-
-	/**
-	 * Could not perform verification due to unrecognized file
-	 * 
-	 * @see #TYPE_ENTRY_NOT_SIGNED
-	 * @since 2.0
-	 */
-	public static final int TYPE_ENTRY_UNRECOGNIZED = 8;
-
-	/**
-	 * Returns the content reference that is the target of the verification.
-	 * 
-	 * @return content reference
-	 * @since 2.0
-	 */
-	public ContentReference getContentReference();
-
-	/**
-	 * Returns the feature the referenced file is part of.
-	 * 
-	 * @return feature
-	 * @since 2.0
-	 */
-	public IFeature getFeature();
-
-	/**
-	 * Returns the verification code.
-	 * 
-	 * @return verification code, as defined in this interface.
-	 * @since 2.0
-	 */
-	public int getVerificationCode();
-
-	/**
-	 * Returns any exception caught during verification
-	 * 
-	 * @return exception, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public Exception getVerificationException();
-
-	/**
-	 * Returns display text describing the result of the verification.
-	 * 
-	 * @return result text, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getText();
-
-	/**
-	 * Returns text describing the signer
-	 * 
-	 * @return signer information, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getSignerInfo();
-
-	/**
-	 * Returns text describing the authority that verified/ certified 
-	 * the signer
-	 * 
-	 * @return verifier information, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getVerifierInfo();
-
-	/**
-	 * Indicates whether the referenced file is part of the overall feature
-	 * definition, or one of its component plug-in or non-plug-in entries.
-	 * 
-	 * @return <code>true</code> if reference is a feature file, 
-	 * <code>false</code> if reference is a plug-in or non-plug-in file
-	 * @since 2.0
-	 */
-	public boolean isFeatureVerification();
-	
-	/**
-	 * Indicates whether the signer and verifier info have already been accepted by the user
-	 * during a previous verification of one of the file of the feature.
-	 * 
-	 * @return <code>true</code> if the result has already been accepted, <code>false</code>
-	 * if the result has not yet been accepted by the user
-	 * @since 2.0
-	 */
-	public boolean alreadySeen();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IVerifier.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IVerifier.java
deleted file mode 100644
index fdb6d19..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IVerifier.java
+++ /dev/null
@@ -1,75 +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 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.update.core;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Verifier. This interface abstracts the archive verification step
- * performed by specific feature implementations. The actual details
- * of the verification are the responsibility of the concrete implementation.
- * <p>
- * Clients may implement this interface.
- * </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>
- * @see org.eclipse.update.core.IVerificationResult
- * @see org.eclipse.update.core.IFeatureContentProvider#getVerifier()
- * @since 2.0
- */
-public interface IVerifier {
-
-	/**
-	 * Perform verification of the specified archive.
-	 * 
-	 * @param feature feature containing this archive
-	 * @param reference actual archive reference
-	 * @param isFeatureVerification <code>true</code> indicates the specified
-	 * reference should be considered as part of the feature description
-	 * information (ie. verifying the overall feature), 
-	 * <code>false</code> indicates the specified reference is a plug-in
-	 * or a non-plug-in archive file (ie. verifying a component of the
-	 * feature)
-	 * @param monitor progress monitor, can be <code>null</code>
-	 * @return verification result
-	 * @exception CoreException
-	 * @since 2.0
-	 */
-	public IVerificationResult verify(
-		IFeature feature,
-		ContentReference reference,
-		boolean isFeatureVerification,
-		InstallMonitor monitor)
-		throws CoreException;
-		
-	/**
-	 * Sets the parent verifier.
-	 * 
-	 * The parent verifier can only be set once by the parent feature.
-	 * It may used for different verification strategies. 
-	 * (for instance, you may decide that both the parent and current verifier
-	 * must sucessfully verify the content reference, or that only one of them must verify)
-	 * @param parentVerifier the parent verifier.
-	 */
-	public void setParent(IVerifier parentVerifier);
-	
-	/**
-	 * Returns the parent verifier
-	 * 
-	 * @return the parent verifier
-	 * @since 2.0
-	 */
-	public IVerifier getParent();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/Import.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/Import.java
deleted file mode 100644
index a496cf3..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/Import.java
+++ /dev/null
@@ -1,88 +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 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.update.core;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Convenience implementation of a plug-in dependency.

- * <p>

- * This class may be instantiated or subclassed 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>

- * @see org.eclipse.update.core.IImport

- * @see org.eclipse.update.core.model.ImportModel

- * @since 2.0

- */

-public class Import extends ImportModel implements IImport {

-

-	//PERF: new instance variable

-	private VersionedIdentifier versionId;

-

-	/**

-	 * Returns an identifier of the dependent plug-in.

-	 * @see IImport#getVersionedIdentifier()

-	 */

-	public VersionedIdentifier getVersionedIdentifier() {

-		if (versionId != null)

-			return versionId;

-

-		String id = getIdentifier();

-		String ver = getVersion();

-		if (id != null && ver != null) {

-			try {

-				versionId = new VersionedIdentifier(id, ver);

-				return versionId;

-			} catch (Exception e) {

-				UpdateCore.warn("Unable to create versioned identifier:" + id + ":" + ver); //$NON-NLS-1$ //$NON-NLS-2$

-			}

-		}

-

-		

-		versionId = new VersionedIdentifier("",null); //$NON-NLS-1$

-		return versionId;		

-	}

-

-	/**

-	 * Returns the matching rule for the dependency.

-	 * @see IImport#getRule()

-	 */

-	public int getRule() {

-		return UpdateManagerUtils.getMatchingRule(getMatchingRuleName());

-	}

-	

-	/**

-	 * Returns the matching rule for the dependency identifier.

-	 * @see IImport#getIdRule()

-	 */

-	public int getIdRule() {

-		return UpdateManagerUtils.getMatchingIdRule(getMatchingIdRuleName());

-	}

-	

-	/**

-	 * 

-	 * @see org.eclipse.update.core.IImport#getKind()

-	 */

-

-	/**

-	 * Returns the dependency kind

-	 * @see org.eclipse.update.core.IImport#getKind()

-	 */

-	public int getKind() {

-		return isFeatureImport()?KIND_FEATURE:KIND_PLUGIN;

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IncludedFeatureReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IncludedFeatureReference.java
deleted file mode 100644
index 6b3d427..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IncludedFeatureReference.java
+++ /dev/null
@@ -1,143 +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 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.update.core;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * This is a utility class representing the options of a nested feature.
- * Feature will include other features. This class will represent the options of the inclusion.
- * <p>
- * Clients may instantiate; not intended to be subclassed 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>
- * @see org.eclipse.update.core.VersionedIdentifier
- * @since 2.0.1
- */
-public class IncludedFeatureReference
-	extends IncludedFeatureReferenceModel
-	implements IIncludedFeatureReference {
-
-	/**
-	 * Construct a included feature reference
-	 * 
-	 * @since 2.1
-	 */
-	public IncludedFeatureReference() {
-		super();
-	}
-
-	/**
-	 * Construct a feature options 
-	 * 
-	 * @param includedFeatureRef reference to clone
-	 * @since 2.0.2
-	 */
-	public IncludedFeatureReference(IIncludedFeatureReference includedFeatureRef) {
-		super((IncludedFeatureReferenceModel) includedFeatureRef);
-	}
-
-	/**
-	 * Constructor IncludedFeatureReference.
-	 * @param featureReference
-	 */
-	public IncludedFeatureReference(IFeatureReference featureReference) {
-		super(featureReference);
-	}
-
-	/*
-	 * Method isDisabled.
-	 * @return boolean
-	 */
-	private boolean isDisabled() {
-		IConfiguredSite cSite = getSite().getCurrentConfiguredSite();
-		if (cSite == null)
-			return false;
-		IFeatureReference[] configured = cSite.getConfiguredFeatures();
-		for (int i = 0; i < configured.length; i++) {
-			if (this.equals(configured[i]))
-				return false;
-		}
-		return true;
-		//		// FIXME: the above code was commented out and returned false. 
-		//		// Should this be commented out again?
-		//		return false;
-	}
-
-	/*
-	 * Method isInstalled.
-	 * @return boolean
-	 */
-	private boolean isUninstalled() {
-		if (!isDisabled())
-			return false;
-		IFeatureReference[] installed = getSite().getFeatureReferences();
-		for (int i = 0; i < installed.length; i++) {
-			if (this.equals(installed[i]))
-				return false;
-		}
-		// if we reached this point, the configured site exists and it does not
-		// contain this feature reference, so clearly the feature is uninstalled
-		return true;
-	}
-
-	/**
-	 * @see org.eclipse.update.core.IIncludedFeatureReference#getFeature(boolean,
-	 * IConfiguredSite)
-	 * @deprecated use getFeature(IProgressMonitor)
-	 */
-	public IFeature getFeature(
-		boolean perfectMatch,
-		IConfiguredSite configuredSite)
-		throws CoreException {
-		return getFeature(null);
-	}
-
-	/**
-	 * @see org.eclipse.update.core.IIncludedFeatureReference#getFeature(boolean,
-	 * IConfiguredSite,IProgressMonitor)
-	 * @deprecated use getFeature(IProgressMonitor)
-	 */
-	public IFeature getFeature(
-		boolean perfectMatch,
-		IConfiguredSite configuredSite,
-		IProgressMonitor monitor)
-		throws CoreException {
-			return getFeature(monitor);
-	}
-
-	/**
-	 * @see org.eclipse.update.core.IFeatureReference#getFeature()
-	 * @deprecated use getFeature(IProgressMonitor)
-	 */
-	public IFeature getFeature() throws CoreException {
-		return getFeature(null);
-	}
-	/**
-	 * @see org.eclipse.update.core.IFeatureReference#getFeature
-	 * (IProgressMonitor)
-	 */
-	public IFeature getFeature(IProgressMonitor monitor) throws CoreException {
-		if (isUninstalled())
-			throw new CoreException(new Status(IStatus.ERROR, UpdateCore.getPlugin().getBundle().getSymbolicName(), IStatus.OK, Policy.bind("IncludedFeatureReference.featureUninstalled", //$NON-NLS-1$
-					getFeatureIdentifier()), null));
-		else
-			return super.getFeature(monitor);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/InstallHandlerEntry.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/InstallHandlerEntry.java
deleted file mode 100644
index d97b2f9..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/InstallHandlerEntry.java
+++ /dev/null
@@ -1,42 +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 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.update.core;
-
-import org.eclipse.update.core.model.*;
-
-/**
- * Convenience implementation of an install handler entry.
- * <p>
- * This class may be instantiated or subclassed 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>
- * @see org.eclipse.update.core.IInstallHandlerEntry
- * @see org.eclipse.update.core.model.InstallHandlerEntryModel
- * @see org.eclipse.update.core.IInstallHandler
- * @since 2.0
- */
-public class InstallHandlerEntry
-	extends InstallHandlerEntryModel
-	implements IInstallHandlerEntry {
-
-	/**
-	 * Constructor for InstallHandlerEntry.
-	 * @since 2.0
-	 */
-	public InstallHandlerEntry() {
-		super();
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/InstallMonitor.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/InstallMonitor.java
deleted file mode 100644
index 3867fd4..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/InstallMonitor.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.core;

-

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Install progress monitor

- * Delegating wrapper for IProgressMonitor used for installation handling.

- * 

- * <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>

- * @since 2.0

- */

-public class InstallMonitor implements IProgressMonitor {

-

-	protected IProgressMonitor monitor;

-	protected Stack tasks;

-

-	protected String taskString;

-	protected String subTaskString;

-	protected boolean showDetails;

-	protected long totalCopyCount;

-	protected	long currentCount = 0;

-

-	protected class MonitorState {

-

-		private String taskString;

-		private String subTaskString;

-		private boolean showDetails;

-		private long totalCopyCount;

-        private long currentCount;

-

-		private MonitorState(

-			String taskString,

-			String subTaskString,

-			boolean showDetails,

-            long currentCount,

-			long totalCopyCount) {

-			this.taskString = taskString;

-			this.subTaskString = subTaskString;

-			this.showDetails = showDetails;

-            this.currentCount = currentCount;

-			this.totalCopyCount = totalCopyCount;

-		}

-

-		private String getTaskString() {

-			return this.taskString;

-		}

-

-		private String getSubTaskString() {

-			return this.subTaskString;

-		}

-

-		private boolean getShowDetails() {

-			return this.showDetails;

-		}

-

-        private long getCurrentCount() {

-            return this.currentCount;

-        }

-        

-		private long getTotalCopyCount() {

-			return this.totalCopyCount;

-		}

-	}

-	

-	protected InstallMonitor() {

-	}

-

-	/**

-	 * Install monitor constructor

-	 * 

-	 * @param monitor base install monitor

-	 * @since 2.0

-	 */

-	public InstallMonitor(IProgressMonitor monitor) {

-		this.monitor = monitor;

-		this.tasks = new Stack();

-		this.taskString = ""; //$NON-NLS-1$

-		this.subTaskString = ""; //$NON-NLS-1$

-		this.showDetails = false;

-		this.totalCopyCount = 0;

-	}

-

-	/**

-	 * Begin new monitor task.

-	 * 

-	 * @see IProgressMonitor#beginTask(String, int)

-	 * @since 2.0

-	 */

-	public void beginTask(String name, int totalWork) {

-		taskString = name;

-		monitor.beginTask(name, totalWork);

-	}

-

-	/**

-	 * Indicate completion of monitor activity.

-	 * 

-	 * @see IProgressMonitor#done()

-	 * @since 2.0

-	 */

-	public void done() {

-		monitor.done();

-	}

-

-	/**

-	 * Indicate monitor progress.

-	 * 

-	 * @see IProgressMonitor#internalWorked(double)

-	 * @since 2.0

-	 */

-	public void internalWorked(double work) {

-		monitor.internalWorked(work);

-	}

-

-	/**

-	 * Check is use indicated that the operation be cancelled.

-	 * 

-	 * @see IProgressMonitor#isCanceled()

-	 * @since 2.0

-	 */

-	public boolean isCanceled() {

-		return monitor.isCanceled();

-	}

-

-	/**

-	 * Set the cancellation state.

-	 * 

-	 * @see IProgressMonitor#setCanceled(boolean)

-	 * @since 2.0

-	 */

-	public void setCanceled(boolean value) {

-		monitor.setCanceled(value);

-	}

-

-	/**

-	 * Set task name.

-	 * 

-	 * @see IProgressMonitor#setTaskName(String)

-	 * @since 2.0

-	 */

-	public void setTaskName(String name) {

-		this.taskString = name;

-		this.subTaskString = ""; //$NON-NLS-1$

-		this.showDetails = false;

-		this.totalCopyCount = 0;

-		monitor.subTask(""); //$NON-NLS-1$

-		monitor.setTaskName(name);

-	}

-

-	/**

-	 * Set subtask name.

-	 * 

-	 * @see IProgressMonitor#subTask(String)

-	 * @since 2.0

-	 */

-	public void subTask(String name) {

-		this.subTaskString = name;

-		this.showDetails = false;

-		this.totalCopyCount = 0;

-		monitor.subTask(name);

-	}

-

-	/**

-	 * Indicate monitor progress.

-	 * 

-	 * @see IProgressMonitor#worked(int)

-	 * @since 2.0

-	 */

-	public void worked(int work) {

-		monitor.worked(work);

-	}

-

-	/**

-	 * Save the current monitor state.

-	 * The states are saved on a push-down stack. Prior states

-	 * can be restored by calling restorState()

-	 * 

-	 * @see #restoreState()

-	 * @since 2.0

-	 */

-	public void saveState() {

-		tasks.push(

-			new MonitorState(taskString, subTaskString, showDetails, currentCount, totalCopyCount));

-	}

-

-	/**

-	 * Restore the monitor state.

-	 * 

-	 * @see #saveState()

-	 * @since 2.0

-	 */

-	public void restoreState() {

-		if (tasks.size() > 0) {

-			MonitorState state = (MonitorState) tasks.pop();

-			setTaskName(state.getTaskString());

-			subTask(state.getSubTaskString());

-			this.showDetails = state.getShowDetails();

-            this.currentCount = state.getCurrentCount();

-			this.totalCopyCount = state.getTotalCopyCount();

-		}

-	}

-

-	/**

-	 * Indicate whether the monitor subtask message should include

-	 * copy progress counts.

-	 * 

-	 * @see #setCopyCount(long)

-	 * @see #setTotalCount(long)

-	 * @param setting <code>true</code> to show the copy count,

-	 * <code>false</code> otherwise

-	 * @since 2.0

-	 */

-	public void showCopyDetails(boolean setting) {

-		this.showDetails = setting;

-	}

-

-	/**

-	 * Sets the total number of bytes to copy.

-	 * 

-	 * @see #showCopyDetails(boolean)

-	 * @see #setCopyCount(long)

-	 * @param count total number of bytes to copy.

-	 * @since 2.0

-	 */

-	public void setTotalCount(long count) {

-		this.totalCopyCount = count;

-	}

-

-	/**

-	 * Sets the number of bytes already copied.

-	 * 

-	 * @see #showCopyDetails(boolean)

-	 * @see #setTotalCount(long)

-	 * @param count number of bytes already copied.

-	 * @since 2.0

-	 */

-	public void setCopyCount(long count) {

-		if (showDetails && count > 0) {

-			currentCount = count;

-			long countK = count / 1024;

-			long totalK = totalCopyCount / 1024;

-			String msg =

-				(totalK <= 0)

-					? Policy.bind("InstallMonitor.DownloadSize", Long.toString(countK)) //$NON-NLS-1$

-					: Policy.bind(

-						"InstallMonitor.DownloadSizeLong", //$NON-NLS-1$

-						Long.toString(countK),

-						Long.toString(totalK));

-			monitor.subTask(subTaskString + msg);

-		}

-	}

-	

-	/**

-	 * Increments the number of bytes copied.

-	 * 

-	 * @param increment number of new bytes  copied.

-	 * @since 3.0

-	 */

-	public void incrementCount(long increment) {

-		setCopyCount(currentCount + increment);

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/JarContentReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/JarContentReference.java
deleted file mode 100644
index b7d91a8..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/JarContentReference.java
+++ /dev/null
@@ -1,366 +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 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.update.core;

-

-import java.io.*;

-import java.net.*;

-import java.util.*;

-import java.util.jar.*;

-

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Local .jar file content reference.

- * <p>

- * This class may be instantiated or subclassed 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>

- * @see org.eclipse.update.core.ContentReference

- * @see org.eclipse.update.core.JarEntryContentReference

- * @since 2.0

- */

-public class JarContentReference extends ContentReference {

-

-	private static ArrayList referenceList = new ArrayList();

-	private JarFile jarFile;

-

-	/**

-	 * Content selector used in .jar operations.

-	 * Default implementation causes all file entries to be selected with

-	 * generated identifiers being the same as the original .jar entry name.

-	 * 

-	 * @since 2.0

-	 */

-	public static class ContentSelector {

-

-		/**

-		 * Indicates whether the .jar entry should be selected.

-		 * Default behavior is to select all non-directory entries.

-		 * 

-		 * @param entry .jar entry

-		 * @return <code>true</code> if entry is to be selected, 

-		 * <code>false</code> otherwise

-		 * @since 2.0

-		 */

-		public boolean include(JarEntry entry) {

-			return entry == null ? false : !entry.isDirectory();

-		}

-

-		/**

-		 * Defines the "symbolic" path identifier for the 

-		 * entry. Default identifier is the same as the jar entry name.

-		 * 

-		 * @param entry .jar entry

-		 * @return "symbolic" path identifier

-		 * @since 2.0

-		 */

-		public String defineIdentifier(JarEntry entry) {

-			return entry == null ? null : entry.getName();

-		}

-	}

-

-	/**

-	 * Create jar content reference from URL.

-	 * 

-	 * @param id "symbolic" path identifier

-	 * @param url actual referenced URL

-	 * @since 2.0

-	 */

-	public JarContentReference(String id, URL url) {

-		super(id, url);

-		this.jarFile = null;

-		referenceList.add(this); // keep track of archives

-	}

-

-	/**

-	 * Create jar content reference from file.

-	 * 

-	 * @param id "symbolic" path identifier

-	 * @param file actual referenced file

-	 * @since 2.0

-	 */

-	public JarContentReference(String id, File file) {

-		super(id, file);

-		this.jarFile = null;

-		referenceList.add(this); // keep track of archives

-	}

-

-	/**

-	 * A factory method to create a jar content reference.

-	 * 

-	 * @param id "symbolic" path identifier

-	 * @param file actual referenced file

-	 * @return jar content reference

-	 * @since 2.0

-	 */

-	public ContentReference createContentReference(String id, File file) {

-		return new JarContentReference(id, file,true);

-	}

-	/**

-	 * Constructor JarContentReference.

-	 * @param id

-	 * @param file

-	 * @param b

-	 */

-	public JarContentReference(String id, File file, boolean b) {

-		this(id,file);

-		setTempLocal(b);

-	}

-

-	/**

-	 * Returns the content reference as a jar file. Note, that this method

-	 * <b>does not</b> cause the file to be downloaded if it

-	 * is not already local.

-	 * 

-	 * @return reference as jar file

-	 * @exception IOException reference cannot be returned as jar file

-	 * @since 2.0

-	 */

-	protected JarFile asJarFile() throws IOException {

-		if (this.jarFile == null) {

-			File file = asFile();

-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_INSTALL)

-				UpdateCore.debug("asJarFile :" + file); //$NON-NLS-1$

-			if (file != null && !file.exists()) {

-				UpdateCore.warn("JarFile does not exits:" + file); //$NON-NLS-1$

-				throw new FileNotFoundException(file.getAbsolutePath());

-			}

-			this.jarFile = new JarFile(file);

-		}

-		return jarFile;

-	}

-

-	/**

-	 * Unpacks the referenced jar archive into the specified location.

-	 * Returns content references to the unpacked files.

-	 * 

-	 * @param dir location to unpack the jar into

-	 * @param selector selector, used to select entries to unpack, and to define

-	 * "symbolic" path identifiers for the entries.

-	 * @param monitor progress monitor 

-	 * @exception IOException

-	 * @exception InstallAbortedException

-	 * @since 2.0

-	 */

-	public ContentReference[] unpack(File dir, ContentSelector selector, InstallMonitor monitor) throws IOException, InstallAbortedException {

-

-		// make sure we have a selector

-		if (selector == null)

-			selector = new ContentSelector();

-

-		// get archive content

-		JarFile jarArchive = this.asJarFile();

-		List content = new ArrayList();

-		Enumeration entries = jarArchive.entries();

-

-		// run through the entries and unjar

-		String entryId;

-		JarEntry entry;

-		InputStream is;

-		OutputStream os;

-		File localFile;

-		try {

-			if (monitor != null) {

-				monitor.saveState();

-				monitor.setTaskName(Policy.bind("JarContentReference.Unpacking"));	//$NON-NLS-1$

-				monitor.subTask(this.getIdentifier());

-				monitor.showCopyDetails(false);

-			}

-			while (entries.hasMoreElements()) {

-				entry = (JarEntry) entries.nextElement();

-				if (entry != null && selector.include(entry)) {

-					is = null;

-					os = null;

-					entryId = selector.defineIdentifier(entry);

-					localFile = Utilities.createLocalFile(dir, entryId); // create temp file 

-					if (!entry.isDirectory()) {

-						try {

-							is = jarArchive.getInputStream(entry);

-							os = new FileOutputStream(localFile);

-							Utilities.copy(is, os, monitor);

-						} finally {

-							if (is != null)

-								try {

-									is.close();

-								} catch (IOException e) {

-								}

-							if (os != null)

-								try {

-									os.close();

-								} catch (IOException e) {

-								}

-						}

-						content.add(new ContentReference(entryId, localFile));

-					}

-				}

-			}

-		} finally {

-			if (monitor != null)

-				monitor.restoreState();

-		}

-		return (ContentReference[]) content.toArray(new ContentReference[0]);

-	}

-

-	/**

-	 * Unpacks the named jar entry into the specified location.

-	 * Returns content reference to the unpacked file.

-	 * 

-	 * @param dir location to unpack the jar into

-	 * @param entryName name of the jar entry

-	 * @param selector selector, used to define "symbolic" path identifier

-	 * for the entry

-	 * @param monitor progress monitor 

-	 * @exception IOException

-	 * @exception InstallAbortedException

-	 * @since 2.0

-	 */

-	public ContentReference unpack(File dir, String entryName, ContentSelector selector, InstallMonitor monitor) throws IOException, InstallAbortedException {

-

-		// make sure we have a selector

-		if (selector == null)

-			selector = new ContentSelector();

-

-		// unjar the entry

-		JarFile jarArchive = this.asJarFile();

-		entryName = entryName.replace(File.separatorChar, '/');

-		JarEntry entry = jarArchive.getJarEntry(entryName);

-		String entryId;

-		if (entry != null) {

-			InputStream is = null;

-			OutputStream os = null;

-			entryId = selector.defineIdentifier(entry);

-			File localFile = Utilities.createLocalFile(dir, entryId); // create temp file

-			if (!entry.isDirectory()) {

-				try {

-					is = jarArchive.getInputStream(entry);

-					os = new FileOutputStream(localFile);

-					Utilities.copy(is, os, monitor);

-				} finally {

-					if (is != null)

-						try {

-							is.close();

-						} catch (IOException e) {

-						}

-					if (os != null)

-						try {

-							os.close();

-						} catch (IOException e) {

-						}

-				}

-				return new ContentReference(entryId, localFile);

-			} else

-				return null; // entry was a directory

-		} else

-			throw new FileNotFoundException(this.asFile().getAbsolutePath() + " " + entryName);	//$NON-NLS-1$

-	}

-

-	/**

-	 * Peeks into the referenced jar archive.

-	 * Returns content references to the jar entries within the jar file.

-	 * 

-	 * @param selector selector, used to select entries to return, and to define

-	 * "symbolic" path identifiers for the entries.

-	 * @param monitor progress monitor 

-	 * @exception IOException

-	 * @since 2.0

-	 */

-	public ContentReference[] peek(ContentSelector selector, InstallMonitor monitor) throws IOException {

-

-		// make sure we have a selector

-		if (selector == null)

-			selector = new ContentSelector();

-

-		// get archive content

-		JarFile jarArchive = this.asJarFile();

-		List content = new ArrayList();

-		Enumeration entries = jarArchive.entries();

-

-		// run through the entries and create content references

-		JarEntry entry;

-		String entryId;

-		while (entries.hasMoreElements()) {

-			entry = (JarEntry) entries.nextElement();

-			if (selector.include(entry)) {

-				entryId = selector.defineIdentifier(entry);

-				content.add(new JarEntryContentReference(entryId, this, entry));

-			}

-		}

-		return (ContentReference[]) content.toArray(new ContentReference[0]);

-	}

-

-	/**

-	 * Peeks into the referenced jar archive looking for the named entry.

-	 * Returns content reference to the jar entry within the jar file.

-	 * 

-	 * @param entryName name of the jar entry

-	 * @param selector selector, used to define "symbolic" path identifier

-	 * for the entry

-	 * @param monitor progress monitor 

-	 * @return the content reference ofr <code>null</null> if the entry doesn't exist

-	 * @exception IOException

-	 * @since 2.0

-	 */

-	public ContentReference peek(String entryName, ContentSelector selector, InstallMonitor monitor) throws IOException {

-

-		// make sure we have a selector

-		if (selector == null)

-			selector = new ContentSelector();

-

-		// assume we have a reference that represents a jar archive.

-		JarFile jarArchive = this.asJarFile();

-		entryName = entryName.replace(File.separatorChar, '/');

-		JarEntry entry = jarArchive.getJarEntry(entryName);

-		if (entry == null)

-			return null;

-

-		String entryId = selector.defineIdentifier(entry);

-		return new JarEntryContentReference(entryId, this, entry);

-	}

-

-	/**

-	 * Closes the jar archive corresponding to this reference.

-	 * 

-	 * @exception IOException

-	 * @since 2.0

-	 */

-	public void closeArchive() throws IOException {

-		if (this.jarFile != null) {

-			this.jarFile.close();

-			this.jarFile = null;

-		}

-	}

-

-	/**

-	 * Perform shutdown processing for jar archive handling.

-	 * This method is called when platform is shutting down.

-	 * It is not intended to be called at any other time under

-	 * normal circumstances. A side-effect of calling this method

-	 * is that all jars referenced by JarContentReferences are closed.

-	 * 

-	 * @since 2.0

-	 */

-	public static void shutdown() {

-		for (int i = 0; i < referenceList.size(); i++) {

-			JarContentReference ref = (JarContentReference) referenceList.get(i);

-			try {

-				ref.closeArchive(); // ensure we are not leaving open jars

-			} catch (IOException e) {

-				// we tried, nothing we can do ...

-			}

-		}

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/JarEntryContentReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/JarEntryContentReference.java
deleted file mode 100644
index f77e038..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/JarEntryContentReference.java
+++ /dev/null
@@ -1,117 +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 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.update.core;

-

-import java.io.*;

-import java.net.*;

-import java.util.jar.*;

-

-/**

- * .jar file entry content reference.

- * <p>

- * This class may be instantiated or subclassed 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>

- * @see org.eclipse.update.core.ContentReference

- * @see org.eclipse.update.core.JarContentReference

- * @since 2.0

- */

-public class JarEntryContentReference extends ContentReference {

-

-	private JarContentReference jarContentReference;

-	private JarEntry entry;

-

-	/**

-	 * Create jar entry content reference.

-	 * 

-	 * @param id "symbolic" path identifier

-	 * @param jarContentReference jar file content reference

-	 * @param entry jar entry

-	 * @since 2.0

-	 */

-	public JarEntryContentReference(

-		String id,

-		JarContentReference jarContentReference,

-		JarEntry entry) {

-		super(id, (File) null);

-		this.jarContentReference = jarContentReference;

-		this.entry = entry;

-	}

-	

-	/**

-	 * Creates an input stream for the reference.

-	 * 

-	 * @return input stream

-	 * @exception IOException unable to create stream

-	 * @since 2.0

-	 */

-	public InputStream getInputStream() throws IOException {

-		return jarContentReference.asJarFile().getInputStream(entry);

-	}	

-	

-	/**

-	 * Returns the size of the referenced entry.

-	 * 

-	 * @return input size

-	 * @since 2.0

-	 */

-	public long getInputSize() {

-		return entry.getSize();

-	}

-	

-	/**

-	 * Indicates whether the reference is to a an entry within a local jar.

-	 * 

-	 * @return <code>true</code> if the reference is local, 

-	 * otherwise <code>false</code>

-	 * @since 2.0

-	 */

-	public boolean isLocalReference() {

-		return jarContentReference.isLocalReference();

-	}	

-		

-	/**

-	 * Returns the content reference as a URL.

-	 * 

-	 * @return reference as URL

-	 * @exception IOException reference cannot be returned as URL

-	 * @since 2.0

-	 */

-	public URL asURL() throws IOException {

-		String fileName =

-			jarContentReference.asFile().getAbsolutePath().replace(File.separatorChar, '/');

-		return new URL("jar:file:" + fileName + "!/" + entry.getName());	//$NON-NLS-1$ //$NON-NLS-2$

-	}

-			

-	/**

-	 * Return string representation of this reference.

-	 * 

-	 * @return string representation

-	 * @since 2.0

-	 */

-	public String toString() {

-		URL url;

-		try {

-			url = asURL();

-		} catch (IOException e) {

-			url = null;

-		}

-		if (url != null)

-			return url.toExternalForm();

-		else

-			return getClass().getName() + "@" + hashCode(); //$NON-NLS-1$

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/NonPluginEntry.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/NonPluginEntry.java
deleted file mode 100644
index 2aef481..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/NonPluginEntry.java
+++ /dev/null
@@ -1,40 +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 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.update.core;

-

-import org.eclipse.update.core.model.*;

-

-/**

- * Convenience implementation of non-plug-in entry.

- * <p>

- * This class may be instantiated or subclassed 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>

- * @see org.eclipse.update.core.INonPluginEntry

- * @see org.eclipse.update.core.model.NonPluginEntryModel

- * @since 2.0

- */

-public class NonPluginEntry

-	extends NonPluginEntryModel

-	implements INonPluginEntry {

-

-	/**

-	 * Non-plug-in entry default constructor

-	 */

-	public NonPluginEntry() {

-		super();

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/PluginEntry.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/PluginEntry.java
deleted file mode 100644
index f05300d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/PluginEntry.java
+++ /dev/null
@@ -1,94 +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 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.update.core;

-

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Convenience implementation of plug-in entry.

- * <p>

- * This class may be instantiated or subclassed 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>

- * @see org.eclipse.update.core.IPluginEntry

- * @see org.eclipse.update.core.model.PluginEntryModel

- * @since 2.0

- */

-public class PluginEntry extends PluginEntryModel implements IPluginEntry {

-	

-	// PERF: new instance variable

-	private VersionedIdentifier versionId;

-

-	/**

-	 * Plug-in entry default constructor

-	 */

-	public PluginEntry() {

-		super();

-	}

-

-	/**

-	 * Returns the identifier of this plugin entry

-	 * 

-	 * @see IPluginEntry#getVersionedIdentifier()

-	 * @since 2.0

-	 */

-	public VersionedIdentifier getVersionedIdentifier() {

-		if (versionId != null)

-			return versionId;

-

-		String id = getPluginIdentifier();

-		String ver = getPluginVersion();

-		if (id != null && ver != null) {

-			try {

-				versionId = new VersionedIdentifier(id, ver);

-				return versionId;

-			} catch (Exception e) {

-				UpdateCore.warn("Unable to create versioned identifier:" + id + ":" + ver); //$NON-NLS-1$ //$NON-NLS-2$

-			}

-		}

-

-		versionId = new VersionedIdentifier("",null); //$NON-NLS-1$

-		return versionId;

-	}

-

-	/**

-	 * Sets the identifier of this plugin entry. 

-	 * 

-	 * @see IPluginEntry#setVersionedIdentifier(VersionedIdentifier)

-	 * @since 2.0

-	 */

-	public void setVersionedIdentifier(VersionedIdentifier identifier) {

-		setPluginIdentifier(identifier.getIdentifier());

-		setPluginVersion(identifier.getVersion().toString());

-	}	

-

-	/**

-	 * Compares two plugin entries for equality

-	 * 

-	 * @param object plugin entry object to compare with

-	 * @return <code>true</code> if the two entries are equal, 

-	 * <code>false</code> otherwise

-	 * @since 2.0

-	 */

-	public boolean equals(Object object) {

-		if (!(object instanceof IPluginEntry))

-			return false;

-		IPluginEntry e = (IPluginEntry) object;

-		return getVersionedIdentifier().equals(e.getVersionedIdentifier());

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java
deleted file mode 100644
index c34c8d5..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/Site.java
+++ /dev/null
@@ -1,540 +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 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.update.core;

-

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Convenience implementation of a site.

- * <p>

- * This class may be instantiated or subclassed 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>

- * @see org.eclipse.update.core.ISite

- * @see org.eclipse.update.core.model.SiteModel

- * @since 2.0

- */

-public class Site extends SiteModel implements ISiteWithMirrors {

-

-	/**

-	 * Default installation path for features

-	 * 

-	 * @since 2.0

-	 */

-	public static final String DEFAULT_INSTALLED_FEATURE_PATH = "features/"; //$NON-NLS-1$

-

-	/**

-	 * Default installation path for plug-ins and plug-in fragments

-	 * 

-	 * @since 2.0

-	 */

-	public static final String DEFAULT_PLUGIN_PATH = "plugins/"; //$NON-NLS-1$

-

-	/**

-	 * Default path on a site where packaged features are located

-	 * 

-	 * @since 2.0

-	 */

-	public static final String DEFAULT_FEATURE_PATH = "features/"; //$NON-NLS-1$

-

-	/**

-	 * Default site manifest file name

-	 * 

-	 * @since 2.0

-	 */

-	public static final String SITE_FILE = "site"; //$NON-NLS-1$

-

-	/**

-	 * Default site manifest extension

-	 * 

-	 * @since 2.0

-	 */

-	public static final String SITE_XML = SITE_FILE + ".xml"; //$NON-NLS-1$

-

-	private ISiteContentProvider siteContentProvider;

-	

-	private Map featureCache = new HashMap(); // key=URLKey value=IFeature

-	

-	/**

-	 * Constructor for Site

-	 */

-	public Site() {

-		super();

-	}

-

-	/**

-	 * Compares two sites for equality

-	 * 

-	 * @param obj site object to compare with

-	 * @return <code>true</code> if the two sites are equal, 

-	 * <code>false</code> otherwise

-	 * @since 2.0

-	 */

-	public boolean equals(Object obj) {

-		if (!(obj instanceof ISite))

-			return false;

-		if (getURL() == null)

-			return false;

-		ISite otherSite = (ISite) obj;

-

-		return UpdateManagerUtils.sameURL(getURL(), otherSite.getURL());

-	}

-

-	/**

-	 * Returns the site URL

-	 * 

-	 * @see ISite#getURL()

-	 * @since 2.0

-	 */

-	public URL getURL() {

-		URL url = null;

-		try {

-			url = getSiteContentProvider().getURL();

-		} catch (CoreException e) {

-			UpdateCore.warn(null, e);

-		}

-		return url;

-	}

-

-	/**

-	 * Returns the site description.

-	 * 

-	 * @see ISite#getDescription()

-	 * @since 2.0

-	 */

-	public IURLEntry getDescription() {

-		return (IURLEntry) getDescriptionModel();

-	}

-

-	/**

-	 * Returns an array of categories defined by the site.

-	 * 

-	 * @see ISite#getCategories()

-	 * @since 2.0

-	 */

-	public ICategory[] getCategories() {

-		CategoryModel[] result = getCategoryModels();

-		if (result.length == 0)

-			return new ICategory[0];

-		else

-			return (ICategory[]) result;

-	}

-

-	/**

-	 * Returns the named site category.

-	 * 

-	 * @see ISite#getCategory(String)

-	 * @since 2.0

-	 */

-	public ICategory getCategory(String key) {

-		ICategory result = null;

-		boolean found = false;

-		int length = getCategoryModels().length;

-

-		for (int i = 0; i < length; i++) {

-			if (getCategoryModels()[i].getName().equals(key)) {

-				result = (ICategory) getCategoryModels()[i];

-				found = true;

-				break;

-			}

-		}

-

-		//DEBUG:

-		if (!found) {

-			String URLString = (this.getURL() != null) ? this.getURL().toExternalForm() : "<no site url>"; //$NON-NLS-1$

-			UpdateCore.warn(Policy.bind("Site.CannotFindCategory", key, URLString)); //$NON-NLS-1$ //$NON-NLS-2$

-			if (getCategoryModels().length <= 0)

-				UpdateCore.warn(Policy.bind("Site.NoCategories"));	//$NON-NLS-1$

-		}

-

-		return result;

-	}

-

-	/**

-	 * Returns an array of references to features on this site.

-	 * 

-	 * @see ISite#getFeatureReferences()

-	 * @since 2.0

-	 */

-	public ISiteFeatureReference[] getRawFeatureReferences() {

-		FeatureReferenceModel[] result = getFeatureReferenceModels();

-		if (result.length == 0)

-			return new ISiteFeatureReference[0];

-		else

-			return (ISiteFeatureReference[]) result;

-	}

-

-	/**

-	 * @see org.eclipse.update.core.ISite#getFeatureReferences()

-	 */

-	public ISiteFeatureReference[] getFeatureReferences() {

-		// only filter local site

-		if (getCurrentConfiguredSite()!=null)

-			return filterFeatures(getRawFeatureReferences());

-		else 

-			return getRawFeatureReferences();

-		

-	}

-

-	/*

-	 * Method filterFeatures.

-	 * Also implemented in Feature

-	 *  

-	 * @param list

-	 * @return List

-	 */

-	private ISiteFeatureReference[] filterFeatures(ISiteFeatureReference[] allIncluded) {

-		List list = new ArrayList();

-		if (allIncluded!=null){

-			for (int i = 0; i < allIncluded.length; i++) {

-				ISiteFeatureReference included = allIncluded[i];

-				if (UpdateManagerUtils.isValidEnvironment(included))

-					list.add(included);

-				else{

-					if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_WARNINGS){

-						UpdateCore.warn("Filtered out feature reference:"+included); //$NON-NLS-1$

-					}

-				}

-			}

-		}

-		

-		ISiteFeatureReference[] result = new ISiteFeatureReference[list.size()];

-		if (!list.isEmpty()){

-			list.toArray(result);

-		}

-		

-		return result;	

-	}

-

-	/**

-	 * Returns a reference to the specified feature on this site.

-	 * 

-	 * @see ISite#getFeatureReference(IFeature)

-	 * @since 2.0

-	 */

-	public ISiteFeatureReference getFeatureReference(IFeature feature) {

-

-		if (feature == null) {

-			UpdateCore.warn("Site:getFeatureReference: The feature is null"); //$NON-NLS-1$

-			return null;

-		}

-

-		ISiteFeatureReference[] references = getFeatureReferences();

-		ISiteFeatureReference currentReference = null;

-		for (int i = 0; i < references.length; i++) {

-			currentReference = references[i];

-			if (UpdateManagerUtils.sameURL(feature.getURL(), currentReference.getURL()))

-				return currentReference;

-		}

-

-		UpdateCore.warn("Feature " + feature + " not found on site" + this.getURL()); //$NON-NLS-1$ //$NON-NLS-2$

-		return null;

-	}

-

-	/**

-	 * Returns an array of plug-in and non-plug-in archives located

-	 * on this site

-	 * 

-	 * @see ISite#getArchives()

-	 * @since 2.0

-	 */

-	public IArchiveReference[] getArchives() {

-		ArchiveReferenceModel[] result = getArchiveReferenceModels();

-		if (result.length == 0)

-			return new IArchiveReference[0];

-		else

-			return (IArchiveReference[]) result;

-	}

-

-	/**

-	 * Returns the content provider for this site.

-	 * 

-	 * @see ISite#getSiteContentProvider()

-	 * @since 2.0

-	 */

-	public ISiteContentProvider getSiteContentProvider() throws CoreException {

-		if (siteContentProvider == null) {

-			throw Utilities.newCoreException(Policy.bind("Site.NoContentProvider"), null);	//$NON-NLS-1$

-		}

-		return siteContentProvider;

-	}

-

-	/**

-	 * Returns the default type for a packaged feature supported by this site

-	 * 

-	 * @see ISite#getDefaultPackagedFeatureType()

-	 * @since 2.0

-	 */

-	public String getDefaultPackagedFeatureType() {

-		return DEFAULT_PACKAGED_FEATURE_TYPE;

-	}

-

-	/**

-	 * Returns an array of entries corresponding to plug-ins installed

-	 * on this site.

-	 * 

-	 * @see ISite#getPluginEntries()

-	 * @since 2.0

-	 */

-	public IPluginEntry[] getPluginEntries() {

-		throw new UnsupportedOperationException();

-	}

-

-	/**

-	 * Returns the number of plug-ins installed on this site

-	 * 

-	 * @see ISite#getPluginEntryCount()

-	 * @since 2.0

-	 */

-	public int getPluginEntryCount() {

-		throw new UnsupportedOperationException();

-	}

-

-	/**

-	 * Returns an array of entries corresponding to plug-ins that are

-	 * installed on this site and are referenced only by the specified

-	 * feature. 

-	 * 

-	 * @see ISite#getPluginEntriesOnlyReferencedBy(IFeature)	 * 

-	 * @since 2.0

-	 */

-	public IPluginEntry[] getPluginEntriesOnlyReferencedBy(IFeature feature) throws CoreException {

-

-		IPluginEntry[] pluginsToRemove = new IPluginEntry[0];

-		if (feature == null)

-			return pluginsToRemove;

-

-		// get the plugins from the feature

-		IPluginEntry[] entries = feature.getPluginEntries();

-		if (entries != null) {

-			// get all the other plugins from all the other features

-			Set allPluginID = new HashSet();

-			ISiteFeatureReference[] features = getFeatureReferences();

-			if (features != null) {

-				for (int indexFeatures = 0; indexFeatures < features.length; indexFeatures++) {

-					IFeature featureToCompare = null;

-					try {

-						featureToCompare = features[indexFeatures].getFeature(null);

-					} catch (CoreException e) {

-						UpdateCore.warn(null, e);

-					}

-					if (!feature.equals(featureToCompare)) {

-						IPluginEntry[] pluginEntries = features[indexFeatures].getFeature(null).getPluginEntries();

-						if (pluginEntries != null) {

-							for (int indexEntries = 0; indexEntries < pluginEntries.length; indexEntries++) {

-								allPluginID.add(pluginEntries[indexEntries].getVersionedIdentifier());

-							}

-						}

-					}

-				}

-			}

-

-			// create the delta with the plugins that may be still used by other configured or unconfigured feature

-			List plugins = new ArrayList();

-			for (int indexPlugins = 0; indexPlugins < entries.length; indexPlugins++) {

-				if (!allPluginID.contains(entries[indexPlugins].getVersionedIdentifier())) {

-					plugins.add(entries[indexPlugins]);

-				}

-			}

-

-			// move List into Array

-			if (!plugins.isEmpty()) {

-				pluginsToRemove = new IPluginEntry[plugins.size()];

-				plugins.toArray(pluginsToRemove);

-			}

-		}

-

-		return pluginsToRemove;

-	}

-

-	/**

-	 * Adds a new plug-in entry to this site.

-	 * This implementation always throws UnsupportedOperationException

-	 * because this implementation does not support the install action.

-	 * 

-	 * @see ISite#addPluginEntry(IPluginEntry)

-	 * @exception java.lang.UnsupportedOperationException

-	 * @since 2.0

-	 */

-	public void addPluginEntry(IPluginEntry pluginEntry) {

-		throw new UnsupportedOperationException();

-	}

-

-	/**

-	 * Get download size for the specified feature on this site.

-	 * This implementation always throws UnsupportedOperationException

-	 * because this implementation does not support the install action.

-	 * 

-	 * @see ISite#getDownloadSizeFor(IFeature)

-	 * @exception java.lang.UnsupportedOperationException

-	 * @since 2.0

-	 */

-	public long getDownloadSizeFor(IFeature feature) {

-		throw new UnsupportedOperationException();

-	}

-

-	/**

-	 * Get install size for the specified feature on this site.

-	 * This implementation always throws UnsupportedOperationException

-	 * because this implementation does not support the install action.

-	 * 

-	 * @see ISite#getInstallSizeFor(IFeature)

-	 * @exception java.lang.UnsupportedOperationException

-	 * @since 2.0

-	 */

-	public long getInstallSizeFor(IFeature feature) {

-		throw new UnsupportedOperationException();

-	}

-

-	/**

-	 * Install the specified feature and all optional features on this site.

-	 * This implementation always throws UnsupportedOperationException

-	 * because this implementation does not support the install action.

-	 * 

-	 * @see ISite#install(IFeature, IVerificationListener, IProgressMonitor)

-	 * @exception InstallAbortedException when the user cancels the install

-	 * @exception CoreException

-	 * @exception java.lang.UnsupportedOperationException

-	 * @since 2.0

-	 */

-	public IFeatureReference install(IFeature sourceFeature, IVerificationListener verificationListener, IProgressMonitor progress) throws InstallAbortedException, CoreException {

-		throw new UnsupportedOperationException();

-	}

-

-	/**

-	 * Install the specified feature and listed optional features on this site.

-	 * This implementation always throws UnsupportedOperationException

-	 * because this implementation does not support the install action.

-	 * 

-	 * @see ISite#install(IFeature, IVerificationListener, IProgressMonitor)

-	 * @exception InstallAbortedException when the user cancels the install

-	 * @exception CoreException

-	 * @exception java.lang.UnsupportedOperationException

-	 * @since 2.0

-	 */

-	public IFeatureReference install(IFeature sourceFeature, IFeatureReference[] optionalFeatures, IVerificationListener verificationListener, IProgressMonitor progress) throws InstallAbortedException, CoreException {

-		throw new UnsupportedOperationException();

-	}

-

-	/**

-	 * Install the specified feature on this site using the content consumer as 

-	 * a context to install the feature in.

-	 * This implementation always throws UnsupportedOperationException

-	 * because this implementation does not support the install action.

-	 * 

-	 * @param sourceFeature feature to install

-	 * @param parentContentConsumer content consumer of the parent feature

-	 * @param parentVerifier verifier of the parent feature

-	 * @param verificationListener install verification listener

-	 * @param progress install monitor, can be <code>null</code>

-	 * @exception InstallAbortedException when the user cancels the install

-	 * @exception CoreException

-	 * @exception java.lang.UnsupportedOperationException 

-	 * @since 2.0 

-	 */

-	public IFeatureReference install(IFeature sourceFeature, IFeatureReference[] optionalFeatures, IFeatureContentConsumer parentContentConsumer, IVerifier parentVerifier, IVerificationListener verificationListener, IProgressMonitor progress)

-		throws CoreException {

-		throw new UnsupportedOperationException();

-	}

-

-	/**

-	 * Remove (uninstall) the specified feature from this site.

-	 * This implementation always throws UnsupportedOperationException

-	 * because this implementation does not support the remove action.

-	 * 

-	 * @see ISite#remove(IFeature, IProgressMonitor)

-	 * @exception java.lang.UnsupportedOperationException

-	 * @since 2.0

-	 */

-	public void remove(IFeature feature, IProgressMonitor progress) throws CoreException {

-		throw new UnsupportedOperationException();

-	}

-

-	/**

-	 * Sets the site content provider.

-	 * 

-	 * @see ISite#setSiteContentProvider(ISiteContentProvider)

-	 * @since 2.0

-	 */

-	public void setSiteContentProvider(ISiteContentProvider siteContentProvider) {

-		this.siteContentProvider = siteContentProvider;

-	}

-	/**

-	 * @see ISite#getCurrentConfiguredSite()

-	 */

-	public IConfiguredSite getCurrentConfiguredSite() {

-		return (IConfiguredSite) getConfiguredSiteModel();

-	}

-

-	/**

-	 * @see org.eclipse.update.core.ISite#createFeature(String, URL)

-	 * @deprecated

-	 */

-	public IFeature createFeature(String type, URL url) throws CoreException {

-		return createFeature(type,url,null);

-	}

-

-	/**

-	 * @see org.eclipse.update.core.ISite#createFeature(String, URL,

-	 * IProgressMonitor)

-	 */

-	public IFeature createFeature(String type, URL url, IProgressMonitor monitor) throws CoreException {

-

-		// First check the cache

-		URLKey key = new URLKey(url);

-		IFeature feature = (IFeature) featureCache.get(key);

-		if (feature != null) return feature;

-

-		// Create a new one

-		if (type == null || type.equals("")) { //$NON-NLS-1$

-			// ask the Site for the default type

-			type = getDefaultPackagedFeatureType();

-		}

-

-		IFeatureFactory factory = FeatureTypeFactory.getInstance().getFactory(type);

-		feature = factory.createFeature(url, this, monitor);

-		if (feature != null) {

-			// Add the feature to the cache

-			featureCache.put(key, feature);

-		}

-		return feature;

-	}

-

-	protected void removeFeatureFromCache(URL featureURL) {

-		URLKey key = new URLKey(featureURL);

-		featureCache.remove(key);

-	}

-

-	/**

-	 * Return an array of mirror update sites.

-	 * 

-	 * @return an array of mirror update sites

-	 * @since 2.0

-	 */

-	public IURLEntry[] getMirrorSiteEntries() {

-		URLEntryModel[] result = getMirrorSiteEntryModels();

-		if (result.length == 0)

-			return new IURLEntry[0];

-		else

-			return (IURLEntry[]) result;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteContentProvider.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteContentProvider.java
deleted file mode 100644
index 7e814c7..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteContentProvider.java
+++ /dev/null
@@ -1,88 +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 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.update.core;

- 

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Base site content provider

- * <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 abstract class SiteContentProvider implements ISiteContentProvider {

-

-	private URL base;

-	private ISite site;

-

-	/**

-	 * Constructor for SiteContentProvider

-	 */

-	public SiteContentProvider(URL url) {

-		super();

-		this.base = url;

-	}

-

-	/**

-	 * Returns the URL of this site

-	 * 

-	 * @see ISiteContentProvider#getURL()

-	 * @since 2.0

-	 */

-	public URL getURL() {

-		return base;

-	}

-

-	/**

-	 * Returns a URL for the identified archive

-	 * 

-	 * @see ISiteContentProvider#getArchiveReference(String)

-	 * @since 2.0

-	 */

-	public URL getArchiveReference(String archiveID) throws CoreException {

-		try {

-			return new URL(getURL(), archiveID);

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException(

-					Policy.bind(

-						"SiteContentProvider.ErrorCreatingURLForArchiveID", //$NON-NLS-1$

-						archiveID,

-						getURL().toExternalForm()),

-					e);

-		}

-	}

-

-	/**

-	 * Returns the site for this provider

-	 * 

-	 * @see ISiteContentProvider#getSite()

-	 * @since 2.0

-	 */

-	public ISite getSite() {

-		return site;

-	}

-

-	/**

-	 * Sets the site for this provider

-	 * 

-	 * @param site site for this provider

-	 * @since 2.0

-	 */

-	public void setSite(ISite site) {

-		this.site = site;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteFeatureReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteFeatureReference.java
deleted file mode 100644
index b47f51c..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteFeatureReference.java
+++ /dev/null
@@ -1,94 +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 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.update.core;
-
-import java.util.*;
-
-import org.eclipse.update.internal.core.*;
-
-/**
- * Convenience implementation of a feature reference.
- * <p>
- * This class may be instantiated or subclassed 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>
- * @see org.eclipse.update.core.IFeatureReference
- * @see org.eclipse.update.core.model.FeatureReferenceModel
- * @see org.eclipse.update.core.ISiteFeatureReference
- * @see org.eclipse.update.core.SiteFeatureReferenceModel 
- * @since 2.1
- */
-public class SiteFeatureReference extends SiteFeatureReferenceModel implements ISiteFeatureReference {
-
-	private List categories;
-
-	/**
-	 * Feature reference default constructor
-	 */
-	public SiteFeatureReference() {
-		super();
-	}
-
-	/**
-	 * Constructor FeatureReference.
-	 * @param ref the reference to copy
-	 */
-	public SiteFeatureReference(ISiteFeatureReference ref) {
-		super(ref);
-	}
-
-	/**
-	 * Returns an array of categories the referenced feature belong to.
-	 * 
-	 * @see ISiteFeatureReference#getCategories()
-	 * @since 2.1 
-	 */
-	public ICategory[] getCategories() {
-
-		if (categories == null) {
-			categories = new ArrayList();
-			String[] categoriesAsString = getCategoryNames();
-			for (int i = 0; i < categoriesAsString.length; i++) {
-				ICategory siteCat = getSite().getCategory(categoriesAsString[i]);
-				if (siteCat != null)
-					categories.add(siteCat);
-				else {
-					String siteURL = getSite().getURL() != null ? getSite().getURL().toExternalForm() : null;
-					UpdateCore.warn("Category " + categoriesAsString[i] + " not found in Site:" + siteURL); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-		}
-
-		ICategory[] result = new ICategory[0];
-
-		if (!(categories == null || categories.isEmpty())) {
-			result = new ICategory[categories.size()];
-			categories.toArray(result);
-		}
-		return result;
-	}
-
-	/**
-	 * Adds a category to the referenced feature.
-	 * 
-	 * @see ISiteFeatureReference#addCategory(ICategory)
-	 * @since 2.1 
-	 */
-	public void addCategory(ICategory category) {
-		this.addCategoryName(category.getName());
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteFeatureReferenceModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteFeatureReferenceModel.java
deleted file mode 100644
index fe07dfb..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteFeatureReferenceModel.java
+++ /dev/null
@@ -1,114 +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 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.update.core;
-
-import java.util.*;
-
-/**
- * Site Feature reference model object.
- * <p>
- * This class may be instantiated or subclassed by clients. However, in most 
- * cases clients should instead instantiate or subclass the provided 
- * concrete implementation of this model.
- * </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>
- * @see org.eclipse.update.core.FeatureReference
- * @since 2.1
- */
-public class SiteFeatureReferenceModel extends FeatureReference {
-
-	private List /* of String*/
-	categoryNames;
-
-
-	/**
-	 * Creates an uninitialized feature reference model object.
-	 * 
-	 * @since 2.0
-	 */
-	public SiteFeatureReferenceModel() {
-		super();
-	}
-
-	/**
-	 * Constructor FeatureReferenceModel.
-	 * @param ref
-	 */
-	public SiteFeatureReferenceModel(ISiteFeatureReference ref) {
-		super(ref);
-		if (ref instanceof SiteFeatureReferenceModel) {
-			SiteFeatureReferenceModel refModel = (SiteFeatureReferenceModel) ref;
-			setCategoryNames(refModel.getCategoryNames());
-		}
-	}
-
-
-	/**
-	 * Returns the names of categories the referenced feature belongs to.
-	 * 
-	 * @return an array of names, or an empty array.
-	 * @since 2.0
-	 */
-	public String[] getCategoryNames() {
-		if (categoryNames == null)
-			return new String[0];
-
-		return (String[]) categoryNames.toArray(new String[0]);
-	}
-
-	/**
-	 * Sets the names of categories this feature belongs to.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param categoryNames an array of category names
-	 * @since 2.0
-	 */
-	public void setCategoryNames(String[] categoryNames) {
-		assertIsWriteable();
-		if (categoryNames == null)
-			this.categoryNames = null;
-		else
-			this.categoryNames = new ArrayList(Arrays.asList(categoryNames));
-	}
-
-	/**
-	 * Adds the name of a category this feature belongs to.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param categoryName category name
-	 * @since 2.0
-	 */
-	public void addCategoryName(String categoryName) {
-		assertIsWriteable();
-		if (this.categoryNames == null)
-			this.categoryNames = new ArrayList();
-		if (!this.categoryNames.contains(categoryName))
-			this.categoryNames.add(categoryName);
-	}
-	
-	/**
-	 * Removes the name of a categorys this feature belongs to.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param categoryName category name
-	 * @since 2.0
-	 */
-	public void removeCategoryName(String categoryName) {
-		assertIsWriteable();
-		if (this.categoryNames != null)
-			this.categoryNames.remove(categoryName);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteManager.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteManager.java
deleted file mode 100644
index 61c0be0..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/SiteManager.java
+++ /dev/null
@@ -1,305 +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 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

- *     Laurent Fourrier (laurent@fourrier.nom.fr) - HTTP Proxy code and NetAccess Plugin

- *******************************************************************************/

-package org.eclipse.update.core;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Site Manager.

- * A helper class used for creating site instance. 

- * Site manager is a singleton class. It cannot be instantiated; 

- * all functionality is provided by static methods.

- * 

- * <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>

- * @see org.eclipse.update.core.ISite

- * @see org.eclipse.update.configuration.ILocalSite

- * @see org.eclipse.update.configuration.IConfiguredSite

- * @since 2.0

- */

-public class SiteManager {

-

-	private static String os;

-	private static String ws;

-	private static String arch;

-	private static String nl;

-	private static boolean isHttpProxyEnable;

-

-	private SiteManager() {

-	}

-

-	/** 

-	 * Returns a site object for the site specified by the argument URL.

-	 * Typically, the URL references a site manifest file on an update 

-	 * site. An update site acts as a source of features for installation

-	 * actions.

-	 * 

-	 * @param siteURL site URL

-	 * @return site object for the url

-	 * @exception CoreException

-	 * @deprecated use getSite(URL,IPogressMonitor) instead

-	 * @since 2.0 

-	 */

-	public static ISite getSite(URL siteURL) throws CoreException {

-		return InternalSiteManager.getSite(siteURL, true,null);

-	}

-

-	/** 

-	 * Returns a site object for the site specified by the argument URL.

-	 * Typically, the URL references a site manifest file on an update 

-	 * site. An update site acts as a source of features for installation

-	 * actions.

-	 * 

-	 * @param siteURL site URL

-	 * @param monitor the progress monitor

-	 * @return site object for the url or <samp>null</samp> in case a 

-	 * user canceled the connection in the progress monitor.

-	 * @exception CoreException

-	 * @since 2.1 

-	 */

-	public static ISite getSite(URL siteURL, IProgressMonitor monitor) throws CoreException {

-		return InternalSiteManager.getSite(siteURL, true, monitor);

-	}

-

-	/** 

-	 * Returns a site object for the site specified by the argument URL.

-	 * Typically, the URL references a site manifest file on an update 

-	 * site. An update site acts as a source of features for installation

-	 * actions.

-	 * 

-	 * @param siteURL site URL

-	 * @param usesCache <code>false</code> if the cache should be refreshed, and the site entirely reparsed, <code>false</code> otherwise.

-	 * @return site object for the url

-	 * @exception CoreException

-	 * @deprecated use getSite(URL,boolean,IPogressMonitor) instead

-	 * @since 2.0 

-	 */

-	public static ISite getSite(URL siteURL, boolean usesCache) throws CoreException {

-		return InternalSiteManager.getSite(siteURL, usesCache,null);

-	}

-

-	/** 

-	 * Returns a site object for the site specified by the argument URL.

-	 * Typically, the URL references a site manifest file on an update 

-	 * site. An update site acts as a source of features for installation

-	 * actions.

-	 * 

-	 * @param siteURL site URL

-	 * @param usesCache <code>false</code> if the cache should be refreshed, and the site entirely reparsed, <code>false</code> otherwise.

-	 * @param monitor the progress monitor

-	 * @return site object for the url or <samp>null</samp> in case a 

-	 * user canceled the connection in the progress monitor.

-	 * @exception CoreException

-	 * @since 2.1

-	 */

-	public static ISite getSite(URL siteURL, boolean usesCache, IProgressMonitor monitor) throws CoreException {

-		return InternalSiteManager.getSite(siteURL, usesCache, monitor);

-	}

-

-

-	/**

-	 * Returns the "local site". A local site is a logical collection

-	 * of configuration information plus one or more file system 

-	 * installation directories, represented as intividual sites. 

-	 * These are potential targets for installation actions.

-	 * 

-	 * @return the local site

-	 * @exception CoreException

-	 * @since 2.0 

-	 */

-	public static ILocalSite getLocalSite() throws CoreException {

-		return InternalSiteManager.getLocalSite();

-	}

-

-	/**

-	 * Trigger handling of newly discovered features. This method

-	 * can be called by the executing application whenever it

-	 * is invoked with the -newUpdates command line argument.

-	 * 

-	 * @throws CoreException if an error occurs.

-	 * @since 2.0

-	 * @deprecated Do not use this method

-	 */

-	public static void handleNewChanges() throws CoreException {

-	}

-	/**

-	 * Returns system architecture specification. A comma-separated list of arch

-	 * designators defined by the platform. 

-	 * 

-	 * This information is used as a hint by the installation and update

-	 * support.

-	 * 

-	 * @return system architecture specification

-	 * @since 2.1

-	 */

-	public static String getOSArch() {

-		if (arch == null)

-			arch = Platform.getOSArch();

-		return arch;

-	}

-

-	/**

-	 * Returns operating system specification. A comma-separated list of os

-	 * designators defined by the platform.

-	 * 

-	 * This information is used as a hint by the installation and update

-	 * support.

-	 *

-	 * @return the operating system specification.

-	 * @since 2.1

-	 */

-	public static String getOS() {

-		if (os == null)

-			os = Platform.getOS();

-		return os;

-	}

-

-	/**

-	 * Returns system architecture specification. A comma-separated list of arch

-	 * designators defined by the platform. 

-	 * 

-	 * This information is used as a hint by the installation and update

-	 * support.

-	 * @return system architecture specification.

-	 * @since 2.1

-	 */

-	public static String getWS() {

-		if (ws == null)

-			ws = Platform.getWS();

-		return ws;

-	}

-

-	/**

-	 * Sets the arch.

-	 * @param arch The arch to set

-	 */

-	public static void setOSArch(String arch) {

-		SiteManager.arch = arch;

-	}

-

-	/**

-	 * Sets the os.

-	 * @param os The os to set

-	 */

-	public static void setOS(String os) {

-		SiteManager.os = os;

-	}

-

-	/**

-	 * Sets the ws.

-	 * @param ws The ws to set

-	 */

-	public static void setWS(String ws) {

-		SiteManager.ws = ws;

-	}

-

-	/**

-	 * Sets the nl.

-	 * @param nl The nl to set

-	 */

-	public static void setNL(String nl) {

-		SiteManager.nl = nl;

-	}

-	

-	/**

-	 * Returns an estimate of bytes per second transfer rate for this URL

-	 * @param site the URL of the site

-	 * @return long a bytes per second estimate rate

-	 * @since 2.1

- 	 */	

-	public static long getEstimatedTransferRate(URL site) {

-		if (site == null)

-			return 0;

-		return InternalSiteManager.getEstimatedTransferRate(site.getHost());

-	}

-

-	/**

-	 * Returns current locale

-	 * 

-	 * @return the string name of the current locale or <code>null</code>

-	 * @since 2.1

-	 */

-	public static String getNL() {

-		if (nl == null)

-			nl = Platform.getNL();

-		return nl;

-	}

-

-	/**

-	 * Returns the HTTP Proxy Server or <code>null</code> if none

-	 * @return the HTTP proxy Server 

-	 */

-	public static String getHttpProxyServer() {

-		return UpdateCore.getPlugin().getPluginPreferences().getString(UpdateCore.HTTP_PROXY_HOST);

-	}

-	/**

-	 * Returns the HTTP Proxy Port or <code>null</code> if none

-	 * @return the HTTP proxy Port 

-	 */

-	public static String getHttpProxyPort() {

-		return UpdateCore.getPlugin().getPluginPreferences().getString(UpdateCore.HTTP_PROXY_PORT);

-	}

-	/**

-	 * Returns <code>true</code> if the connection should use the 

-	 * http proxy server, <code>false</code> otherwise

-	 * @return is the http proxy server enable

-	 */

-	public static boolean isHttpProxyEnable() {

-		return isHttpProxyEnable;

-	}

-	/**

-	 * Sets the HTTP Proxy information

-	 * Sets the HTTP proxy server for the HTTP proxy server 

-	 * Sets the HTTP proxy port for the HTTP proxy server 

-	 * If the proxy name is <code>null</code> or the proxy port is

-	 * <code>null</code> the connection will not use HTTP proxy server.

-	 * 

-	 * @param enable <code>true</code> if the connection should use an http

-	 * proxy server, <code>false </code> otherwise.

-	 * @param httpProxyServer the HTTP proxy server name or IP adress

-	 * @param httpProxyPort the HTTP proxy port

-	 */

-	public static void setHttpProxyInfo(boolean enable, String httpProxyServer, String httpProxyPort) {

-		isHttpProxyEnable = enable;

-

-		// if enable is false, or values are null,

-		// we should remove the properties and save the fact that proxy is disable 

-		if (!enable || httpProxyServer == null || httpProxyPort == null) {

-			System.getProperties().remove(UpdateCore.P_HTTP_HOST);

-			System.getProperties().remove(UpdateCore.P_HTTP_PORT);

-			System.getProperties().remove(UpdateCore.P_HTTP_PROXY);

-			//if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_WARNINGS)

-			UpdateCore.warn("Remove proxy server info"); //$NON-NLS-1$

-			UpdateCore.getPlugin().getPluginPreferences().setValue(UpdateCore.HTTP_PROXY_ENABLE, enable);

-			UpdateCore.getPlugin().savePluginPreferences();

-			return;

-		}

-		

-		System.getProperties().setProperty(UpdateCore.P_HTTP_PROXY, enable?"true":"false"); //$NON-NLS-1$ //$NON-NLS-2$

-		System.getProperties().setProperty(UpdateCore.P_HTTP_HOST, httpProxyServer);

-		System.getProperties().setProperty(UpdateCore.P_HTTP_PORT, httpProxyPort);

-		//if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_WARNINGS)

-		UpdateCore.warn("Added proxy server info:" + httpProxyServer + ":" + httpProxyPort); //$NON-NLS-1$ //$NON-NLS-2$

-		UpdateCore.getPlugin().getPluginPreferences().setValue(UpdateCore.HTTP_PROXY_HOST, httpProxyServer);

-		UpdateCore.getPlugin().getPluginPreferences().setValue(UpdateCore.HTTP_PROXY_PORT, httpProxyPort);

-		UpdateCore.getPlugin().getPluginPreferences().setValue(UpdateCore.HTTP_PROXY_ENABLE, enable);

-		UpdateCore.getPlugin().savePluginPreferences();

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/URLEntry.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/URLEntry.java
deleted file mode 100644
index 9f8100f..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/URLEntry.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the 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.update.core;

-

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Convenience implementation of an annotated URL.

- * <p>

- * This class may be instantiated or subclassed 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>

- * @see org.eclipse.update.core.IURLEntry

- * @see org.eclipse.update.core.model.URLEntryModel

- * @since 2.0

- */

-public class URLEntry extends URLEntryModel implements IURLEntry {

-

-	/**

-	 * Default constructor for annotated URL

-	 * 

-	 * @since 2.0

-	 */

-	public URLEntry() {

-		super();

-	}

-

-	/**

-	 * Returns a string representation of an annotated URL.

-	 * 

-	 * @return annotated url as String

-	 * @since 2.0

-	 */

-	public String toString() {

-		String result = "IURLEntry: "; //$NON-NLS-1$

-		String URLString =

-			(getURL() == null) ? Policy.bind("Feature.NoURL") : getURL().toExternalForm();	//$NON-NLS-1$

-		result =

-			result

-				+ ((getAnnotation() == null) ? URLString : getAnnotation() + " : " + URLString); //$NON-NLS-1$

-		return result;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/Utilities.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/Utilities.java
deleted file mode 100644
index a415459..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/Utilities.java
+++ /dev/null
@@ -1,334 +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 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.update.core;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * This class is a collection of utility functions that can be 
- * used for install processing
- * <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 class Utilities {
-
-	private static Map entryMap;
-	private static final DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.getDefault());
-	private static long tmpseed = (new Date()).getTime();
-	private static String dirRoot = null;
-
-	/**
-	 * Returns a new working directory (in temporary space). Ensures
-	 * the directory exists. Any directory levels that had to be created
-	 * are marked for deletion on exit.
-	 * 
-	 * @return working directory
-	 * @exception IOException
-	 * @since 2.0
-	 */
-	public static synchronized File createWorkingDirectory() throws IOException {
-
-		if (dirRoot == null) {
-			dirRoot = System.getProperty("java.io.tmpdir"); //$NON-NLS-1$
-			// in Linux, returns '/tmp', we must add '/'
-			if (!dirRoot.endsWith(File.separator))
-				dirRoot += File.separator;
-
-			// on Unix/Linux, the temp dir is shared by many users, so we need to ensure 
-			// that the top working directory is different for each user
-			if (!Platform.getOS().equals("win32")) { //$NON-NLS-1$
-				String home = System.getProperty("user.home"); //$NON-NLS-1$
-				home = Integer.toString(home.hashCode());
-				dirRoot += home + File.separator;
-			}
-			dirRoot += "eclipse" + File.separator + ".update" + File.separator + Long.toString(tmpseed) + File.separator; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		String tmpName = dirRoot + Long.toString(++tmpseed) + File.separator;
-
-		File tmpDir = new File(tmpName);
-		verifyPath(tmpDir, false);
-		if (!tmpDir.exists())
-			throw new FileNotFoundException(tmpName);
-		return tmpDir;
-	}
-
-	/**
-	 * Create a new working file. The file is marked for deletion on exit.
-	 * 
-	 * @see #lookupLocalFile(String)
-	 * @param tmpDir directory location for new file. Any missing directory
-	 * levels are created (and marked for deletion on exit)
-	 * @param name optional file name, or <code>null</code>. If name is not
-	 * specified, a temporary name is generated.
-	 * @return created working file
-	 * @exception IOException
-	 * @since 2.0
-	 */
-	public static synchronized File createLocalFile(File tmpDir, String name) throws IOException {
-		// create the local file
-		File temp;
-		String filePath;
-		if (name != null) {
-			// create file with specified name
-			filePath = name.replace('/', File.separatorChar);
-			if (filePath.startsWith(File.separator))
-				filePath = filePath.substring(1);
-			temp = new File(tmpDir, filePath);
-		} else {
-			// create file with temp name
-			temp = File.createTempFile("eclipse", null, tmpDir); //$NON-NLS-1$
-		}
-		temp.deleteOnExit();
-		verifyPath(temp, true);
-
-		return temp;
-	}
-
-	/**
-	 * The file is associated with a lookup key.
-	 * @param key optional lookup key, or <code>null</code>.
-	 * @param temp the local working file
-	 * @since 2.0.2
-	 */
-	public synchronized static void mapLocalFile(String key, File temp) {
-		// create file association 
-		if (key != null) {
-			if (entryMap == null)
-				entryMap = new HashMap();
-			entryMap.put(key, temp);
-		}
-	}
-
-	/**
-	 * Returns a previously cached local file (in temporary area) matching the
-	 * specified key. 
-	 * 
-	 * @param key lookup key
-	 * @return cached file, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public static synchronized File lookupLocalFile(String key) {
-		if (entryMap == null)
-			return null;
-		return (File) entryMap.get(key);
-	}
-
-	/**
-	 * Flushes all the keys from the local file map.
-	 * Reinitialize the cache.
-     *
-	 * @since 2.1
-	 */
-	public synchronized static void flushLocalFile() {
-		entryMap = null;
-	}
-
-	/**
-	 * Removes the specified key from the local file map. The file is
-	 * not actually deleted until VM termination.
-	 * 
-	 * @param key lookup key
-	 * @since 2.0
-	 */
-	public static synchronized void removeLocalFile(String key) {
-		if (entryMap != null)
-			entryMap.remove(key);
-	}
-
-	/**
-	 * Copies specified input stream to the output stream. Neither stream
-	 * is closed as part of this operation.
-	 * 
-	 * @param is input stream
-	 * @param os output stream
-	 * @param monitor progress monitor
-	 * @exception IOException
-	 * @exception InstallAbortedException
-	 * @since 2.0
-	 */
-	public static void copy(InputStream is, OutputStream os, InstallMonitor monitor) throws IOException, InstallAbortedException {
-		long offset = UpdateManagerUtils.copy(is, os, monitor, 0);
-		if (offset != -1) {
-			if (monitor.isCanceled()) {
-				String msg = Policy.bind("Feature.InstallationCancelled"); //$NON-NLS-1$
-				throw new InstallAbortedException(msg, null);
-			} else {
-				throw new IOException();
-			}
-		}
-	}
-
-	/**
-	 * Creates a CoreException from some other exception.
-	 * The type of the CoreException is <code>IStatus.ERROR</code>
-	 * If the exception passed as a parameter is also a CoreException,
-	 * the new CoreException will contain all the status of the passed
-	 * CoreException.
-	 * 
-	 * @see IStatus#ERROR
-	 * @param s exception string
-	 * @param code the code reported
-	 * @param e actual exception being reported
-	 * @return a CoreException
-	 * @since 2.0
-	 */
-	public static CoreException newCoreException(String s, int code, Throwable e) {
-		String id = UpdateCore.getPlugin().getBundle().getSymbolicName();
-
-		// check the case of a multistatus
-		IStatus status;
-		if (e instanceof FeatureDownloadException)
-			return (FeatureDownloadException)e;
-		else if (e instanceof CoreException) {
-			if (s == null)
-				s = ""; //$NON-NLS-1$
-			status = new MultiStatus(id, code, s, e);
-			IStatus childrenStatus = ((CoreException) e).getStatus();
-			((MultiStatus) status).add(childrenStatus);
-			((MultiStatus) status).addAll(childrenStatus);
-		} else {
-			StringBuffer completeString = new StringBuffer(""); //$NON-NLS-1$
-			if (s != null)
-				completeString.append(s);
-			if (e != null) {
-				completeString.append(" ["); //$NON-NLS-1$
-				String msg = e.getLocalizedMessage();
-				completeString.append(msg!=null?msg:e.toString());
-				completeString.append("]"); //$NON-NLS-1$
-			}
-			status = new Status(IStatus.ERROR, id, code, completeString.toString(), e);
-		}
-		return new CoreException(status); //$NON-NLS-1$
-	}
-
-	/**
-	 * Creates a CoreException from some other exception.
-	 * The type of the CoreException is <code>IStatus.ERROR</code>
-	 * If the exceptionpassed as a parameter is also a CoreException,
-	 * the new CoreException will contain all the status of the passed
-	 * CoreException.
-	 * 
-	 * @see IStatus#ERROR
-	 * @param s exception string
-	 * @param e actual exception being reported
-	 * @return a CoreException
-	 * @since 2.0
-	 */
-	public static CoreException newCoreException(String s, Throwable e) {
-		return newCoreException(s, IStatus.OK, e);
-	}
-
-	/**
-	 * Creates a CoreException from two other CoreException
-	 * 
-	 * @param s overall exception string
-	 * @param s1 string for first detailed exception
-	 * @param s2 string for second detailed exception
-	 * @param e1 first detailed exception
-	 * @param e2 second detailed exception
-	 * @return a CoreException with multi-status
-	 * @since 2.0
-	 */
-	public static CoreException newCoreException(String s, String s1, String s2, CoreException e1, CoreException e2) {
-		String id = UpdateCore.getPlugin().getBundle().getSymbolicName();
-		if (s == null)
-			s = ""; //$NON-NLS-1$
-
-		IStatus childStatus1 = ((CoreException) e1).getStatus();
-		IStatus childStatus2 = ((CoreException) e2).getStatus();
-		int code = (childStatus1.getCode() == childStatus2.getCode()) ? childStatus1.getCode() : IStatus.OK;
-		MultiStatus multi = new MultiStatus(id, code, s, null);
-
-		multi.add(childStatus1);
-		multi.addAll(childStatus1);
-		multi.add(childStatus2);
-		multi.addAll(childStatus2);
-
-		return new CoreException(multi); //$NON-NLS-1$
-	}
-
-	/**
-	 * Formats a Date based on the default Locale 
-	 * If teh Date is <code>null</code> returns an empty String
-	 * 
-	 * @param date the Date to format
-	 * @return the formatted Date as a String
-	 * @since 2.0
-	 */
-	public static String format(Date date) {
-		if (date == null)
-			return ""; //$NON-NLS-1$
-		return dateFormat.format(date);
-	}
-
-	/**
-	 * Perform shutdown processing for temporary file handling.
-	 * This method is called when platform is shutting down.
-	 * It is not intended to be called at any other time under
-	 * normal circumstances. A side-effect of calling this method
-	 * is that the contents of the temporary directory managed 
-	 * by this class are deleted. 
-	 * 
-	 * @since 2.0
-	 */
-	public static void shutdown() {
-		if (dirRoot == null)
-			return;
-
-		File temp = new File(dirRoot); // temp directory root for this run
-		cleanupTemp(temp);
-		temp.delete();
-	}
-
-	private static void cleanupTemp(File root) {
-		File[] files = root.listFiles();
-		for (int i = 0; files != null && i < files.length; i++) {
-			if (files[i].isDirectory())
-				cleanupTemp(files[i]);
-			files[i].delete();
-		}
-	}
-
-	private static void verifyPath(File path, boolean isFile) {
-		// if we are expecting a file back off 1 path element
-		if (isFile) {
-			if (path.getAbsolutePath().endsWith(File.separator)) {
-				// make sure this is a file
-				path = path.getParentFile();
-				isFile = false;
-			}
-		}
-
-		// already exists ... just return
-		if (path.exists())
-			return;
-
-		// does not exist ... ensure parent exists
-		File parent = path.getParentFile();
-		verifyPath(parent, false);
-
-		// ensure directories are made. Mark files or directories for deletion
-		if (!isFile)
-			path.mkdir();
-		path.deleteOnExit();
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/Verifier.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/Verifier.java
deleted file mode 100644
index 83ba878..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/Verifier.java
+++ /dev/null
@@ -1,62 +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 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.update.core;
- 
-import org.eclipse.core.runtime.*;
-
-/**
- * Convenience implementation of a verifier.
- * <p>
- * This class may be subclassed 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>
- * @see org.eclipse.update.core.IVerifier
- * @since 2.0
- */
-public abstract class Verifier implements IVerifier {
-	
-	private IVerifier parent;
-
-	/**
-	 * @see IVerifier#verify(IFeature, ContentReference, boolean, InstallMonitor)
-	 */
-	public abstract IVerificationResult verify(
-		IFeature feature,
-		ContentReference reference,
-		boolean isFeatureVerification,
-		InstallMonitor monitor)
-		throws CoreException ;
-
-	/**
-	 * @see IVerifier#verify(IFeature, ContentReference, boolean, InstallMonitor)
-	 */
-	public void setParent(IVerifier parentVerifier){
-		if (this.parent==null){
-			this.parent = parentVerifier;
-		}
-	}
-	
-	/**
-	 * Returns the parent verifier
-	 * 
-	 * @return the parent verifier
-	 * @since 2.0
-	 */
-	public IVerifier getParent(){
-		return parent;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/VersionedIdentifier.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/VersionedIdentifier.java
deleted file mode 100644
index 7cf707d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/VersionedIdentifier.java
+++ /dev/null
@@ -1,122 +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 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.update.core;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Versioned Identifier. This is a utility class combining an identification

- * string with a version.

- * <p>

- * Clients may instantiate; not intended to be subclassed 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>

- * @see org.eclipse.core.runtime.PluginVersionIdentifier

- * @since 2.0

- */

-public class VersionedIdentifier {

-	private String id;

-	private PluginVersionIdentifier version;

-	private static final String SEPARATOR = "_"; //$NON-NLS-1$

-

-	/**

-	 * Construct a versioned identifier from an identifier and a string

-	 * representation of a version

-	 * 

-	 * @see org.eclipse.core.runtime.PluginVersionIdentifier#toString()

-	 * @param id identifier string

-	 * @param versionName string representation of version

-	 * @since 2.0

-	 */

-	public VersionedIdentifier(String id, String versionName) {

-		if (id == null	|| (id = id.trim()).equals("")) //$NON-NLS-1$

-			throw new IllegalArgumentException(

-				Policy.bind("VersionedIdentifier.IdOrVersionNull", id, versionName)); //$NON-NLS-1$

-		this.id = id;

-		// 15707

-		if (versionName != null){

-			// if (PluginVersionIdentifier.validateVersionIdentifier(versionName).isOk())

-			try {

-				this.version = new PluginVersionIdentifier(versionName);

-			} catch (RuntimeException e){

-				UpdateCore.warn("Invalid Version:"+versionName,e); //$NON-NLS-1$

-			}

-		}

-		if (this.version==null)

-			version = new PluginVersionIdentifier(0, 0, 0);

-	}

-

-	/**

-	 * Returns the identifier

-	 * 

-	 * @return identifier

-	 * @since 2.0

-	 */

-	public String getIdentifier() {

-		return id;

-	}

-

-	/**

-	 * Returns the version

-	 * 

-	 * @return version

-	 * @since 2.0

-	 */

-	public PluginVersionIdentifier getVersion() {

-		return version;

-	}

-

-	/**

-	 * Returns a string representation of the versioned identifier.

-	 * 

-	 * @return string representation of versioned identifier. The resulting 

-	 * string is <id>_<version>, where <id> is the identifier and 

-	 * <version> is the string representation of the version

-	 * @since 2.0

-	 */

-	public String toString() {

-		return id.equals("") ? "" : id + SEPARATOR + version.toString(); //$NON-NLS-1$ //$NON-NLS-2$

-	}

-

-	/**

-	 * Compares two versioned identifiers for equality

-	 * 

-	 * @param obj other versioned identifier to compare to

-	 * @return <code>true</code> if the two objects are equal, 

-	 * <code>false</code> otherwise

-	 * @since 2.0

-	 */

-	public boolean equals(Object obj) {

-		if (!(obj instanceof VersionedIdentifier))

-			return false;

-		VersionedIdentifier vid = (VersionedIdentifier) obj;

-		if (!this.id.equals(vid.id))

-			return false;

-		return this.version.equals(vid.version);

-	}

-

-	/**

-	 * Returns a computed hashcode for the versioned identifier.

-	 * 

-	 * @return hash code

-	 * @since 2.0

-	 */

-	public int hashCode() {

-		return toString().hashCode();

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ArchiveReferenceModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ArchiveReferenceModel.java
deleted file mode 100644
index e8f98ec..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ArchiveReferenceModel.java
+++ /dev/null
@@ -1,118 +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 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.update.core.model;

-

-import java.net.*;

-

-/**

- * Site archive model object.

- * <p>

- * This class may be instantiated or subclassed by clients. However, in most 

- * cases clients should instead instantiate or subclass the provided 

- * concrete implementation of this model.

- * </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>

- * @see org.eclipse.update.core.ArchiveReference

- * @since 2.0

- */

-public class ArchiveReferenceModel extends ModelObject {

-

-	private String path;

-	private String urlString;

-	private URL url;

-

-	/**

-	 * Creates a uninitialized model object.

-	 *  

-	 * @since 2.0

-	 */

-	public ArchiveReferenceModel() {

-		super();

-	}

-

-	/**

-	 * Retrieve the site archive "symbolic" path

-	 *

-	 * @return path, or <code>null</code>

-	 * @since 2.0

-	 */

-	public String getPath() {

-		return path;

-	}

-

-	/**

-	 * Returns the unresolved URL string for the archive.

-	 *

-	 * @return url string, or <code>null</code>

-	 * @since 2.0

-	 */

-	public String getURLString() {

-		return urlString;

-	}

-

-	/**

-	 * Returns the resolved URL for the archive.

-	 * 

-	 * @return url, or <code>null</code>

-	 * @since 2.0

-	 */

-	public URL getURL() {

-		return url;

-	}

-

-	/**

-	 * Sets the site archive "symbolic" path.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param path archive "symbolic" path.

-	 * @since 2.0

-	 */

-	public void setPath(String path) {

-		assertIsWriteable();

-		this.path = path;

-	}

-

-	/**

-	 * Sets the unresolved URL string for the archive.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param urlString unresolved url string.

-	 * @since 2.0

-	 */

-	public void setURLString(String urlString) {

-		assertIsWriteable();

-		this.urlString = urlString;

-		this.url = null;

-	}

-

-	/**

-	 * Resolve the model object.

-	 * Any URL strings in the model are resolved relative to the 

-	 * base URL argument. Any translatable strings in the model that are

-	 * specified as translation keys are localized using the supplied 

-	 * resource bundle.

-	 * 

-	 * @param base URL

-	 * @param bundleURL resource bundle URL

-	 * @exception MalformedURLException

-	 * @since 2.0

-	 */

-	public void resolve(URL base,URL bundleURL)

-		throws MalformedURLException {

-		// resolve local elements

-		url = resolveURL(base, bundleURL, urlString);

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/CategoryModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/CategoryModel.java
deleted file mode 100644
index 024ce8d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/CategoryModel.java
+++ /dev/null
@@ -1,224 +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 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.update.core.model;
-
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.update.core.*;
-
-/**
- * Feature category definition model object.
- * <p>
- * This class may be instantiated or subclassed by clients. However, in most 
- * cases clients should instead instantiate or subclass the provided 
- * concrete implementation of this model.
- * </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>
- * @see org.eclipse.update.core.Category
- * @since 2.0
- */
-
-public class CategoryModel extends ModelObject {
-
-	private String name;
-	private String label;
-	private String localizedLabel;
-	private URLEntryModel description;
-	private static Comparator comp;
-
-	/**
-	 * Creates an uninitialized model object.
-	 * 
-	 * @since 2.0
-	 */
-	public CategoryModel() {
-		super();
-	}
-
-	/**
-	 * Retrieve the name of the category.
-	 * 
-	 * @return category name, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Retrieve the displayable label for the category. If the model
-	 * object has been resolved, the label is localized.
-	 * 
-	 * @return displayable label, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getLabel() {
-		if (localizedLabel != null)
-			return localizedLabel;
-		else
-			return label;
-	}
-
-	/**
-	 * Retrieve the non-localized displayable label for the category.
-	 * 
-	 * @return non-localized displayable label, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getLabelNonLocalized() {
-		return label;
-	}
-
-	/**
-	 * Retrieve the detailed category description
-	 * 
-	 * @return category description, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public URLEntryModel getDescriptionModel() {
-		return description;
-	}
-
-	/**
-	 * Sets the category displayable label.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param label displayable label, or resource key
-	 * @since 2.0
-	 */
-	public void setLabel(String label) {
-		assertIsWriteable();
-		this.label = label;
-		this.localizedLabel = null;
-	}
-
-	/**
-	 * Sets the category name.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param name category name
-	 * @since 2.0
-	 */
-	public void setName(String name) {
-		assertIsWriteable();
-		this.name = name;
-	}
-
-	/**
-	 * Sets the category description.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param description category description
-	 * @since 2.0
-	 */
-	public void setDescriptionModel(URLEntryModel description) {
-		assertIsWriteable();
-		this.description = description;
-	}
-
-	/**
-	 * Marks the model object as read-only.
-	 * 
-	 * @since 2.0
-	 */
-	public void markReadOnly() {
-		super.markReadOnly();
-		markReferenceReadOnly(getDescriptionModel());
-	}
-
-	/**
-	 * Resolve the model object.
-	 * Any URL strings in the model are resolved relative to the 
-	 * base URL argument. Any translatable strings in the model that are
-	 * specified as translation keys are localized using the supplied 
-	 * resource bundle.
-	 * 
-	 * @param base URL
-	 * @param bundleURL resource bundle URL
-	 * @exception MalformedURLException
-	 * @since 2.0
-	 */
-	public void resolve(URL base,URL bundleURL)
-		throws MalformedURLException {
-		// resolve local elements
-		localizedLabel = resolveNLString(bundleURL, label);
-
-		// delegate to references
-		resolveReference(getDescriptionModel(),base, bundleURL);
-	}
-
-	/**
-	 * Compare two category models for equality.
-	 * 
-	 * @see Object#equals(Object)
-	 * @since 2.0
-	 */
-	public boolean equals(Object obj) {
-		boolean result = false;
-		if (obj instanceof CategoryModel) {
-			CategoryModel otherCategory = (CategoryModel) obj;
-			result = getName().equalsIgnoreCase(otherCategory.getName());
-		}
-		return result;
-	}
-
-	/**
-	 * Compute hash code for category model.
-	 * 
-	 * @see Object#hashCode()
-	 * @since 2.0
-	 */
-	public int hashCode() {
-		return getName().hashCode();
-	}
-
-	/**
-	 * Returns a comparator for category models.
-	 * 
-	 * @return comparator
-	 * @since 2.0
-	 */
-	public static Comparator getComparator() {
-		if (comp == null) {
-			comp = new Comparator() {
-				/*
-				 * @see Comparator#compare(Object,Object)
-				 * Returns 0 if versions are equal.
-				 * Returns -1 if object1 is after than object2.
-				 * Returns +1 if object1 is before than object2.
-				 */
-				public int compare(Object o1, Object o2) {
-
-					CategoryModel cat1 = (CategoryModel) o1;
-					CategoryModel cat2 = (CategoryModel) o2;
-
-					if (cat1.equals(cat2))
-						return 0;
-					return cat1.getName().compareTo(cat2.getName());
-				}
-			};
-		}
-		return comp;
-	}
-	
-	/**
-	 * @see org.eclipse.update.core.model.ModelObject#getPropertyName()
-	 */
-	protected String getPropertyName() {
-		return Site.SITE_FILE;
-	}	
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ContentEntryModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ContentEntryModel.java
deleted file mode 100644
index ee70512..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ContentEntryModel.java
+++ /dev/null
@@ -1,196 +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 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.update.core.model;

-

-

-/**

- * Content entry model object.

- * This is the base class for plug-in and non-plug-in entry models.

- * <p>

- * This class must be subclassed 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>

- * @see org.eclipse.update.core.model.PluginEntryModel

- * @see org.eclipse.update.core.model.NonPluginEntryModel

- * @since 2.0

- */

-public abstract class ContentEntryModel extends ModelObject {

-

-	/**

-	 * An indication the size could not be determined

-	 * 

-	 * @since 2.0

-	 */

-	public static final long UNKNOWN_SIZE = -1;

-

-	private long downloadSize = UNKNOWN_SIZE;

-	private long installSize = UNKNOWN_SIZE;

-	private String os;

-	private String ws;

-	private String nl;

-	private String arch;

-

-	/**

-	 * Creates a uninitialized content entry model object.

-	 * 

-	 * @since 2.0

-	 */

-	protected ContentEntryModel() {

-		super();

-	}

-

-	/**

-	 * Returns the download size of the entry, if it can be determined.

-	 * 

-	 * @return download size of the entry in KiloBytes, or an indication 

-	 * the size could not be determined

-	 * @since 2.0 

-	 */

-

-	public long getDownloadSize() {

-		return downloadSize;

-	}

-

-	/**

-	 * Returns the install size of the entry, if it can be determined.

-	 * 

-	 * @return install size of the entry in KiloBytes, or an indication 

-	 * the size could not be determined

-	 * @since 2.0

-	 */

-	public long getInstallSize() {

-		return installSize;

-	}

-

-	/**

-	 * Returns optional operating system specification.

-	 *

-	 * @return the operating system specification or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public String getOS() {

-		return os;

-	}

-

-	/**

-	 * Returns optional windowing system specification.

-	 *

-	 * @return the windowing system specification or <code>null</code>.

-	 * @since 2.0 

-	 */

-

-	public String getWS() {

-		return ws;

-	}

-

-	/**

-	 * Returns optional system architecture specification. 

-	 * 

-	 * @return the system architecture specification or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public String getOSArch() {

-		return arch;

-	}

-

-	/**

-	 * Returns optional locale specification.

-	 *

-	 * @return the locale specification, or <code>null</code>.

-	 * @since 2.0 

-	 */

-	public String getNL() {

-		return nl;

-	}

-

-	/**

-	 * Sets the download size of the entry.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param downloadSize download size of the entry in KiloBytes

-	 * @since 2.0 

-	 */

-	public void setDownloadSize(long downloadSize) {

-		assertIsWriteable();

-		if (downloadSize < 0)

-			this.downloadSize = UNKNOWN_SIZE;

-		else

-			this.downloadSize = downloadSize;

-	}

-

-	/**

-	 * Sets the install size of the entry.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param installSize install size of the entry in KiloBytes

-	 * @since 2.0

-	 */

-	public void setInstallSize(long installSize) {

-		assertIsWriteable();

-		if (installSize < 0)

-			this.installSize = UNKNOWN_SIZE;

-		else

-			this.installSize = installSize;

-	}

-

-	/**

-	 * Sets the operating system specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param os comma-separated list of OS identifiers as defined by Eclipse.

-	 * @since 2.0

-	 */

-	public void setOS(String os) {

-		assertIsWriteable();

-		this.os = os;

-	}

-

-	/**

-	 * Sets the windowing system specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param ws comma-separated list of WS identifiers as defined by Eclipse.

-	 * @since 2.0

-	 */

-	public void setWS(String ws) {

-		assertIsWriteable();

-		this.ws = ws;

-	}

-

-	/**

-	 * Sets the system architecture specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param arch comma-separated list of arch identifiers as defined by Eclipse.

-	 * @since 2.0

-	 */

-	public void setArch(String arch) {

-		assertIsWriteable();

-		this.arch = arch;

-	}

-

-	/**

-	 * Sets the locale specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param nl comma-separated list of locale identifiers.

-	 * @since 2.0

-	 */

-	public void setNL(String nl) {

-		assertIsWriteable();

-		this.nl = nl;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/DefaultFeatureParser.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/DefaultFeatureParser.java
deleted file mode 100644
index 2fd587e..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/DefaultFeatureParser.java
+++ /dev/null
@@ -1,1216 +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 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.update.core.model;

-

-

-import java.io.*;

-import java.util.*;

-import javax.xml.parsers.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.xml.sax.*;

-import org.xml.sax.helpers.*;

-

-/**

- * Default feature parser.

- * Parses the feature manifest file as defined by the platform. Defers

- * to a model factory to create the actual concrete model objects. The 

- * update framework supplies two factory implementations:

- * <ul>

- * <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>

- * <li>@see org.eclipse.update.core.model.FeatureModelFactory

- * <li>@see org.eclipse.update.core.BaseFeatureFactory

- * </ul>

- * 

- * @since 2.0

- */

-public class DefaultFeatureParser extends DefaultHandler {

-

-	private SAXParser parser;

-	private FeatureModelFactory factory;

-	private MultiStatus status;

-

-	private boolean URL_ALREADY_SEEN = false;

-

-	private static final int STATE_IGNORED_ELEMENT = -1;

-	private static final int STATE_INITIAL = 0;

-	private static final int STATE_INCLUDES = 1;

-	private static final int STATE_FEATURE = 2;

-	private static final int STATE_HANDLER = 3;

-	private static final int STATE_DESCRIPTION = 4;

-	private static final int STATE_COPYRIGHT = 5;

-	private static final int STATE_LICENSE = 6;

-	private static final int STATE_URL = 7;

-	private static final int STATE_UPDATE = 8;

-	private static final int STATE_DISCOVERY = 9;

-	private static final int STATE_REQUIRES = 10;

-	private static final int STATE_IMPORT = 11;

-	private static final int STATE_PLUGIN = 12;

-	private static final int STATE_DATA = 13;

-	private static final String PLUGIN_ID = UpdateCore.getPlugin().getBundle().getSymbolicName();

-

-	private static final String FEATURE = "feature"; //$NON-NLS-1$

-	private static final String INCLUDES = "includes"; //$NON-NLS-1$

-	private static final String HANDLER = "install-handler"; //$NON-NLS-1$

-	private static final String DESCRIPTION = "description"; //$NON-NLS-1$

-	private static final String COPYRIGHT = "copyright"; //$NON-NLS-1$

-	private static final String LICENSE = "license"; //$NON-NLS-1$

-	private static final String URL = "url"; //$NON-NLS-1$

-	private static final String UPDATE = "update"; //$NON-NLS-1$

-	private static final String DISCOVERY = "discovery"; //$NON-NLS-1$

-	private static final String REQUIRES = "requires"; //$NON-NLS-1$

-	private static final String IMPORT = "import"; //$NON-NLS-1$

-	private static final String PLUGIN = "plugin"; //$NON-NLS-1$

-	private static final String DATA = "data"; //$NON-NLS-1$

-	// Current State Information

-	Stack stateStack = new Stack();

-

-	// Current object stack (used to hold the current object we are

-	// populating in this plugin descriptor

-	Stack objectStack = new Stack();

-

-	private int currentState;

-    private String location;

-	

-	private final static SAXParserFactory parserFactory =

-		SAXParserFactory.newInstance();

-

-	/**

-	 * Constructs a feature parser.

-	 * 

-	 * @since 2.0

-	 */

-	public DefaultFeatureParser() {

-		super();

-		try {

-			parserFactory.setNamespaceAware(true);

-			this.parser = parserFactory.newSAXParser();

-		} catch (ParserConfigurationException e) {

-			UpdateCore.log(e);

-		} catch (SAXException e) {

-			UpdateCore.log(e);

-		}

-	}

-

-	public void init(FeatureModelFactory factory) {

-		init(factory, null);

-	}

-    

-    /**

-     * @param factory

-     * @param location

-     * @since 3.1

-     */

-    public void init(FeatureModelFactory factory, String location) {

-        // PERF: separate instance creation from parsing

-        this.factory = factory;

-        stateStack = new Stack();

-        objectStack = new Stack();

-        status = null;

-        URL_ALREADY_SEEN = false;

-        this.location = location;

-        //parser.reset();

-    }

-

-	/**

-	 * Parses the specified input steam and constructs a feature model.

-	 * The input stream is not closed as part of this operation.

-	 * 

-	 * @param in input stream

-	 * @return feature model

-	 * @exception SAXException

-	 * @exception IOException

-	 * @since 2.0

-	 */

-	public FeatureModel parse(InputStream in) throws SAXException, IOException {

-		stateStack.push(new Integer(STATE_INITIAL));

-		currentState = ((Integer) stateStack.peek()).intValue();

-		parser.parse(new InputSource(in), this);

-		if (objectStack.isEmpty())

-			throw new SAXException(Policy.bind("DefaultFeatureParser.NoFeatureTag")); //$NON-NLS-1$

-		else {

-			if (objectStack.peek() instanceof FeatureModel) {

-				return (FeatureModel) objectStack.pop();

-			} else {

-				String stack = ""; //$NON-NLS-1$

-				Iterator iter = objectStack.iterator();

-				while (iter.hasNext()) {

-					stack = "\r\n" + iter.next().toString() + stack; //$NON-NLS-1$

-				}

-				throw new SAXException(Policy.bind("DefaultFeatureParser.WrongParsingStack", stack));//$NON-NLS-1$

-			}

-		}

-	}

-

-	/**

-	 * Returns all status objects accumulated by the parser.

-	 *

-	 * @return multi-status containing accumulated status, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public MultiStatus getStatus() {

-		return status;

-	}

-

-	/**

-	 * Handle start of element tags

-	 * @see DefaultHandler#startElement(String, String, String, Attributes)

-	 * @since 2.0

-	 */

-	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("Start Element: uri:" + uri + " local Name:" + localName + " qName:" + qName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-

-		switch (currentState) {

-			case STATE_IGNORED_ELEMENT :

-				internalErrorUnknownTag(Policy.bind("DefaultFeatureParser.UnknownElement", localName, getState(currentState)));	//$NON-NLS-1$

-				break;

-

-			case STATE_INITIAL :

-				handleInitialState(localName, attributes);

-				break;

-

-			case STATE_FEATURE :

-			case STATE_INCLUDES :

-			case STATE_HANDLER :

-			case STATE_DESCRIPTION :

-			case STATE_COPYRIGHT :

-			case STATE_LICENSE :

-				handleFeatureState(localName, attributes);

-				break;

-

-			case STATE_URL :

-				if (URL_ALREADY_SEEN)

-					internalError(Policy.bind("DefaultFeatureParser.TooManyURLtag")); //$NON-NLS-1$

-				handleURLState(localName, attributes);

-				break;

-

-			case STATE_UPDATE :

-			case STATE_DISCOVERY :

-				handleUpdateDiscoveryState(localName, attributes);

-				break;

-

-			case STATE_REQUIRES :

-				handleRequiresState(localName, attributes);

-				break;

-

-			case STATE_IMPORT :

-				handleImportState(localName,attributes);

-				break;

-				

-			case STATE_PLUGIN :

-			case STATE_DATA :

-				handleFeatureState(localName, attributes);

-				break;

-

-			default :

-				internalErrorUnknownTag(Policy.bind("DefaultFeatureParser.UnknownStartState", Integer.toString(currentState)));	//$NON-NLS-1$

-				break;

-		}

-

-		int newState = ((Integer) stateStack.peek()).intValue();

-		if (newState != STATE_IGNORED_ELEMENT)

-			currentState = newState;

-

-	}

-

-	/**

-	 * Handle end of element tags

-	 * @see DefaultHandler#endElement(String, String, String)

-	 * @since 2.0

-	 */

-	public void endElement(String uri, String localName, String qName) {

-

-		// variables used

-		URLEntryModel info = null;

-		FeatureModel featureModel = null;

-		String text = null;

-		int innerState = 0;

-

-		int state = ((Integer) stateStack.peek()).intValue();

-		switch (state) {

-			case STATE_IGNORED_ELEMENT :

-				stateStack.pop();

-				break;

-

-			case STATE_INITIAL :

-				internalError(Policy.bind("DefaultFeatureParser.ParsingStackBackToInitialState")); //$NON-NLS-1$

-				break;

-

-			case STATE_FEATURE :

-				stateStack.pop();

-				if (objectStack.peek() instanceof String) {

-					text = (String) objectStack.pop();

-					FeatureModel feature = (FeatureModel) objectStack.peek();

-					feature.getDescriptionModel().setAnnotation(text);

-				}

-				//do not pop

-				break;

-

-			case STATE_INCLUDES :

-				stateStack.pop();

-				if (objectStack.peek() instanceof IncludedFeatureReferenceModel) {

-					IncludedFeatureReferenceModel includedFeatureRefModel = ((IncludedFeatureReferenceModel) objectStack.pop());

-					if (objectStack.peek() instanceof FeatureModel) {

-						featureModel = (FeatureModel) objectStack.peek();

-						featureModel.addIncludedFeatureReferenceModel(includedFeatureRefModel);

-					}

-				}

-				break;

-

-			case STATE_HANDLER :

-				stateStack.pop();

-				if (objectStack.peek() instanceof InstallHandlerEntryModel) {

-					InstallHandlerEntryModel handlerModel = (InstallHandlerEntryModel) objectStack.pop();

-					featureModel = (FeatureModel) objectStack.peek();

-					if (featureModel.getInstallHandlerModel() != null)

-						internalError(Policy.bind("DefaultFeatureParser.ElementAlreadySet", getState(state))); //$NON-NLS-1$

-					else

-						featureModel.setInstallHandlerModel(handlerModel);

-				}

-				break;

-

-			case STATE_DESCRIPTION :

-				stateStack.pop();

-

-				text = ""; //$NON-NLS-1$

-				while (objectStack.peek() instanceof String) {

-					text = (String) objectStack.pop() + text;

-				}

-				if (objectStack.peek() instanceof URLEntryModel) {

-					info = (URLEntryModel) objectStack.pop();

-					text = cleanupText(text);

-					if (text != null)

-						info.setAnnotation(text);

-

-					innerState = ((Integer) stateStack.peek()).intValue();

-					switch (innerState) {

-						case STATE_FEATURE :

-							if (objectStack.peek() instanceof FeatureModel) {

-								featureModel = (FeatureModel) objectStack.peek();

-								if (featureModel.getDescriptionModel() != null)

-									internalError(Policy.bind("DefaultFeatureParser.ElementAlreadySet", getState(state)));	//$NON-NLS-1$

-								else

-									featureModel.setDescriptionModel(info);

-							}

-							break;

-

-						default :

-							internalError(Policy.bind("DefaultFeatureParser.StateIncludeWrongElement", getState(innerState), getState(state)));	//$NON-NLS-1$

-							break;

-

-					}

-				}

-				break;

-

-			case STATE_COPYRIGHT :

-				stateStack.pop();

-				text = ""; //$NON-NLS-1$

-				while (objectStack.peek() instanceof String) {

-					text = (String) objectStack.pop() + text;

-				}

-				if (objectStack.peek() instanceof URLEntryModel) {

-					info = (URLEntryModel) objectStack.pop();

-					text = cleanupText(text);

-					if (text != null) {

-						info.setAnnotation(text);

-					}

-

-					innerState = ((Integer) stateStack.peek()).intValue();

-					switch (innerState) {

-						case STATE_FEATURE :

-							if (objectStack.peek() instanceof FeatureModel) {

-								featureModel = (FeatureModel) objectStack.peek();

-								if (featureModel.getCopyrightModel() != null)

-									internalError(Policy.bind("DefaultFeatureParser.ElementAlreadySet", getState(state)));//$NON-NLS-1$

-								else

-									featureModel.setCopyrightModel(info);

-							}

-							break;

-

-						default :

-							internalError(Policy.bind("DefaultFeatureParser.StateIncludeWrongElement", getState(innerState), getState(state)));	//$NON-NLS-1$

-							break;

-

-					}

-				}

-				break;

-

-			case STATE_LICENSE :

-				stateStack.pop();

-

-				text = ""; //$NON-NLS-1$

-				while (objectStack.peek() instanceof String) {

-					text = (String) objectStack.pop() + text;

-				}

-				if (objectStack.peek() instanceof URLEntryModel) {

-					info = (URLEntryModel) objectStack.pop();

-					text = cleanupText(text);

-					if (text != null) {

-						info.setAnnotation(text);

-					}

-

-					innerState = ((Integer) stateStack.peek()).intValue();

-					switch (innerState) {

-						case STATE_FEATURE :

-							if (objectStack.peek() instanceof FeatureModel) {

-								featureModel = (FeatureModel) objectStack.peek();

-								if (featureModel.getLicenseModel() != null)

-									internalError(Policy.bind("DefaultFeatureParser.ElementAlreadySet", getState(state)));	//$NON-NLS-1$

-								else

-									featureModel.setLicenseModel(info);

-							}

-							break;

-

-						default :

-							internalError(Policy.bind("DefaultFeatureParser.StateIncludeWrongElement", getState(innerState), getState(state)));	//$NON-NLS-1$

-							break;

-

-					}

-				}

-				break;

-

-			case STATE_URL :

-				stateStack.pop();

-				URL_ALREADY_SEEN = true;

-				break;

-

-			case STATE_UPDATE :

-				stateStack.pop();

-				if (objectStack.peek() instanceof URLEntryModel) {

-					info = (URLEntryModel) objectStack.pop();

-					if (objectStack.peek() instanceof FeatureModel) {

-						featureModel = (FeatureModel) objectStack.peek();

-						if (featureModel.getUpdateSiteEntryModel() != null) {

-							internalError(Policy.bind("DefaultFeatureParser.ElementAlreadySet", getState(state)));	//$NON-NLS-1$

-						} else {

-							featureModel.setUpdateSiteEntryModel(info);

-						}

-					}

-				}

-				break;

-

-			case STATE_DISCOVERY :

-				stateStack.pop();

-				if (objectStack.peek() instanceof URLEntryModel) {

-					info = (URLEntryModel) objectStack.pop();

-					if (objectStack.peek() instanceof FeatureModel) {

-						featureModel = (FeatureModel) objectStack.peek();

-						featureModel.addDiscoverySiteEntryModel(info);

-					}

-				}

-				break;

-

-			case STATE_REQUIRES :

-				stateStack.pop();

-				if (objectStack.peek() instanceof FeatureModel) {

-					featureModel = (FeatureModel) objectStack.peek();

-					ImportModel[] importModels = featureModel.getImportModels();

-					if (importModels.length == 0) {

-						internalError(Policy.bind("DefaultFeatureParser.RequireStateWithoutImportElement")); //$NON-NLS-1$

-					} else {

-						boolean patchMode = false;

-						for (int i = 0; i < importModels.length; i++) {

-							ImportModel importModel = importModels[i];

-							if (importModel.isPatch()) {

-								if (patchMode == false)

-									patchMode = true;

-								else {

-									internalError(Policy.bind("DefaultFeatureParser.MultiplePatchImports")); //$NON-NLS-1$

-									break;

-								}

-							}

-						}

-					}

-				}

-				break;

-

-			case STATE_IMPORT :

-				stateStack.pop();

-				if (objectStack.peek() instanceof ImportModel) {

-					ImportModel importModel = (ImportModel) objectStack.pop();

-					if (objectStack.peek() instanceof FeatureModel) {

-						featureModel = (FeatureModel) objectStack.peek();

-						featureModel.addImportModel(importModel);

-					}

-				}

-				break;

-

-			case STATE_PLUGIN :

-				stateStack.pop();

-				if (objectStack.peek() instanceof PluginEntryModel) {

-					PluginEntryModel pluginEntry = (PluginEntryModel) objectStack.pop();

-					if (objectStack.peek() instanceof FeatureModel) {

-						featureModel = (FeatureModel) objectStack.peek();

-						featureModel.addPluginEntryModel(pluginEntry);

-					}

-				}

-				break;

-

-			case STATE_DATA :

-				stateStack.pop();

-				if (objectStack.peek() instanceof NonPluginEntryModel) {

-					NonPluginEntryModel nonPluginEntry = (NonPluginEntryModel) objectStack.pop();

-					if (objectStack.peek() instanceof FeatureModel) {

-						featureModel = (FeatureModel) objectStack.peek();

-						featureModel.addNonPluginEntryModel(nonPluginEntry);

-					}

-				}

-				break;

-

-			default :

-				internalErrorUnknownTag(Policy.bind("DefaultFeatureParser.UnknownEndState") + state);//$NON-NLS-1$

-				break;

-		}

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("End Element:" + uri + ":" + localName + ":" + qName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-	}

-	

-	/*

-	 * Method cleanupText.

-	 * Removes pre white space and post white space

-	 * return null if the text only contains whitespaces (\t \r\n and spaces)

-	 * 

-	 * @param text or null

-	 * @return String

-	 */

-	private String cleanupText(String text) {

-		text = text.trim();

-		if ("".equals(text)) return null; //$NON-NLS-1$

-		return text;

-	}

-

-	/**

-	 * Handle character text

-	 * @see DefaultHandler#characters(char[], int, int)

-	 * @since 2.0

-	 */

-	public void characters(char[] ch, int start, int length) {

-		String text = ""; //$NON-NLS-1$

-		boolean valid = true;

-

-		if (valid) {

-			text = new String(ch, start, length);

-		}

-

-		//only push if not unknown state

-		int state = ((Integer) stateStack.peek()).intValue();

-		if (state == STATE_DESCRIPTION || state == STATE_COPYRIGHT || state == STATE_LICENSE)

-			objectStack.push(text);

-	}

-

-	/**

-	 * Handle errors

-	 * @see DefaultHandler#error(SAXParseException)

-	 * @since 2.0

-	 */

-	public void error(SAXParseException ex) {

-		logStatus(ex);

-	}

-

-	/**

-	 * Handle fatal errors

-	 * @see DefaultHandler#fatalError(SAXParseException)

-	 * @exception SAXException

-	 * @since 2.0

-	 */

-	public void fatalError(SAXParseException ex) throws SAXException {

-		logStatus(ex);

-		throw ex;

-	}

-

-	private void handleInitialState(String elementName, Attributes attributes) throws SAXException {

-		if (elementName.equals(FEATURE)) {

-			stateStack.push(new Integer(STATE_FEATURE));

-			processFeature(attributes);

-		} else

-			internalErrorUnknownTag(Policy.bind("DefaultFeatureParser.UnknownElement", elementName, getState(currentState)));//$NON-NLS-1$

-	}

-

-	private void handleFeatureState(String elementName, Attributes attributes) throws SAXException {

-		if (elementName.equals(HANDLER)) {

-			stateStack.push(new Integer(STATE_HANDLER));

-			processHandler(attributes);

-		} else if (elementName.equals(DESCRIPTION)) {

-			stateStack.push(new Integer(STATE_DESCRIPTION));

-			processInfo(attributes);

-		} else if (elementName.equals(COPYRIGHT)) {

-			stateStack.push(new Integer(STATE_COPYRIGHT));

-			processInfo(attributes);

-		} else if (elementName.equals(LICENSE)) {

-			stateStack.push(new Integer(STATE_LICENSE));

-			processInfo(attributes);

-		} else if (elementName.equals(URL)) {

-			stateStack.push(new Integer(STATE_URL));

-			//No process as URL tag does not contain any element itself

-		} else if (elementName.equals(INCLUDES)) {

-			stateStack.push(new Integer(STATE_INCLUDES));

-			processIncludes(attributes);

-		} else if (elementName.equals(REQUIRES)) {

-			stateStack.push(new Integer(STATE_REQUIRES));

-			processRequire(attributes);

-		} else if (elementName.equals(PLUGIN)) {

-			stateStack.push(new Integer(STATE_PLUGIN));

-			processPlugin(attributes);

-		} else if (elementName.equals(DATA)) {

-			stateStack.push(new Integer(STATE_DATA));

-			processData(attributes);

-		} else

-			internalErrorUnknownTag(Policy.bind("DefaultFeatureParser.UnknownElement", elementName, getState(currentState))); //$NON-NLS-1$

-	}

-

-	private void handleURLState(String elementName, Attributes attributes) throws SAXException {

-		if (elementName.equals(UPDATE)) {

-			stateStack.push(new Integer(STATE_UPDATE));

-			processURLInfo(attributes);

-		} else if (elementName.equals(DISCOVERY)) {

-			stateStack.push(new Integer(STATE_DISCOVERY));

-			processURLInfo(attributes);

-		} else

-			internalErrorUnknownTag(Policy.bind("DefaultFeatureParser.UnknownElement", elementName, getState(currentState))); //$NON-NLS-1$

-	}

-

-	private void handleRequiresState(String elementName, Attributes attributes) throws SAXException {

-		if (elementName.equals(IMPORT)) {

-			stateStack.push(new Integer(STATE_IMPORT));

-			processImport(attributes);

-		} else

-			internalErrorUnknownTag(Policy.bind("DefaultFeatureParser.UnknownElement", elementName, getState(currentState))); //$NON-NLS-1$

-	}

-	private void handleUpdateDiscoveryState(String elementName, Attributes attributes) throws SAXException {

-		if (elementName.equals(HANDLER)) {

-			stateStack.push(new Integer(STATE_HANDLER));

-			processHandler(attributes);

-		} else if (elementName.equals(DESCRIPTION)) {

-			stateStack.push(new Integer(STATE_DESCRIPTION));

-			processInfo(attributes);

-		} else if (elementName.equals(COPYRIGHT)) {

-			stateStack.push(new Integer(STATE_COPYRIGHT));

-			processInfo(attributes);

-		} else if (elementName.equals(LICENSE)) {

-			stateStack.push(new Integer(STATE_LICENSE));

-			processInfo(attributes);

-		} else if (elementName.equals(URL)) {

-			stateStack.push(new Integer(STATE_URL));

-			//No process as URL tag does not contain any element itself

-		} else if (elementName.equals(INCLUDES)) {

-			stateStack.push(new Integer(STATE_INCLUDES));

-			processIncludes(attributes);

-		} else if (elementName.equals(REQUIRES)) {

-			stateStack.push(new Integer(STATE_REQUIRES));

-			processRequire(attributes);

-		} else if (elementName.equals(PLUGIN)) {

-			stateStack.push(new Integer(STATE_PLUGIN));

-			processPlugin(attributes);

-		} else if (elementName.equals(DATA)) {

-			stateStack.push(new Integer(STATE_DATA));

-			processData(attributes);

-		} else if (elementName.equals(UPDATE)) {

-			stateStack.push(new Integer(STATE_UPDATE));

-			processURLInfo(attributes);

-		} else if (elementName.equals(DISCOVERY)) {

-			stateStack.push(new Integer(STATE_DISCOVERY));

-			processURLInfo(attributes);

-		} else

-			internalErrorUnknownTag(Policy.bind("DefaultFeatureParser.UnknownElement", elementName, getState(currentState))); //$NON-NLS-1$

-	}

-

-

-

-	private void handleImportState(String elementName, Attributes attributes) throws SAXException {

-		if (elementName.equals(HANDLER)) {

-			stateStack.push(new Integer(STATE_HANDLER));

-			processHandler(attributes);

-		} else if (elementName.equals(DESCRIPTION)) {

-			stateStack.push(new Integer(STATE_DESCRIPTION));

-			processInfo(attributes);

-		} else if (elementName.equals(COPYRIGHT)) {

-			stateStack.push(new Integer(STATE_COPYRIGHT));

-			processInfo(attributes);

-		} else if (elementName.equals(LICENSE)) {

-			stateStack.push(new Integer(STATE_LICENSE));

-			processInfo(attributes);

-		} else if (elementName.equals(URL)) {

-			stateStack.push(new Integer(STATE_URL));

-			//No process as URL tag does not contain any element itself

-		} else if (elementName.equals(INCLUDES)) {

-			stateStack.push(new Integer(STATE_INCLUDES));

-			processIncludes(attributes);

-		} else if (elementName.equals(REQUIRES)) {

-			stateStack.push(new Integer(STATE_REQUIRES));

-			processRequire(attributes);

-		} else if (elementName.equals(PLUGIN)) {

-			stateStack.push(new Integer(STATE_PLUGIN));

-			processPlugin(attributes);

-		} else if (elementName.equals(DATA)) {

-			stateStack.push(new Integer(STATE_DATA));

-			processData(attributes);

-		} else if (elementName.equals(IMPORT)) {

-			stateStack.push(new Integer(STATE_IMPORT));

-			processImport(attributes);

-		} else

-			internalErrorUnknownTag(Policy.bind("DefaultFeatureParser.UnknownElement", elementName, getState(currentState))); //$NON-NLS-1$

-	}

-

-	/*

-	 * Process feature information

-	 */

-	private void processFeature(Attributes attributes) {

-

-		// identifier and version

-		String id = attributes.getValue("id"); //$NON-NLS-1$

-		String ver = attributes.getValue("version"); //$NON-NLS-1$

-

-		if (id == null || id.trim().equals("") //$NON-NLS-1$

-		|| ver == null || ver.trim().equals("")) { //$NON-NLS-1$

-			internalError(Policy.bind("DefaultFeatureParser.IdOrVersionInvalid", new String[] { id, ver, getState(currentState)}));	//$NON-NLS-1$

-		} else {

-			// create feature model

-			FeatureModel feature = factory.createFeatureModel();

-

-			feature.setFeatureIdentifier(id);

-			feature.setFeatureVersion(ver);

-

-			// label

-			String label = attributes.getValue("label"); //$NON-NLS-1$

-			feature.setLabel(label);

-

-			// provider

-			String provider = attributes.getValue("provider-name"); //$NON-NLS-1$

-			feature.setProvider(provider);

-

-			//image

-			String imageURL = attributes.getValue("image"); //$NON-NLS-1$

-			feature.setImageURLString(imageURL);

-

-			// OS

-			String os = attributes.getValue("os"); //$NON-NLS-1$

-			feature.setOS(os);

-

-			// WS

-			String ws = attributes.getValue("ws"); //$NON-NLS-1$

-			feature.setWS(ws);

-

-			// NL

-			String nl = attributes.getValue("nl"); //$NON-NLS-1$

-			feature.setNL(nl);

-

-			// arch

-			String arch = attributes.getValue("arch"); //$NON-NLS-1$

-			feature.setArch(arch);

-

-			// primary

-			String primary = attributes.getValue("primary"); //$NON-NLS-1$

-			feature.setPrimary(primary != null && primary.trim().equalsIgnoreCase("true")); //$NON-NLS-1$

-

-			// exclusive

-			String exclusive = attributes.getValue("exclusive"); //$NON-NLS-1$

-			feature.setExclusive(exclusive != null && exclusive.trim().equalsIgnoreCase("true")); //$NON-NLS-1$

-

-			// application

-			String application = attributes.getValue("application"); //$NON-NLS-1$

-			feature.setApplication(application);

-

-			// affinity

-			String affinity = attributes.getValue("colocation-affinity"); //$NON-NLS-1$

-			feature.setAffinityFeature(affinity);

-

-			// primary plugin

-			String plugin = attributes.getValue("plugin"); //$NON-NLS-1$

-			feature.setPrimaryPluginID(plugin);

-

-			objectStack.push(feature);

-

-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {

-				debug("End process DefaultFeature tag: id:" //$NON-NLS-1$

-				+id + " ver:" //$NON-NLS-1$

-				+ver + " label:" //$NON-NLS-1$

-				+label + " provider:" //$NON-NLS-1$

-				+provider);

-				debug("End process DefaultFeature tag: image:" + imageURL); //$NON-NLS-1$

-				debug("End process DefaultFeature tag: ws:" //$NON-NLS-1$

-				+ws + " os:" //$NON-NLS-1$

-				+os + " nl:" //$NON-NLS-1$

-				+nl + " application:" //$NON-NLS-1$

-				+application);

-			}

-		}

-	}

-

-	/* 

-	 * process URL info with element text

-	 */

-	private void processHandler(Attributes attributes) {

-		InstallHandlerEntryModel handler = factory.createInstallHandlerEntryModel();

-

-		String handlerURL = attributes.getValue("url"); //$NON-NLS-1$

-		handler.setURLString(handlerURL);

-

-		String library = attributes.getValue("library"); //$NON-NLS-1$

-		handler.setLibrary(library);

-

-		String clazz = attributes.getValue("handler"); //$NON-NLS-1$

-		handler.setHandlerName(clazz);

-

-		objectStack.push(handler);

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("Processed Handler: url:" //$NON-NLS-1$

-			+handlerURL + " library:" //$NON-NLS-1$

-			+library + " class:" //$NON-NLS-1$

-			+clazz);

-	}

-

-	/* 

-	 * process URL info with element text

-	 */

-	private void processInfo(Attributes attributes) {

-		URLEntryModel inf = factory.createURLEntryModel();

-		String infoURL = attributes.getValue("url"); //$NON-NLS-1$

-		inf.setURLString(infoURL);

-

-		objectStack.push(inf);

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("Processed Info: url:" + infoURL); //$NON-NLS-1$

-	}

-

-	/*

-	 * Process includes information

-	 */

-	private void processIncludes(Attributes attributes) {

-

-		// identifier and version

-		String id = attributes.getValue("id"); //$NON-NLS-1$

-		String ver = attributes.getValue("version"); //$NON-NLS-1$

-

-		if (id == null || id.trim().equals("") //$NON-NLS-1$

-		|| ver == null || ver.trim().equals("")) { //$NON-NLS-1$

-			internalError(Policy.bind("DefaultFeatureParser.IdOrVersionInvalid", new String[] { id, ver, getState(currentState)}));	//$NON-NLS-1$

-		}

-

-		IncludedFeatureReferenceModel includedFeature = factory.createIncludedFeatureReferenceModel();

-		includedFeature.setFeatureIdentifier(id);

-		includedFeature.setFeatureVersion(ver);

-

-		// name

-		String name = attributes.getValue("name");//$NON-NLS-1$

-		includedFeature.setLabel(name);

-

-		// optional

-		String optional = attributes.getValue("optional");//$NON-NLS-1$

-		boolean isOptional = "true".equalsIgnoreCase(optional);//$NON-NLS-1$

-		includedFeature.isOptional(isOptional);

-

-		// search location

-		String locationName = attributes.getValue("search-location");//$NON-NLS-1$

-		// bug 27030

-		if (locationName == null)

-			locationName = attributes.getValue("search_location");//$NON-NLS-1$

-		int searchLocation = IUpdateConstants.SEARCH_ROOT;

-		if ("both".equalsIgnoreCase(locationName))//$NON-NLS-1$

-			searchLocation = IUpdateConstants.SEARCH_ROOT & IUpdateConstants.SEARCH_SELF;

-		if ("self".equalsIgnoreCase(locationName))//$NON-NLS-1$

-			searchLocation = IUpdateConstants.SEARCH_SELF;				

-		includedFeature.setSearchLocation(searchLocation);

-

-		// os arch ws nl

-		String os = attributes.getValue("os");//$NON-NLS-1$

-		includedFeature.setOS(os);

-

-		String ws = attributes.getValue("ws");//$NON-NLS-1$

-		includedFeature.setWS(ws);

-

-		String arch = attributes.getValue("arch");//$NON-NLS-1$

-		includedFeature.setArch(arch);

-		

-		// NL

-		String nl = attributes.getValue("nl"); //$NON-NLS-1$

-		includedFeature.setNL(nl);

-

-		objectStack.push(includedFeature);

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {

-			debug("End process Includes tag: id:" //$NON-NLS-1$

-			+id + " ver:" + ver); //$NON-NLS-1$

-			debug("name =" + name + " optional=" + optional + " search-location=" + locationName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-			debug("os=" + os + " ws=" + ws + " arch=" + arch); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		}

-	}

-

-	/* 

-	 * process URL info with label attribute

-	 */

-	private void processURLInfo(Attributes attributes) {

-		URLEntryModel inf = factory.createURLEntryModel();

-		String infoURL = attributes.getValue("url"); //$NON-NLS-1$

-		String label = attributes.getValue("label"); //$NON-NLS-1$

-		String type = attributes.getValue("type"); //$NON-NLS-1$

-		inf.setURLString(infoURL);

-		inf.setAnnotation(label);

-		

-		if ("web".equalsIgnoreCase(type)) //$NON-NLS-1$

-			inf.setType(IURLEntry.WEB_SITE);

-		else 

-			inf.setType(IURLEntry.UPDATE_SITE);

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("Processed URLInfo: url:" + infoURL + " label:" + label+" type:"+type);//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-

-		objectStack.push(inf);

-	}

-

-	/* 

-	 * process import info

-	 */

-	private void processImport(Attributes attributes) {

-		String pluginID = attributes.getValue("plugin"); //$NON-NLS-1$

-		String featureID = attributes.getValue("feature"); //$NON-NLS-1$

-		String idMatch = attributes.getValue("id-match"); //$NON-NLS-1$

-

-		if (!(pluginID == null ^ featureID == null)) {

-			internalError(Policy.bind("DefaultFeatureParser.PluginAndFeatureId")); //$NON-NLS-1$

-			return;

-		}

-

-		// since 2.0.2 , manage feature and plugin import

-		String id = null;

-		if (pluginID == null) {

-			id = featureID;

-		} else {

-			id = pluginID;

-		}

-

-		if (id == null || id.trim().equals("")) //$NON-NLS-1$

-			internalError(Policy.bind("DefaultFeatureParser.MissingId", getState(currentState)));//$NON-NLS-1$

-		else {

-			ImportModel imp = factory.createImportModel();

-			String ver = attributes.getValue("version"); //$NON-NLS-1$

-			String match = attributes.getValue("match"); //$NON-NLS-1$

-			String patch = attributes.getValue("patch"); //$NON-NLS-1$

-

-			imp.setPatch(patch != null && patch.equalsIgnoreCase("true")); //$NON-NLS-1$

-

-			if (ver == null) {

-				if (imp.isPatch()) {

-					internalError(Policy.bind("DefaultFeatureParser.MissingPatchVersion")); //$NON-NLS-1$

-				}

-				ver = "0.0.0"; //$NON-NLS-1$

-				match = "greaterOrEqual"; //$NON-NLS-1$

-			} else if (match == null) {

-				if (imp.isPatch())

-					match = "perfect"; //$NON-NLS-1$

-				else

-					match = "compatible"; //$NON-NLS-1$

-			}

-

-			imp.setIdentifier(id);

-			imp.setVersion(ver);

-			imp.setFeatureImport(featureID != null);

-			imp.setMatchingRuleName(match);

-			imp.setMatchingIdRuleName(idMatch);

-

-			if (imp.isPatch()) {

-				// patch reference must be perfect.

-				if (match != null && !match.equalsIgnoreCase("perfect")) { //$NON-NLS-1$

-					internalError(Policy.bind("DefaultFeatureParser.wrongMatchForPatch")); //$NON-NLS-1$

-				}

-				if (imp.isFeatureImport() == false) {

-					imp.setPatch(false);

-					internalError(Policy.bind("DefaultFeatureParser.patchWithPlugin")); //$NON-NLS-1$

-				}

-			}

-

-			// os arch ws

-			String os = attributes.getValue("os"); //$NON-NLS-1$

-			imp.setOS(os);

-

-			String ws = attributes.getValue("ws"); //$NON-NLS-1$

-			imp.setWS(ws);

-

-			String arch = attributes.getValue("arch"); //$NON-NLS-1$

-			imp.setOSArch(arch);

-

-			objectStack.push(imp);

-

-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {

-				debug("Processed import: id:" + id + " ver:" + ver);//$NON-NLS-1$ //$NON-NLS-2$

-				debug("Processed import: match:" + match); //$NON-NLS-1$

-			}

-

-		}

-	}

-

-	/* 

-	 * process import info

-	 */

-	private void processRequire(Attributes attributes) {

-	}

-

-	/* 

-	 * process plugin entry info

-	 */

-	private void processPlugin(Attributes attributes) {

-		String id = attributes.getValue("id"); //$NON-NLS-1$

-		String ver = attributes.getValue("version"); //$NON-NLS-1$

-		if (id == null || id.trim().equals("") //$NON-NLS-1$

-		|| ver == null || ver.trim().equals("")) { //$NON-NLS-1$

-			internalError(Policy.bind("DefaultFeatureParser.IdOrVersionInvalid", new String[] { id, ver, getState(currentState)}));	//$NON-NLS-1$

-		} else {

-			PluginEntryModel pluginEntry = factory.createPluginEntryModel();

-			pluginEntry.setPluginIdentifier(id);

-			pluginEntry.setPluginVersion(ver);

-

-			String fragment = attributes.getValue("fragment"); //$NON-NLS-1$

-			pluginEntry.isFragment(fragment != null && fragment.trim().equalsIgnoreCase("true"));//$NON-NLS-1$			

-

-			//setOS

-			String os = attributes.getValue("os"); //$NON-NLS-1$

-			pluginEntry.setOS(os);

-

-			//setWS

-			String ws = attributes.getValue("ws"); //$NON-NLS-1$

-			pluginEntry.setWS(ws);

-

-			//setNL

-			String nl = attributes.getValue("nl"); //$NON-NLS-1$

-			pluginEntry.setNL(nl);

-

-			// setArch

-			String arch = attributes.getValue("arch"); //$NON-NLS-1$

-			pluginEntry.setArch(arch);

-

-			// setUnpack

-			String unpack = attributes.getValue("unpack"); //$NON-NLS-1$

-			pluginEntry.setUnpack(!"false".equalsIgnoreCase(unpack)); //$NON-NLS-1$

-

-			// download size

-			long download_size = ContentEntryModel.UNKNOWN_SIZE;

-			String download = attributes.getValue("download-size"); //$NON-NLS-1$

-			if (download != null && !download.trim().equals("")) { //$NON-NLS-1$

-				try {

-					download_size = Long.valueOf(download).longValue();

-				} catch (NumberFormatException e) {

-					// use UNKNOWN_SIZE

-				}

-			}

-			pluginEntry.setDownloadSize(download_size);

-

-			// install size	

-			long install_size = ContentEntryModel.UNKNOWN_SIZE;

-			String install = attributes.getValue("install-size"); //$NON-NLS-1$

-			if (install != null && !install.trim().equals("")) { //$NON-NLS-1$

-				try {

-					install_size = Long.valueOf(install).longValue();

-				} catch (NumberFormatException e) {

-					// use UNKNOWN_SIZE

-				}

-			}

-			pluginEntry.setInstallSize(install_size);

-

-			objectStack.push(pluginEntry);

-

-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {

-				debug("Processed Plugin: id:" + id + " ver:" + ver + " fragment:" + fragment); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-				debug("Processed Plugin: os:" + os + " ws:" + ws + " nl:" + nl); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-				debug("Processed Plugin: download size:" //$NON-NLS-1$

-				+download_size + " install size:" //$NON-NLS-1$

-				+install_size);

-			}

-

-		}

-	}

-

-	/* 

-	 * process non-plug-in entry info

-	 */

-	private void processData(Attributes attributes) {

-		String id = attributes.getValue("id"); //$NON-NLS-1$

-		if (id == null || id.trim().equals("")) { //$NON-NLS-1$

-			internalError(Policy.bind("DefaultFeatureParser.MissingId", getState(currentState)));	//$NON-NLS-1$

-		} else {

-			NonPluginEntryModel dataEntry = factory.createNonPluginEntryModel();

-			dataEntry.setIdentifier(id);

-

-			//setOS

-			String os = attributes.getValue("os"); //$NON-NLS-1$

-			dataEntry.setOS(os);

-

-			//setWS

-			String ws = attributes.getValue("ws"); //$NON-NLS-1$

-			dataEntry.setWS(ws);

-

-			//setNL

-			String nl = attributes.getValue("nl"); //$NON-NLS-1$

-			dataEntry.setNL(nl);

-

-			// setArch

-			String arch = attributes.getValue("arch"); //$NON-NLS-1$

-			dataEntry.setArch(arch);

-

-			// download size

-			long download_size = ContentEntryModel.UNKNOWN_SIZE;

-			String download = attributes.getValue("download-size"); //$NON-NLS-1$

-			if (download != null && !download.trim().equals("")) { //$NON-NLS-1$

-				try {

-					download_size = Long.valueOf(download).longValue();

-				} catch (NumberFormatException e) {

-					// use UNKNOWN_SIZE

-				}

-			}

-			dataEntry.setDownloadSize(download_size);

-

-			// install size	

-			long install_size = ContentEntryModel.UNKNOWN_SIZE;

-			String install = attributes.getValue("install-size"); //$NON-NLS-1$

-			if (install != null && !install.trim().equals("")) { //$NON-NLS-1$

-				try {

-					install_size = Long.valueOf(install).longValue();

-				} catch (NumberFormatException e) {

-					// use UNKNOWN_SIZE

-				}

-			}

-			dataEntry.setInstallSize(install_size);

-

-			objectStack.push(dataEntry);

-

-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {

-				debug("Processed Data: id:" + id); //$NON-NLS-1$

-				debug("Processed Data: download size:" //$NON-NLS-1$

-				+download_size + " install size:" //$NON-NLS-1$

-				+install_size);

-			}

-

-		}

-	}

-

-	private void debug(String s) {

-		UpdateCore.debug("DefaultFeatureParser: " + s); //$NON-NLS-1$

-	}

-

-	private void logStatus(SAXParseException ex) {

-		String name = ex.getSystemId();

-		if (name == null)

-			name = ""; //$NON-NLS-1$

-		else

-			name = name.substring(1 + name.lastIndexOf("/")); //$NON-NLS-1$

-

-		String msg;

-		if (name.equals("")) { //$NON-NLS-1$

-			msg = Policy.bind("DefaultFeatureParser.ErrorParsing", ex.getMessage());//$NON-NLS-1$

-		} else {

-			String[] values = new String[] { name, Integer.toString(ex.getLineNumber()), Integer.toString(ex.getColumnNumber()), ex.getMessage()};

-			msg = Policy.bind("DefaultFeatureParser.ErrorlineColumnMessage", values);//$NON-NLS-1$

-		}

-		error(new Status(IStatus.ERROR, PLUGIN_ID, Platform.PARSE_PROBLEM, msg, ex));

-	}

-

-	/*

-	 * Handles an error state specified by the status.  The collection of all logged status

-	 * objects can be accessed using <code>getStatus()</code>.

-	 *

-	 * @param error a status detailing the error condition

-	 */

-	private void error(IStatus error) {

-

-		if (status == null) {

-			status = new MultiStatus(PLUGIN_ID, Platform.PARSE_PROBLEM, Policy.bind("DefaultFeatureParser.ErrorParsingFeature"), null);	//$NON-NLS-1$

-		}

-

-		status.add(error);

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			UpdateCore.log(error);

-	}

-

-	private void internalErrorUnknownTag(String msg) {

-		stateStack.push(new Integer(STATE_IGNORED_ELEMENT));

-		internalError(msg);

-	}

-

-	private void internalError(String message) {

-        if (location != null)

-            message += " " + Policy.bind("DefaultFeatureParser.location", location); //$NON-NLS-1$ $NON-NLS-2$

-		error(new Status(IStatus.ERROR, PLUGIN_ID, Platform.PARSE_PROBLEM, message, null));

-	}

-

-	/*

-	 * return the state as String

-	 */

-	private String getState(int state) {

-

-		switch (state) {

-			case STATE_IGNORED_ELEMENT :

-				return "Ignored"; //$NON-NLS-1$

-

-			case STATE_INITIAL :

-				return "Initial"; //$NON-NLS-1$

-

-			case STATE_FEATURE :

-				return "Feature"; //$NON-NLS-1$

-

-			case STATE_HANDLER :

-				return "Install Handler"; //$NON-NLS-1$

-

-			case STATE_DESCRIPTION :

-				return "description"; //$NON-NLS-1$

-

-			case STATE_INCLUDES :

-				return "includes"; //$NON-NLS-1$

-

-			case STATE_COPYRIGHT :

-				return "Copyright"; //$NON-NLS-1$

-

-			case STATE_LICENSE :

-				return "License"; //$NON-NLS-1$

-

-			case STATE_URL :

-				return "URL"; //$NON-NLS-1$

-

-			case STATE_UPDATE :

-				return "Update URL"; //$NON-NLS-1$

-

-			case STATE_DISCOVERY :

-				return "Discovery URL"; //$NON-NLS-1$

-

-			case STATE_REQUIRES :

-				return "Require"; //$NON-NLS-1$

-

-			case STATE_IMPORT :

-				return "Import"; //$NON-NLS-1$

-

-			case STATE_PLUGIN :

-				return "Plugin"; //$NON-NLS-1$

-

-			case STATE_DATA :

-				return "Data"; //$NON-NLS-1$

-

-			default :

-				return Policy.bind("DefaultFeatureParser.UnknownState", Integer.toString(state));//$NON-NLS-1$

-		}

-

-	}

-

-	/**

-	 * @see org.xml.sax.ContentHandler#ignorableWhitespace(char[], int, int)

-	 */

-	public void ignorableWhitespace(char[] arg0, int arg1, int arg2) throws SAXException {

-		super.ignorableWhitespace(arg0, arg1, arg2);

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/DefaultSiteParser.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/DefaultSiteParser.java
deleted file mode 100644
index 3b83b74..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/DefaultSiteParser.java
+++ /dev/null
@@ -1,784 +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 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.update.core.model;

-

-import java.io.*;

-import java.util.*;

-import javax.xml.parsers.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.w3c.dom.*;

-import org.xml.sax.*;

-import org.xml.sax.helpers.*;

-

-/**

- * Default site parser.

- * Parses the site manifest file as defined by the platform. Defers

- * to a model factory to create the actual concrete model objects. The 

- * update framework supplies two factory implementations:

- * <ul>

- * <li>@see org.eclipse.update.core.model.SiteModelFactory

- * <li>@see org.eclipse.update.core.BaseSiteFactory

- * </ul>

- * 

- * <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>

- * @since 2.0

- */

-public class DefaultSiteParser extends DefaultHandler {

-	

-	private final static SAXParserFactory parserFactory =

-		SAXParserFactory.newInstance();

-	

-	private SAXParser parser;

-	private SiteModelFactory factory;

-

-	private MultiStatus status;

-

-	private boolean DESCRIPTION_SITE_ALREADY_SEEN = false;

-

-	private static final int STATE_IGNORED_ELEMENT = -1;

-	private static final int STATE_INITIAL = 0;

-	private static final int STATE_SITE = 1;

-	private static final int STATE_FEATURE = 2;

-	private static final int STATE_ARCHIVE = 3;

-	private static final int STATE_CATEGORY = 4;

-	private static final int STATE_CATEGORY_DEF = 5;

-	private static final int STATE_DESCRIPTION_SITE = 6;

-	private static final int STATE_DESCRIPTION_CATEGORY_DEF = 7;

-	private static final String PLUGIN_ID = UpdateCore.getPlugin().getBundle().getSymbolicName();

-

-	private static final String SITE = "site"; //$NON-NLS-1$

-	private static final String FEATURE = "feature"; //$NON-NLS-1$

-	private static final String ARCHIVE = "archive"; //$NON-NLS-1$

-	private static final String CATEGORY_DEF = "category-def"; //$NON-NLS-1$

-	private static final String CATEGORY = "category"; //$NON-NLS-1$

-	private static final String DESCRIPTION = "description"; //$NON-NLS-1$

-	private static final String MIRROR = "mirror"; //$NON-NLS-1$

-

-	private static final String DEFAULT_INFO_URL = "index.html"; //$NON-NLS-1$

-	private static final String FEATURES = "features/";

-    

-	// Current State Information

-	Stack stateStack = new Stack();

-

-	// Current object stack (used to hold the current object we are

-	// populating in this plugin descriptor

-	Stack objectStack = new Stack();

-

-	private int currentState;

-

-	/**

-	 * Constructs a site parser.

-	 */

-	public DefaultSiteParser() {

-		super();

-		try {

-			parserFactory.setNamespaceAware(true);

-			this.parser = parserFactory.newSAXParser();

-		} catch (ParserConfigurationException e) {

-			UpdateCore.log(e);

-		} catch (SAXException e) {

-			UpdateCore.log(e);

-		}

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("Created"); //$NON-NLS-1$

-	}

-

-	public void init(SiteModelFactory factory) {

-		// PERF: separate instance creation from parsing

-		this.factory = factory;

-		stateStack = new Stack();

-		objectStack = new Stack();

-		status = null;

-		DESCRIPTION_SITE_ALREADY_SEEN = false;

-	}

-

-	/**

-	 * Parses the specified input steam and constructs a site model.

-	 * The input stream is not closed as part of this operation.

-	 * 

-	 * @param in input stream

-	 * @return site model

-	 * @exception SAXException

-	 * @exception IOException

-	 * @since 2.0

-	 */

-	public SiteModel parse(InputStream in) throws SAXException, IOException {

-		stateStack.push(new Integer(STATE_INITIAL));

-		currentState = ((Integer) stateStack.peek()).intValue();

-		parser.parse(new InputSource(in), this);

-		if (objectStack.isEmpty())

-			throw new SAXException(Policy.bind("DefaultSiteParser.NoSiteTag"));	//$NON-NLS-1$

-		else {

-			if (objectStack.peek() instanceof SiteModel) {

-				return (SiteModel) objectStack.pop();

-			} else {

-				String stack = ""; //$NON-NLS-1$

-				Iterator iter = objectStack.iterator();

-				while (iter.hasNext()) {

-					stack = stack + iter.next().toString() + "\r\n"; //$NON-NLS-1$

-				}

-				throw new SAXException(Policy.bind("DefaultSiteParser.WrongParsingStack", stack));	//$NON-NLS-1$

-			}

-		}

-	}

-

-	/**

-	 * Returns all status objects accumulated by the parser.

-	 *

-	 * @return multi-status containing accumulated status, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public MultiStatus getStatus() {

-		return status;

-	}

-

-	/**

-	 * Handle start of element tags

-	 * @see DefaultHandler#startElement(String, String, String, Attributes)

-	 * @since 2.0

-	 */

-	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {

-			debug("State: " + currentState); //$NON-NLS-1$

-			debug("Start Element: uri:" + uri + " local Name:" + localName + " qName:" + qName);//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		}

-

-		switch (currentState) {

-			case STATE_IGNORED_ELEMENT :

-				internalErrorUnknownTag(Policy.bind("DefaultSiteParser.UnknownElement", localName, getState(currentState)));//$NON-NLS-1$

-				break;

-			case STATE_INITIAL :

-				handleInitialState(localName, attributes);

-				break;

-

-			case STATE_SITE :

-				handleSiteState(localName, attributes);

-				break;

-

-			case STATE_FEATURE :

-				handleFeatureState(localName, attributes);

-				break;

-

-			case STATE_ARCHIVE :

-				handleSiteState(localName, attributes);

-				break;

-

-			case STATE_CATEGORY :

-				handleCategoryState(localName, attributes);

-				break;

-

-			case STATE_CATEGORY_DEF :

-				handleCategoryDefState(localName, attributes);

-				break;

-

-			case STATE_DESCRIPTION_SITE :

-				handleSiteState(localName, attributes);

-				break;

-

-			case STATE_DESCRIPTION_CATEGORY_DEF :

-				handleSiteState(localName, attributes);

-				break;

-

-			default :

-				internalErrorUnknownTag(Policy.bind("DefaultSiteParser.UnknownStartState", getState(currentState)));//$NON-NLS-1$

-				break;

-		}

-		int newState = ((Integer) stateStack.peek()).intValue();

-		if (newState != STATE_IGNORED_ELEMENT)

-			currentState = newState;

-

-	}

-

-	/**

-	 * Handle end of element tags

-	 * @see DefaultHandler#endElement(String, String, String)

-	 * @since 2.0

-	 */

-	public void endElement(String uri, String localName, String qName) {

-

-		String text = null;

-		URLEntryModel info = null;

-

-		int state = ((Integer) stateStack.peek()).intValue();

-		switch (state) {

-			case STATE_IGNORED_ELEMENT :

-			case STATE_ARCHIVE :

-			case STATE_CATEGORY :

-				stateStack.pop();

-				break;

-

-			case STATE_INITIAL :

-				internalError(Policy.bind("DefaultSiteParser.ParsingStackBackToInitialState"));	//$NON-NLS-1$

-				break;

-

-			case STATE_SITE :

-				stateStack.pop();

-				if (objectStack.peek() instanceof String) {

-					text = (String) objectStack.pop();

-					SiteModel site = (SiteModel) objectStack.peek();

-					site.getDescriptionModel().setAnnotation(text);

-				}

-				//do not pop the object

-				break;

-

-			case STATE_FEATURE :

-				stateStack.pop();

-				objectStack.pop();

-				break;

-

-			case STATE_CATEGORY_DEF :

-				stateStack.pop();

-				if (objectStack.peek() instanceof String) {

-					text = (String) objectStack.pop();

-					CategoryModel category = (CategoryModel) objectStack.peek();

-					category.getDescriptionModel().setAnnotation(text);

-				}

-				objectStack.pop();

-				break;

-

-			case STATE_DESCRIPTION_SITE :

-				stateStack.pop();

-				text = ""; //$NON-NLS-1$

-				while (objectStack.peek() instanceof String) {

-					// add text, preserving at most one space between text fragments

-					String newText = (String) objectStack.pop();

-					if (trailingSpace(newText) && !leadingSpace(text)) {

-						text = " " + text; //$NON-NLS-1$

-					}

-					text = newText.trim() + text;

-					if (leadingSpace(newText) && !leadingSpace(text)) {

-						text = " " + text; //$NON-NLS-1$

-					}

-				}

-				text = text.trim();

-

-				info = (URLEntryModel) objectStack.pop();

-				if (text != null)

-					info.setAnnotation(text);

-

-				SiteModel siteModel = (SiteModel) objectStack.peek();

-				// override description.

-				// do not raise error as previous description may be default one

-				// when parsing site tag

-				if (DESCRIPTION_SITE_ALREADY_SEEN)

-					debug(Policy.bind("DefaultSiteParser.ElementAlreadySet", getState(state)));	//$NON-NLS-1$

-				siteModel.setDescriptionModel(info);

-				DESCRIPTION_SITE_ALREADY_SEEN = true;

-				break;

-

-			case STATE_DESCRIPTION_CATEGORY_DEF :

-				stateStack.pop();

-				text = ""; //$NON-NLS-1$

-				while (objectStack.peek() instanceof String) {

-					// add text, preserving at most one space between text fragments

-					String newText = (String) objectStack.pop();

-					if (trailingSpace(newText) && !leadingSpace(text)) {

-						text = " " + text; //$NON-NLS-1$

-					}

-					text = newText.trim() + text;

-					if (leadingSpace(newText) && !leadingSpace(text)) {

-						text = " " + text; //$NON-NLS-1$

-					}

-				}

-				text = text.trim();

-

-				info = (URLEntryModel) objectStack.pop();

-				if (text != null)

-					info.setAnnotation(text);

-

-				CategoryModel category = (CategoryModel) objectStack.peek();

-				if (category.getDescriptionModel() != null)

-					internalError(Policy.bind("DefaultSiteParser.ElementAlreadySet2", getState(state), category.getLabel()));//$NON-NLS-1$

-				else

-					category.setDescriptionModel(info);

-				break;

-

-			default :

-				internalError(Policy.bind("DefaultSiteParser.UnknownEndState", getState(state)));//$NON-NLS-1$

-				break;

-		}

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("End Element:" + uri + ":" + localName + ":" + qName);//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-	}

-

-	/**

-	 * Handle character text

-	 * @see DefaultHandler#characters(char[], int, int)

-	 * @since 2.0

-	 */

-	public void characters(char[] ch, int start, int length) {

-		String text = new String(ch, start, length);

-		//only push if description

-		int state = ((Integer) stateStack.peek()).intValue();

-		if (state == STATE_DESCRIPTION_SITE || state == STATE_DESCRIPTION_CATEGORY_DEF)

-			objectStack.push(text);

-

-	}

-

-	/**

-	 * Handle errors

-	 * @see DefaultHandler#error(SAXParseException)

-	 * @since 2.0

-	 */

-	public void error(SAXParseException ex) {

-		logStatus(ex);

-	}

-

-	/**

-	 * Handle fatal errors

-	 * @see DefaultHandler#fatalError(SAXParseException)

-	 * @exception SAXException

-	 * @since 2.0

-	 */

-	public void fatalError(SAXParseException ex) throws SAXException {

-		logStatus(ex);

-		throw ex;

-	}

-

-	private void handleInitialState(String elementName, Attributes attributes) throws SAXException {

-		if (elementName.equals(SITE)) {

-			stateStack.push(new Integer(STATE_SITE));

-			processSite(attributes);

-		} else {

-			internalErrorUnknownTag(Policy.bind("DefaultSiteParser.UnknownElement", elementName, getState(currentState)));	//$NON-NLS-1$

-			// what we received was not a site.xml, no need to continue

-			throw new SAXException(Policy.bind("DefaultSiteParser.InvalidXMLStream")); //$NON-NLS-1$

-		}

-

-	}

-

-	private void handleSiteState(String elementName, Attributes attributes) {

-		if (elementName.equals(DESCRIPTION)) {

-			stateStack.push(new Integer(STATE_DESCRIPTION_SITE));

-			processInfo(attributes);

-		} else if (elementName.equals(FEATURE)) {

-			stateStack.push(new Integer(STATE_FEATURE));

-			processFeature(attributes);

-		} else if (elementName.equals(ARCHIVE)) {

-			stateStack.push(new Integer(STATE_ARCHIVE));

-			processArchive(attributes);

-		} else if (elementName.equals(CATEGORY_DEF)) {

-			stateStack.push(new Integer(STATE_CATEGORY_DEF));

-			processCategoryDef(attributes);

-		} else

-			internalErrorUnknownTag(Policy.bind("DefaultSiteParser.UnknownElement", elementName, getState(currentState))); //$NON-NLS-1$ 			

-	}

-

-	private void handleFeatureState(String elementName, Attributes attributes) {

-		if (elementName.equals(DESCRIPTION)) {

-			stateStack.push(new Integer(STATE_DESCRIPTION_SITE));

-			processInfo(attributes);

-		} else if (elementName.equals(FEATURE)) {

-			stateStack.push(new Integer(STATE_FEATURE));

-			processFeature(attributes);

-		} else if (elementName.equals(ARCHIVE)) {

-			stateStack.push(new Integer(STATE_ARCHIVE));

-			processArchive(attributes);

-		} else if (elementName.equals(CATEGORY_DEF)) {

-			stateStack.push(new Integer(STATE_CATEGORY_DEF));

-			processCategoryDef(attributes);

-		} else if (elementName.equals(CATEGORY)) {

-			stateStack.push(new Integer(STATE_CATEGORY));

-			processCategory(attributes);

-		} else

-			internalErrorUnknownTag(Policy.bind("DefaultSiteParser.UnknownElement", elementName, getState(currentState))); //$NON-NLS-1$ 			

-	}

-

-	private void handleCategoryDefState(String elementName, Attributes attributes) {

-		if (elementName.equals(FEATURE)) {

-			stateStack.push(new Integer(STATE_FEATURE));

-			processFeature(attributes);

-		} else if (elementName.equals(ARCHIVE)) {

-			stateStack.push(new Integer(STATE_ARCHIVE));

-			processArchive(attributes);

-		} else if (elementName.equals(CATEGORY_DEF)) {

-			stateStack.push(new Integer(STATE_CATEGORY_DEF));

-			processCategoryDef(attributes);

-		} else if (elementName.equals(DESCRIPTION)) {

-			stateStack.push(new Integer(STATE_DESCRIPTION_CATEGORY_DEF));

-			processInfo(attributes);

-		} else

-			internalErrorUnknownTag(Policy.bind("DefaultSiteParser.UnknownElement", elementName, getState(currentState)));	//$NON-NLS-1$ 			

-	}

-

-	private void handleCategoryState(String elementName, Attributes attributes) {

-		if (elementName.equals(DESCRIPTION)) {

-			stateStack.push(new Integer(STATE_DESCRIPTION_SITE));

-			processInfo(attributes);

-		} else if (elementName.equals(FEATURE)) {

-			stateStack.push(new Integer(STATE_FEATURE));

-			processFeature(attributes);

-		} else if (elementName.equals(ARCHIVE)) {

-			stateStack.push(new Integer(STATE_ARCHIVE));

-			processArchive(attributes);

-		} else if (elementName.equals(CATEGORY_DEF)) {

-			stateStack.push(new Integer(STATE_CATEGORY_DEF));

-			processCategoryDef(attributes);

-		} else if (elementName.equals(CATEGORY)) {

-			stateStack.push(new Integer(STATE_CATEGORY));

-			processCategory(attributes);

-		} else

-			internalErrorUnknownTag(Policy.bind("DefaultSiteParser.UnknownElement", elementName, getState(currentState)));//$NON-NLS-1$ 			

-	}

-

-	/* 

-	 * process site info

-	 */

-	private void processSite(Attributes attributes) throws SAXException {

-		// create site map

-		SiteModel site = factory.createSiteMapModel();

-

-		// if URL is specified, it replaces the URL of the site

-		// used to calculate the location of features and archives

-		String siteURL = attributes.getValue("url"); //$NON-NLS-1$

-		if (siteURL != null && !("".equals(siteURL.trim()))) { //$NON-NLS-1$

-			if (!siteURL.endsWith("/") && !siteURL.endsWith(File.separator)) { //$NON-NLS-1$

-				siteURL += "/"; //$NON-NLS-1$

-			}

-			site.setLocationURLString(siteURL);

-		}

-

-		// provide default description URL

-		// If <description> is specified, for the site,  it takes precedence		

-		URLEntryModel description = factory.createURLEntryModel();

-		description.setURLString(DEFAULT_INFO_URL);

-		site.setDescriptionModel(description);

-

-		// verify we can parse the site ...if the site has

-		// a different type throw an exception to force reparsing

-		// with the matching parser

-		String type = attributes.getValue("type"); //$NON-NLS-1$

-		if (!factory.canParseSiteType(type)) {

-			throw new SAXException(new InvalidSiteTypeException(type));

-		}

-		site.setType(type);

-		

-		// get mirrors, if any

-		String mirrorsURL = attributes.getValue("mirrorsURL"); //$NON-NLS-1$

-		if (mirrorsURL != null && mirrorsURL.trim().length() > 0) {

-			URLEntryModel[] mirrors = getMirrors(mirrorsURL, factory);

-			if (mirrors != null)

-				site.setMirrorSiteEntryModels(mirrors);

-			else 

-				site.setMirrorsURLString(mirrorsURL);

-		}

-		

-		objectStack.push(site);

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("End process Site tag: siteURL:" + siteURL + " type:" + type);//$NON-NLS-1$ //$NON-NLS-2$

-

-	}

-

-	/* 

-	 * process feature info

-	 */

-	private void processFeature(Attributes attributes) {

-		SiteFeatureReferenceModel feature = factory.createFeatureReferenceModel();

-		

-        // feature location on the site

-        String urlInfo = attributes.getValue("url"); //$NON-NLS-1$

-        // identifier and version

-        String id = attributes.getValue("id"); //$NON-NLS-1$

-        String ver = attributes.getValue("version"); //$NON-NLS-1$

-        

-        boolean noURL = (urlInfo == null || urlInfo.trim().equals("")); //$NON-NLS-1$

-        boolean noId = (id == null || id.trim().equals("")); //$NON-NLS-1$

-        boolean noVersion = (ver == null || ver.trim().equals("")); //$NON-NLS-1$

-        

-        // We need to have id and version, or the url, or both.

- 		if (noURL) {

-            if (noId || noVersion)

-                internalError(Policy.bind("DefaultSiteParser.Missing", "url", getState(currentState)));	//$NON-NLS-1$  //$NON-NLS-2$

-            else // default url

-                urlInfo = FEATURES + id + '_' + ver; //$NON-NLS-1$ 

-        }

-        

-		feature.setURLString(urlInfo);

-

-		String type = attributes.getValue("type"); //$NON-NLS-1$

-		feature.setType(type);

-

-		// if one is null, and not the other

-		if (noId ^ noVersion) {

-			String[] values = new String[] { id, ver, getState(currentState)};

-			UpdateCore.warn(Policy.bind("DefaultFeatureParser.IdOrVersionInvalid", values));//$NON-NLS-1$

-		} else {

-			feature.setFeatureIdentifier(id);

-			feature.setFeatureVersion(ver);

-		}

-

-		// get label if it exists

-		String label = attributes.getValue("label"); //$NON-NLS-1$

-		if (label != null) {

-			if ("".equals(label.trim())) //$NON-NLS-1$

-				label = null;

-		}

-		feature.setLabel(label);

-

-		// OS

-		String os = attributes.getValue("os"); //$NON-NLS-1$

-		feature.setOS(os);

-

-		// WS

-		String ws = attributes.getValue("ws"); //$NON-NLS-1$

-		feature.setWS(ws);

-

-		// NL

-		String nl = attributes.getValue("nl"); //$NON-NLS-1$

-		feature.setNL(nl);

-

-		// arch

-		String arch = attributes.getValue("arch"); //$NON-NLS-1$

-		feature.setArch(arch);

-

-		//patch

-		String patch = attributes.getValue("patch"); //$NON-NLS-1$

-		feature.setPatch(patch);

-

-		SiteModel site = (SiteModel) objectStack.peek();

-		site.addFeatureReferenceModel(feature);

-		feature.setSiteModel(site);

-

-		objectStack.push(feature);

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("End Processing DefaultFeature Tag: url:" + urlInfo + " type:" + type); //$NON-NLS-1$ //$NON-NLS-2$

-

-	}

-

-	/* 

-	 * process archive info

-	 */

-	private void processArchive(Attributes attributes) {

-		ArchiveReferenceModel archive = factory.createArchiveReferenceModel();

-		String id = attributes.getValue("path"); //$NON-NLS-1$

-		if (id == null || id.trim().equals("")) { //$NON-NLS-1$

-			internalError(Policy.bind("DefaultSiteParser.Missing", "path", getState(currentState))); //$NON-NLS-1$  //$NON-NLS-2$

-		}

-

-		archive.setPath(id);

-

-		String url = attributes.getValue("url"); //$NON-NLS-1$

-		if (url == null || url.trim().equals("")) { //$NON-NLS-1$

-			internalError(Policy.bind("DefaultSiteParser.Missing", "archive", getState(currentState)));	//$NON-NLS-1$  //$NON-NLS-2$

-		} else {

-			archive.setURLString(url);

-

-			SiteModel site = (SiteModel) objectStack.peek();

-			site.addArchiveReferenceModel(archive);

-		}

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("End processing Archive: path:" + id + " url:" + url);//$NON-NLS-1$ //$NON-NLS-2$

-

-	}

-

-	/* 

-	 * process the Category  info

-	 */

-	private void processCategory(Attributes attributes) {

-		String category = attributes.getValue("name"); //$NON-NLS-1$

-		SiteFeatureReferenceModel feature = (SiteFeatureReferenceModel) objectStack.peek();

-		feature.addCategoryName(category);

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("End processing Category: name:" + category); //$NON-NLS-1$

-	}

-

-	/* 

-	 * process category def info

-	 */

-	private void processCategoryDef(Attributes attributes) {

-		CategoryModel category = factory.createSiteCategoryModel();

-		String name = attributes.getValue("name"); //$NON-NLS-1$

-		String label = attributes.getValue("label"); //$NON-NLS-1$

-		category.setName(name);

-		category.setLabel(label);

-

-		SiteModel site = (SiteModel) objectStack.peek();

-		site.addCategoryModel(category);

-		objectStack.push(category);

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("End processing CategoryDef: name:" + name + " label:" + label); //$NON-NLS-1$ //$NON-NLS-2$

-	}

-

-	/* 

-	 * process URL info with element text

-	 */

-	private void processInfo(Attributes attributes) {

-		URLEntryModel inf = factory.createURLEntryModel();

-		String infoURL = attributes.getValue("url"); //$NON-NLS-1$

-		inf.setURLString(infoURL);

-

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			debug("Processed Info: url:" + infoURL); //$NON-NLS-1$

-

-		objectStack.push(inf);

-	}

-

-	/*

-	 * 

-	 */

-	private static void debug(String s) {

-		UpdateCore.debug("DefaultSiteParser" + s); //$NON-NLS-1$

-	}

-

-	/*

-	 * 

-	 */

-	private void logStatus(SAXParseException ex) {

-		String name = ex.getSystemId();

-		if (name == null)

-			name = ""; //$NON-NLS-1$

-		else

-			name = name.substring(1 + name.lastIndexOf("/")); //$NON-NLS-1$

-

-		String msg;

-		if (name.equals("")) //$NON-NLS-1$

-			msg = Policy.bind("DefaultSiteParser.ErrorParsing", ex.getMessage());	//$NON-NLS-1$

-		else {

-			String[] values = new String[] { name, Integer.toString(ex.getLineNumber()), Integer.toString(ex.getColumnNumber()), ex.getMessage()};

-			msg = Policy.bind("DefaultSiteParser.ErrorLineColumnMessage", values);//$NON-NLS-1$

-		}

-		error(new Status(IStatus.ERROR, PLUGIN_ID, Platform.PARSE_PROBLEM, msg, ex));

-	}

-

-	/*

-	 * Handles an error state specified by the status.  The collection of all logged status

-	 * objects can be accessed using <code>getStatus()</code>.

-	 *

-	 * @param error a status detailing the error condition

-	 */

-	private void error(IStatus error) {

-

-		if (status == null) {

-			status = new MultiStatus(PLUGIN_ID, Platform.PARSE_PROBLEM, Policy.bind("DefaultSiteParser.ErrorParsingSite"), null);//$NON-NLS-1$

-		}

-

-		status.add(error);

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-			UpdateCore.log(error);

-	}

-

-	/*

-	 * 

-	 */

-	private void internalErrorUnknownTag(String msg) {

-		stateStack.push(new Integer(STATE_IGNORED_ELEMENT));

-		internalError(msg);

-	}

-

-	/*

-	 * 

-	 */

-	private void internalError(String message) {

-		error(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, message, null));

-	}

-

-	/*

-	 * return the state as String

-	 */

-	private String getState(int state) {

-

-		switch (state) {

-			case STATE_IGNORED_ELEMENT :

-				return "Ignored"; //$NON-NLS-1$

-

-			case STATE_INITIAL :

-				return "Initial"; //$NON-NLS-1$

-

-			case STATE_SITE :

-				return "Site"; //$NON-NLS-1$

-

-			case STATE_FEATURE :

-				return "Feature"; //$NON-NLS-1$

-

-			case STATE_ARCHIVE :

-				return "Archive"; //$NON-NLS-1$

-

-			case STATE_CATEGORY :

-				return "Category"; //$NON-NLS-1$

-

-			case STATE_CATEGORY_DEF :

-				return "Category Def"; //$NON-NLS-1$

-

-			case STATE_DESCRIPTION_CATEGORY_DEF :

-				return "Description / Category Def"; //$NON-NLS-1$

-

-			case STATE_DESCRIPTION_SITE :

-				return "Description / Site"; //$NON-NLS-1$

-

-			default :

-				return Policy.bind("DefaultSiteParser.UnknownState"); //$NON-NLS-1$

-		}

-	}

-	private boolean leadingSpace(String str) {

-		if (str.length() <= 0) {

-			return false;

-		}

-		return Character.isWhitespace(str.charAt(0));

-	}

-	private boolean trailingSpace(String str) {

-		if (str.length() <= 0) {

-			return false;

-		}

-		return Character.isWhitespace(str.charAt(str.length() - 1));

-	}

-	

-	static URLEntryModel[] getMirrors(String mirrorsURL, SiteModelFactory factory) {

-	    

-		try {

-		    DocumentBuilderFactory domFactory = 

-		    DocumentBuilderFactory.newInstance();

-		    DocumentBuilder builder = domFactory.newDocumentBuilder();

-		    Document document = builder.parse(mirrorsURL);

-		    if (document == null)

-		    	return null;

-		    NodeList mirrorNodes = document.getElementsByTagName(MIRROR); //$NON-NLS-1$

-		    URLEntryModel[] mirrors = new URLEntryModel[mirrorNodes.getLength()];

-		    for (int i=0; i<mirrorNodes.getLength(); i++) {

-		    	Element mirrorNode = (Element)mirrorNodes.item(i);

-				mirrors[i] = factory.createURLEntryModel();

-				String infoURL = mirrorNode.getAttribute("url"); //$NON-NLS-1$

-				String label = mirrorNode.getAttribute("label"); //$NON-NLS-1$

-				mirrors[i].setURLString(infoURL);

-				mirrors[i].setAnnotation(label);

-

-				if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING)

-					debug("Processed mirror: url:" + infoURL + " label:" + label); //$NON-NLS-1$ //$NON-NLS-2$

-		    }

-		    return mirrors;

-		}

-		catch (Exception e) {

-		    // log if absolute url

-		    if (mirrorsURL != null &&

-		    		(mirrorsURL.startsWith("http://")

-					|| mirrorsURL.startsWith("https://")

-					|| mirrorsURL.startsWith("file://")

-					|| mirrorsURL.startsWith("ftp://")

-					|| mirrorsURL.startsWith("jar://")))

-		    	UpdateCore.log(Policy.bind("DefaultSiteParser.mirrors"), e);

-			return null;

-		}

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureModel.java
deleted file mode 100644
index e29dcdc..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureModel.java
+++ /dev/null
@@ -1,937 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.core.model;

-

-

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Feature model object.

- * <p>

- * This class may be instantiated or subclassed by clients. However, in most 

- * cases clients should instead instantiate or subclass the provided 

- * concrete implementation of this model.

- * </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>

- * @see org.eclipse.update.core.Feature

- * @since 2.0

- */

-public class FeatureModel extends ModelObject {

-

-	private String featureId;

-	private String featureVersion;

-	private String label;

-	private String localizedLabel;

-	private String provider;

-	private String localizedProvider;

-	private String imageURLString;

-	private URL imageURL;

-	private String os;

-	private String ws;

-	private String nl;

-	private String arch;

-	private boolean primary = false;

-	private boolean exclusive=false;

-	private String primaryPluginID;

-	private String application;

-	private String affinity;

-	private InstallHandlerEntryModel installHandler;

-	private URLEntryModel description;

-	private URLEntryModel copyright;

-	private URLEntryModel license;

-	private URLEntryModel updateSiteInfo;

-	private List /*of InfoModel*/	discoverySiteInfo;

-	private List /*of ImportModel*/	imports;

-	private List /*of PluginEntryModel*/	pluginEntries;

-	private List /*of IncludedFeatureReferenceModel */	featureIncludes;

-	private List /*of NonPluginEntryModel*/	nonPluginEntries;

-

-	// performance

-	private URL bundleURL;

-	private URL base;

-	private boolean resolved = false;

-

-	/**

-	 * Creates an uninitialized feature object.

-	 * 

-	 * @since 2.0

-	 */

-	public FeatureModel() {

-		super();

-	}

-

-	/**

-	 * Compares 2 feature models for equality

-	 *  

-	 * @param obj feature model to compare with

-	 * @return <code>true</code> if the two models are equal, 

-	 * <code>false</code> otherwise

-	 * @since 2.0

-	 */

-	public boolean equals(Object obj) {

-		if (!(obj instanceof FeatureModel))

-			return false;

-		FeatureModel model = (FeatureModel) obj;

-

-		return (featureId.toLowerCase().equals(model.getFeatureIdentifier()) && featureVersion.toLowerCase().equals(model.getFeatureVersion()));

-	}

-

-	/**

-	 * Returns the feature identifier as a string

-	 * 

-	 * @see org.eclipse.update.core.IFeature#getVersionedIdentifier()

-	 * @return feature identifier

-	 * @since 2.0

-	 */

-	public String getFeatureIdentifier() {

-		//delayedResolve(); no delay

-		return featureId;

-	}

-

-	/**

-	 * Returns the feature version as a string

-	 * 

-	 * @see org.eclipse.update.core.IFeature#getVersionedIdentifier()

-	 * @return feature version 

-	 * @since 2.0

-	 */

-	public String getFeatureVersion() {

-		//delayedResolve(); no delay

-		return featureVersion;

-	}

-

-	/**

-	 * Retrieve the displayable label for the feature. If the model

-	 * object has been resolved, the label is localized.

-	 * 

-	 * @return displayable label, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getLabel() {

-		delayedResolve();

-		if (localizedLabel != null)

-			return localizedLabel;

-		else

-			return label;

-	}

-

-	/**

-	 * Retrieve the non-localized displayable label for the feature.

-	 * 

-	 * @return non-localized displayable label, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getLabelNonLocalized() {

-		return label;

-	}

-

-	/**

-	 * Retrieve the displayable label for the feature provider. If the model

-	 * object has been resolved, the label is localized.

-	 * 

-	 * @return displayable label, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getProvider() {

-		delayedResolve();

-		if (localizedProvider != null)

-			return localizedProvider;

-		else

-			return provider;

-	}

-

-	/**

-	 * Retrieve the non-localized displayable label for the feature provider.

-	 * 

-	 * @return non-localized displayable label, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getProviderNonLocalized() {

-		return provider;

-	}

-

-	/**

-	 * Returns the unresolved URL string for the feature image.

-	 *

-	 * @return url string, or <code>null</code>

-	 * @since 2.0

-	 */

-	public String getImageURLString() {

-		delayedResolve();

-		return imageURLString;

-	}

-

-	/**

-	 * Returns the resolved URL for the image.

-	 * 

-	 * @return url, or <code>null</code>

-	 * @since 2.0

-	 */

-	public URL getImageURL() {

-		delayedResolve();

-		return imageURL;

-	}

-

-	/**

-	 * Get optional operating system specification as a comma-separated string.

-	 * 

-	 * @return the operating system specification string, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getOS() {

-		return os;

-	}

-

-	/**

-	 * Get optional windowing system specification as a comma-separated string.

-	 * @return the windowing system specification string, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getWS() {

-		return ws;

-	}

-

-	/**

-	 * Get optional system architecture specification as a comma-separated string.

-	 * 

-	 * @return the system architecture specification string, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getOSArch() {

-		return arch;

-	}

-

-	/**

-	 * Get optional locale specification as a comma-separated string.

-	 * 

-	 * @return the locale specification string, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getNL() {

-		return nl;

-	}

-

-	/**

-	 * Indicates whether the feature can be used as a primary feature.

-	 * 

-	 * @return <code>true</code> if this is a primary feature, 

-	 * otherwise <code>false</code>

-	 * @since 2.0

-	 */

-	public boolean isPrimary() {

-		return primary;

-	}

-	

-	/**

-	 * Indicates whether the feature must be processed alone

-	 * during installation and configuration. Features that

-	 * are not exclusive can be installed in a batch.

-	 * 

-	 * @return <code>true</code> if feature requires

-	 * exclusive processing, <code>false</code> otherwise.

-	 * @since 2.1

-	 */

-	public boolean isExclusive() {

-		return exclusive;

-	}

-

-	/**

-	 * Returns an optional identifier for the feature application

-	 * 

-	 * @return application identifier, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getApplication() {

-		return application;

-	}

-

-	/**

-	 * Returns an optional identifier for the colocation affinity feature

-	 * 

-	 * @return feature identifier, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getAffinityFeature() {

-		return affinity;

-	}

-

-	/**

-	 * Returns and optional custom install handler entry.

-	 * 

-	 * @return install handler entry, or <code>null</code> if

-	 * none was specified

-	 * @since 2.0

-	 */

-	public InstallHandlerEntryModel getInstallHandlerModel() {

-		//delayedResolve(); no delay

-		return installHandler;

-	}

-

-	/**

-	 * Returns the feature description.

-	 * 

-	 * @return feature rescription, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public URLEntryModel getDescriptionModel() {

-		//delayedResolve(); no delay

-		return description;

-	}

-

-	/**

-	 * Returns the copyright information for the feature.

-	 * 

-	 * @return copyright information, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public URLEntryModel getCopyrightModel() {

-		//delayedResolve(); no delay

-		return copyright;

-	}

-

-	/**

-	 * Returns the license information for the feature.

-	 * 

-	 * @return feature license, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public URLEntryModel getLicenseModel() {

-		//delayedResolve(); no delay;

-		return license;

-	}

-

-	/**

-	 * Returns an information entry referencing the location of the

-	 * feature update site.

-	 * 

-	 * @return update site entry, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public URLEntryModel getUpdateSiteEntryModel() {

-		//delayedResolve(); no delay;

-		return updateSiteInfo;

-	}

-

-	/**

-	 * Return an array of information entries referencing locations of other

-	 * update sites. 

-	 * 

-	 * @return an array of site entries, or an empty array.

-	 * @since 2.0 

-	 * @since 2.0

-	 */

-	public URLEntryModel[] getDiscoverySiteEntryModels() {

-		//delayedResolve(); no delay;

-		if (discoverySiteInfo == null || discoverySiteInfo.size() == 0)

-			return new URLEntryModel[0];

-

-		return (URLEntryModel[]) discoverySiteInfo.toArray(arrayTypeFor(discoverySiteInfo));

-	}

-

-	/**

-	 * Return a list of plug-in dependencies for this feature.

-	 * 

-	 * @return the list of required plug-in dependencies, or an empty array.

-	 * @since 2.0

-	 */

-	public ImportModel[] getImportModels() {

-		//delayedResolve(); no delay;

-		if (imports == null || imports.size() == 0)

-			return new ImportModel[0];

-

-		return (ImportModel[]) imports.toArray(arrayTypeFor(imports));

-	}

-

-	/**

-	 * Returns an array of plug-in entries referenced by this feature

-	 * 

-	 * @return an erray of plug-in entries, or an empty array.

-	 * @since 2.0

-	 */

-	public PluginEntryModel[] getPluginEntryModels() {

-		if (pluginEntries == null || pluginEntries.size() == 0)

-			return new PluginEntryModel[0];

-

-		return (PluginEntryModel[]) pluginEntries.toArray(arrayTypeFor(pluginEntries));

-	}

-

-	/**

-	 * Returns an array of versioned identifier referenced by this feature

-	 * 

-	 * @return an array of versioned identifier, or an empty array.

-	 * @deprecated use getFeatureIncludeIdentifier instead.

-	 * @since 2.0

-	 */

-	public VersionedIdentifier[] getFeatureIncludeVersionedIdentifier() {

-		//delayedResolve(); no delay

-		if (featureIncludes == null)

-			return new VersionedIdentifier[0];

-

-		//

-		Iterator iter = featureIncludes.iterator();

-		VersionedIdentifier[] versionIncluded = new VersionedIdentifier[featureIncludes.size()];

-		int index = 0;

-		while (iter.hasNext()) {

-			IncludedFeatureReferenceModel model = (IncludedFeatureReferenceModel) iter.next();

-			versionIncluded[index] = model.getVersionedIdentifier();

-			index++;

-		}

-		return versionIncluded;

-	}

-

-	/**

-	 * Returns an array of included feature reference model referenced by this feature.

-	 *

-	 * @return an array of included feature reference model, or an empty array.

-	 * @since 2.0

-	 */

-	public IIncludedFeatureReference[] getFeatureIncluded() {

-		//delayedResolve(); no delay

-		if (featureIncludes == null || featureIncludes.size() == 0)

-			return new IIncludedFeatureReference[0];

-		return (IIncludedFeatureReference[]) featureIncludes.toArray(arrayTypeFor(featureIncludes));

-	}

-

-	/**

-	 * Returns an array of non-plug-in entries referenced by this feature

-	 * 

-	 * @return an erray of non-plug-in entries, or an empty array.

-	 * @since 2.0

-	 */

-	public NonPluginEntryModel[] getNonPluginEntryModels() {

-		if (nonPluginEntries == null || nonPluginEntries.size() == 0)

-			return new NonPluginEntryModel[0];

-

-		return (NonPluginEntryModel[]) nonPluginEntries.toArray(arrayTypeFor(nonPluginEntries));

-	}

-

-	/**

-	 * Sets the feature identifier.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param featureId feature identifier

-	 * @since 2.0

-	 */

-	public void setFeatureIdentifier(String featureId) {

-		assertIsWriteable();

-		this.featureId = featureId;

-	}

-

-	/**

-	 * Sets the feature version.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param featureVersion feature version

-	 * @since 2.0

-	 */

-	public void setFeatureVersion(String featureVersion) {

-		assertIsWriteable();

-		this.featureVersion = featureVersion;

-	}

-

-	/**

-	 * Sets the feature displayable label.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param label displayable label

-	 * @since 2.0

-	 */

-	public void setLabel(String label) {

-		assertIsWriteable();

-		this.label = label;

-		this.localizedLabel = null;

-	}

-

-	/**

-	 * Sets the feature provider displayable label.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param provider provider displayable label

-	 * @since 2.0

-	 */

-	public void setProvider(String provider) {

-		assertIsWriteable();

-		this.provider = provider;

-		this.localizedProvider = null;

-	}

-

-	/**

-	 * Sets the unresolved URL for the feature image.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param imageURLString unresolved URL string

-	 * @since 2.0

-	 */

-	public void setImageURLString(String imageURLString) {

-		assertIsWriteable();

-		this.imageURLString = imageURLString;

-		this.imageURL = null;

-	}

-

-	/**

-	 * Sets the operating system specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param os operating system specification as a comma-separated list

-	 * @since 2.0

-	 */

-	public void setOS(String os) {

-		assertIsWriteable();

-		this.os = os;

-	}

-

-	/**

-	 * Sets the windowing system specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param ws windowing system specification as a comma-separated list

-	 * @since 2.0

-	 */

-	public void setWS(String ws) {

-		assertIsWriteable();

-		this.ws = ws;

-	}

-

-	/**

-	 * Sets the locale specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param nl locale specification as a comma-separated list

-	 * @since 2.0

-	 */

-	public void setNL(String nl) {

-		assertIsWriteable();

-		this.nl = nl;

-	}

-

-	/**

-	 * Sets the system architecture specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param arch system architecture specification as a comma-separated list

-	 * @since 2.0

-	 */

-	public void setArch(String arch) {

-		assertIsWriteable();

-		this.arch = arch;

-	}

-

-	/**

-	 * Indicates whether this feature can act as a primary feature.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param primary <code>true</code> if this feature can act as primary,

-	 * <code>false</code> otherwise

-	 * 

-	 * @since 2.0

-	 */

-	public void setPrimary(boolean primary) {

-		assertIsWriteable();

-		this.primary = primary;

-	}

-	

-	/**

-	 * Indicates whether this feature can act as a primary feature.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param exclusive <code>true</code> if this feature must be

-	 * processed independently from other features, <code>false</code> 

-	 * if feature can be processed in a batch with other features.

-	 * 

-	 * @since 2.1

-	 */

-	public void setExclusive(boolean exclusive) {

-		assertIsWriteable();

-		this.exclusive = exclusive;

-	}

-

-	/**

-	 * Sets the feature application identifier.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param application feature application identifier

-	 * @since 2.0

-	 */

-	public void setApplication(String application) {

-		assertIsWriteable();

-		this.application = application;

-	}

-

-	/**

-	 * Sets the identifier of the Feature this feature should be

-	 * installed with.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param affinity the identifier of the Feature

-	 * @since 2.0

-	 */

-	public void setAffinityFeature(String affinity) {

-		assertIsWriteable();

-		this.affinity = affinity;

-	}

-

-	/**

-	 * Sets the custom install handler for the feature.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param installHandler install handler entry

-	 * @since 2.0

-	 */

-	public void setInstallHandlerModel(InstallHandlerEntryModel installHandler) {

-		assertIsWriteable();

-		this.installHandler = installHandler;

-	}

-

-	/**

-	 * Sets the feature description information.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param description feature description information

-	 * @since 2.0

-	 */

-	public void setDescriptionModel(URLEntryModel description) {

-		assertIsWriteable();

-		this.description = description;

-	}

-

-	/**

-	 * Sets the feature copyright information.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param copyright feature copyright information

-	 * @since 2.0

-	 */

-	public void setCopyrightModel(URLEntryModel copyright) {

-		assertIsWriteable();

-		this.copyright = copyright;

-	}

-

-	/**

-	 * Sets the feature license information.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param license feature license information

-	 * @since 2.0

-	 */

-	public void setLicenseModel(URLEntryModel license) {

-		assertIsWriteable();

-		this.license = license;

-	}

-

-	/**

-	 * Sets the feature update site reference.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param updateSiteInfo feature update site reference

-	 * @since 2.0

-	 */

-	public void setUpdateSiteEntryModel(URLEntryModel updateSiteInfo) {

-		assertIsWriteable();

-		this.updateSiteInfo = updateSiteInfo;

-	}

-

-	/**

-	 * Sets additional update site references.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param discoverySiteInfo additional update site references

-	 * @since 2.0

-	 */

-	public void setDiscoverySiteEntryModels(URLEntryModel[] discoverySiteInfo) {

-		assertIsWriteable();

-		if (discoverySiteInfo == null)

-			this.discoverySiteInfo = null;

-		else

-			this.discoverySiteInfo = new ArrayList(Arrays.asList(discoverySiteInfo));

-	}

-

-	/**

-	 * Sets the feature plug-in dependency information.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param imports feature plug-in dependency information

-	 * @since 2.0

-	 */

-	public void setImportModels(ImportModel[] imports) {

-		assertIsWriteable();

-		if (imports == null)

-			this.imports = null;

-		else

-			this.imports = new ArrayList(Arrays.asList(imports));

-	}

-

-	/**

-	 * Sets the feature plug-in references.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param pluginEntries feature plug-in references

-	 * @since 2.0

-	 */

-	public void setPluginEntryModels(PluginEntryModel[] pluginEntries) {

-		assertIsWriteable();

-		if (pluginEntries == null)

-			this.pluginEntries = null;

-		else

-			this.pluginEntries = new ArrayList(Arrays.asList(pluginEntries));

-	}

-

-	/**

-	 * Sets the feature non-plug-in data references.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param nonPluginEntries feature non-plug-in data references

-	 * @since 2.0

-	 */

-	public void setNonPluginEntryModels(NonPluginEntryModel[] nonPluginEntries) {

-		assertIsWriteable();

-		if (nonPluginEntries == null)

-			this.nonPluginEntries = null;

-		else

-			this.nonPluginEntries = new ArrayList(Arrays.asList(nonPluginEntries));

-	}

-

-	/**

-	 * Adds an additional update site reference.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param discoverySiteInfo update site reference

-	 * @since 2.0

-	 */

-	public void addDiscoverySiteEntryModel(URLEntryModel discoverySiteInfo) {

-		assertIsWriteable();

-		if (this.discoverySiteInfo == null)

-			this.discoverySiteInfo = new ArrayList();

-		if (!this.discoverySiteInfo.contains(discoverySiteInfo))

-			this.discoverySiteInfo.add(discoverySiteInfo);

-	}

-

-	/**

-	 * Adds a plug-in dependency entry.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param importEntry plug-in dependency entry

-	 * @since 2.0

-	 */

-	public void addImportModel(ImportModel importEntry) {

-		assertIsWriteable();

-		if (this.imports == null)

-			this.imports = new ArrayList();

-		if (!this.imports.contains(importEntry))

-			this.imports.add(importEntry);

-	}

-

-	/**

-	 * Adds a plug-in reference.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param pluginEntry plug-in reference

-	 * @since 2.0

-	 */

-	public void addPluginEntryModel(PluginEntryModel pluginEntry) {

-		assertIsWriteable();

-		if (this.pluginEntries == null)

-			this.pluginEntries = new ArrayList();

-		//PERF: no ListContains()

-		//if (!this.pluginEntries.contains(pluginEntry))

-		this.pluginEntries.add(pluginEntry);

-	}

-

-	/**

-	 * Adds a feature identifier.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * @param include the included feature

-	 * @since 2.1

-	 */

-	public void addIncludedFeatureReferenceModel(IncludedFeatureReferenceModel include) {

-		assertIsWriteable();

-		if (this.featureIncludes == null)

-			this.featureIncludes = new ArrayList();

-		//PERF: no ListContains()

-		//if (!this.featureIncludes.contains(include))

-		this.featureIncludes.add(include);

-	}

-

-	/**

-	 * Adds a non-plug-in data reference.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param nonPluginEntry non-plug-in data reference

-	 * @since 2.0

-	 */

-	public void addNonPluginEntryModel(NonPluginEntryModel nonPluginEntry) {

-		assertIsWriteable();

-		if (this.nonPluginEntries == null)

-			this.nonPluginEntries = new ArrayList();

-		//PERF: no ListContains()

-		//if (!this.nonPluginEntries.contains(nonPluginEntry))

-		this.nonPluginEntries.add(nonPluginEntry);

-	}

-

-	/**

-	 * Removes an update site reference.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param discoverySiteInfo update site reference

-	 * @since 2.0

-	 */

-	public void removeDiscoverySiteEntryModel(URLEntryModel discoverySiteInfo) {

-		assertIsWriteable();

-		if (this.discoverySiteInfo != null)

-			this.discoverySiteInfo.remove(discoverySiteInfo);

-	}

-

-	/**

-	 * Removes a plug-in dependency entry.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param importEntry plug-in dependency entry

-	 * @since 2.0

-	 */

-	public void removeImportModel(ImportModel importEntry) {

-		assertIsWriteable();

-		if (this.imports != null)

-			this.imports.remove(importEntry);

-	}

-

-	/**

-	 * Removes a plug-in reference.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param pluginEntry plug-in reference

-	 * @since 2.0

-	 */

-	public void removePluginEntryModel(PluginEntryModel pluginEntry) {

-		assertIsWriteable();

-		if (this.pluginEntries != null)

-			this.pluginEntries.remove(pluginEntry);

-	}

-

-	/**

-	 * Removes a non-plug-in data reference.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param nonPluginEntry non-plug-in data reference

-	 * @since 2.0

-	 */

-	public void removeNonPluginEntryModel(NonPluginEntryModel nonPluginEntry) {

-		assertIsWriteable();

-		if (this.nonPluginEntries != null)

-			this.nonPluginEntries.remove(nonPluginEntry);

-	}

-

-	/**

-	 * Marks the model object as read-only.

-	 * 

-	 * @since 2.0

-	 */

-	public void markReadOnly() {

-		super.markReadOnly();

-		markReferenceReadOnly(getDescriptionModel());

-		markReferenceReadOnly(getCopyrightModel());

-		markReferenceReadOnly(getLicenseModel());

-		markReferenceReadOnly(getUpdateSiteEntryModel());

-		markListReferenceReadOnly(getDiscoverySiteEntryModels());

-		markListReferenceReadOnly(getImportModels());

-		markListReferenceReadOnly(getPluginEntryModels());

-		markListReferenceReadOnly(getNonPluginEntryModels());

-	}

-

-	/**

-	 * Resolve the model object.

-	 * Any URL strings in the model are resolved relative to the 

-	 * base URL argument. Any translatable strings in the model that are

-	 * specified as translation keys are localized using the supplied 

-	 * resource bundle.

-	 * 

-	 * @param base URL

-	 * @param bundleURL resource bundle url

-	 * @exception MalformedURLException

-	 * @since 2.0

-	 */

-	public void resolve(URL base,URL bundleURL) throws MalformedURLException {

-		this.bundleURL = bundleURL;

-		this.base = base;

-

-		// plugin entry and nonpluginentry are optimized too

-		resolveListReference(getPluginEntryModels(), base, bundleURL);

-		resolveListReference(getNonPluginEntryModels(), base, bundleURL);

-		

-		//URLSiteModel are optimized

-		resolveReference(getDescriptionModel(),base, bundleURL);

-		resolveReference(getCopyrightModel(),base, bundleURL);

-		resolveReference(getLicenseModel(),base, bundleURL);

-		resolveReference(getUpdateSiteEntryModel(),base, bundleURL);

-		resolveListReference(getDiscoverySiteEntryModels(),base, bundleURL);

-		

-		// Import Models are optimized

-		resolveListReference(getImportModels(),base, bundleURL);

-	}

-

-	private void delayedResolve() {

-

-		// PERF: delay resolution

-		if (resolved)

-			return;

-

-		resolved = true;

-		// resolve local elements

-		localizedLabel = resolveNLString(bundleURL, label);

-		localizedProvider = resolveNLString(bundleURL, provider);

-		try {

-			imageURL = resolveURL(base,bundleURL, imageURLString);

-		} catch (MalformedURLException e){

-			UpdateCore.warn("",e); //$NON-NLS-1$

-		}

-	}

-

-	/**

-	 * Method setPrimaryPlugin.

-	 * @param plugin

-	 */

-	public void setPrimaryPluginID(String plugin) {

-		if (primary && primaryPluginID == null) {

-			primaryPluginID = featureId;

-		}

-		primaryPluginID = plugin;

-	}

-	/**

-	 * Returns the primaryPluginID.

-	 * @return String

-	 */

-	public String getPrimaryPluginID() {

-		return primaryPluginID;

-	}

-

-	/**

-	 * Returns <code>true</code> if this feature is patching another feature,

-	 * <code>false</code> otherwise

-	 * @return boolean

-	 */

-	public boolean isPatch() {

-		ImportModel[] imports = getImportModels();

-

-		for (int i = 0; i < imports.length; i++) {

-			if (imports[i].isPatch())

-				return true;

-		}

-		return false;

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureModelFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureModelFactory.java
deleted file mode 100644
index 647ef7c..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureModelFactory.java
+++ /dev/null
@@ -1,174 +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 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.update.core.model;

-

-import java.io.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.xml.sax.*;

-

-/**

- * Default feature model factory.

- * <p>

- * This class may be instantiated or subclassed by clients. However, in most 

- * cases clients should instead subclass the provided base implementation 

- * of this factory.

- * </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>

- * @see org.eclipse.update.core.BaseFeatureFactory

- * @since 2.0

- */

-

-public class FeatureModelFactory {

-

-

-	private static DefaultFeatureParser parser = new DefaultFeatureParser();

-

-	/**

-	 * Creates a default model factory.

-	 * 

-	 * @since 2.0

-	 */

-	public FeatureModelFactory() {

-		super();

-	}

-

-	/**

-	 * Creates and populates a default feature from stream.

-	 * The parser assumes the stream contains a default feature manifest

-	 * (feature.xml) as documented by the platform.

-	 * 

-	 * @param stream feature stream

-	 * @return populated feature model

-	 * @exception CoreException

-	 * @exception SAXException

-	 * @since 2.0

-	 */

-	public FeatureModel parseFeature(InputStream stream)

-		throws CoreException, SAXException {

-        return parseFeature(stream, null);

-	}

-    

-    /**

-     * Creates and populates a default feature from stream.

-     * The parser assumes the stream contains a default feature manifest

-     * (feature.xml) as documented by the platform.

-     * 

-     * @param stream feature stream

-     * @param location feature location

-     * @return populated feature model

-     * @exception CoreException

-     * @exception SAXException

-     * @since 3.1

-     */

-    public FeatureModel parseFeature(InputStream stream, String location)

-        throws CoreException, SAXException {

-        

-        parser.init(this, location);

-        FeatureModel featureModel = null;

-        try {

-            featureModel = parser.parse(stream);

-            if (parser.getStatus()!=null) {

-                // some internalError were detected

-                IStatus status = parser.getStatus();

-                throw new CoreException(status);

-            }

-        } catch (IOException e) {

-            throw Utilities.newCoreException(Policy.bind("FeatureModelFactory.ErrorAccesingFeatureStream"), e); //$NON-NLS-1$

-        }

-        return featureModel;

-    }

-

-	/**

-	 * Create a default feature model.

-	 * 

-	 * @see FeatureModel

-	 * @return feature model

-	 * @since 2.0

-	 */

-	public FeatureModel createFeatureModel() {

-		return new FeatureModel();

-	}

-

-	/**

-	 * Create a default included feature reference model.

-	 * 

-	 * @see IncludedFeatureReferenceModel

-	 * @return feature model

-	 * @since 2.1

-	 */

-	public IncludedFeatureReferenceModel createIncludedFeatureReferenceModel() {

-		return new IncludedFeatureReferenceModel();

-	}

-

-

-	/**

-	 * Create a default install handler model.

-	 * 

-	 * @see InstallHandlerEntryModel

-	 * @return install handler entry model

-	 * @since 2.0

-	 */

-	public InstallHandlerEntryModel createInstallHandlerEntryModel() {

-		return new InstallHandlerEntryModel();

-	}

-

-	/**

-	 * Create a default import dependency model.

-	 * 

-	 * @see ImportModel

-	 * @return import dependency model

-	 * @since 2.0

-	 */

-	public ImportModel createImportModel() {

-		return new ImportModel();

-	}

-

-	/**

-	 * Create a default plug-in entry model.

-	 * 

-	 * @see PluginEntryModel

-	 * @return plug-in entry model

-	 * @since 2.0

-	 */

-	public PluginEntryModel createPluginEntryModel() {

-		return new PluginEntryModel();

-	}

-

-	/**

-	 * Create a default non-plug-in entry model.

-	 * 

-	 * @see NonPluginEntryModel

-	 * @return non-plug-in entry model

-	 * @since 2.0

-	 */

-	public NonPluginEntryModel createNonPluginEntryModel() {

-		return new NonPluginEntryModel();

-	}

-

-	/**

-	 * Create a default annotated URL model.

-	 * 

-	 * @see URLEntryModel

-	 * @return annotated URL model

-	 * @since 2.0

-	 */

-	public URLEntryModel createURLEntryModel() {

-		return new URLEntryModel();

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureReferenceModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureReferenceModel.java
deleted file mode 100644
index a81bf54..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/FeatureReferenceModel.java
+++ /dev/null
@@ -1,422 +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 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.update.core.model;

-

-import java.net.*;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Feature reference model object.

- * <p>

- * This class may be instantiated or subclassed by clients. However, in most 

- * cases clients should instead instantiate or subclass the provided 

- * concrete implementation of this model.

- * </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>

- * @see org.eclipse.update.core.FeatureReference

- * @since 2.0

- */

-public class FeatureReferenceModel extends ModelObject {

-

-	private String type;

-	private URL url;

-	private String urlString;

-	private String featureId;

-	private String featureVersion;

-	private SiteModel site;

-	private String label;

-	private String localizedLabel;

-

-	// performance

-	private URL bundleURL;

-	private URL base;

-	private boolean resolved = false;

-	private String os;

-	private String ws;

-	private String nl;

-	private String arch;

-	private String patch;	

-

-	/**

-	 * Creates an uninitialized feature reference model object.

-	 * 

-	 * @since 2.0

-	 */

-	public FeatureReferenceModel() {

-		super();

-	}

-

-	/**

-	 * Constructor FeatureReferenceModel.

-	 * @param ref

-	 */

-	public FeatureReferenceModel(FeatureReferenceModel ref) {

-		setFeatureIdentifier(ref.getFeatureIdentifier());

-		setFeatureVersion(ref.getFeatureVersion());

-		setType(ref.getType());

-		setSiteModel(ref.getSiteModel());

-		setLabel(ref.getLabel());

-		setWS(ref.getWS());

-		setOS(ref.getOS());

-		setArch(ref.getOSArch());

-		setNL(ref.getNL());

-	}

-

-	/**

-	 * Compares 2 feature reference models for equality

-	 *  

-	 * @param object feature reference model to compare with

-	 * @return <code>true</code> if the two models are equal, 

-	 * <code>false</code> otherwise

-	 * @since 2.0 

-	 */

-	public boolean equals(Object object) {

-

-		if (object == null)

-			return false;

-		if (getURL() == null)

-			return false;

-

-		if (!(object instanceof FeatureReferenceModel))

-			return false;

-

-		FeatureReferenceModel f = (FeatureReferenceModel) object;

-

-		return UpdateManagerUtils.sameURL(getURL(), f.getURL());

-	}

-

-	/**

-	 * Returns the referenced feature type.

-	 * 

-	 * @return feature type, or <code>null</code> representing the default

-	 * feature type for the site

-	 * @since 2.0

-	 */

-	public String getType() {

-		return type;

-	}

-

-	/**

-	 * Returns the site model for the reference.

-	 * 

-	 * @return site model

-	 * @since 2.0

-	 */

-	public SiteModel getSiteModel() {

-		return site;

-	}

-

-	/**

-	 * Returns the unresolved URL string for the reference.

-	 *

-	 * @return url string

-	 * @since 2.0

-	 */

-	public String getURLString() {

-		return urlString;

-	}

-

-	/**

-	 * Returns the resolved URL for the feature reference.

-	 * 

-	 * @return url string

-	 * @since 2.0

-	 */

-	public URL getURL() {

-		delayedResolve();

-		return url;

-	}

-

-	/**

-	 * Returns the feature identifier as a string

-	 * 

-	 * @see org.eclipse.update.core.IFeatureReference#getVersionedIdentifier()

-	 * @return feature identifier

-	 * @since 2.0

-	 */

-	public String getFeatureIdentifier() {

-		return featureId;

-	}

-

-	/**

-	 * Returns the feature version as a string

-	 * 

-	 * @see org.eclipse.update.core.IFeatureReference#getVersionedIdentifier()

-	 * @return feature version 

-	 * @since 2.0

-	 */

-	public String getFeatureVersion() {

-		return featureVersion;

-	}

-

-	/**

-	 * Sets the referenced feature type.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param type referenced feature type

-	 * @since 2.0

-	 */

-	public void setType(String type) {

-		assertIsWriteable();

-		this.type = type;

-	}

-

-	/**

-	 * Sets the site for the referenced.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param site site for the reference

-	 * @since 2.0

-	 */

-	public void setSiteModel(SiteModel site) {

-		assertIsWriteable();

-		this.site = site;

-	}

-

-	/**

-	 * Sets the unresolved URL for the feature reference.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param urlString unresolved URL string

-	 * @since 2.0

-	 */

-	public void setURLString(String urlString) {

-		assertIsWriteable();

-		this.urlString = urlString;

-		this.url = null;

-	}

-

-	/**

-	 * Sets the feature identifier.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param featureId feature identifier

-	 * @since 2.0

-	 */

-	public void setFeatureIdentifier(String featureId) {

-		assertIsWriteable();

-		this.featureId = featureId;

-	}

-

-	/**

-	 * Sets the feature version.

-	 * Throws a runtime exception if this object is marked read-only.

-	 * 

-	 * @param featureVersion feature version

-	 * @since 2.0

-	 */

-	public void setFeatureVersion(String featureVersion) {

-		assertIsWriteable();

-		this.featureVersion = featureVersion;

-	}

-

-	/**

-	 * Resolve the model object.

-	 * Any URL strings in the model are resolved relative to the 

-	 * base URL argument. Any translatable strings in the model that are

-	 * specified as translation keys are localized using the supplied 

-	 * resource bundle.

-	 * 

-	 * @param base URL

-	 * @param bundleURL resource bundle URL

-	 * @exception MalformedURLException

-	 * @since 2.0

-	 */

-	public void resolve(URL base,URL bundleURL) throws MalformedURLException {

-		this.base = base;

-		this.bundleURL = bundleURL;

-	}

-

-	private void delayedResolve() {

-

-		// PERF: delay resolution

-		if (resolved)

-			return;

-

-		resolved = true;

-		// resolve local elements

-		localizedLabel = resolveNLString(bundleURL, label);

-		try {

-			url = resolveURL(base, bundleURL, urlString);

-		} catch (MalformedURLException e){

-			UpdateCore.warn("",e); //$NON-NLS-1$

-		}

-	}

-

-	/**

-	 * @see Object#toString()

-	 */

-	public String toString() {

-		StringBuffer buffer = new StringBuffer();

-		buffer.append(getClass().toString() + " :"); //$NON-NLS-1$

-		buffer.append(" at "); //$NON-NLS-1$

-		if (url != null)

-			buffer.append(url.toExternalForm());

-		return buffer.toString();

-	}

-

-	/**

-	 * @see org.eclipse.update.core.model.ModelObject#getPropertyName()

-	 */

-	protected String getPropertyName() {

-		return Site.SITE_FILE;

-	}

-	

-	/**

-	 * Retrieve the displayable label for the feature reference. If the model

-	 * object has been resolved, the label is localized.

-	 *

-	 * @return displayable label, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getLabel() {

-		delayedResolve();

-		if (localizedLabel != null)

-			return localizedLabel;

-		else

-			return label;

-	}

-

-	/**

-	 * Retrieve the non-localized displayable label for the feature reference.

-	 *

-	 * @return non-localized displayable label, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getLabelNonLocalized() {

-		return label;

-	}

-

-	/**

-	 * Sets the label.

-	 * @param label The label to set

-	 */

-	public void setLabel(String label) {

-		this.label = label;

-	}

-

-	/**

-	 * Get optional operating system specification as a comma-separated string.

-	 *

-	 * @return the operating system specification string, or <code>null</code>.

-	 * @since 2.1

-	 */

-	public String getOS() {

-		return os;

-	}

-

-

-	/**

-	 * Get optional windowing system specification as a comma-separated string.

-	 *

-	 * @return the windowing system specification string, or <code>null</code>.

-	 * @since 2.1

-	 */

-	public String getWS() {

-		return ws;

-	}

-

-

-	/**

-	 * Get optional system architecture specification as a comma-separated string.

-	 *

-	 * @return the system architecture specification string, or <code>null</code>.

-	 * @since 2.1

-	 */

-	public String getOSArch() {

-		return arch;

-	}

-

-

-	/**

-	 * Get optional locale specification as a comma-separated string.

-	 *

-	 * @return the locale specification string, or <code>null</code>.

-	 * @since 2.1

-	 */

-	public String getNL() {

-		return nl;

-	}

-

-	/**

-	 * Sets the operating system specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param os operating system specification as a comma-separated list

-	 * @since 2.1

-	 */

-	public void setOS(String os) {

-		assertIsWriteable();

-		this.os = os;

-	}

-

-

-	/**

-	 * Sets the windowing system specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param ws windowing system specification as a comma-separated list

-	 * @since 2.1

-	 */

-	public void setWS(String ws) {

-		assertIsWriteable();

-		this.ws = ws;

-	}

-

-

-	/**

-	 * Sets the locale specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param nl locale specification as a comma-separated list

-	 * @since 2.1

-	 */

-	public void setNL(String nl) {

-		assertIsWriteable();

-		this.nl = nl;

-	}

-

-

-	/**

-	 * Sets the system architecture specification.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param arch system architecture specification as a comma-separated list

-	 * @since 2.1

-	 */

-	public void setArch(String arch) {

-		assertIsWriteable();

-		this.arch = arch;

-	}

-

-	/**

-	 * Returns the patch mode.

-	 */

-	public String getPatch() {

-		return patch;

-	}

-

-

-	/**

-	 * Sets the patch mode.

-	 */

-	public void setPatch(String patch) {

-		this.patch = patch;

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ImportModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ImportModel.java
deleted file mode 100644
index 7e4d338..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ImportModel.java
+++ /dev/null
@@ -1,278 +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 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.update.core.model;

-

-/**

- * Plug-in dependency model object.

- * <p>

- * This class may be instantiated or subclassed by clients. However, in most 

- * cases clients should instead instantiate or subclass the provided 

- * concrete implementation of this model.

- * </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>

- * @see org.eclipse.update.core.Import

- * @since 2.0

- */

-public class ImportModel extends ModelObject {

-

-	private String id;

-	private String version;

-	private String matchingIdRuleName;

-	private String matchingRuleName;

-	private boolean featureImport;

-	private boolean patch;

-	private String osArch;

-	private String ws;

-	private String os;

-	private String nl;

-

-	/**

-	 * Creates a uninitialized plug-in dependency model object.

-	 * 

-	 * @since 2.0

-	 */

-	public ImportModel() {

-		super();

-	}

-

-	/**

-	 * Returns the dependent plug-in identifier.

-	 *

-	 * @deprecated use getIdentifier() instead

-	 * @return plug-in identifier, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getPluginIdentifier() {

-		return id;

-	}

-

-	/**

-	 * Returns the dependent identifier.

-	 *

-	 * @return  identifier, or <code>null</code>.

-	 * @since 2.0.2

-	 */

-	public String getIdentifier() {

-		return id;

-	}

-

-	/**

-	 * Returns the dependent plug-in version.

-	 *

-	 * @deprecated use getVersion() instead

-	 * @return plug-in version, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getPluginVersion() {

-		return version;

-	}

-

-	/**

-	 * Returns the dependent version.

-	 *

-	 * @return version, or <code>null</code>.

-	 * @since 2.0.2

-	 */

-	public String getVersion() {

-		return version;

-	}

-	

-	/**

-	 * Returns the dependent version matching rule name.

-	 *

-	 * @return matching rule name, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getMatchingRuleName() {

-		return matchingRuleName;

-	}

-	

-	/**

-	 * Returns the dependent id matching rule name.

-	 *

-	 * @return matching rule name, or <code>null</code>.

-	 * @since 2.1

-	 */

-	public String getMatchingIdRuleName() {

-		return matchingIdRuleName;

-	}

-

-	/**

-	 * Sets the dependent plug-in identifier.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @deprecated use setIdentifier()

-	 * @param pluginId dependent plug-in identifier

-	 * @since 2.0

-	 */

-	public void setPluginIdentifier(String pluginId) {

-		assertIsWriteable();

-		this.id = pluginId;

-	}

-

-	/**

-	 * Sets the dependent plug-in version.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @deprecated use setVersion()

-	 * @param pluginVersion dependent plug-in version

-	 * @since 2.0

-	 */

-	public void setPluginVersion(String pluginVersion) {

-		assertIsWriteable();

-		this.version = pluginVersion;

-	}

-

-	/**

-	 * Sets the dependent identifier.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param id dependent identifier

-	 * @since 2.0.2

-	 */

-	public void setIdentifier(String id) {

-		assertIsWriteable();

-		this.id = id;

-	}

-

-	/**

-	 * Sets the dependent version.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param version dependent version

-	 * @since 2.0.2

-	 */

-	public void setVersion(String version) {

-		assertIsWriteable();

-		this.version = version;

-	}

-	

-	/**

-	 * Sets the dependent version matching rule name. 

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param matchingRuleName dependent version matching rule.

-	 * @since 2.0

-	 */

-	public void setMatchingRuleName(String matchingRuleName) {

-		assertIsWriteable();

-		this.matchingRuleName = matchingRuleName;

-	}

-	/**

-	 * Sets the dependent id matching rule name. 

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param matchingIdRuleName dependent id matching rule.

-	 * @since 2.1

-	 */

-	public void setMatchingIdRuleName(String matchingIdRuleName) {

-		assertIsWriteable();

-		this.matchingIdRuleName = matchingIdRuleName;

-	}

-	/**

-	 * Returns the isFeatureImport.

-	 * @return boolean

-	 */

-	public boolean isFeatureImport() {

-		return featureImport;

-	}

-	

-	/**

-	 * Sets the featureImport.

-	 * @param featureImport The featureImport to set

-	 */

-	public void setFeatureImport(boolean featureImport) {

-		this.featureImport = featureImport;

-	}

-	

-	/**

-	 * Returns the patch mode.

-	 */

-	public boolean isPatch() {

-		return patch;

-	}

-	

-	/**

-	 * Sets the patch mode.

-	 */

-	public void setPatch(boolean patch) {

-		this.patch = patch;

-	}

-	/**

-	 * Returns the os.

-	 * @return String

-	 */

-	public String getOS() {

-		return os;

-	}

-

-	/**

-	 * Returns the osArch.

-	 * @return String

-	 */

-	public String getOSArch() {

-		return osArch;

-	}

-

-	/**

-	 * Returns the ws.

-	 * @return String

-	 */

-	public String getWS() {

-		return ws;

-	}

-

-	/**

-	 * Sets the os.

-	 * @param os The os to set

-	 */

-	public void setOS(String os) {

-		this.os = os;

-	}

-

-	/**

-	 * Sets the osArch.

-	 * @param osArch The osArch to set

-	 */

-	public void setOSArch(String osArch) {

-		this.osArch = osArch;

-	}

-

-	/**

-	 * Sets the ws.

-	 * @param ws The ws to set

-	 */

-	public void setWS(String ws) {

-		this.ws = ws;

-	}

-

-	/**

-	 * Returns the nl.

-	 * @return String

-	 */

-	public String getNL() {

-		return nl;

-	}

-

-	/**

-	 * Sets the nl.

-	 * @param nl The nl to set

-	 */

-	public void setNL(String nl) {

-		this.nl = nl;

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/IncludedFeatureReferenceModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/IncludedFeatureReferenceModel.java
deleted file mode 100644
index 2f62f5b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/IncludedFeatureReferenceModel.java
+++ /dev/null
@@ -1,158 +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 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.update.core.model;
-
-import org.eclipse.update.core.*;
-
-
-/**
- * Included Feature reference model object.
- * <p>
- * This class may be instantiated or subclassed by clients. However, in most 
- * cases clients should instead instantiate or subclass the provided 
- * concrete implementation of this model.
- * </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>
- * @see org.eclipse.update.core.IncludedFeatureReference
- * @since 2.1
- */
-public class IncludedFeatureReferenceModel extends FeatureReference {
-
-	// since 2.0.2
-	private boolean isOptional;
-	private int searchLocation;
-	
-	// These are already defined by FeatureReferenceModel, we don't need to duplicate them here
-//	// since 2.1
-//	private String os;
-//	private String ws;
-//	private String arch;
-//	private String nl;
-//	
-	/**
-	 * Construct a included feature reference
-	 * 
-	 * @since 2.1
-	 */
-	public IncludedFeatureReferenceModel() {
-		super();
-		isOptional(false);
-		setSearchLocation(IUpdateConstants.SEARCH_ROOT);
-	}
-	
-	
-	
-	/**
-	 * Construct a included feature reference model
-	 * 
-	 * @param includedFeatureRef the included reference model to copy
-	 * @since 2.1
-	 */
-	public IncludedFeatureReferenceModel(IncludedFeatureReferenceModel includedFeatureRef) {
-		super((FeatureReferenceModel)includedFeatureRef);
-		isOptional(includedFeatureRef.isOptional());
-		setLabel(includedFeatureRef.getLabel());
-		setSearchLocation(includedFeatureRef.getSearchLocation());
-		setArch(includedFeatureRef.getOSArch());
-		setWS(includedFeatureRef.getWS());
-		setOS(includedFeatureRef.getOS());
-	}
-
-	/**
-	 * Constructor IncludedFeatureReferenceModel.
-	 * @param featureReference
-	 */
-	public IncludedFeatureReferenceModel(IFeatureReference featureReference) {
-		super((FeatureReferenceModel)featureReference);
-		isOptional(false);
-		setSearchLocation(IUpdateConstants.SEARCH_ROOT);
-		setLabel(getLabel());		
-	}
-
-	/**
-	 * Returns the matching rule for this included feature.
-	 * The rule will determine the ability of the included feature to move version 
-	 * without causing the overall feature to appear broken.
-	 * 
-	 * The default is <code>MATCH_PERFECT</code>
-	 * 
-	 * @see IImport#RULE_PERFECT
-	 * @see IImport#RULE_EQUIVALENT
-	 * @see IImport#RULE_COMPATIBLE
-	 * @see IImport#RULE_GREATER_OR_EQUAL
-	 * @return int representation of feature matching rule.
-	 * @since 2.0.2
-	 * @deprecated since 3.0 included feature version is exactly specified
-	 */
-	public int getMatch(){
-		return Import.RULE_PERFECT;
-	}
-
-	/**
-	 * Returns the search location for this included feature.
-	 * The location will be used to search updates for this feature.
-	 * 
-	 * The default is <code>SEARCH_ROOT</code>
-	 * 
-	 * @see IUpdateConstants#SEARCH_ROOT
-	 * @see IUpdateConstants#SEARCH_SELF
-	 * @return int representation of feature searching rule.
-	 * @since 2.0.2
-	 */
-
-	public int getSearchLocation(){
-		return searchLocation;
-	}
-	
-
-
-	/**
-	 * Returns the isOptional
-	 * 
-	 * @return isOptional
-	 * @since 2.0.1
-	 */
-	public boolean isOptional() {
-		return isOptional;
-	}
-
-
-	
-
-	/**
-	 * Sets the isOptional.
-	 * @param isOptional The isOptional to set
-	 */
-	public void isOptional(boolean isOptional) {
-		this.isOptional = isOptional;
-	}
-
-	/**
-	 * Sets the matchingRule.
-	 * @param matchingRule The matchingRule to set
-	 * @deprecated since 3.0 included feature version is exactly specified
-	 */
-	public void setMatchingRule(int matchingRule) {
-	}
-
-	/**
-	 * Sets the searchLocation.
-	 * @param searchLocation The searchLocation to set
-	 */
-	public void setSearchLocation(int searchLocation) {
-		this.searchLocation = searchLocation;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/InstallAbortedException.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/InstallAbortedException.java
deleted file mode 100644
index 243c843..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/InstallAbortedException.java
+++ /dev/null
@@ -1,37 +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 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.update.core.model;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Exception thrown when the user cancelled an installation.
- * <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>
- * @since 2.0
- */
-public class InstallAbortedException extends CoreException {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-	 * Construct the exception indicating enclosing CoreException
-	 * 
-	 * @since 2.0
-	 */
-	public InstallAbortedException(String msg,Exception e) {
-		super(new Status(IStatus.INFO,"org.eclipse.update.core",IStatus.OK,msg,e)); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/InstallHandlerEntryModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/InstallHandlerEntryModel.java
deleted file mode 100644
index 2316868..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/InstallHandlerEntryModel.java
+++ /dev/null
@@ -1,142 +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 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.update.core.model;
-
-import java.net.*;
-
-/**
- * Install handler entry model object.
- * An object which represents the definition of a custom install handler
- * <p>
- * This class may be instantiated or subclassed by clients. However, in most 
- * cases clients should instead instantiate or subclass the provided 
- * concrete implementation of this model.
- * </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>
- * @see org.eclipse.update.core.InstallHandlerEntry
- * @since 2.0
- */
-public class InstallHandlerEntryModel extends ModelObject {
-
-	private String urlString;
-	private URL url;
-	private String library;
-	private String name;
-
-	/**
-	 * Creates a uninitialized install handler entry model object.
-	 * 
-	 * @since 2.0
-	 */
-	public InstallHandlerEntryModel() {
-		super();
-	}
-
-	/**
-	 * Returns the URL string used for browser-triggered installation handling.
-	 *
-	 * @return url string or <code>null</code>
-	 * @since 2.0
-	 */
-	public String getURLString() {
-		return urlString;
-	}
-
-	/**
-	 * Returns the resolved URL used for browser-triggered installation handling.
-	 * 
-	 * @return url, or <code>null</code>
-	 * @since 2.0
-	 */
-	public URL getURL() {
-		return url;
-	}
-
-	/**
-	 * Returns the name of the custom installer library.
-	 *
-	 * @return library path, or <code>null</code>
-	 * @since 2.0
-	 */
-	public String getLibrary() {
-		return library;
-	}
-
-	/**
-	 * Returns the name of the custom installer.
-	 *
-	 * @return handler name, or <code>null</code>
-	 * @since 2.0
-	 */
-	public String getHandlerName() {
-		return name;
-	}
-
-	/**
-	 * Sets URL string used for browser-triggered installation handling.
-	 * Throws a runtime exception if this object is marked read-only.
-	 *
-	 * @param urlString trigget page URL string, may be <code>null</code>.
-	 * @since 2.0
-	 */
-	public void setURLString(String urlString) {
-		assertIsWriteable();
-		this.urlString = urlString;
-		this.url = null;
-	}
-
-	/**
-	 * Sets the custom install handler library name.
-	 * Throws a runtime exception if this object is marked read-only.
-	 *
-	 * @param library name, may be <code>null</code>.
-	 * @since 2.0
-	 */
-	public void setLibrary(String library) {
-		assertIsWriteable();
-		this.library = library;
-	}
-
-	/**
-	 * Sets the name of the custom install handler.
-	 * Throws a runtime exception if this object is marked read-only.
-	 *
-	 * @param name name of the install handler, may be <code>null</code>.
-	 * @since 2.0
-	 */
-	public void setHandlerName(String name) {
-		assertIsWriteable();
-		this.name = name;
-	}
-
-	/**
-	 * Resolve the model object.
-	 * Any URL strings in the model are resolved relative to the 
-	 * base URL argument. Any translatable strings in the model that are
-	 * specified as translation keys are localized using the supplied 
-	 * resource bundle.
-	 * 
-	 * @param base URL
-	 * @param bundleURL resource bundle URL
-	 * @exception MalformedURLException
-	 * @since 2.0
-	 */
-	public void resolve(URL base,URL bundleURL)
-		throws MalformedURLException {
-		// resolve local elements
-		url = resolveURL(base,bundleURL, urlString);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/InvalidSiteTypeException.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/InvalidSiteTypeException.java
deleted file mode 100644
index de085ce..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/InvalidSiteTypeException.java
+++ /dev/null
@@ -1,51 +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 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.update.core.model;

-

-/**

- * Exception thrown when the type of the site discovered in the site manifest

- * does not correspond to the type expected by the concrete site factory.

- * 

- * <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>

- * @see org.eclipse.update.core.model.SiteModelFactory#canParseSiteType(String)

- * @since 2.0

- */

-

-public class InvalidSiteTypeException extends Exception {

-

-    private static final long serialVersionUID = 1L;

-    private String newSiteType;

-

-	/**

-	 * Construct the exception indicating the detected site type

-	 * 

-	 * @since 2.0

-	 */

-	public InvalidSiteTypeException(String newType) {

-		super();

-		newSiteType = newType;

-	}

-

-	/**

-	 * Returns the site type detected in the parsed site manifest

-	 * 

-	 * @return site type

-	 * @since 2.0

-	 */

-	public String getNewType() {

-		return newSiteType;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ModelObject.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ModelObject.java
deleted file mode 100644
index 6dc90cf..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/ModelObject.java
+++ /dev/null
@@ -1,382 +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 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.update.core.model;

-

-import java.lang.reflect.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Root model object. Extended by all model objects.

- * <p>

- * This class cannot be instantiated and must be subclassed.

- * </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 abstract class ModelObject extends PlatformObject {

-

-	private boolean readOnly = false;

-

-	private static final String KEY_PREFIX = "%"; //$NON-NLS-1$

-	private static final String KEY_DOUBLE_PREFIX = KEY_PREFIX + KEY_PREFIX;

-

-	private static Map bundles;

-

-	/**

-	 * Creates a base model object.

-	 * 

-	 * @since 2.0

-	 */

-	protected ModelObject() {

-	}

-

-	/**

-	 * Checks that this model object is writeable.  A runtime exception

-	 * is thrown if it is not.

-	 * 

-	 * @since 2.0

-	 */

-	protected final void assertIsWriteable() {

-		Assert.isTrue(!isReadOnly(), Policy.bind("ModelObject.ModelReadOnly"));	//$NON-NLS-1$

-	}

-

-	/**

-	 * Sets this model object and all of its descendents to be read-only.

-	 * Subclasses may extend this implementation.

-	 * 

-	 * @see #isReadOnly

-	 * @since 2.0

-	 */

-	public void markReadOnly() {

-		readOnly = true;

-	}

-

-	/**

-	 * Returns whether or not this model object is read-only.

-	 * 

-	 * @return <code>true</code> if this model object is read-only,

-	 *		<code>false</code> otherwise

-	 * @see #markReadOnly

-	 * @since 2.0

-	 */

-	public boolean isReadOnly() {

-		return readOnly;

-	}

-

-	/**

-	 * Delegate setting of read-only

-	 *

-	 * @param o object to delegate to. Must be of type ModelObject.

-	 * @see #isReadOnly

-	 * @since 2.0

-	 */

-	protected void markReferenceReadOnly(ModelObject o) {

-		if (o == null)

-			return;

-		o.markReadOnly();

-	}

-

-	/**

-	 * Delegate setting of read-only

-	 *

-	 * @param o object array to delegate to. Each element must be of type ModelObject.

-	 * @see #isReadOnly

-	 * @since 2.0

-	 */

-	protected void markListReferenceReadOnly(ModelObject[] o) {

-		if (o == null)

-			return;

-		for (int i = 0; i < o.length; i++) {

-			o[i].markReadOnly();

-		}

-	}

-

-	/**

-	 * Resolve the model element. This method allows any relative URL strings

-	 * to be resolved to actual URL. It also allows any translatable strings

-	 * to be localized.

-	 * 

-	 * Subclasses need to override this method to perform the actual resolution.

-	 * @param base base URL.

-	 * @param bundleURL resource bundle URL.

-	 * @exception MalformedURLException

-	 * @since 2.0

-	 */

-	public void resolve(URL base, URL bundleURL) throws MalformedURLException {

-		return;

-	}

-

-	/**

-	 * Delegate resolution to referenced model

-	 *

-	 * @param o object to delegate to. Must be of type ModelObject.

-	 * @param url base URL.

-	 * @param bundleURL resource bundle URL.

-	 * @exception MalformedURLException

-	 * @since 2.0

-	 */

-	protected void resolveReference(ModelObject o, URL url, URL bundleURL) throws MalformedURLException {

-		if (o == null)

-			return;

-		o.resolve(url, bundleURL);

-	}

-

-	/**

-	 * Delegate resolution to list of referenced models

-	 *

-	 * @param o object array to delegate to. Each element must be of type ModelObject.

-	 * @param url base URL.

-	 * @param bundleURL resource bundle URL.

-	 * @exception MalformedURLException

-	 * @since 2.0

-	 */

-	protected void resolveListReference(ModelObject[] o, URL url, URL bundleURL) throws MalformedURLException {

-		if (o == null)

-			return;

-		for (int i = 0; i < o.length; i++) {

-			o[i].resolve(url, bundleURL);

-		}

-	}

-

-	/**

-	 * Resolve a URL based on context

-	 *

-	 * @param context base URL.

-	 * @param bundleURL resource bundle URL.

-	 * @param urlString url string from model.

-	 * @return URL, or <code>null</code>.

-	 * @exception MalformedURLException

-	 * @since 2.0

-	 */

-	protected URL resolveURL(URL context, URL bundleURL, String urlString) throws MalformedURLException {

-

-		// URL string was not specified

-		if (urlString == null || urlString.trim().equals("")) //$NON-NLS-1$

-			return null;

-

-		// check to see if we have NL-sensitive URL

-		String resolvedUrlString = resolveNLString(bundleURL, urlString);

-

-		resolvedUrlString = resolvePlatfromConfiguration(resolvedUrlString);

-

-		// if we don't have a base url, use only the supplied string

-		if (context == null)

-			return new URL(resolvedUrlString);

-

-		// otherwise return new URL in context of base URL

-		return new URL(context, resolvedUrlString);

-	}

-	/**

-	 * Resolves the URL based on platfrom Configuration

-	 * $os$\$ws$\license.txt will become

-	 * win32\win32\license.txt on a system where os=win32 and ws=win32

-	 * 

-	 * @param resolvedUrlString

-	 * @return String

-	 */

-	private String resolvePlatfromConfiguration(String resolvedUrlString) {

-		int osIndex = resolvedUrlString.indexOf("$os$"); //$NON-NLS-1$

-		if (osIndex != -1)

-			return getExtendedString(resolvedUrlString);

-

-		int wsIndex = resolvedUrlString.indexOf("$ws$"); //$NON-NLS-1$

-		if (wsIndex != -1)

-			return getExtendedString(resolvedUrlString);

-

-		int nlIndex = resolvedUrlString.indexOf("$nl$"); //$NON-NLS-1$

-		if (nlIndex != -1)

-			return getExtendedString(resolvedUrlString);

-

-		int archIndex = resolvedUrlString.indexOf("$arch$"); //$NON-NLS-1$

-		if (archIndex != -1)

-			return getExtendedString(resolvedUrlString);

-

-		return resolvedUrlString;

-	}

-

-	private String getExtendedString(String resolvedUrlString) {

-		IPath path = new Path(resolvedUrlString);

-		path = getExpandedPath(path);

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_WARNINGS) {

-			UpdateCore.warn("Resolved :" + resolvedUrlString + " as:" + path.toOSString()); //$NON-NLS-1$ //$NON-NLS-2$

-		}

-

-		return path.toOSString();

-	}

-

-	private IPath getExpandedPath(IPath path) {

-		String first = path.segment(0);

-		if (first != null) {

-			IPath rest = getExpandedPath(path.removeFirstSegments(1));

-			if (first.equals("$ws$")) { //$NON-NLS-1$

-				path = new Path(SiteManager.getWS()).append(rest);

-			} else if (first.equals("$os$")) { //$NON-NLS-1$

-				path = new Path(SiteManager.getOS()).append(rest);

-			} else if (first.equals("$nl$")) { //$NON-NLS-1$

-				path = new Path(SiteManager.getNL()).append(rest);

-			} else if (first.equals("$arch$")) { //$NON-NLS-1$

-				path = new Path(SiteManager.getOSArch()).append(rest);

-			}

-		}

-		return path;

-	}

-

-	/**

-	 * Returns a resource string corresponding to the given argument 

-	 * value and bundle.

-	 * If the argument value specifies a resource key, the string

-	 * is looked up in the given resource bundle. If the argument does not

-	 * specify a valid key, the argument itself is returned as the

-	 * resource string. The key lookup is performed against the

-	 * specified resource bundle. If a resource string 

-	 * corresponding to the key is not found in the resource bundle

-	 * the key value, or any default text following the key in the

-	 * argument value is returned as the resource string.

-	 * A key is identified as a string begining with the "%" character.

-	 * Note that the "%" character is stripped off prior to lookup

-	 * in the resource bundle.

-	 * <p>

-	 * For example, assume resource bundle plugin.properties contains

-	 * name = Project Name

-	 * <pre>

-	 *     resolveNLString(b,"Hello World") returns "Hello World"</li>

-	 *     resolveNLString(b,"%name") returns "Project Name"</li>

-	 *     resolveNLString(b,"%name Hello World") returns "Project Name"</li>

-	 *     resolveNLString(b,"%abcd Hello World") returns "Hello World"</li>

-	 *     resolveNLString(b,"%abcd") returns "%abcd"</li>

-	 *     resolveNLString(b,"%%name") returns "%name"</li>

-	 * </pre>

-	 * </p>

-	 * 

-	 * @param bundleURL resource bundle url.

-	 * @param string translatable string from model

-	 * @return string, or <code>null</code>

-	 * @since 2.0

-	 */

-	protected String resolveNLString(URL bundleURL, String string) {

-

-		if (string == null)

-			return null;

-

-		String s = string.trim();

-

-		if (s.equals("")) //$NON-NLS-1$

-			return string;

-

-		if (!s.startsWith(KEY_PREFIX))

-			return string;

-

-		if (s.startsWith(KEY_DOUBLE_PREFIX))

-			return s.substring(1);

-

-		int ix = s.indexOf(" "); //$NON-NLS-1$

-		String key = ix == -1 ? s : s.substring(0, ix);

-		String dflt = ix == -1 ? s : s.substring(ix + 1);

-

-		ResourceBundle b = getResourceBundle(bundleURL);

-

-		if (b == null)

-			return dflt;

-

-		try {

-			return b.getString(key.substring(1));

-		} catch (MissingResourceException e) {

-			return dflt;

-		}

-	}

-

-	/**

-	 * Returns a concrete array type for the elements of the specified

-	 * list. The method assumes all the elements of the list are the same

-	 * concrete type as the first element in the list.

-	 * 

-	 * @param l list

-	 * @return concrete array type, or <code>null</code> if the array type

-	 * could not be determined (the list is <code>null</code> or empty)

-	 * @since 2.0

-	 */

-	protected Object[] arrayTypeFor(List l) {

-		if (l == null || l.size() == 0)

-			return null;

-		return (Object[]) Array.newInstance(l.get(0).getClass(), 0);

-	}

-

-	/**

-	 * Returns a concrete array type for the elements of the specified

-	 * set. The method assumes all the elements of the set are the same

-	 * concrete type as the first element in the set.

-	 * 

-	 * @param s set

-	 * @return concrete array type, or <code>null</code> if the array type

-	 * could not be determined (the set is <code>null</code> or empty)

-	 * @since 2.0

-	 */

-	protected Object[] arrayTypeFor(Set s) {

-		if (s == null || s.size() == 0)

-			return null;

-		Iterator i = s.iterator();

-		return (Object[]) Array.newInstance(i.next().getClass(), 0);

-	}

-

-	/**

-		* Helper method to access resouce bundle for feature. The default 

-		* implementation attempts to load the appropriately localized 

-		* feature.properties file.

-		* 

-		* @param url base URL used to load the resource bundle.

-		* @return resource bundle, or <code>null</code>.

-		* @since 2.0

-		*/

-	protected ResourceBundle getResourceBundle(URL url) {

-

-		if (url == null)

-			return null;

-

-		if (bundles == null) {

-			bundles = new HashMap();

-		} else {

-			ResourceBundle bundle = (ResourceBundle) bundles.get(url.toExternalForm());

-			if (bundle != null)

-				return bundle;

-		}

-

-		ResourceBundle bundle = null;

-		try {

-			url = UpdateManagerUtils.asDirectoryURL(url);

-			ClassLoader l = new URLClassLoader(new URL[] { url }, null);

-			bundle = ResourceBundle.getBundle(getPropertyName(), Locale.getDefault(), l);

-			bundles.put(url.toExternalForm(), bundle);

-		} catch (MissingResourceException e) {

-			UpdateCore.warn(e.getLocalizedMessage() + ":" + url.toExternalForm()); //$NON-NLS-1$

-		} catch (MalformedURLException e) {

-			UpdateCore.warn(e.getLocalizedMessage()); //$NON-NLS-1$

-		}

-		return bundle;

-	}

-

-	/**

-	 * Method getPropertyName.

-	 * @return String

-	 */

-	protected String getPropertyName() {

-		return Feature.FEATURE_FILE;

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/NonPluginEntryModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/NonPluginEntryModel.java
deleted file mode 100644
index 9aa8d73..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/NonPluginEntryModel.java
+++ /dev/null
@@ -1,63 +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 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.update.core.model;

-

-/**

- * Non-plug-in entry model object.

- * <p>

- * This class may be instantiated or subclassed by clients. However, in most 

- * cases clients should instead instantiate or subclass the provided 

- * concrete implementation of this model.

- * </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>

- * @see org.eclipse.update.core.NonPluginEntry

- * @since 2.0

- */

-public class NonPluginEntryModel extends ContentEntryModel {

-

-	private String id = null;

-

-	/**

-	 * Creates a uninitialized non-plug-in entry model object.

-	 * 

-	 * @since 2.0

-	 */

-	public NonPluginEntryModel() {

-		super();

-	}

-

-	/**

-	 * Returns the entry identifier.

-	 *

-	 * @return entry identifier, or <code>null</code>

-	 * @since 2.0

-	 */

-	public String getIdentifier() {

-		return id;

-	}

-

-	/**

-	 * Sets the entry identifier.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param id entry identifier.

-	 * @since 2.0

-	 */

-	public void setIdentifier(String id) {

-		assertIsWriteable();

-		this.id = id;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/PluginEntryModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/PluginEntryModel.java
deleted file mode 100644
index 59154d0..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/PluginEntryModel.java
+++ /dev/null
@@ -1,163 +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 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.update.core.model;

-

-

-/**

- * Plug-in entry model object.

- * <p>

- * This class may be instantiated or subclassed by clients. However, in most 

- * cases clients should instead instantiate or subclass the provided 

- * concrete implementation of this model.

- * </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>

- * @see org.eclipse.update.core.PluginEntry

- * @since 2.0

- */

-public class PluginEntryModel extends ContentEntryModel {

-

-	private String pluginId;

-	private String pluginVersion;

-	private boolean isFragment = false;

-	private boolean unpack = true;

-	

-	/**

-	 * Creates a uninitialized plug-in entry model object.

-	 * 

-	 * @since 2.0

-	 */

-	public PluginEntryModel() {

-		super();

-	}

-

-	/**

-	 * Compares two plug-in models for equality

-	 * 

-	 * @param obj other model to compare to

-	 * @return <code>true</code> if the models are equal, <code>false</code> otherwise

-	 * @since 2.0

-	 */

-	public boolean equals(Object obj) {

-		if (!(obj instanceof PluginEntryModel))

-			return false;

-		PluginEntryModel model = (PluginEntryModel) obj;

-		

-		return (

-			(getPluginIdentifier().equals(model.getPluginIdentifier()))

-				&& (getPluginVersion().equals(model.getPluginVersion()))

-				&& (isFragment() == model.isFragment()));

-	}

-

-	/**

-	 * Returns the plug-in identifier for this entry.

-	 * 

-	 * @return the plug-in identifier, or <code>null</code>

-	 * @since 2.0 

-	 */

-	public String getPluginIdentifier() {

-		return pluginId;

-	}

-

-	/**

-	 * Returns the plug-in version for this entry.

-	 * 

-	 * @return the plug-in version, or <code>null</code>

-	 * @since 2.0 

-	 */

-	public String getPluginVersion() {

-		return pluginVersion;

-	}

-

-	/**

-	 * Indicates whether the entry describes a full plug-in, or 

-	 * a plug-in fragment.

-	 * 

-	 * @return <code>true</code> if the entry is a plug-in fragment, 

-	 * <code>false</code> if the entry is a plug-in

-	 * @since 2.0 

-	 */

-	public boolean isFragment() {

-		return isFragment;

-	}

-

-	/**

-	 * Sets the entry plug-in identifier.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param pluginId the entry identifier.

-	 * @since 2.0

-	 */

-	public void setPluginIdentifier(String pluginId) {

-		assertIsWriteable();

-		this.pluginId = pluginId;

-	}

-

-	/**

-	 * Sets the entry plug-in version.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param pluginVersion the entry version.

-	 * @since 2.0

-	 */

-	public void setPluginVersion(String pluginVersion) {

-		assertIsWriteable();

-		this.pluginVersion = pluginVersion;

-	}

-

-	/**

-	 * Indicates whether this entry represents a fragment or plug-in.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param isFragment fragment setting

-	 * @since 2.0

-	 */

-	public void isFragment(boolean isFragment) {

-		assertIsWriteable();

-		this.isFragment = isFragment;

-	}

-

-	/**

-	 * @return Indicates whether plugin should be unpacked during installation

-	 * or can run from a jar

-	 * @since 3.0

-	 */

-	public boolean isUnpack() {

-		// TODO this is a candidate for IPluginEntry API

-		return unpack;

-	}

-	/**

-	 * @param unpack Sets whether plugin should be unpacked during installation

-	 * or can run from a jar

-	 * @since 3.0

-	 *

-	 */

-	public void setUnpack(boolean unpack) {

-		// TODO this is a candidate for IPluginEntry API

-		assertIsWriteable();

-		this.unpack = unpack;

-	}

-

-	/**

-	 * @see Object#toString()

-	 */

-	public String toString() {

-		String msg = (getPluginIdentifier()!=null)?getPluginIdentifier().toString():""; //$NON-NLS-1$

-		msg += getPluginVersion()!=null?" "+getPluginVersion().toString():""; //$NON-NLS-1$ //$NON-NLS-2$

-		msg += isFragment()?" fragment":" plugin"; //$NON-NLS-1$ //$NON-NLS-2$

-		return msg;

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/SiteModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/SiteModel.java
deleted file mode 100644
index db4c97e..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/SiteModel.java
+++ /dev/null
@@ -1,450 +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 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.update.core.model;
-
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.model.*;
-
-/**
- * Site model object.
- * <p>
- * This class may be instantiated or subclassed by clients. However, in most 
- * cases clients should instead instantiate or subclass the provided 
- * concrete implementation of this model.
- * </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>
- * @see org.eclipse.update.core.Site
- * @since 2.0
- */
-public class SiteModel extends ModelObject {
-
-	private String type;
-	private URLEntryModel description;
-	private List /*of FeatureReferenceModel*/	featureReferences;
-	private List /*of ArchiveReferenceModel*/	archiveReferences;
-	private Set /*of CategoryModel*/	categories;
-	private List /* of URLEntryModel */ mirrors;
-	private String locationURLString;
-	private URL locationURL;
-	private String mirrorsURLString;
-	private ConfiguredSiteModel configuredSiteModel;
-
-	/**
-	 * Creates an uninitialized site model object.
-	 * 
-	 * @since 2.0
-	 */
-	public SiteModel() {
-		super();
-	}
-
-	/** 
-	 * Returns the site type.
-	 * 
-	 * @return site type, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * Returns the site description.
-	 * 
-	 * @return site description, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public URLEntryModel getDescriptionModel() {
-		return description;
-	}
-
-	/**
-	 * Returns an array of feature reference models on this site.
-	 * 
-	 * @return an array of feature reference models, or an empty array.
-	 * @since 2.0
-	 */
-	public SiteFeatureReferenceModel[] getFeatureReferenceModels() {
-		if (featureReferences == null || featureReferences.size() == 0)
-			return new SiteFeatureReferenceModel[0];
-
-		return (SiteFeatureReferenceModel[]) featureReferences.toArray(arrayTypeFor(featureReferences));
-	}
-
-	/**
-	 * Returns an array of plug-in and non-plug-in archive reference models
-	 * on this site
-	 * 
-	 * @return an array of archive reference models, or an empty array if there are
-	 * no archives known to this site.
-	 * @since 2.0
-	 */
-	public ArchiveReferenceModel[] getArchiveReferenceModels() {
-		if (archiveReferences == null || archiveReferences.size() == 0)
-			return new ArchiveReferenceModel[0];
-
-		return (ArchiveReferenceModel[]) archiveReferences.toArray(arrayTypeFor(archiveReferences));
-	}
-
-	/**
-	 * Returns an array of category models for this site.
-	 * 
-	 * @return array of site category models, or an empty array.
-	 * @since 2.0
-	 */
-	public CategoryModel[] getCategoryModels() {
-		if (categories == null || categories.size()==0)
-			return new CategoryModel[0];
-
-		return (CategoryModel[]) categories.toArray(arrayTypeFor(categories));
-	}
-
-	/**
-	 * Returns the unresolved URL string for the site.
-	 *
-	 * @return url string, or <code>null</code>
-	 * @since 2.0
-	 */
-	public String getLocationURLString() {
-		return locationURLString;
-	}
-
-	/**
-	 * Returns the resolved URL for the site.
-	 * 
-	 * @return url, or <code>null</code>
-	 * @since 2.0
-	 */
-	public URL getLocationURL() {
-		return locationURL;
-	}
-
-	/**
-	 * Sets the site type.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param type site type
-	 * @since 2.0
-	 */
-	public void setType(String type) {
-		assertIsWriteable();
-		this.type = type;
-	}
-
-	/**
-	 * Sets the site description.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param description site description
-	 * @since 2.0
-	 */
-	public void setDescriptionModel(URLEntryModel description) {
-		assertIsWriteable();
-		this.description = description;
-	}
-
-	/**
-	 * Sets the feature references for this site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param featureReferences an array of feature reference models
-	 * @since 2.0
-	 */
-	public void setFeatureReferenceModels(FeatureReferenceModel[] featureReferences) {
-		assertIsWriteable();
-		if (featureReferences == null)
-			this.featureReferences = null;
-		else
-			this.featureReferences = new ArrayList(Arrays.asList(featureReferences));
-	}
-
-	/**
-	 * Sets the archive references for this site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param archiveReferences an array of archive reference models
-	 * @since 2.0
-	 */
-	public void setArchiveReferenceModels(ArchiveReferenceModel[] archiveReferences) {
-		assertIsWriteable();
-		if (archiveReferences == null)
-			this.archiveReferences = null;
-		else
-			this.archiveReferences = new ArrayList(Arrays.asList(archiveReferences));
-	}
-
-	/**
-	 * Sets the site categories.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param categories an array of category models
-	 * @since 2.0
-	 */
-	public void setCategoryModels(CategoryModel[] categories) {
-		assertIsWriteable();
-		if (categories == null)
-			this.categories = null;
-		else {
-			this.categories = new TreeSet(CategoryModel.getComparator());
-			this.categories.addAll(Arrays.asList(categories));
-		}
-	}
-
-	/**
-	 * Sets the unresolved URL for the site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param locationURLString url for the site (as a string)
-	 * @since 2.0
-	 */
-	public void setLocationURLString(String locationURLString) {
-		assertIsWriteable();
-		this.locationURLString = locationURLString;
-	}
-
-	/**
-	 * Adds a feature reference model to site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param featureReference feature reference model
-	 * @since 2.0
-	 */
-	public void addFeatureReferenceModel(SiteFeatureReferenceModel featureReference) {
-		assertIsWriteable();
-		if (this.featureReferences == null)
-			this.featureReferences = new ArrayList();
-		// PERF: do not check if already present 
-		//if (!this.featureReferences.contains(featureReference))
-			this.featureReferences.add(featureReference);
-	}
-
-	/**
-	 * Adds an archive reference model to site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param archiveReference archive reference model
-	 * @since 2.0
-	 */
-	public void addArchiveReferenceModel(ArchiveReferenceModel archiveReference) {
-		assertIsWriteable();
-		if (this.archiveReferences == null)
-			this.archiveReferences = new ArrayList();
-		if (!this.archiveReferences.contains(archiveReference))
-			this.archiveReferences.add(archiveReference);
-	}
-
-	/**
-	 * Adds a category model to site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param category category model
-	 * @since 2.0
-	 */
-	public void addCategoryModel(CategoryModel category) {
-		assertIsWriteable();
-		if (this.categories == null)
-			this.categories = new TreeSet(CategoryModel.getComparator());
-		if (!this.categories.contains(category))
-			this.categories.add(category);
-	}
-	
-	/**
-	 * Adds a mirror site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param mirror mirror model 
-	 * @since 3.1
-	 */
-	public void addMirrorModel(URLEntryModel mirror) {
-		assertIsWriteable();
-		if (this.mirrors == null)
-			this.mirrors = new ArrayList();
-		if (!this.mirrors.contains(mirror))
-			this.mirrors.add(mirror);
-	}
-
-	/**
-	 * Removes a feature reference model from site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param featureReference feature reference model
-	 * @since 2.0
-	 */
-	public void removeFeatureReferenceModel(FeatureReferenceModel featureReference) {
-		assertIsWriteable();
-		if (this.featureReferences != null)
-			this.featureReferences.remove(featureReference);
-	}
-
-	/**
-	 * Removes an archive reference model from site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param archiveReference archive reference model
-	 * @since 2.0
-	 */
-	public void removeArchiveReferenceModel(ArchiveReferenceModel archiveReference) {
-		assertIsWriteable();
-		if (this.archiveReferences != null)
-			this.archiveReferences.remove(archiveReference);
-	}
-
-	/**
-	 * Removes a category model from site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param category category model
-	 * @since 2.0
-	 */
-	public void removeCategoryModel(CategoryModel category) {
-		assertIsWriteable();
-		if (this.categories != null)
-			this.categories.remove(category);
-	}
-
-	/**
-	 * Removes a mirror from site.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param mirror mirror to remove
-	 * @since 3.1
-	 */
-	public void removeMirror(URLEntryModel mirror) {
-		assertIsWriteable();
-		if (this.mirrors != null)
-			this.mirrors.remove(mirror);
-	}
-	
-	/**
-	 * Marks the model object as read-only.
-	 * 
-	 * @since 2.0
-	 */
-	public void markReadOnly() {
-		super.markReadOnly();
-		markReferenceReadOnly(getDescriptionModel());
-		markListReferenceReadOnly(getFeatureReferenceModels());
-		markListReferenceReadOnly(getArchiveReferenceModels());
-		markListReferenceReadOnly(getCategoryModels());
-	}
-
-	/**
-	 * Resolve the model object.
-	 * Any URL strings in the model are resolved relative to the 
-	 * base URL argument. Any translatable strings in the model that are
-	 * specified as translation keys are localized using the supplied 
-	 * resource bundle.
-	 * 
-	 * @param base URL
-	 * @param bundleURL resource bundle URL
-	 * @exception MalformedURLException
-	 * @since 2.0
-	 */
-	public void resolve(URL base, URL bundleURL) throws MalformedURLException {
-
-		// Archives and feature are relative to location URL
-		// if the Site element has a URL tag: see spec	
-		locationURL = resolveURL(base, bundleURL, getLocationURLString());
-		if (locationURL == null)
-			locationURL = base;
-		resolveListReference(getFeatureReferenceModels(), locationURL, bundleURL);
-		resolveListReference(getArchiveReferenceModels(), locationURL, bundleURL);
-
-		resolveReference(getDescriptionModel(), base, bundleURL);
-		resolveListReference(getCategoryModels(), base, bundleURL);
-		
-		URL url = resolveURL(base, bundleURL, mirrorsURLString);
-		if (url != null)
-			mirrorsURLString = url.toString();
-	}
-
-	/**
-	 * 
-	 */
-	public ConfiguredSiteModel getConfiguredSiteModel() {
-		return this.configuredSiteModel;
-	}
-
-	/**
-	 * 
-	 */
-	public void setConfiguredSiteModel(ConfiguredSiteModel configuredSiteModel) {
-		this.configuredSiteModel = configuredSiteModel;
-	}
-
-	/**
-	 * @see org.eclipse.update.core.model.ModelObject#getPropertyName()
-	 */
-	protected String getPropertyName() {
-		return Site.SITE_FILE;
-	}
-
-	/**
-	 * Return an array of updat site mirrors
-	 * 
-	 * @return an array of mirror entries, or an empty array.
-	 * @since 3.1
-	 */
-	public URLEntryModel[] getMirrorSiteEntryModels() {
-		//delayedResolve(); no delay;
-		if ( mirrors == null || mirrors.size() == 0) 
-			// see if we can get mirrors from the provided url
-			if (mirrorsURLString != null) 
-				doSetMirrorSiteEntryModels(DefaultSiteParser.getMirrors(mirrorsURLString, new SiteURLFactory()));
-				
-		if (mirrors == null || mirrors.size() == 0)
-			return new URLEntryModel[0];
-		else
-			return (URLEntryModel[]) mirrors.toArray(arrayTypeFor(mirrors));
-	}
-	
-	/**
-	 * Sets additional mirror sites
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param mirrors additional update site mirrors
-	 * @since 3.1
-	 */
-	public void setMirrorSiteEntryModels(URLEntryModel[] mirrors) {
-		assertIsWriteable();
-		doSetMirrorSiteEntryModels(mirrors);
-	}
-	
-	private void doSetMirrorSiteEntryModels(URLEntryModel[] mirrors) {
-		if (mirrors == null || mirrors.length == 0)
-			this.mirrors = null;
-		else
-			this.mirrors = new ArrayList(Arrays.asList(mirrors));
-	}
-	
-	/**
-	 * Sets the mirrors url. Mirror sites will then be obtained from this mirror url later.
-	 * This method is complementary to setMirrorsiteEntryModels(), and only one of these 
-	 * methods should be called.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param mirrorsURL additional update site mirrors
-	 * @since 3.1
-	 */
-	public void setMirrorsURLString(String mirrorsURL) {
-		assertIsWriteable();
-		this.mirrorsURLString = mirrorsURL;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/SiteModelFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/SiteModelFactory.java
deleted file mode 100644
index 4b4c7d3..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/SiteModelFactory.java
+++ /dev/null
@@ -1,151 +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 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.update.core.model;

-

-import java.io.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.xml.sax.*;

-

-/**

- * Default site model factory.

- * <p>

- * This class may be instantiated or subclassed by clients. However, in most 

- * cases clients should instead subclass the provided base implementation 

- * of this factory.

- * </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>

- * @see org.eclipse.update.core.BaseSiteFactory

- * @since 2.0

- */

-public class SiteModelFactory {

-	

-	private static DefaultSiteParser parser = new DefaultSiteParser();

-

-	/**

-	 * Creates a default site factory.

-	 * 

-	 * @since 2.0

-	 */

-	public SiteModelFactory() {

-		super();

-	}

-

-	/**

-	 * Indicates whether this factory can handle the specified site type. This

-	 * method is intended to be overridden by subclasses.

-	 * 

-	 * @param type site type identifier

-	 * @return <code>true</code> if the type can be handled, otherwise <code>false</code>

-	 * @since 2.0

-	 */

-	public boolean canParseSiteType(String type) {

-		// return true if type was not specified (ie. is null or empty string)

-		return (type == null || type.trim().equals("")); //$NON-NLS-1$

-	}

-

-	/**

-	 * Creates and populates a default site from stream.

-	 * The parser assumes the stream contains a default site manifest

-	 * (site.xml) as documented by the platform.

-	 * 

-	 * @param stream site stream

-	 * @return populated site model

-	 * @exception CoreException

-	 * @exception InvalidSiteTypeException

-	 * @since 2.0

-	 */

-	public SiteModel parseSite(InputStream stream)

-		throws CoreException, InvalidSiteTypeException {

-		SiteModel result = null;

-		try {

-			parser.init(this);

-			result = parser.parse(stream);

-			if (parser.getStatus()!=null) {

-				// some internalError were detected

-				IStatus status = parser.getStatus();

-				throw new CoreException(status);

-			}

-		} catch (SAXException e) {

-			// invalid Site type

-			if (e.getException() instanceof InvalidSiteTypeException) {

-				throw (InvalidSiteTypeException) e.getException();

-			}

-

-			throw Utilities.newCoreException(Policy.bind("SiteModelObject.ErrorParsingSiteStream"),e); //$NON-NLS-1$

-		} catch (IOException e){

-			throw Utilities.newCoreException(Policy.bind("SiteModelObject.ErrorAccessingSiteStream"),e); //$NON-NLS-1$

-		}

-		return result;

-	}

-

-	/**

-	 * Create a default site model.

-	 * 

-	 * @see SiteModel

-	 * @return site model

-	 * @since 2.0

-	 */

-	public SiteModel createSiteMapModel() {

-		return new SiteModel();

-	}

-

-	/**

-	 * Create a default site feature reference model.

-	 * 

-	 * @see SiteFeatureReferenceModel

-	 * @return site feature reference model

-	 * @since 2.0

-	 */

-	public SiteFeatureReferenceModel createFeatureReferenceModel() {

-		return new SiteFeatureReferenceModel();

-	}

-

-	/**

-	 * Create a default archive reference model.

-	 * 

-	 * @see ArchiveReferenceModel

-	 * @return archive reference model

-	 * @since 2.0

-	 */

-	public ArchiveReferenceModel createArchiveReferenceModel() {

-		return new ArchiveReferenceModel();

-	}

-

-	/**

-	 * Create a default annotated URL model.

-	 * 

-	 * @see URLEntryModel

-	 * @return annotated URL model

-	 * @since 2.0

-	 */

-	public URLEntryModel createURLEntryModel() {

-		return new URLEntryModel();

-	}

-

-	/**

-	 * Create a default category model.

-	 * 

-	 * @see CategoryModel

-	 * @return category model

-	 * @since 2.0

-	 */

-	public CategoryModel createSiteCategoryModel() {

-		return new CategoryModel();

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/URLEntryModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/URLEntryModel.java
deleted file mode 100644
index bc70a0c..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/URLEntryModel.java
+++ /dev/null
@@ -1,180 +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 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.update.core.model;

-

-import java.net.*;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-

-/**

- * Annotated URL model object.

- * <p>

- * This class may be instantiated or subclassed by clients. However, in most 

- * cases clients should instead instantiate or subclass the provided 

- * concrete implementation of this model.

- * </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>

- * @see org.eclipse.update.core.URLEntry

- * @since 2.0

- */

-

-public class URLEntryModel extends ModelObject {

-	

-	private String annotation;

-	private String localizedAnnotation;

-	private String urlString;

-	private URL url;

-	

-	private int type = IURLEntry.UPDATE_SITE;

-	

-	//performance

-	private URL bundleURL;

-	private URL base;

-	private boolean resolved=false;

-	

-	/**

-	 * Creates a uninitialized annotated URL model object.

-	 * 

-	 * @since 2.0

-	 */

-	public URLEntryModel() {

-		super();

-	}

-		

-	/**

-	 * Returns the url annotation. If the model object has been resolved, 

-	 * the annotation is localized.

-	 * 

-	 * @return url annotation, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getAnnotation() {

-		delayedResolve();

-		if (localizedAnnotation != null)

-			return localizedAnnotation;

-		else

-			return annotation;

-	}

-		

-	/**

-	 * returns the non-localized url annotation.

-	 * 

-	 * @return non-localized url annotation, or <code>null</code>.

-	 * @since 2.0

-	 */

-	public String getAnnotationNonLocalized() {

-		return annotation;

-	}

-

-	/**

-	 * Returns the unresolved url string.

-	 *

-	 * @return url string, or <code>null</code>

-	 * @since 2.0

-	 */

-	public String getURLString() {

-		delayedResolve();

-		return urlString;

-	}

-	

-	/**

-	 * Returns the resolved URL.

-	 * 

-	 * @return url, or <code>null</code>

-	 * @since 2.0

-	 */

-	public URL getURL() {

-		delayedResolve();

-		return url;

-	}

-	

-	/**

-	 * Sets the annotation.

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param annotation annotation

-	 * @since 2.0

-	 */	

-	public void setAnnotation(String annotation) {

-		assertIsWriteable();

-		this.annotation = annotation;

-		this.localizedAnnotation = null;

-	}

-	

-	/**

-	 * Sets the url string

-	 * Throws a runtime exception if this object is marked read-only.

-	 *

-	 * @param urlString url string

-	 * @since 2.0

-	 */	

-	public void setURLString(String urlString) {

-		assertIsWriteable();

-		this.urlString = urlString;

-		this.url = null;

-	}

-	

-	/**

-	 * Resolve the model object.

-	 * Any URL strings in the model are resolved relative to the 

-	 * base URL argument. Any translatable strings in the model that are

-	 * specified as translation keys are localized using the supplied 

-	 * resource bundle.

-	 * 

-	 * @param base URL

-	 * @param bundleURL  resource bundle url

-	 * @exception MalformedURLException

-	 * @since 2.0

-	 */

-	public void resolve(URL base, URL bundleURL) throws MalformedURLException {

-		this.base = base;

-		this.bundleURL = bundleURL;

-	}

-

-

-	private void delayedResolve() {

-		

-		//PERF: delay resolution

-		if (resolved)return;

-		

-		resolved= true;

-		// resolve local elements

-		localizedAnnotation = resolveNLString(bundleURL, annotation);

-		try {

-			url = resolveURL(base,bundleURL, urlString);

-		} catch (MalformedURLException e){

-			UpdateCore.warn("",e); //$NON-NLS-1$

-		}

-	}

-

-	/**

-	 * Returns the specified type.

-	 * 

-	 * @since 2.1

-	 */

-	public int getType() {

-		return type;

-	}

-

-	/**

-	 * Method setType.

-	 * @param i

-	 */

-	public void setType(int i) {

-		type = i;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/package.html b/update/org.eclipse.update.core/src/org/eclipse/update/core/model/package.html
deleted file mode 100644
index c8a665d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/model/package.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <meta name="Author" content="IBM">

-   <meta name="GENERATOR" content="Mozilla/4.72 [en] (Windows NT 5.0; U) [Netscape]">

-   <title>Package-level Javadoc</title>

-</head>

-<body>

-Provides model support for extending the base installation

-and update services.

-<h2>

-Package Specification</h2>

-This package provides a convenience implementation of the default model

-objects and parsers used for writing pluggable support of alternate feature

-packaging schemes and update site access mechanisms. In general, most developers

-do not need to directly use the classes defined in this package. Instead,

-they can use the corresponding derived implementation classes contained

-in package <b>org.eclipse.update.core</b>.

-<p>Classes in this package would typically only be used directly when writing

-and alternate set of model objects for a feature and type implementation.

-</body>

-</html>

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/package.html b/update/org.eclipse.update.core/src/org/eclipse/update/core/package.html
deleted file mode 100644
index 6c41140..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/package.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <meta name="Author" content="IBM">

-   <meta name="GENERATOR" content="Mozilla/4.72 [en] (Windows NT 5.0; U) [Netscape]">

-   <title>Package-level Javadoc</title>

-</head>

-<body>

-Provides support for extending the base installation

-and update services.

-<h2>

-Package Specification</h2>

-This package specifies the API required for writing pluggable support of

-alternate feature packaging schemes and update site access mechanisms.

-For the most part, the classes and interfaces in this package implement

-a code pattern <tt>class Foo extends FooModel implements IFoo</tt>. The

-interface (<tt>IFoo</tt> in the pattern) defines the actual API. The convenience

-classes (<tt>Foo</tt> in the pattern) provide a reference implementation

-of the API based on a model (<tt>IFooModel</tt> in the pattern) contained

-in package <b>org.eclipse.update.core.model</b>. In general, developers

-should extend the convenience classes rather than completely reimplementing

-the specified interfaces.

-</body>

-</html>

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Assert.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Assert.java
deleted file mode 100644
index e1d6e89..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Assert.java
+++ /dev/null
@@ -1,168 +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 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.update.internal.core;

- 

-/**

- * <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>

- */

-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() {

-		}

-		

-		/**

-		 * Constructs a new exception with the given message.

-		 */

-		public AssertionFailedException(String detail) {

-		    super(detail);

-		}

-	}

-/* This class is not intended to be instantiated. */

-private Assert() {

-}

-/**

- * Asserts that an argument is legal. If the given boolean is

- * not <code>true</code>, an <code>IllegalArgumentException</code>

- * is thrown.

- *

- * @param expression the 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(message);

-	return expression;

-}

-/**

- * Asserts that the given object is not <code>null</code>. If this

- * is not the case, some kind of unchecked exception is thrown.

- * <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>

- * Method throws an unspecified unchecked exception if the object

- *   is <code>null</code>

- * @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>

- * An unspecified unchecked exception is thrown if the object

- *   is <code>null</code>

- * @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/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/BaseSiteLocalFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/BaseSiteLocalFactory.java
deleted file mode 100644
index 3cd8498..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/BaseSiteLocalFactory.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.core;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.model.*;

-/**

- * 

- */

-public class BaseSiteLocalFactory {

-	/*

-	 * 

-	 */

-	public InstallConfigurationModel createInstallConfigurationModel() {

-		return new InstallConfiguration();

-	}

-	/*

-	 * 

-	 */

-	public ConfigurationActivityModel createConfigurationActivityModel() {

-		return new ConfigurationActivity();

-	}

-	/*

-	 * 

-	 */

-	public ConfiguredSiteModel createConfigurationSiteModel() {

-		return new ConfiguredSite();

-	}

-	/*

-	 * 

-	 */

-	public ConfigurationPolicyModel createConfigurationPolicyModel() {

-		return new ConfigurationPolicy();

-	}

-	/**

-	 * 

-	 */

-	public ConfiguredSiteModel createConfigurationSiteModel(SiteModel site, int policy) {

-		//create config site

-		ConfiguredSiteModel configSite = this.createConfigurationSiteModel();

-		configSite.setSiteModel(site);

-		ConfigurationPolicyModel policyModel = this.createConfigurationPolicyModel();

-		policyModel.setPolicy(policy);

-		configSite.setConfigurationPolicyModel(policyModel);

-		((ConfigurationPolicy) policyModel).setConfiguredSiteModel(configSite);

-		return configSite;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationActivity.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationActivity.java
deleted file mode 100644
index acb36b3..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationActivity.java
+++ /dev/null
@@ -1,82 +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 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.update.internal.core;

-import java.io.*;

-

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.internal.model.*;

-public class ConfigurationActivity

-	extends ConfigurationActivityModel

-	implements IActivity, IWritable {

-		

-	/**

-	 * Default constructor

-	 */		

-	public ConfigurationActivity() {

-	}

-	

-	/**

-	 * Constructor with action

-	 */

-	public ConfigurationActivity(int action) {

-		super();

-		setAction(action);

-		setStatus(STATUS_NOK);

-	}

-	

-	/*

-	 * @see IWritable#write(int, PrintWriter)

-	 */

-	public void write(int indent, PrintWriter w) {

-//		String gap= ""; //$NON-NLS-1$

-//		for (int i= 0; i < indent; i++)

-//			gap += " "; //$NON-NLS-1$

-//		String increment= ""; //$NON-NLS-1$

-//		for (int i= 0; i < IWritable.INDENT; i++)

-//			increment += " "; //$NON-NLS-1$

-//			

-//		// ACTIVITY	

-//		w.print(gap + "<" + InstallConfigurationParser.ACTIVITY + " ");

-//		//$NON-NLS-1$ //$NON-NLS-2$

-//		w.println("action=\"" + getAction() + "\" "); //$NON-NLS-1$ //$NON-NLS-2$

-//		if (getLabel() != null) {

-//			w.println(gap + increment+ "label=\"" + UpdateManagerUtils.Writer.xmlSafe(getLabel()) + "\" ");

-//			//$NON-NLS-1$ //$NON-NLS-2$

-//		}

-//		w.println(gap + increment+"date=\"" + getDate().getTime() + "\" ");

-//		//$NON-NLS-1$ //$NON-NLS-2$

-//		w.println(gap + increment+"status=\"" + getStatus() + "\">"); //$NON-NLS-1$ //$NON-NLS-2$

-//

-//		// end

-//		w.println(gap + "</" + InstallConfigurationParser.ACTIVITY + ">");

-//		//$NON-NLS-1$ //$NON-NLS-2$

-//		w.println(""); //$NON-NLS-1$		

-	}

-	

-	/*

-	 * @see IActivity#getInstallConfiguration()

-	 */

-	public IInstallConfiguration getInstallConfiguration() {

-		return (IInstallConfiguration) getInstallConfigurationModel();

-	}

-	

-	public boolean equals(Object other) {

-		if (!(other instanceof ConfigurationActivity))

-			return false;

-		if (this == other)

-			return true;

-		

-		ConfigurationActivity activity = (ConfigurationActivity) other;

-		return getAction() == activity.getAction()

-				&& getLabel().equals(activity.getLabel())

-				&& getStatus() == activity.getStatus();

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationPolicy.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationPolicy.java
deleted file mode 100644
index 2cf9a4c..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationPolicy.java
+++ /dev/null
@@ -1,516 +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 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.configurator.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.model.*;

-

-/**

- * 

- */

-public class ConfigurationPolicy extends ConfigurationPolicyModel {

-

-	/**

-	 * Constructor for ConfigurationPolicyModel.

-	 */

-	public ConfigurationPolicy() {

-	}

-

-	/**

-	 * Copy Constructor for ConfigurationPolicyModel.

-	 */

-	public ConfigurationPolicy(ConfigurationPolicy configPolicy) {

-		super();

-		setPolicy(configPolicy.getPolicy());

-		setConfiguredFeatureReferences(configPolicy.getConfiguredFeatures());

-		setUnconfiguredFeatureReferences(configPolicy.getUnconfiguredFeatures());

-		setConfiguredSiteModel(configPolicy.getConfiguredSiteModel());

-	}

-

-	/**

-	 * @since 2.0

-	 */

-	private boolean isUnconfigured(IFeatureReference featureReference) {

-

-		if (featureReference == null)

-			return false;

-

-		// returns true if the feature is part of the configured list

-		IFeatureReference[] refs = getUnconfiguredFeatures();

-		for (int i = 0; i < refs.length; i++) {

-			if (featureReference.equals(refs[i])) {

-				return true;

-			}

-		}

-		return false;

-	}

-

-	/**

-	 * @since 2.0

-	 */

-	public boolean isConfigured(IFeatureReference featureReference) {

-

-		if (featureReference == null)

-			return false;

-

-		// returns true if the feature is part of the configured list

-		IFeatureReference[] refs = getConfiguredFeatures();

-		for (int i = 0; i < refs.length; i++) {

-			if (featureReference.equals(refs[i])) {

-				return true;

-			}

-		}

-		return false;

-	}

-

-	/**

-	 * adds the feature to the list of features if the policy is USER_INCLUDE

-	 */

-	public void configure(IFeatureReference featureReference, boolean callInstallHandler, boolean createActivity) throws CoreException {

-

-		if (isConfigured(featureReference)) // already configured

-			return;

-

-		if (featureReference == null) {

-			UpdateCore.warn("The feature reference to configure is null"); //$NON-NLS-1$

-			return;

-		}

-

-		IFeature feature = null;

-		try {

-			feature = featureReference.getFeature(null);

-		} catch (CoreException e) {

-			if (!UpdateManagerUtils.isOptional(featureReference)) {

-				URL url = featureReference.getURL();

-				String urlString = (url != null) ? url.toExternalForm() : "<no feature reference url>"; //$NON-NLS-1$

-				UpdateCore.warn("Error retrieving feature:" + urlString, e); //$NON-NLS-1$

-				return;

-			}

-		}

-		if (feature == null) {

-			URL url = featureReference.getURL();

-			String urlString = (url != null) ? url.toExternalForm() : "<no feature reference url>"; //$NON-NLS-1$

-			UpdateCore.warn("The feature to unconfigure is null: feature reference is:" + urlString); //$NON-NLS-1$

-		}

-

-		// Setup optional install handler

-		InstallHandlerProxy handler = null;

-		if (callInstallHandler && feature.getInstallHandlerEntry() != null)

-			handler = new InstallHandlerProxy(IInstallHandler.HANDLER_ACTION_CONFIGURE, feature, feature.getInstallHandlerEntry(), null);

-		boolean success = false;

-		Throwable originalException = null;

-

-		// do the configure action

-		try {

-			if (handler != null)

-				handler.configureInitiated();

-

-			ConfigurationActivity activity = null;

-			if (createActivity) {

-				activity = new ConfigurationActivity(IActivity.ACTION_CONFIGURE);

-				activity.setLabel(feature.getVersionedIdentifier().toString());

-				activity.setDate(new Date());

-			}

-

-			addConfiguredFeatureReference((FeatureReferenceModel) featureReference);

-

-			// everything done ok

-			if (activity != null) {

-				InstallConfiguration installConfig = (InstallConfiguration) SiteManager.getLocalSite().getCurrentConfiguration();

-				activity.setStatus(IActivity.STATUS_OK);

-				installConfig.addActivity(activity);

-			}

-

-			if (handler != null)

-				handler.completeConfigure();

-

-			success = true;

-		} catch (Throwable t) {

-			originalException = t;

-		} finally {

-			Throwable newException = null;

-			try {

-				if (handler != null)

-					handler.configureCompleted(success);

-			} catch (Throwable t) {

-				newException = t;

-			}

-			if (originalException != null) // original exception wins

-				throw Utilities.newCoreException(Policy.bind("InstallHandler.error", feature.getLabel()), originalException); //$NON-NLS-1$

-			if (newException != null)

-				throw Utilities.newCoreException(Policy.bind("InstallHandler.error", feature.getLabel()), newException); //$NON-NLS-1$

-		}

-	}

-

-	/**

-	 * check if the plugins to unconfigure are required by other configured feature and

-	 * adds the feature to the list of unconfigured features 

-	 */

-	public boolean unconfigure(IFeatureReference featureReference, boolean callInstallHandler, boolean createActivity) throws CoreException {

-

-		if (isUnconfigured(featureReference)) {

-			UpdateCore.warn("Feature already unconfigured"); //$NON-NLS-1$

-			return true;

-		}

-

-		if (featureReference == null) {

-			UpdateCore.warn("The feature reference to unconfigure is null"); //$NON-NLS-1$

-			return false;

-		}

-

-		IFeature feature = null;

-		try {

-			feature = featureReference.getFeature(null);

-		} catch (CoreException e) {

-			if (!UpdateManagerUtils.isOptional(featureReference)) {

-				URL url = featureReference.getURL();

-				String urlString = (url != null) ? url.toExternalForm() : "<no feature reference url>"; //$NON-NLS-1$

-				UpdateCore.warn("Error retrieving feature:" + urlString, e); //$NON-NLS-1$

-				return false;

-			}

-		}

-

-		if (feature == null) {

-			URL url = featureReference.getURL();

-			String urlString = (url != null) ? url.toExternalForm() : "<no feature reference url>"; //$NON-NLS-1$

-			UpdateCore.warn("The feature to unconfigure is null: feature reference is:" + urlString); //$NON-NLS-1$

-			return false;

-		}

-

-		// Setup optional install handler

-		InstallHandlerProxy handler = null;

-		if (callInstallHandler && feature.getInstallHandlerEntry() != null) {

-			handler = new InstallHandlerProxy(IInstallHandler.HANDLER_ACTION_UNCONFIGURE, feature, feature.getInstallHandlerEntry(), null);

-		}

-

-		boolean success = false;

-		Throwable originalException = null;

-

-		// do the unconfigure action

-		try {

-

-			ConfigurationActivity activity = null;

-			if (createActivity) {

-				activity = new ConfigurationActivity(IActivity.ACTION_UNCONFIGURE);

-				activity.setLabel(feature.getVersionedIdentifier().toString());

-				activity.setDate(new Date());

-			}

-

-			InstallConfiguration installConfig = null;

-

-			// only ask for install config is activity created.

-			// prevents loops during reconciliation

-			if (activity != null)

-				installConfig = ((InstallConfiguration) SiteManager.getLocalSite().getCurrentConfiguration());

-

-			// Allow unconfigure if the feature is optional from all the parents

-			// or if the feature is mandatory and non of its parent are configured

-			// removed, not a core issue (so deep down)

-			//if (validateNoConfiguredParents(feature)) {

-			if (handler != null)

-				handler.unconfigureInitiated();

-			addUnconfiguredFeatureReference((FeatureReferenceModel) featureReference);

-			if (handler != null)

-				handler.completeUnconfigure();

-

-			// everything done ok

-			if (activity != null) {

-				activity.setStatus(IActivity.STATUS_OK);

-				installConfig.addActivity(activity);

-			}

-			success = true;

-			//} else {

-			//	if (activity != null) {

-			//		activity.setStatus(IActivity.STATUS_NOK);

-			//		installConfig.addActivityModel((ConfigurationActivityModel) activity);

-			//	}

-			//}

-		} catch (Throwable t) {

-			originalException = t;

-		} finally {

-			Throwable newException = null;

-			try {

-				if (handler != null)

-					handler.unconfigureCompleted(success);

-			} catch (Throwable t) {

-				newException = t;

-			}

-			if (originalException != null) // original exception wins

-				throw Utilities.newCoreException(Policy.bind("InstallHandler.error", feature.getLabel()), originalException); //$NON-NLS-1$

-			if (newException != null)

-				throw Utilities.newCoreException(Policy.bind("InstallHandler.error", feature.getLabel()), newException); //$NON-NLS-1$

-		}

-

-		if (!success) {

-			URL url = featureReference.getURL();

-			String urlString = (url != null) ? url.toExternalForm() : "<no feature reference url>"; //$NON-NLS-1$

-			UpdateCore.warn("Unable to unconfigure:" + urlString); //$NON-NLS-1$

-		}

-		return success;

-	}

-

-	/**

-	 * Calculates the plugin list for the policy. For "INCLUDE" policy, this

-	 * corresponds to the plugins for configured features. For "EXCLUDE"

-	 * policy, this corresponds to the plugins for unconfigured features that

-	 * are not referenced by any configured features.

-	 */

-	public String[] getPluginPath(ISite site) throws CoreException {

-		// TODO we may need to exclude patched plugins here, but this should be good enough for now

-		if (getPolicy() == IPlatformConfiguration.ISitePolicy.MANAGED_ONLY)

-			return new String[0];

-			

-		String[] pluginPaths;

-		// Note: Since 3.0M7 we leave patched features configured,

-		// and take this into account when computing configured plugins

-		// all unconfigured features. Note that patched features are still

-		// configured

-		IFeatureReference[] unconfiguredFeatures = getUnconfiguredFeatures();

-		// all configured features, including patches and patched features

-		IFeatureReference[] configuredFeatures = getConfiguredFeatures();

-		if (!isEnabled()) {

-			if (getPolicy() == IPlatformConfiguration.ISitePolicy.USER_INCLUDE) {

-				// disabled site, INCLUDE policy

-				pluginPaths = new String[0];

-			} else {

-				// disabled site, EXCLUDE policy

-				pluginPaths = getAllKnownPluginStrings(site,

-						configuredFeatures, unconfiguredFeatures);

-			}

-		} else {

-			// PatchedFeatures (may have no patches) with corresponding patches

-			PatchedFeature[] patchedFeatures = buildPatchedFeatures(configuredFeatures);

-			if (getPolicy() == IPlatformConfiguration.ISitePolicy.USER_INCLUDE) {

-				// enabled site, INCLUDE policy

-				pluginPaths = getConfiguredPluginStrings(site, patchedFeatures);

-			} else {

-				// enabled site, EXCLUDE policy - the usual scenario for local

-				// site.

-				// return all known MINUS configured plugins

-				pluginPaths = subtract(getAllKnownPluginStrings(site,

-						configuredFeatures, unconfiguredFeatures),

-						getConfiguredPluginStrings(site, patchedFeatures));

-			}

-		}

-		//TRACE

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER) {

-			UpdateCore

-					.debug("GetPluginPath for: " //$NON-NLS-1$

-							+ ((site == null) ? "<No site>" : site.getURL() //$NON-NLS-1$

-									.toString()));

-			for (int i = 0; i < pluginPaths.length; i++) {

-				UpdateCore.debug("To write:" + pluginPaths[i]); //$NON-NLS-1$

-			}

-		}

-		return pluginPaths;

-	}

-	

-	/**

-	 * Obtains PatchedFeatures - non patch features with corresponding patches if any

-	 * 

-	 * @param features

-	 *            array of features to operate with

-	 * @return Patches

-	 */

-	private PatchedFeature[] buildPatchedFeatures(IFeatureReference[] features) {

-		// PatchedFeatures by VersionedIdentifier

-		Map map = new HashMap();

-		// Create a map of features (not patches)

-		for (int f = 0; f < features.length; f++) {

-			IFeatureReference featureRef = features[f];

-			try {

-				if(featureRef.isPatch()){

-					continue;

-				}

-				VersionedIdentifier vi = featureRef.getVersionedIdentifier();

-				map.put(vi, new PatchedFeature(features[f]));

-			} catch (CoreException e) {

-				UpdateCore.warn(null, e);

-			}

-		}

-		// attach patches to features

-		for (int f = 0; f < features.length; f++) {

-			IFeatureReference patchCandidate = features[f];

-			try {

-				IFeature feature = patchCandidate.getFeature(null);

-				IImport[] imports = feature.getImports();

-				for (int i = 0; i < imports.length; i++) {

-					IImport oneImport = imports[i];

-					if (!oneImport.isPatch())

-						continue;

-					// it is a patch for

-					VersionedIdentifier patchedIdentifier =

-						oneImport.getVersionedIdentifier();

-					PatchedFeature pf=(PatchedFeature) map.get(patchedIdentifier);

-					if (pf!=null) {

-						pf.addPatch(patchCandidate);

-					} else {

-						// patched feature not enabled

-					}

-				}

-			} catch (CoreException e) {

-				UpdateCore.warn(null, e);

-			}

-		}

-		Collection patchedFeatures=map.values();

-		return (PatchedFeature[])patchedFeatures.toArray(new PatchedFeature[patchedFeatures.size()]);

-	}

-	

-	/**

-	 * @since 2.0

-	 */

-	public IFeatureReference[] getConfiguredFeatures() {

-		FeatureReferenceModel[] result = getConfiguredFeaturesModel();

-		if (result.length == 0)

-			return new IFeatureReference[0];

-		else

-			return (IFeatureReference[]) result;

-	}

-

-	/**

-	 * @since 2.0

-	 */

-	public IFeatureReference[] getUnconfiguredFeatures() {

-		FeatureReferenceModel[] result = getUnconfiguredFeaturesModel();

-		if (result.length == 0)

-			return new IFeatureReference[0];

-		else

-			return (IFeatureReference[]) result;

-	}

-

-	/**

-	 * Gets the configuredSite.

-	 * @return Returns a IConfiguredSite

-	 */

-	public IConfiguredSite getConfiguredSite() {

-		return (IConfiguredSite) getConfiguredSiteModel();

-	}

-

-	/**

-	 * removes a feature reference

-	 */

-	public void removeFeatureReference(IFeatureReference featureRef) {

-		if (featureRef instanceof FeatureReferenceModel) {

-			removeFeatureReference((FeatureReferenceModel) featureRef);

-		}

-	}

-

-	/**

-	 * @return an array of plugin path for the array of feature reference. For

-	 *         features that have patches, plugin path will

-	 *         point to plugin with the same ID provided by the patch if it

-	 *         exists. Each plugin path only appears once [bug 21750]

-	 */

-	private String[] getConfiguredPluginStrings(ISite site, PatchedFeature[] features) throws CoreException {

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION){

-			UpdateCore.warn("CONFIGURED PLUGINS"); //$NON-NLS-1$

-		}

-	

-		// Use set to eliminate plugins with same ID and version.

-		// Different versions of plugins with same ID are allowed if coming from different features

-		Set featurePlugins = new HashSet();

-		for (int i = 0; i < features.length; i++) {

-			FeaturePlugin[] plugins = features[i].getPlugins();

-			featurePlugins.addAll(Arrays.asList(plugins));

-		}

-		Set pluginStrings = getPluginStrings(site, (FeaturePlugin[]) featurePlugins.toArray(new FeaturePlugin[featurePlugins.size()]));

-		return (String[]) pluginStrings.toArray(new String[pluginStrings.size()]);

-	}

-	/**

-	 * @return an array of plugin path for every plugin in known features

-	 */

-	private String[] getAllKnownPluginStrings(ISite site, IFeatureReference[] configured,IFeatureReference[] unconfigured) throws CoreException {

-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION){

-			UpdateCore.warn("ALL PLUGINS"); //$NON-NLS-1$

-		}

-		// Add features, patched features, or patches

-		IFeatureReference[] all=new IFeatureReference[configured.length+unconfigured.length];

-		System.arraycopy(configured, 0, all, 0, configured.length);

-		System.arraycopy(unconfigured, 0, all, configured.length, unconfigured.length);

-		//

-		Set patchedPlugins = new HashSet();

-		for (int i=0; i< all.length; i++) {

-			try {

-				IFeature feature = all[i].getFeature(null);

-				if (feature == null) {

-					UpdateCore.warn("Null Feature", new Exception()); //$NON-NLS-1$

-					continue;

-				}

-

-				IPluginEntry[] entries = feature.getPluginEntries();

-				// add every plugin to the map

-				for (int entr = 0; entr < entries.length; entr++) {

-					patchedPlugins.add(new FeaturePlugin(entries[entr], feature));

-				}

-

-			} catch (CoreException e) {

-				UpdateCore.warn(null, e);

-			}

-		}

-		Set pluginStrings = getPluginStrings(site,  (FeaturePlugin[])patchedPlugins.toArray(new FeaturePlugin[patchedPlugins.size()]));

-		return (String[]) pluginStrings.toArray(new String[pluginStrings.size()]);

-	}

-	/**

-	 * @param site

-	 * @param plugins[]

-	 * @return valid string pointing to plugins in given features

-	 * @throws CoreException

-	 */

-	private Set getPluginStrings(ISite site, FeaturePlugin[] plugins) throws CoreException {

-		Set pluginStrings=new HashSet();

-		for (int i=0; i< plugins.length; i++) {

-			IPluginEntry entry = plugins[i].getEntry();

-			IFeature feature=plugins[i].getFeature();

-

-			// obtain the path of the plugin directories on the site

-			ContentReference[] featureContentReference = null;

-			try {

-				featureContentReference = feature.getFeatureContentProvider().getPluginEntryArchiveReferences(entry, null /*IProgressMonitor*/

-				);

-			} catch (CoreException e) {

-				UpdateCore.warn(null, e);

-			}

-

-			// transform into a valid String

-			if (featureContentReference != null) {

-				for (int j = 0; j < featureContentReference.length; j++) {

-					URL url = site.getSiteContentProvider().getArchiveReference(featureContentReference[j].getIdentifier());

-					if (url != null) {

-						// make it relative to the site

-						String path = UpdateManagerUtils.getURLAsString(site.getURL(), url);

-						// add end "/"

-						path += (path.endsWith(File.separator) || path.endsWith("/")) ? "" : "/"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-						pluginStrings.add(path);

-						if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)

-							UpdateCore.warn("Add plugin: " + path + " to the list"); //$NON-NLS-1$ //$NON-NLS-2$

-					}

-				}

-			}

-		}

-		return pluginStrings;

-	}

-

-	/**

-	 *	 Obtains strings existing in the allStrings array, but not in the stringsToRemove

-	 */

-	private String[] subtract(String[] allStrings, String[] stringsToRemove) {

-		HashSet resultList = new HashSet(Arrays.asList(allStrings));

-		resultList.removeAll(Arrays.asList(stringsToRemove));

-		return (String[])resultList.toArray(new String[resultList.size()]);

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfiguredSite.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfiguredSite.java
deleted file mode 100644
index 0303fe7..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfiguredSite.java
+++ /dev/null
@@ -1,1104 +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 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.update.internal.core;
-
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.model.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.configurator.*;
-
-/**
- * A Configured site manages the Configured and unconfigured features of a Site
- */
-public class ConfiguredSite extends ConfiguredSiteModel implements IConfiguredSite {
-
-	private static final String PRODUCT_SITE_MARKER = ".eclipseproduct"; //$NON-NLS-1$
-	private static final String EXTENSION_SITE_MARKER = ".eclipseextension"; //$NON-NLS-1$
-
-	// listeners	
-	private ListenersList listeners = new ListenersList();
-
-	// verification status
-	private IStatus verifyStatus;
-
-	// transient: true if the site was just created so we can remove it
-	private transient boolean justCreated = false;
-
-	/*
-	 * Default Constructor
-	 */
-	public ConfiguredSite() {
-	}
-
-	/*
-	 * Copy Constructor
-	 * As of now, configSite can only be of type ConfiguredSite
-	 */
-	public ConfiguredSite(IConfiguredSite configSite) {
-		ConfiguredSite cSite = (ConfiguredSite) configSite;
-		setSiteModel(cSite.getSiteModel());
-		setConfigurationPolicyModel(new ConfigurationPolicy(cSite.getConfigurationPolicy()));
-		setUpdatable(cSite.isUpdatable());
-		setEnabled(cSite.isEnabled());
-		setPreviousPluginPath(cSite.getPreviousPluginPath());
-		setPlatformURLString(cSite.getPlatformURLString());
-	}
-
-	/*
-	 *  Adds a listener
-	 */
-	public void addConfiguredSiteChangedListener(IConfiguredSiteChangedListener listener) {
-		synchronized (listeners) {
-			listeners.add(listener);
-		}
-	}
-
-	/*
-	 * Removes a listener
-	 */
-	public void removeConfiguredSiteChangedListener(IConfiguredSiteChangedListener listener) {
-		synchronized (listeners) {
-			listeners.remove(listener);
-		}
-	}
-
-	/*
-	 * @see IConfiguredSite#install(IFeature,IVerificationListener, IProgressMonitor)
-	 */
-	public IFeatureReference install(IFeature feature, IVerificationListener verificationListener, IProgressMonitor monitor) throws InstallAbortedException, CoreException {
-		return install(feature, null, verificationListener, monitor);
-	}
-
-	/*
-	 * @see IConfiguredSite#install(IFeature, IFeatureReference, IVerificationListener, IProgressMonitor)
-	 */
-	public IFeatureReference install(IFeature feature, IFeatureReference[] optionalFeatures, IVerificationListener verificationListener, IProgressMonitor monitor) throws InstallAbortedException, CoreException {
-
-		// change the status if justCreated
-		if (justCreated) justCreated=false;
-
-		// ConfigSite is read only 
-		if (!isUpdatable()) {
-			String errorMessage = Policy.bind("ConfiguredSite.NonInstallableSite", getSite().getURL().toExternalForm()); //$NON-NLS-1$
-			IStatus status = verifyUpdatableStatus();
-			if (status != null)
-				errorMessage += " " + status.getMessage(); //$NON-NLS-1$
-			throw Utilities.newCoreException(errorMessage, null);
-		}
-
-		// feature is null
-		if (feature == null) {
-			String errorMessage = Policy.bind("ConfiguredSite.NullFeatureToInstall"); //$NON-NLS-1$
-			throw Utilities.newCoreException(errorMessage, null);
-		}
-
-		// feature reference to return
-		IFeatureReference installedFeatureRef;
-		IFeature installedFeature = null;
-
-		// create the Activity (INSTALL)
-		ConfigurationActivity activity = new ConfigurationActivity(IActivity.ACTION_FEATURE_INSTALL);
-		activity.setLabel(feature.getVersionedIdentifier().toString());
-		activity.setDate(new Date());
-
-		try {
-			installedFeatureRef = getSite().install(feature, optionalFeatures, verificationListener, monitor);
-
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_INSTALL) {
-				UpdateCore.debug("Sucessfully installed: " + installedFeatureRef.getURL().toExternalForm()); //$NON-NLS-1$
-			}
-
-			if (installedFeatureRef != null) {
-				try {
-					installedFeature = installedFeatureRef.getFeature(null);
-				} catch (CoreException e) {
-					UpdateCore.warn(null, e);
-				}
-			}
-
-			// everything done ok
-			activity.setStatus(IActivity.STATUS_OK);
-
-			// notify listeners
-			Object[] siteListeners = listeners.getListeners();
-			for (int i = 0; i < siteListeners.length; i++) {
-				if (installedFeature != null) {
-					IConfiguredSiteChangedListener listener = ((IConfiguredSiteChangedListener) siteListeners[i]);
-					listener.featureInstalled(installedFeature);
-				}
-			}
-		} catch (CoreException e) {
-			// not ok, set Activity status
-			activity.setStatus(IActivity.STATUS_NOK);
-			throw e;
-		} finally {
-			IInstallConfiguration current = SiteManager.getLocalSite().getCurrentConfiguration();
-			((InstallConfiguration) current).addActivity(activity);
-		}
-		// call the configure task	
-		if (installedFeature != null)
-			configure(installedFeature, optionalFeatures, false);
-		/*callInstallHandler*/
-
-		return installedFeatureRef;
-	}
-
-	/*
-	 * @see IConfiguredSite#remove(IFeature, IProgressMonitor)
-	 */
-	public void remove(IFeature feature, IProgressMonitor monitor) throws CoreException {
-
-		// ConfigSite is read only
-		if (!isUpdatable()) {
-			String errorMessage = Policy.bind("ConfiguredSite.NonUninstallableSite", getSite().getURL().toExternalForm()); //$NON-NLS-1$
-			throw Utilities.newCoreException(errorMessage, null);
-		}
-
-		// create the Activity
-		ConfigurationActivity activity = new ConfigurationActivity(IActivity.ACTION_FEATURE_REMOVE);
-		activity.setLabel(feature.getVersionedIdentifier().toString());
-		activity.setDate(new Date());
-
-		try {
-			IFeatureReference referenceToRemove = null;
-			ISiteFeatureReference[] featureRef = getSite().getFeatureReferences();
-			ISiteFeatureReference ref = getSite().getFeatureReference(feature);
-			for (int i = 0; i < featureRef.length; i++) {
-				if (featureRef[i].equals(ref)) {
-					referenceToRemove = featureRef[i];
-					break;
-				}
-			}
-
-			// we found a feature reference on the site matching the feature			
-			if (referenceToRemove != null) {
-				// Check if feature is unconfigured before we remove it
-				// our UI will check.
-				// For non-UI application, throw error is feature is configured
-				if (getConfigurationPolicy().isConfigured(referenceToRemove)) {
-					IFeature featureToRemove = ((IFeatureReference) referenceToRemove).getFeature(null);
-					String featureLabel = (featureToRemove == null) ? null : featureToRemove.getLabel();
-					throw Utilities.newCoreException(Policy.bind("ConfiguredSite.UnableToRemoveConfiguredFeature" //$NON-NLS-1$
-					, featureLabel), null);
-				}
-			} else {
-				throw Utilities.newCoreException(Policy.bind("ConfiguredSite.UnableToFindFeature", feature.getURL().toString()), //$NON-NLS-1$
-				null);
-			}
-
-			// remove the feature
-			getSite().remove(feature, monitor);
-			getConfigurationPolicy().removeFeatureReference(referenceToRemove);
-			// everything done ok
-			activity.setStatus(IActivity.STATUS_OK);
-			// notify listeners
-			Object[] siteListeners = listeners.getListeners();
-			for (int i = 0; i < siteListeners.length; i++) {
-				((IConfiguredSiteChangedListener) siteListeners[i]).featureRemoved(feature);
-			}
-		} catch (CoreException e) {
-			activity.setStatus(IActivity.STATUS_NOK);
-			throw e;
-		} finally {
-			IInstallConfiguration current = SiteManager.getLocalSite().getCurrentConfiguration();
-			((InstallConfiguration) current).addActivity(activity);
-		}
-	}
-
-	/*
-	 * @see IConfiguredSite#configure(IFeature) 
-	 */
-	public void configure(IFeature feature) throws CoreException {
-		configure(feature, null, true /*callInstallHandler*/
-		);
-	}
-
-	/*
-	 * 
-	 */
-	private void configure(IFeature feature, IFeatureReference[] optionalFeatures, boolean callInstallHandler) throws CoreException {
-
-		if (feature == null) {
-			UpdateCore.warn("Attempting to configure a null feature in site:" + getSite().getURL().toExternalForm()); //$NON-NLS-1$
-			return;
-		}
-
-		ConfigurationPolicy configPolicy = getConfigurationPolicy();
-		if (configPolicy == null)
-			return;
-
-		// bottom up approach, same configuredSite
-		IIncludedFeatureReference[] childrenRef = feature.getIncludedFeatureReferences();
-		if (optionalFeatures != null) {
-			childrenRef = childrenToConfigure(childrenRef, optionalFeatures);
-		}
-
-		for (int i = 0; i < childrenRef.length; i++) {
-			try {
-				IFeature child = childrenRef[i].getFeature(null);
-				configure(child, optionalFeatures, callInstallHandler);
-			} catch (CoreException e) {
-				// will skip any bad children
-				if (!childrenRef[i].isOptional())
-					UpdateCore.warn("Unable to configure child feature: " + childrenRef[i] + " " + e); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-
-		// configure root feature 	
-		IFeatureReference featureReference = getSite().getFeatureReference(feature);
-		configPolicy.configure(featureReference, callInstallHandler, true);
-
-		// notify listeners
-		Object[] siteListeners = listeners.getListeners();
-		for (int i = 0; i < siteListeners.length; i++) {
-			((IConfiguredSiteChangedListener) siteListeners[i]).featureConfigured(feature);
-		}
-	}
-
-	/*
-	 * Return the optional children to configure
-	 * 
-	 * @param children all the nested features
-	 * @param optionalfeatures optional features to install
-	 * @return IFeatureReference[]
-	 */
-	private IIncludedFeatureReference[] childrenToConfigure(IIncludedFeatureReference[] children, IFeatureReference[] optionalfeatures) {
-
-		List childrenToInstall = new ArrayList();
-		for (int i = 0; i < children.length; i++) {
-			IIncludedFeatureReference optionalFeatureToConfigure = children[i];
-			if (!optionalFeatureToConfigure.isOptional()) {
-				childrenToInstall.add(optionalFeatureToConfigure);
-			} else {
-				for (int j = 0; j < optionalfeatures.length; j++) {
-					// must compare feature as optionalFeatures are from the install site
-					// where children are on the local site
-					try {
-						IFeature installedChildren = optionalfeatures[j].getFeature(null);
-						if (installedChildren.equals(optionalFeatureToConfigure.getFeature(null))) {
-							childrenToInstall.add(optionalFeatureToConfigure);
-							break;
-						}
-					} catch (CoreException e) {
-						UpdateCore.warn("", e); //$NON-NLS-1$
-					}
-				}
-			}
-		}
-
-		IIncludedFeatureReference[] result = new IIncludedFeatureReference[childrenToInstall.size()];
-		if (childrenToInstall.size() > 0) {
-			childrenToInstall.toArray(result);
-		}
-
-		return result;
-	}
-
-	/*
-	 * @see IConfiguredSite#unconfigure(IFeature)
-	 */
-	public boolean unconfigure(IFeature feature) throws CoreException {
-		// the first call sould disable without checking for enable parent
-		return unconfigure(feature, true, false);
-	}
-
-	private boolean unconfigure(IFeature feature, boolean includePatches, boolean verifyEnableParent) throws CoreException {
-		IFeatureReference featureReference = getSite().getFeatureReference(feature);
-
-		if (featureReference == null) {
-			UpdateCore.warn("Unable to retrieve Feature Reference for feature" + feature); //$NON-NLS-1$
-			return false;
-		}
-
-		ConfigurationPolicy configPolicy = getConfigurationPolicy();
-		if (configPolicy == null)
-			return false;
-
-		// verify no enable parent
-		if (verifyEnableParent && !validateNoConfiguredParents(feature)) {
-			UpdateCore.warn("The feature " + feature.getVersionedIdentifier() + " to disable is needed by another enable feature"); //$NON-NLS-1$ //$NON-NLS-2$
-			return false;
-		}
-
-		boolean sucessfullyUnconfigured = false;
-		try {
-			sucessfullyUnconfigured = configPolicy.unconfigure(featureReference, true, true);
-		} catch (CoreException e) {
-			URL url = featureReference.getURL();
-			String urlString = (url != null) ? url.toExternalForm() : "<no feature reference url>"; //$NON-NLS-1$
-			UpdateCore.warn("Unable to unconfigure" + urlString, e); //$NON-NLS-1$
-			throw e;
-		}
-		if (sucessfullyUnconfigured) {
-			// 2.0.2: unconfigure patches that reference this feature.
-			// A patch is a feature that contains an import
-			// statement with patch="true" and an id/version
-			// that matches an already installed and configured
-			// feature. When patched feature is unconfigured,
-			// all the patches that reference it must be 
-			// unconfigured as well
-			// (in contrast, patched features can be
-			// configured without the patches).
-			if (includePatches)
-				unconfigurePatches(feature);
-
-			// top down approach, same configuredSite
-			IIncludedFeatureReference[] childrenRef = feature.getIncludedFeatureReferences();
-			for (int i = 0; i < childrenRef.length; i++) {
-				try {
-					IFeature child = childrenRef[i].getFeature(null); // disable the exact feature
-					unconfigure(child, includePatches, true); // check for parent as we should be the only parent.
-				} catch (CoreException e) {
-					// skip any bad children
-					UpdateCore.warn("Unable to unconfigure child feature: " + childrenRef[i] + " " + e); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-
-			// notify listeners
-			Object[] siteListeners = listeners.getListeners();
-			for (int i = 0; i < siteListeners.length; i++) {
-				IConfiguredSiteChangedListener listener = ((IConfiguredSiteChangedListener) siteListeners[i]);
-				listener.featureUnconfigured(feature);
-			}
-
-			return true;
-		} else {
-			URL url = featureReference.getURL();
-			String urlString = (url != null) ? url.toExternalForm() : "<no feature reference url>"; //$NON-NLS-1$
-			UpdateCore.warn("Unable to unconfigure:" + urlString); //$NON-NLS-1$
-			return false;
-		}
-	}
-
-	/*
-	 * Look for features that have an import reference
-	 * that points to this feature and where patch=true.
-	 * Unconfigure all the matching patches, but
-	 * do not do the same lookup for them
-	 * because patches cannot have patches themselves.
-	 */
-
-	private void unconfigurePatches(IFeature feature) {
-		IFeatureReference[] frefs = getConfiguredFeatures();
-		for (int i = 0; i < frefs.length; i++) {
-			IFeatureReference fref = frefs[i];
-			try {
-				IFeature candidate = fref.getFeature(null);
-				if (candidate.equals(feature))
-					continue;
-
-				if (UpdateUtils.isPatch(feature, candidate))
-					unconfigure(candidate, false, false);
-			} catch (CoreException e) {
-				UpdateCore.warn("", e); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/*
-	 * @see IConfiguredSite#getConfiguredFeatures()
-	 */
-	public IFeatureReference[] getConfiguredFeatures() {
-		if (isEnabled())
-			return getRawConfiguredFeatures();
-		else
-			return new ISiteFeatureReference[0];
-	}
-
-	/*
-	 * @see IConfiguredSite#getConfiguredFeatures()
-	 */
-	private IFeatureReference[] getRawConfiguredFeatures() {
-		ConfigurationPolicy configPolicy = getConfigurationPolicy();
-		if (configPolicy == null)
-			return new ISiteFeatureReference[0];
-
-		return configPolicy.getConfiguredFeatures();
-	}
-
-	/*
-	 * adds configured and unconfigured feature references
-	 */
-	public IFeatureReference[] getFeatureReferences() {
-
-		ConfigurationPolicy configPolicy = getConfigurationPolicy();
-		if (configPolicy == null)
-			return new ISiteFeatureReference[0];
-
-		IFeatureReference[] configuredFeatures = getConfiguredFeatures();
-		int confLen = configuredFeatures.length;
-		IFeatureReference[] unconfiguredFeatures = configPolicy.getUnconfiguredFeatures();
-		int unconfLen = unconfiguredFeatures.length;
-
-		IFeatureReference[] result = new IFeatureReference[confLen + unconfLen];
-		if (confLen > 0) {
-			System.arraycopy(configuredFeatures, 0, result, 0, confLen);
-		}
-		if (unconfLen > 0) {
-			System.arraycopy(unconfiguredFeatures, 0, result, confLen, unconfLen);
-		}
-
-		return result;
-	}
-
-	/*
-	 * Configure and unconfigure appropriate feature to
-	 * become 'like' currentConfiguration which is the configuration
-	 * the user wants to revert to.
-	 * 
-	 * All features from currentConfiguration should be configured
-	 */
-	public void revertTo(IConfiguredSite oldConfiguration, IProgressMonitor monitor, IProblemHandler handler) throws CoreException, InterruptedException {
-
-		ConfiguredSite oldConfiguredSite = (ConfiguredSite) oldConfiguration;
-
-		// retrieve the feature that were configured
-		IFeatureReference[] configuredFeatures = oldConfiguredSite.validConfiguredFeatures(handler);
-
-		for (int i = 0; i < configuredFeatures.length; i++) {
-			getConfigurationPolicy().configure(configuredFeatures[i], true, true);
-		}
-
-		// calculate all the features we have to unconfigure from the current state to this state
-		// in the history. 				
-		List featureToUnconfigure = oldConfiguredSite.calculateUnconfiguredFeatures(configuredFeatures);
-
-		// for each unconfigured feature check if it still exists
-		// if so add as unconfigured
-		Iterator iter = featureToUnconfigure.iterator();
-		while (iter.hasNext()) {
-			IFeatureReference element = (IFeatureReference) iter.next();
-			try {
-				// do not log activity
-				getConfigurationPolicy().unconfigure(element, true, true);
-			} catch (CoreException e) {
-				// log no feature to unconfigure
-				String url = element.getURL().toString();
-				ISite site = element.getSite();
-				String siteString = (site != null) ? site.getURL().toExternalForm() : Policy.bind("ConfiguredSite.NoSite"); //$NON-NLS-1$
-				UpdateCore.warn(Policy.bind("ConfiguredSite.CannotFindFeatureToUnconfigure", url, siteString), e); //$NON-NLS-1$ 
-			}
-		}
-		//} // end USER_EXCLUDE
-	}
-
-	/*
-	 * We have to keep our configured feature
-	 * check if they are all valid
-	 * Return the valid configured features
-	 */
-	private IFeatureReference[] validConfiguredFeatures(IProblemHandler handler) throws InterruptedException {
-
-		IFeatureReference[] configuredFeatures = getConfiguredFeatures();
-		if (configuredFeatures != null) {
-			for (int i = 0; i < configuredFeatures.length; i++) {
-				IFeature feature = null;
-
-				// attempt to access the feature
-				try {
-					feature = configuredFeatures[i].getFeature(null);
-				} catch (CoreException e) {
-					// notify we cannot find the feature
-					UpdateCore.warn(null, e);
-					String featureString = configuredFeatures[i].getURL().toExternalForm();
-					if (!handler.reportProblem(Policy.bind("ConfiguredSite.CannotFindFeatureToConfigure", featureString))) { //$NON-NLS-1$
-						throw new InterruptedException();
-					}
-				}
-
-				// verify all the plugins still exist
-				if (feature != null) {
-					// get plugin identifier
-					List sitePluginIdentifiers = new ArrayList();
-					ISite site = feature.getSite();
-					IPluginEntry[] sitePluginEntries = null;
-
-					if (site != null) {
-						sitePluginEntries = site.getPluginEntries();
-						for (int index = 0; index < sitePluginEntries.length; index++) {
-							IPluginEntry entry = sitePluginEntries[index];
-							sitePluginIdentifiers.add(entry.getVersionedIdentifier());
-						}
-					}
-
-					if (sitePluginEntries.length > 0) {
-						IPluginEntry[] featurePluginEntries = feature.getPluginEntries();
-						for (int index = 0; index < featurePluginEntries.length; index++) {
-							IPluginEntry currentFeaturePluginEntry = featurePluginEntries[index];
-							if (!contains(currentFeaturePluginEntry.getVersionedIdentifier(), sitePluginIdentifiers)) {
-								// the plugin defined by the feature
-								// doesn't seem to exist on the site
-								String msg = "Error verifying existence of plugin:" + currentFeaturePluginEntry.getVersionedIdentifier().toString(); //$NON-NLS-1$
-								UpdateCore.log(msg, new Exception());
-
-								String siteString = (site != null) ? site.getURL().toExternalForm() : Policy.bind("ConfiguredSite.NoSite");	//$NON-NLS-1$
-								String errorLabel = Policy.bind("ConfiguredSite.CannotFindPluginEntry", currentFeaturePluginEntry.getVersionedIdentifier().toString(), siteString);	//$NON-NLS-1$ //$NON-NLS-2$
-								if (handler == null) {
-									throw new InterruptedException(errorLabel);
-								}
-								if (!handler.reportProblem(Policy.bind(errorLabel))) {
-									throw new InterruptedException();
-								}
-							} // end if not found in site
-						} // end for
-					}
-				}
-			} // end for configured feature
-		}
-		return configuredFeatures;
-	}
-
-	/*
-	 * We are in the process of calculating the delta between what was configured in the current
-	 * configuration that is not configured now
-	 * 
-	 * we have to figure out what feature have been unconfigured for the whole
-	 * history between current and us... 
-	 * 
-	 * is it as simple as  get all configured, and unconfigured,
-	 * the do the delta with what should be configured
-	 * 
-	 */
-	private List calculateUnconfiguredFeatures(IFeatureReference[] configuredFeatures) throws CoreException {
-
-		Set featureToUnconfigureSet = new HashSet();
-
-		// loop for all history
-		// try to see if the configured site existed
-		// if it does, get the unconfigured features 
-		// and the configured one
-		IInstallConfiguration[] history = SiteManager.getLocalSite().getConfigurationHistory();
-
-		for (int i = 0; i < history.length; i++) {
-			IInstallConfiguration element = history[i];
-			IConfiguredSite[] configSites = element.getConfiguredSites();
-			for (int j = 0; j < configSites.length; j++) {
-				ConfiguredSite configSite = (ConfiguredSite) configSites[j];
-				if (configSite.getSite().equals(getSite())) {
-					featureToUnconfigureSet.addAll(Arrays.asList(configSite.getConfigurationPolicy().getUnconfiguredFeatures()));
-					featureToUnconfigureSet.addAll(Arrays.asList(configSite.getConfigurationPolicy().getConfiguredFeatures()));
-				}
-			}
-		}
-
-		// remove the unconfigured feature we found that are now to be configured 
-		// (they may have been unconfigured in the past, but the revert makes them configured)
-		List featureToUnconfigureList = remove(configuredFeatures, featureToUnconfigureSet);
-
-		return featureToUnconfigureList;
-	}
-
-	/*
-	 * Utilities: Remove an array of feature references
-	 * from a list
-	 */
-	private List remove(IFeatureReference[] featureRefs, Set set) {
-		List result = new ArrayList();
-
-		if (set == null)
-			return result;
-
-		// if an element of the list is NOT found in the array,
-		// add it to the result list			
-		Iterator iter = set.iterator();
-		while (iter.hasNext()) {
-			IFeatureReference element = (IFeatureReference) iter.next();
-			boolean found = false;
-			for (int i = 0; i < featureRefs.length; i++) {
-				if (element.equals(featureRefs[i])) {
-					found = true;
-				}
-			}
-
-			if (!found)
-				result.add(element);
-		}
-		return result;
-	}
-
-	/*
-	 * I have issues when running list.contain(versionedIdentifier)
-	 * The code runs the Object.equals instead of the VersionedIdentifier.equals
-	 */
-	private boolean contains(VersionedIdentifier id, List list) {
-		boolean found = false;
-		if (list != null && !list.isEmpty()) {
-			Iterator iter = list.iterator();
-			while (iter.hasNext() && !found) {
-				VersionedIdentifier element = (VersionedIdentifier) iter.next();
-				if (element.equals(id)) {
-					found = true;
-				}
-			}
-		}
-		return found;
-	}
-
-	/*
-	 * 
-	 */
-	public ConfigurationPolicy getConfigurationPolicy() {
-		return (ConfigurationPolicy) getConfigurationPolicyModel();
-	}
-
-	/*
-	 * 
-	 */
-	public ISite getSite() {
-		return (ISite) getSiteModel();
-	}
-
-	/*
-	 * 
-	 */
-	public IInstallConfiguration getInstallConfiguration() {
-		return (IInstallConfiguration) getInstallConfigurationModel();
-	}
-
-	/*
-	 * 
-	 */
-	public IStatus getBrokenStatus(IFeature feature) {
-
-		IStatus featureStatus = createStatus(IStatus.OK, IFeature.STATUS_HAPPY, "", null); //$NON-NLS-1$
-
-		// check the Plugins of all the features
-		// every plugin of the feature must be on the site
-		IPluginEntry[] siteEntries = getSite().getPluginEntries();
-		IPluginEntry[] featuresEntries = feature.getPluginEntries();
-		IPluginEntry[] result = UpdateManagerUtils.diff(featuresEntries, siteEntries);
-		if (result != null && (result.length != 0)) {
-			String msg = Policy.bind("SiteLocal.FeatureUnHappy"); //$NON-NLS-1$
-			MultiStatus multi = new MultiStatus(featureStatus.getPlugin(), IFeature.STATUS_UNHAPPY, msg, null);
-
-			for (int k = 0; k < result.length; k++) {
-				VersionedIdentifier id = result[k].getVersionedIdentifier();
-				Object[] values = new String[] { "", "" }; //$NON-NLS-1$ //$NON-NLS-2$
-				if (id != null) {
-					values = new Object[] { id.getIdentifier(), id.getVersion()};
-				}
-				String msg1 = Policy.bind("ConfiguredSite.MissingPluginsBrokenFeature", values); //$NON-NLS-1$
-				UpdateCore.warn(msg1);
-				IStatus status = createStatus(IStatus.ERROR, IFeature.STATUS_UNHAPPY, msg1, null);
-				multi.add(status);
-			}
-			return multi;
-		}
-
-		// check os, arch, and ws
-
-		String msg = Policy.bind("SiteLocal.FeatureHappy"); //$NON-NLS-1$
-		return createStatus(IStatus.OK, IFeature.STATUS_HAPPY, msg, null);
-	}
-
-	/*
-	 * 
-	 */
-	public boolean isConfigured(IFeature feature) {
-		if (!isEnabled())
-			return false;
-
-		if (getConfigurationPolicy() == null)
-			return false;
-		IFeatureReference featureReference = getSite().getFeatureReference(feature);
-		if (featureReference == null) {
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_WARNINGS)
-				UpdateCore.warn("Unable to retrieve featureReference for feature:" + feature); //$NON-NLS-1$
-			return false;
-		}
-		return getConfigurationPolicy().isConfigured(featureReference);
-	}
-
-	/**
-	 * @see Object#toString()
-	 */
-	public String toString() {
-		if (getSite() == null)
-			return "No Site"; //$NON-NLS-1$
-		if (getSite().getURL() == null)
-			return "No URL"; //$NON-NLS-1$
-		return getSite().getURL().toExternalForm();
-	}
-
-	/**
-	 * @see IConfiguredSite#verifyUpdatableStatus()
-	 */
-	public IStatus verifyUpdatableStatus() {
-
-		if (verifyStatus != null)
-			return verifyStatus;
-
-		URL siteURL = getSite().getURL();
-		if (siteURL == null) {
-			verifyStatus = createStatus(IStatus.ERROR, Policy.bind("ConfiguredSite.SiteURLNull"), null); //$NON-NLS-1$
-			return verifyStatus;
-		}
-
-		if (!"file".equalsIgnoreCase(siteURL.getProtocol())) { //$NON-NLS-1$
-			verifyStatus = createStatus(IStatus.ERROR, Policy.bind("ConfiguredSite.NonLocalSite"), null); //$NON-NLS-1$
-			return verifyStatus;
-		}
-
-		String siteLocation = siteURL.getFile();
-		File file = new File(siteLocation);
-
-		// get the product name of the private marker
-		// if there is no private marker, check if the site is contained in another site
-		// if there is a marker and this is a different product, return false
-		// otherwise don't check if we are contained in another site
-		String productName = getProductName(file);
-		if (productName != null) {
-			if (!productName.equals(getProductIdentifier("id", getProductFile()))) { //$NON-NLS-1$
-				verifyStatus = createStatus(IStatus.ERROR, Policy.bind("ConfiguredSite.NotSameProductId", productName), null); //$NON-NLS-1$
-				return verifyStatus;
-			}
-		} else {
-			File container = getSiteContaining(file);
-			if (container != null) {
-				verifyStatus = createStatus(IStatus.ERROR, Policy.bind("ConfiguredSite.ContainedInAnotherSite", container.getAbsolutePath()), null); //$NON-NLS-1$
-				return verifyStatus;
-			}
-		}
-
-		if (!canWrite(file)) {
-			verifyStatus = createStatus(IStatus.ERROR, Policy.bind("ConfiguredSite.ReadOnlySite"), null); //$NON-NLS-1$
-			return verifyStatus;
-		}
-
-		verifyStatus = createStatus(IStatus.OK, "", null); //$NON-NLS-1$
-		setUpdatable(true);
-		return verifyStatus;
-	}
-
-	/*
-	 * Verify we can write on the file system
-	 */
-	private static boolean canWrite(File file) {
-		if (!file.isDirectory() && file.getParentFile() != null) {
-			file = file.getParentFile();
-		}
-
-		File tryFile = null;
-		FileOutputStream out = null;
-		try {
-			tryFile = new File(file, "toDelete"); //$NON-NLS-1$
-			out = new FileOutputStream(tryFile);
-			out.write(0);
-		} catch (IOException e) {
-			return false;
-		} finally {
-			try {
-				if (out != null)
-					out.close();
-			} catch (IOException e) {
-			}
-			if (tryFile != null)
-				tryFile.delete();
-		}
-		return true;
-	}
-
-	/*
-	 * Check if the directory contains a marker
-	 * if not ask all directory children to check
-	 * if one validates the condition, returns the marker
-	 */
-	private static File getSiteContaining(File file) {
-
-		if (file == null)
-			return null;
-
-		UpdateCore.warn("IsContained: Checking for markers at:" + file); //$NON-NLS-1$
-		if (file.exists() && file.isDirectory()) {
-			File productFile = new File(file, PRODUCT_SITE_MARKER);
-			File extensionFile = new File(file, EXTENSION_SITE_MARKER);
-			if (productFile.exists() || extensionFile.exists())
-				return file;
-//			// do not check if a marker exists in the current but start from the parent
-//			// the current is analyze by getProductname()
-//			if (file.getParentFile() != null) {
-//				File privateFile = new File(file.getParentFile(), PRIVATE_SITE_MARKER);
-//				if (privateFile.exists())
-//					return file.getParentFile();
-//			}
-		}
-		return getSiteContaining(file.getParentFile());
-	}
-
-	/*
-	 * Returns the name of the product if the identifier of the private Site markup is not
-	 * the same as the identifier of the product the workbench was started with.
-	 * If the product is the same, return null.
-	 */
-	private static String getProductName(File file) {
-
-		if (file == null)
-			return null;
-
-		File markerFile = new File(file, EXTENSION_SITE_MARKER );
-		if (!markerFile.exists()) {
-			return null;
-		}
-
-		File productFile = getProductFile();
-		String productId = null;
-		String privateId = null;
-		if (productFile != null) {
-			productId = getProductIdentifier("id", productFile); //$NON-NLS-1$
-			privateId = getProductIdentifier("id", markerFile); //$NON-NLS-1$
-			if (productId == null) {
-				UpdateCore.warn("Product ID is null at:" + productFile); //$NON-NLS-1$
-				return null;
-			}
-			if (!productId.equalsIgnoreCase(privateId)) {
-				UpdateCore.warn("Product id at" + productFile + " Different than:" + markerFile); //$NON-NLS-1$ //$NON-NLS-2$
-				String name = getProductIdentifier("name", markerFile); //$NON-NLS-1$
-				String version = getProductIdentifier("version", markerFile); //$NON-NLS-1$
-				String markerID = (name == null) ? version : name + ":" + version; //$NON-NLS-1$
-				if (markerID == null)
-					markerID = ""; //$NON-NLS-1$
-				return markerID;
-			} else {
-				return privateId;
-			}
-		} else {
-			UpdateCore.warn("Product Marker doesn't exist:" + productFile); //$NON-NLS-1$
-		}
-
-		return null;
-	}
-
-	/*
-	 * Returns the identifier of the product from the property file
-	 */
-	private static String getProductIdentifier(String identifier, File propertyFile) {
-		String result = null;
-		if (identifier == null)
-			return result;
-		InputStream in = null;
-		try {
-			in = new FileInputStream(propertyFile);
-			PropertyResourceBundle bundle = new PropertyResourceBundle(in);
-			result = bundle.getString(identifier);
-		} catch (IOException e) {
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_INSTALL)
-				UpdateCore.debug("Exception reading property file:" + propertyFile); //$NON-NLS-1$
-		} catch (MissingResourceException e) {
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_INSTALL)
-				UpdateCore.debug("Exception reading '" + identifier + "' from property file:" + propertyFile); //$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			if (in == null)
-				try {
-					in.close();
-				} catch (IOException e1) {
-				}
-		}
-		return result;
-	}
-
-	/*
-	 * Returns the identifier of the product from the property file
-	 */
-	private static File getProductFile() {
-
-		String productInstallDirectory = ConfiguratorUtils.getInstallURL().getFile();
-		if (productInstallDirectory != null) {
-			File productFile = new File(productInstallDirectory, PRODUCT_SITE_MARKER);
-			if (productFile.exists()) {
-				return productFile;
-			} else {
-				UpdateCore.warn("Product marker doesn't exist:" + productFile); //$NON-NLS-1$
-			}
-		} else {
-			UpdateCore.warn("Cannot retrieve install URL from BootLoader"); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-	/*
-	 * 
-	 */
-	/*package*/
-	boolean createPrivateSiteMarker() {
-		URL siteURL = getSite().getURL();
-		if (siteURL == null) {
-			UpdateCore.warn("Unable to create marker. The Site url is null."); //$NON-NLS-1$
-			return false;
-		}
-
-		if (!"file".equalsIgnoreCase(siteURL.getProtocol())) { //$NON-NLS-1$
-			UpdateCore.warn("Unable to create private marker. The Site is not on the local file system."); //$NON-NLS-1$
-			return false;
-		}
-
-		String siteLocation = siteURL.getFile();
-		File productFile = getProductFile();
-		boolean success = false;
-		if (productFile != null) {
-			String productId = getProductIdentifier("id", productFile); //$NON-NLS-1$
-			String productName = getProductIdentifier("name", productFile); //$NON-NLS-1$
-			String productVer = getProductIdentifier("version", productFile); //$NON-NLS-1$
-			if (productId != null) {
-				File file = new File(siteLocation, EXTENSION_SITE_MARKER);
-				if (!file.exists()) {
-					OutputStream out = null;
-					OutputStreamWriter outWriter = null;
-					try {
-						out = new FileOutputStream(file);
-						outWriter = new OutputStreamWriter(out, "UTF8"); //$NON-NLS-1$
-						outWriter.write("id=" + productId+"\n"); //$NON-NLS-1$ //$NON-NLS-2$
-						if (productName != null)
-							outWriter.write("name=" + productName+"\n"); //$NON-NLS-1$ //$NON-NLS-2$
-						if (productVer != null)
-							outWriter.write("version=" + productVer+"\n"); //$NON-NLS-1$ //$NON-NLS-2$
-						success = true;
-						justCreated = true;
-					} catch (Exception e) {
-						UpdateCore.warn("Unable to create private Marker at:" + file, e); //$NON-NLS-1$
-					} finally {
-						try {
-							if (outWriter != null)
-								outWriter.close();
-						} catch (IOException e1) {
-						}
-						try {
-							if (out != null)
-								out.close();
-						} catch (IOException e2) {
-						}
-					}
-				}
-			}
-		}
-		return success;
-	}
-
-
-	/*
-	 * Returns true if the directory of the Site contains
-	 * .eclipseextension
-	 */
-	public boolean isExtensionSite() {
-		return containsMarker(EXTENSION_SITE_MARKER);
-	}
-
-	/*
-	 * Returns true if the directory of the Site contains
-	 * .eclipseextension
-	 */
-	public boolean isProductSite() {
-		return containsMarker(PRODUCT_SITE_MARKER);
-	}
-
-	/*
-	 * Returns true if the directory of the Site contains
-	 * .eclipseextension
-	 */
-	public boolean isPrivateSite() {
-		return isExtensionSite();
-	}
-
-	/*
-	 * 
-	 */
-	private boolean containsMarker(String marker) {
-		ISite site = getSite();
-		if (site == null) {
-			UpdateCore.warn("Contains Markers:The site is null"); //$NON-NLS-1$
-			return false;
-		}
-
-		URL url = site.getURL();
-		if (url == null) {
-			UpdateCore.warn("Contains Markers:Site URL is null"); //$NON-NLS-1$
-			return false;
-		}
-		if (!"file".equalsIgnoreCase(url.getProtocol())) { //$NON-NLS-1$
-			UpdateCore.warn("Contains Markers:Non file protocol"); //$NON-NLS-1$
-			return false;
-		}
-		File file = new File(url.getFile());
-		if (!file.exists()) {
-			UpdateCore.warn("Contains Markers:The site doesn't exist:" + file); //$NON-NLS-1$
-			return false;
-		}
-		File extension = new File(file, marker);
-		if (!extension.exists()) {
-			UpdateCore.warn("Contains Markers:The extensionfile does not exist:" + extension); //$NON-NLS-1$
-			return false;
-		}
-		return true;
-	}
-
-	/*
-	 * Returns true if the Site is already natively linked
-	 */
-	public boolean isNativelyLinked() throws CoreException {
-		String platformString = getPlatformURLString();
-		if (platformString == null) {
-			UpdateCore.warn("Unable to retrieve platformString"); //$NON-NLS-1$
-			return false;
-		}
-
-		URL siteURL = null;
-		try {
-			// check if the site exists and is updatable
-			// update configSite
-			URL urlToCheck = new URL(platformString);
-			IPlatformConfiguration runtimeConfig = ConfiguratorUtils.getCurrentPlatformConfiguration();
-			IPlatformConfiguration.ISiteEntry entry = runtimeConfig.findConfiguredSite(urlToCheck);
-			if (entry != null) {
-				return entry.isNativelyLinked();
-			} else {
-				UpdateCore.warn("Unable to retrieve site:" + platformString + " from platform."); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-			// check by comparing URLs
-			IPlatformConfiguration.ISiteEntry[] sites = runtimeConfig.getConfiguredSites();
-			for (int i = 0; i < sites.length; i++) {
-				siteURL = sites[i].getURL();
-				URL resolvedURL = Platform.resolve(siteURL);
-				if (UpdateManagerUtils.sameURL(resolvedURL, urlToCheck))
-					return true;
-			}
-		} catch (MalformedURLException e) {
-			String msg = Policy.bind("ConfiguredSite.UnableResolveURL", platformString); //$NON-NLS-1$
-			throw Utilities.newCoreException(msg, e);
-		} catch (IOException e) {
-			String msg = Policy.bind("ConfiguredSite.UnableToAccessSite", new Object[] { siteURL }); //$NON-NLS-1$
-			throw Utilities.newCoreException(msg, e);
-		}
-
-		return false;
-	}
-
-	/*
-	* we have to check that no configured/enable parent include this feature
-	*/
-	private boolean validateNoConfiguredParents(IFeature feature) throws CoreException {
-		if (feature == null) {
-			UpdateCore.warn("ConfigurationPolicy: validate Feature is null"); //$NON-NLS-1$
-			return true;
-		}
-
-		IFeatureReference[] parents = UpdateManagerUtils.getParentFeatures(feature, getConfiguredFeatures(), false);
-		return (parents.length == 0);
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConnectionThreadManager.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConnectionThreadManager.java
deleted file mode 100644
index 75be302..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConnectionThreadManager.java
+++ /dev/null
@@ -1,198 +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 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.update.internal.core;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * This class manages threads that are dispatched to 
- * obtained a valid input stream from an HTTP connection.
- * Since obtaining an input stream is an I/O operation
- * that may block for a long time, it is performed
- * on a separate thread to keep the UI responsive.
- * <p>
- * In case that a connection blocks and does not
- * terminate with an IOException after a timeout, 
- * active threads may accumulate. The manager will
- * refuse to create more than MAX_COUNT threads and
- * instead will throw a CoreException with a child
- * status object for each connection that is still pending.
- * <p>
- * If the connection is responsive but slow, the user
- * may cancel it. In that case, the manager will
- * close the stream to avoid resource leak.
- */
-public class ConnectionThreadManager {
-	// set connection timeout to 1 minute
-	private static final String CONNECT_TIMEOUT = "60000"; //$NON-NLS-1$
-	// set read timeout to 1 minute
-	private static final String READ_TIMEOUT = "60000"; //$NON-NLS-1$
-	// max number of active threads
-	private static final int MAX_COUNT = 9;
-	private Vector threads;
-
-	public static class StreamRunnable implements Runnable {
-		private URLConnection urlConnection;
-		private Exception exception;
-		private InputStream is;
-		private boolean disconnected;
-
-		public StreamRunnable(URLConnection urlConnection) {
-			this.urlConnection = urlConnection;
-		}
-
-		public InputStream getInputStream() {
-			return is;
-		}
-
-		public URL getURL() {
-			return urlConnection.getURL();
-		}
-
-		public Exception getException() {
-			return exception;
-		}
-
-		public void disconnect() {
-			if (urlConnection instanceof HttpURLConnection)
-				((HttpURLConnection)urlConnection).disconnect();
-			disconnected = true;
-		}
-
-		public void run() {
-			try {
-				is = urlConnection.getInputStream();
-				if (disconnected) {
-					// The connection was slow, but returned
-					// a valid input stream. However,
-					// the user canceled the connection
-					// so we must close to avoid 
-					// resource leak.
-					if (is != null) {
-						try {
-							is.close();
-						} catch (IOException ex) {
-							// at this point, we don't care
-						} finally {
-							is = null;
-						}
-					}
-				}
-			} catch (Exception e) {
-				exception = e;
-			}
-		}
-	}
-
-	class ConnectionThread extends Thread {
-		private StreamRunnable runnable;
-		public ConnectionThread(StreamRunnable runnable) {
-			super(runnable, "update-connection"); //$NON-NLS-1$
-			this.runnable = runnable;
-		}
-
-		public StreamRunnable getRunnable() {
-			return runnable;
-		}
-	}
-
-	public ConnectionThreadManager() {
-		// In case we are running Sun's code.
-		setIfNotDefaultProperty("sun.net.client.defaultConnectTimeout", CONNECT_TIMEOUT); //$NON-NLS-1$
-		setIfNotDefaultProperty("sun.net.client.defaultReadTimeout", READ_TIMEOUT);  //$NON-NLS-1$
-	}
-	
-	private void setIfNotDefaultProperty(String key, String value) {
-		String oldValue = System.getProperty(key);
-		if (oldValue==null || oldValue.equals("-1")) //$NON-NLS-1$
-			System.setProperty(key, value);
-	}
-
-	public Thread createThread(StreamRunnable runnable) throws CoreException {
-		validateExistingThreads();
-		if (threads == null)
-			threads = new Vector();
-		Thread t = new ConnectionThread(runnable);
-		t.setDaemon(true);
-		threads.add(t);
-		return t;
-	}
-
-	/*
-	 * Removes threads that are not alive any more from the 
-	 * list and ensures that there are at most MAX_COUNT threads
-	 * still working.
-	 */
-	private void validateExistingThreads() throws CoreException {
-		if (threads == null)
-			return;
-			
-		int aliveCount = purgeTerminatedThreads();
-
-		if (aliveCount > MAX_COUNT) {
-			ArrayList children = new ArrayList();
-			String pluginId =
-				UpdateCore.getPlugin().getBundle().getSymbolicName();
-			for (int i = 0; i < threads.size(); i++) {
-				ConnectionThread t = (ConnectionThread) threads.get(i);
-				String url = t.getRunnable().getURL().toString();
-				IStatus status =
-					new Status(
-						IStatus.ERROR,
-						pluginId,
-						IStatus.OK,
-						Policy.bind(
-							"ConnectionThreadManager.unresponsiveURL", //$NON-NLS-1$
-							url),
-						null);
-				children.add(status);
-			}
-			MultiStatus parentStatus =
-				new MultiStatus(
-					pluginId,
-					IStatus.OK,
-					(IStatus[]) children.toArray(new IStatus[children.size()]),
-					Policy.bind("ConnectionThreadManager.tooManyConnections"), //$NON-NLS-1$
-					null);
-			throw new CoreException(parentStatus);
-		}
-	}
-	
-	/*
-	 * Removes terminated threads from the list and returns
-	 * the number of those still active.
-	 */
-	
-	private int purgeTerminatedThreads() {
-		int aliveCount = 0;
-
-		Object[] array = threads.toArray();
-		for (int i = 0; i < array.length; i++) {
-			Thread t = (Thread) array[i];
-			if (!t.isAlive())
-				threads.remove(t);
-			else
-				aliveCount++;
-		}
-		return aliveCount;
-	}
-
-	public void shutdown() {
-		// We might want to kill the active threads but
-		// this is not really necessary since they are all
-		// daemons and will not prevent JVM to terminate.
-		threads.clear();
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ContentConsumer.java
deleted file mode 100644
index 2d71936..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ContentConsumer.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.core;
-
-
-import org.eclipse.update.core.*;
-
-/**
- * A default implementation for IFeatureContentConsumer
- * </p>
- * @since 2.0
- */
-
-public abstract class ContentConsumer implements IContentConsumer {
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DefaultInstallHandler.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DefaultInstallHandler.java
deleted file mode 100644
index e91b9f6..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DefaultInstallHandler.java
+++ /dev/null
@@ -1,147 +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 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.update.internal.core;
-
-
-import java.io.*;
-import java.util.jar.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.JarContentReference.*;
-import org.eclipse.update.core.model.*;
-
-/**
- * Default Implementation of InstallHandler
- */
-public class DefaultInstallHandler extends BaseInstallHandler {
-
-	/*
-	 * @see IInstallHandler#nonPluginDataDownloaded(INonPluginEntry[], IVerificationListener)
-	 */
-	public void nonPluginDataDownloaded(
-		INonPluginEntry[] nonPluginData,
-		IVerificationListener listener)
-		throws CoreException {
-
-		// verify non-plugin archives. The DefaultInstallHandler assumes
-		// the verifier associated with the feature is able to verify the
-		// data archives.
-		if (nonPluginData == null || nonPluginData.length == 0)
-			return;
-
-		this.nonPluginEntries = nonPluginData;
-		IFeatureContentProvider provider = this.feature.getFeatureContentProvider();
-		IVerifier verifier = provider.getVerifier();
-		if (verifier == null)
-			return;
-
-		for (int i = 0; i < this.nonPluginEntries.length; i++) {
-			ContentReference[] archives =
-				provider.getNonPluginEntryArchiveReferences(nonPluginEntries[i], this.monitor);
-			IVerificationResult result;
-			for (int j = 0; j < archives.length; j++) {
-
-				// see if the data entry is a jar
-				ContentReference archive = archives[j];
-				if (!(archives[j] instanceof JarContentReference)
-					&& archives[j].getIdentifier().endsWith(".jar")) { //$NON-NLS-1$
-					try {
-						archive =
-							new JarContentReference(archives[j].getIdentifier(), archives[j].asFile());
-					} catch (IOException e) {
-					}
-				}
-
-				result = verifier.verify(this.feature, archive, false, this.monitor);
-				if (result != null)
-					promptForVerification(result, listener);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#completeInstall(IFeatureContentConsumer)
-	 */
-	public void completeInstall(IFeatureContentConsumer consumer)
-		throws CoreException {
-
-		// plugins have been installed. Check to see if we have any
-		// non-plugin entries that need to be handled.
-		if (this.nonPluginEntries == null || this.nonPluginEntries.length == 0)
-			return;
-
-		// install non-plugin archives
-		IFeatureContentProvider provider = this.feature.getFeatureContentProvider();
-		for (int i = 0; i < this.nonPluginEntries.length; i++) {
-			ContentReference[] archive =
-				provider.getNonPluginEntryArchiveReferences(nonPluginEntries[i], this.monitor);
-			IContentConsumer nonPluginConsumer = consumer.open(nonPluginEntries[i]);
-			for (int j = 0; j < archive.length; j++) {
-				String id = archive[j].getIdentifier();
-				if (id.endsWith(".jar")) { //$NON-NLS-1$
-					// the non-plugin archive is a jar. Unpack it into
-					// a directory constructed using the archive id
-					try {
-						final String prefix = id.substring(0, id.length() - 4) + "/"; //$NON-NLS-1$
-						JarContentReference jarRef = new JarContentReference("", archive[j].asFile()); //$NON-NLS-1$
-						ContentSelector selector = new ContentSelector() {
-							public String defineIdentifier(JarEntry entry) {
-								if (entry == null)
-									return null;
-								else
-									return prefix + entry.getName();
-							}
-						};
-						ContentReference[] entries = jarRef.peek(selector, this.monitor);
-						for (int k = 0; k < entries.length; k++) {
-							nonPluginConsumer.store(entries[k], this.monitor);
-						}
-					} catch (IOException e) {
-						throw Utilities
-							.newCoreException(Policy.bind("JarVerificationService.CancelInstall", id),	//$NON-NLS-1$
-						e);
-					}
-
-				} else {
-					// the non-plugin archive is not a jar. Install it asis.
-					nonPluginConsumer.store(archive[j], this.monitor);
-				}
-			}
-			nonPluginConsumer.close();
-		}
-	}
-
-	/*
-	 * 
-	 */
-	private void promptForVerification(
-		IVerificationResult verificationResult,
-		IVerificationListener listener)
-		throws CoreException {
-
-		if (listener == null)
-			return;
-		int result = listener.prompt(verificationResult);
-
-		if (result == IVerificationListener.CHOICE_ABORT) {
-			Exception e = verificationResult.getVerificationException();
-			throw new InstallAbortedException(Policy.bind("JarVerificationService.CancelInstall"),e); //$NON-NLS-1$
-		}
-		if (result == IVerificationListener.CHOICE_ERROR) {
-			throw Utilities
-				.newCoreException(Policy.bind("JarVerificationService.UnsucessfulVerification"), //$NON-NLS-1$
-			verificationResult.getVerificationException());
-		}
-
-		return;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DeltaInstallHandler.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DeltaInstallHandler.java
deleted file mode 100644
index 02233e5..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DeltaInstallHandler.java
+++ /dev/null
@@ -1,166 +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 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.update.internal.core;
-
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.operations.*;
-
-/**
- * Install handler for partial plugin delivery: copy delta content from old plugin into the new one.
- * The new plugin should only contain files that have changed.
- */
-public class DeltaInstallHandler extends BaseInstallHandler {
-	private final static String PLUGIN_XML = "plugin.xml"; //$NON-NLS-1$
-	private final static String FRAGMENT_XML = "fragment.xml"; //$NON-NLS-1$
-	private final static String META_MANIFEST = "META-INF/MANIFEST.MF"; //$NON-NLS-1$
-
-	protected IFeature oldFeature;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#completeInstall(org.eclipse.update.core.IFeatureContentConsumer)
-	 */
-	public void completeInstall(IFeatureContentConsumer consumer)
-		throws CoreException {
-		try {
-			if (pluginEntries == null)
-				return;
-
-			if (!feature.isPatch()) {
-				// Get the old feature
-				IFeature[] oldFeatures = UpdateUtils
-						.getInstalledFeatures(feature);
-				if (oldFeatures.length == 0)
-					return;
-				oldFeature = oldFeatures[0];
-			} else {
-				oldFeature = UpdateUtils.getPatchedFeature(feature);
-				if (oldFeature == null) {
-					return;
-				}
-			}
-			
-			IPluginEntry[] oldPlugins = oldFeature.getPluginEntries();
-			for (int i = 0; i < pluginEntries.length; i++) {
-				IPluginEntry newPlugin = pluginEntries[i];
-				IPluginEntry oldPlugin =
-					getPluginEntry(
-						oldPlugins,
-						newPlugin.getVersionedIdentifier().getIdentifier());
-				if (oldPlugin == null)
-					continue;
-				try {
-					overlayPlugin(oldPlugin, newPlugin, consumer);
-				} catch (IOException e) {
-					throw new CoreException(
-						new Status(
-							Status.ERROR,
-							UpdateUtils.getPluginId(),
-							1,
-							"", //$NON-NLS-1$
-							e));
-				}
-			}
-		} finally {
-			//if (contentConsumer != null)
-			//	contentConsumer.close();
-		}
-	}
-
-	protected IPluginEntry getPluginEntry(IPluginEntry[] plugins, String id) {
-		for (int i = 0; i < plugins.length; i++)
-			if (plugins[i].getVersionedIdentifier().getIdentifier().equals(id))
-				return plugins[i];
-		return null;
-	}
-
-	protected boolean referenceExists(
-		ContentReference[] references,
-		ContentReference ref) {
-		String id = ref.getIdentifier();
-		if (id == null)
-			return false;
-
-		for (int i = 0; i < references.length; i++)
-			if (id.equals(references[i].getIdentifier()))
-				return true;
-		return false;
-	}
-
-	protected void overlayPlugin(
-		IPluginEntry oldPlugin,
-		IPluginEntry newPlugin,
-		IFeatureContentConsumer consumer)
-		throws CoreException, IOException {
-		if(newPlugin instanceof PluginEntry && !((PluginEntry)newPlugin).isUnpack()){
-			// partial plug-ins (in patches) must always be unpacked
-			return;
-		}
-		
-		// copy the content of the old plugin over the new one, but only
-		// those files that do not exist on the target
-		ContentReference[] oldReferences =
-			oldFeature
-				.getFeatureContentProvider()
-				.getPluginEntryContentReferences(
-				oldPlugin,
-				null);
-		ContentReference[] newReferences =
-			feature
-				.getFeatureContentProvider()
-				.getPluginEntryContentReferences(
-				newPlugin,
-				null);
-
-		URL newURL = new URL(consumer.getFeature().getSite().getURL(),
-				Site.DEFAULT_PLUGIN_PATH
-						+ newPlugin.getVersionedIdentifier().toString());
-		String pluginPath = newURL.getFile();
-		for (int i = 0; i < oldReferences.length; i++) {
-			if (isPluginManifest(oldReferences[i])
-				|| referenceExists(newReferences, oldReferences[i]))
-				continue;
-
-			InputStream input = null;
-			try {
-				input = oldReferences[i].getInputStream();
-				File targetFile =
-					new File(pluginPath, oldReferences[i].getIdentifier());
-				UpdateManagerUtils.copyToLocal(
-					input,
-					targetFile.getAbsolutePath(),
-					null);
-				UpdateManagerUtils.checkPermissions(
-					oldReferences[i],
-					pluginPath);
-				// 20305
-			} catch (IOException e) {
-				continue;
-			} finally {
-				if(input != null){
-					try{
-						input.close();
-					} catch (IOException ioe) {
-					}
-				}
-			}
-		}
-	}
-
-	protected boolean isPluginManifest(ContentReference ref) {
-		String id = ref.getIdentifier();
-		return PLUGIN_XML.equals(id) || FRAGMENT_XML.equals(id) || META_MANIFEST.equals(id);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ErrorRecoveryLog.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ErrorRecoveryLog.java
deleted file mode 100644
index 37d2512..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ErrorRecoveryLog.java
+++ /dev/null
@@ -1,550 +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 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.update.internal.core;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.configurator.*;
-
-
-/**
- * singleton pattern.
- * manages the error/recover log file
- */
-public class ErrorRecoveryLog {
-
-	public static final boolean RECOVERY_ON = false;
-
-	private static final String ERROR_RECOVERY_LOG = "error_recovery.log"; //$NON-NLS-1$
-	private static final String LOG_ENTRY_KEY = "LogEntry."; //$NON-NLS-1$
-	private static final String RETURN_CARRIAGE = "\r\n"; //$NON-NLS-1$
-	private static final String END_OF_FILE = "eof=eof"; //$NON-NLS-1$
-
-	//
-	public static final String START_INSTALL_LOG = 	"START_INSTALL_LOG"; //$NON-NLS-1$
-	public static final String PLUGIN_ENTRY = 		"PLUGIN"; //$NON-NLS-1$
-	public static final String FRAGMENT_ENTRY = 		"FRAGMENT";	 //$NON-NLS-1$
-	public static final String BUNDLE_MANIFEST_ENTRY = 		"BUNDLE_MANIFEST";	 //$NON-NLS-1$
-	public static final String BUNDLE_JAR_ENTRY = 			"BUNDLE";	 //$NON-NLS-1$
-	public static final String FEATURE_ENTRY = 		"FEATURE"; //$NON-NLS-1$
-	public static final String ALL_INSTALLED = 		"ALL_FEATURES_INSTALLED"; //$NON-NLS-1$
-	public static final String RENAME_ENTRY = 		"RENAME"; //$NON-NLS-1$
-	public static final String END_INSTALL_LOG = 	"END_INSTALL_LOG"; //$NON-NLS-1$
-	public static final String START_REMOVE_LOG = 	"REMOVE_LOG"; //$NON-NLS-1$
-	public static final String END_ABOUT_REMOVE =	"END_ABOUT_TO_REMOVE"; //$NON-NLS-1$
-	public static final String DELETE_ENTRY = 		"DELETE"; //$NON-NLS-1$
-	public static final String END_REMOVE_LOG = 		"END_REMOVE_LOG"; //$NON-NLS-1$
-
-	public static boolean forceRemove = false;
-
-	private static ErrorRecoveryLog inst;
-	private FileWriter out;
-	private int index;
-	private List paths;
-	
-	private boolean open = false;
-	private int nbOfOpen = 0;
-	
-
-	/**
-	 * Constructor for ErrorRecoveryLog.
-	 */
-	private ErrorRecoveryLog() {
-		super();
-	}
-
-	/**
-	 * Singleton
-	 */
-	public static ErrorRecoveryLog getLog() {
-		if (inst == null){
-			inst = new ErrorRecoveryLog();
-		}
-		return inst;
-	}
-
-	/**
-	 * get a unique identifer for the file, ensure uniqueness up to now
-	 */
-	public static String getLocalRandomIdentifier(String path) {
-		
-		if (path==null) return null;
-		
-		// verify if it will be a directory without creating the file
-		// as it doesn't exist yet
-		if (path.endsWith(File.separator) || path.endsWith("/")) //$NON-NLS-1$
-			return path;
-		File file = new File(path);
-		String newName =
-			UpdateManagerUtils.getLocalRandomIdentifier(file.getName(), new Date());
-		while (new File(newName).exists()) {
-			newName =
-				UpdateManagerUtils.getLocalRandomIdentifier(file.getName(), new Date());
-		}
-		File newFile = new File(file.getParentFile(),newName);
-		return newFile.getAbsolutePath();
-	}
-
-	/**
-	 * returns the log file 
-	 * We do not check if the file exists
-	 */
-	public File getRecoveryLogFile() {
-		IPlatformConfiguration configuration =
-			ConfiguratorUtils.getCurrentPlatformConfiguration();
-		URL location = configuration.getConfigurationLocation();
-		String locationString = location.getFile();
-		File platformConfiguration = new File(locationString);
-		if (!platformConfiguration.isDirectory()) platformConfiguration = platformConfiguration.getParentFile();
-		return new File(platformConfiguration, ERROR_RECOVERY_LOG);
-	}
-
-
-	/**
-	 * Open the log
-	 */
-	public void open(String logEntry) throws CoreException {
-		if (open) {
-			nbOfOpen++;			
-			UpdateCore.warn("Open nested Error/Recovery log #"+nbOfOpen+":"+logEntry);				 //$NON-NLS-1$ //$NON-NLS-2$
-			return;
-		}
-		
-		File logFile = null;		
-		try {
-			logFile = getRecoveryLogFile();
-			out = new FileWriter(logFile);
-			index = 0;
-			paths=null;
-			open=true;
-			nbOfOpen=0;
-			UpdateCore.warn("Start new Error/Recovery log #"+nbOfOpen+":"+logEntry);							 //$NON-NLS-1$ //$NON-NLS-2$
-		} catch (IOException e) {
-			throw Utilities.newCoreException(
-				Policy.bind("UpdateManagerUtils.UnableToLog", new Object[] { logFile }), //$NON-NLS-1$
-				e);
-		}
-		
-		append(logEntry);
-	}
-
-	/**
-	 * Append the string to the log and flush
-	 */
-	public void append(String logEntry) throws CoreException {
-		File logFile = null;
-		try {
-			if (!open) {
-				UpdateCore.warn("Internal Error: The Error/Recovery log is not open:"+logEntry);				 //$NON-NLS-1$
-				return;
-			}
-
-			StringBuffer buffer = new StringBuffer(LOG_ENTRY_KEY);
-			buffer.append(index);
-			buffer.append("="); //$NON-NLS-1$
-			buffer.append(logEntry);
-			buffer.append(RETURN_CARRIAGE);
-
-			out.write(buffer.toString());
-			out.flush();
-			index++;
-		} catch (IOException e) {
-			throw Utilities.newCoreException(
-				Policy.bind("UpdateManagerUtils.UnableToLog", new Object[] { logFile }), //$NON-NLS-1$
-				e);
-		}
-	}
-
-	/**
-	 * Append the string to the log and flush
-	 */
-	public void appendPath(String logEntry, String path) throws CoreException {
-		if (path == null)
-			return;
-		StringBuffer buffer = new StringBuffer(logEntry);
-		buffer.append(" "); //$NON-NLS-1$
-		buffer.append(path);
-		append(buffer.toString());
-		
-		addPath(path);
-	}
-
-	/**
-	 * Close any open recovery log
-	 */
-	public void close(String logEntry) throws CoreException {
-		
-		if (nbOfOpen>0){
-			UpdateCore.warn("Close nested Error/Recovery log #"+nbOfOpen+":"+logEntry);			 //$NON-NLS-1$ //$NON-NLS-2$
-			nbOfOpen--;			
-			return;
-		}			
-		
-		UpdateCore.warn("Close Error/Recovery log #"+nbOfOpen+":"+logEntry); //$NON-NLS-1$ //$NON-NLS-2$
-		append(logEntry);
-		if (out != null) {
-			try {
-				out.write(END_OF_FILE);
-				out.flush();
-				out.close();
-			} catch (IOException e) { //eat the exception
-			} finally {
-				out = null;
-				open=false;
-			}
-		}
-	}
-
-	/**
-	 * Delete the file from the file system
-	 */
-	public void delete() {
-		//File logFile = getRecoveryLogFile();
-		getRecoveryLogFile();
-		//if (logFile.exists())
-			//logFile.delete();	
-	}
-
-	/**
-	 * 
-	 */
-	private void addPath(String path){
-		if (paths==null) paths = new ArrayList();
-		paths.add(path);
-	}
-	
-	/** 
-	 * recover an install or remove that didn't finish
-	 * Delete file for an unfinished delete
-	 * Delete file for an unfinshed install if not all the files were installed
-	 * Rename XML files for an install if all the files were installed but not renamed
-	 */
-	public IStatus recover(){
-		
-		IStatus mainStatus = createStatus(IStatus.OK,Policy.bind("ErrorRecoveryLog.recoveringStatus"),null); //$NON-NLS-1$
-		MultiStatus multi = new MultiStatus(mainStatus.getPlugin(),mainStatus.getCode(),mainStatus.getMessage(),null);
-
-		//check if recovery is on
-		if (!RECOVERY_ON){
-			UpdateCore.warn("Recovering is turned off. Abort recovery"); //$NON-NLS-1$
-			return multi;
-		}
-		
-		File logFile = getRecoveryLogFile();
-		if (!logFile.exists()){
-			multi.add(createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.cannotFindLogFile")+logFile,null)); //$NON-NLS-1$
-			return multi;
-		}
-		
-		InputStream in = null;
-		Properties prop = null;
-		try {
-			in = new FileInputStream(logFile);
-			prop = new Properties();
-			prop.load(in);
-		} catch (IOException e){
-			UpdateCore.warn("Unable to read:"+logFile,e); //$NON-NLS-1$
-			multi.add(createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.noPropertyFile")+logFile,e)); //$NON-NLS-1$
-			return multi;
-		} finally {
-			if (in != null)
-				try {
-					in.close();
-				} catch (IOException e1) {
-				}
-		}
-		
-		String eof = prop.getProperty("eof"); //$NON-NLS-1$
-		if(eof!=null && eof.equals("eof")){ //$NON-NLS-1$
-			// all is good
-			delete();
-			UpdateCore.warn("Found log file. Log file contains end-of-file. No need to process"); //$NON-NLS-1$
-			multi.add(createStatus(IStatus.OK,null,null));
-			return multi;
-		}
-		
-		String recovery = prop.getProperty(LOG_ENTRY_KEY+"0"); //$NON-NLS-1$
-		if (recovery==null){
-			multi.add(createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.noLogEntry")+logFile,null)); //$NON-NLS-1$
-			return multi;			
-		}
-	
-		if(recovery.equalsIgnoreCase(START_INSTALL_LOG)){
-			multi.addAll(processRecoverInstall(prop));
-			return multi;
-		}
-		
-		if(recovery.equalsIgnoreCase(START_REMOVE_LOG)){
-			multi.addAll(processRecoverRemove(prop));
-			return multi;
-		}
-
-		multi.add(createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.noRecoveryToExecute")+logFile,null)); //$NON-NLS-1$
-		return multi;	
-	}
-	
-	/*
-	 * creates a Status
-	 */
-	private IStatus createStatus(int statusSeverity, String msg, Exception e){
-		String id =
-			UpdateCore.getPlugin().getBundle().getSymbolicName();
-	
-		StringBuffer completeString = new StringBuffer(""); //$NON-NLS-1$
-		if (msg!=null)
-			completeString.append(msg);
-		if (e!=null){
-			completeString.append("\r\n["); //$NON-NLS-1$
-			completeString.append(e.toString());
-			completeString.append("]\r\n"); //$NON-NLS-1$
-		}
-		return new Status(statusSeverity, id, IStatus.OK, completeString.toString(), e);
-	}	
-	
-	/*
-	 * 
-	 */
-	 private IStatus processRecoverInstall(Properties prop){
-	 	
-		IStatus mainStatus = createStatus(IStatus.OK,"",null); //$NON-NLS-1$
-		MultiStatus multi = new MultiStatus(mainStatus.getPlugin(),mainStatus.getCode(),"",null); //$NON-NLS-1$
-	 	
-	 	Collection values = prop.values();
-	 	
-	 	if(values.contains(END_INSTALL_LOG)){
-			// all is good
-			delete();
-			UpdateCore.warn("Found log file. Log file contains END_INSTALL_LOG. No need to process rename"); //$NON-NLS-1$
-			multi.add(createStatus(IStatus.OK,null,null));
-			return multi;
-	 	}
-	 	
-	 	if (values.contains(ALL_INSTALLED) && !forceRemove){
-	 		// finish install by renaming
-	 		int index = 0;
-	 		boolean found = false;
-	 		String val = prop.getProperty(LOG_ENTRY_KEY+index);
-	 		while(val!=null && !found){
-	 			if(val.equalsIgnoreCase(ALL_INSTALLED)) found = true;
-	 			IStatus renameStatus = processRename(val);
-	 			UpdateCore.log(renameStatus);
-	 			if(renameStatus.getSeverity()!=IStatus.OK){
-	 				multi.add(renameStatus);
-	 			}
-	 			index++;
-	 			val = prop.getProperty(LOG_ENTRY_KEY+index);	 			
-	 		}
-	 		if (val==null){
-	 			UpdateCore.warn("Unable to find value for :"+LOG_ENTRY_KEY+index); //$NON-NLS-1$
-	 			multi.add(createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.wrongLogFile")+LOG_ENTRY_KEY+index,null)); //$NON-NLS-1$
-				return multi;
-	 		}
-	 		// process recovery finished
-	 		delete();
-			UpdateCore.warn("Found log file. Successfully recovered by renaming. Feature is installed."); //$NON-NLS-1$
-			multi.add(createStatus(IStatus.OK,null,null));
-	 	} else {
-	 		// remove all because install did not lay out all the files
-	 		// or recovery is not allowed
-	 		int index = 0;
-	 		String val = prop.getProperty(LOG_ENTRY_KEY+index);
-	 		while(val!=null){
-	 			IStatus removeStatus = processRemove(val);
-	 			UpdateCore.log(removeStatus);
-	 			if(removeStatus.getSeverity()!=IStatus.OK){
-	 				multi.addAll(removeStatus);
-	 			}
-	 			index++;
-	 			val = prop.getProperty(LOG_ENTRY_KEY+index);	 			
-	 		}
-	 		// process recovery finished
-	 		delete();
-			UpdateCore.warn("Found log file. Successfully recovered by removing. Feature is removed."); //$NON-NLS-1$
-			multi.add(createStatus(IStatus.OK,null,null));
-	 	}
-	 	return multi;
-	 }
-	 
-	 /*
-	  * 
-	  */
-	  private IStatus processRename(String val){
-	  	
-		// get the path
-		int index = -1;
-		String newFileName = null;
-	  	if (val.startsWith(PLUGIN_ENTRY)){
-	  		index = PLUGIN_ENTRY.length();
-	  		newFileName= "plugin.xml"; //$NON-NLS-1$
-	  	} else if (val.startsWith(BUNDLE_MANIFEST_ENTRY)){
-	  		index = BUNDLE_MANIFEST_ENTRY.length();
-	  		newFileName= "META-INF/MANIFEST.MF"; //$NON-NLS-1$
-	  	}else if (val.startsWith(FRAGMENT_ENTRY)){
-	  		index = FRAGMENT_ENTRY.length();
-	  		newFileName= "fragment.xml"; //$NON-NLS-1$
-	  	} else if (val.startsWith(FEATURE_ENTRY)){
-	  		index = FEATURE_ENTRY.length();
-	  		newFileName= "feature.xml"; //$NON-NLS-1$
-	  	} else if (val.startsWith(BUNDLE_JAR_ENTRY)){
-	  		index = BUNDLE_JAR_ENTRY.length();
-	  	}
-	  	
-	  	if (index==-1){
-	  		return createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.noAction")+val,null); //$NON-NLS-1$
-	  	}
-	  	
-	  	String oldName = val.substring(index+1);
-	  	// oldname is com.pid/plugin#####.xml
-	  	// or oldname is com.pid/pid_pver.jar######.tmp
-	  	File oldFile = new File(oldName);
-	  	File newFile;
-	  	if(val.startsWith(BUNDLE_JAR_ENTRY)){
-	  		newFile = new File(oldFile.getAbsolutePath().substring(0, oldFile.getAbsolutePath().lastIndexOf(".jar")+".jar".length())); //$NON-NLS-1$ //$NON-NLS-2$
-	  	}else{
-	  		newFile = new File(oldFile.getParentFile(),newFileName);
-	  	}
-	  	if (!oldFile.exists()){
-	  		if (newFile.exists()){
-	  			// ok the file has been renamed apparently
-			  	return createStatus(IStatus.OK,Policy.bind("ErrorRecoveryLog.fileAlreadyRenamed")+newFile,null);	  				 //$NON-NLS-1$
-	  		} else {
-	  			// the file doesn't exist, log as problem, and force the removal of the feature
-		  		return createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.cannotFindFile")+oldFile,null);	  			 //$NON-NLS-1$
-	  		}
-	  	} 	
-	  	
-		boolean sucess = false;
-		if (newFile.exists()) {
-			UpdateManagerUtils.removeFromFileSystem(newFile);
-			UpdateCore.warn("Removing already existing file:"+newFile); //$NON-NLS-1$
-		}
-		sucess = oldFile.renameTo(newFile);
-			
-		if(!sucess){
-			String msg =(Policy.bind("ErrorRecoveryLog.oldToNew")+oldFile+newFile); //$NON-NLS-1$
-			return createStatus(IStatus.ERROR,msg,null);
-		}
-		return createStatus(IStatus.OK,Policy.bind("ErrorRecoveryLog.renamed")+oldFile+Policy.bind("ErrorRecoveryLog.to")+newFile,null); //$NON-NLS-1$ //$NON-NLS-2$
-	  }
-	  
-	 /*
-	  * 
-	  */
-	  private IStatus processRemove(String val){
-	  	
-		IStatus mainStatus = createStatus(IStatus.OK,"",null); //$NON-NLS-1$
-		MultiStatus multi = new MultiStatus(mainStatus.getPlugin(),mainStatus.getCode(),"",null);	  	 //$NON-NLS-1$
-	  	
-		// get the path
-		int index = -1;
-		if (val.startsWith(BUNDLE_JAR_ENTRY)){
-	  		index = BUNDLE_JAR_ENTRY.length();
-	  	}
-	  	
-	  	if (index==-1){
-	  		return createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.noAction")+val,null); //$NON-NLS-1$
-	  	}
-	  	
-	  	String oldName = val.substring(index+1);
-	  	File oldFile = new File(oldName);
-	  	if (!oldFile.exists()){
-  			// the jar or directory doesn't exist, log as problem, and force the removal of the feature
-	  		multi.add(createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.cannotFindFile")+oldFile,null));	  			 //$NON-NLS-1$
-	  		return multi;
-	  	} 		  	
-		multi.addAll(removeFromFileSystem(oldFile));
-
-		return multi;
-	  }	
-	  
-	/**
-	 * return a multi status, 
-	 * the children are the file that couldn't be removed
-	 */
-	public IStatus removeFromFileSystem(File file) {
-		
-		IStatus mainStatus = createStatus(IStatus.OK,"",null); //$NON-NLS-1$
-		MultiStatus multi = new MultiStatus(mainStatus.getPlugin(),mainStatus.getCode(),"",null);		 //$NON-NLS-1$
-		
-		if (!file.exists()){
-			multi.add(createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.noFiletoRemove")+file,null)); //$NON-NLS-1$
-			return multi;
-		}
-			
-		if (file.isDirectory()) {
-			String[] files = file.list();
-			if (files != null) // be careful since file.list() can return null
-				for (int i = 0; i < files.length; ++i){
-					multi.addAll(removeFromFileSystem(new File(file, files[i])));
-				}
-		}
-		
-		if (!file.delete()) {
-			String msg = "Unable to remove file" +file.getAbsolutePath(); //$NON-NLS-1$ 
-			multi.add(createStatus(IStatus.ERROR,msg,null));
-		}
-		return multi;
-	}	
-	
-	/*
-	 * 
-	 */
-	 private IStatus processRecoverRemove(Properties prop){
-	 	
-		IStatus mainStatus = createStatus(IStatus.OK,"",null); //$NON-NLS-1$
-		MultiStatus multi = new MultiStatus(mainStatus.getPlugin(),mainStatus.getCode(),"",null); //$NON-NLS-1$
-	 	
-	 	Collection values = prop.values();
-	 	
-	 	if(values.contains(END_REMOVE_LOG)){
-			// all is good
-			delete();
-			UpdateCore.warn("Found log file. Log file contains END_REMOVE_LOG. No need to process rename"); //$NON-NLS-1$
-			multi.add(createStatus(IStatus.OK,null,null));
-			return multi;
-	 	}
-	 	
-	 	if (!values.contains(END_ABOUT_REMOVE)){
-	 		// finish install by renaming
- 			multi.add(createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.removeFeature"),null)); //$NON-NLS-1$
-				return multi;
-	 	} else {
-	 		// finish install by renaming
-	 		int index = 0;
-	 		boolean found = false;
-	 		String val = prop.getProperty(LOG_ENTRY_KEY+index);
-	 		while(val!=null && !found){
-	 			if(val.equalsIgnoreCase(END_ABOUT_REMOVE)) found = true;
-	 			IStatus renameStatus = processRemove(val);
-	 			UpdateCore.log(renameStatus);
-	 			if(renameStatus.getSeverity()!=IStatus.OK){
-	 				multi.add(renameStatus);
-	 			}
-	 			index++;
-	 			val = prop.getProperty(LOG_ENTRY_KEY+index);	 			
-	 		}
-	 		if (val==null){
-	 			UpdateCore.warn("Unable to find value for :"+LOG_ENTRY_KEY+index); //$NON-NLS-1$
-	 			multi.add(createStatus(IStatus.ERROR,Policy.bind("ErrorRecoveryLog.wrongLogFile")+LOG_ENTRY_KEY+index,null)); //$NON-NLS-1$
-				return multi;
-	 		}
-	 		// process recovery finished
-	 		delete();
-			UpdateCore.warn("Found log file. Successfully recovered by deleting. Feature is removed."); //$NON-NLS-1$
-			multi.add(createStatus(IStatus.OK,null,null));
-	 	}
-	 	return multi;
-	 }	    
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureContentConsumer.java
deleted file mode 100644
index 0a89f1d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureContentConsumer.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.core;
-
-
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-
-/**
- * A default implementation for IFeatureContentConsumer
- * </p>
- * @since 2.0
- */
-
-public abstract class FeatureContentConsumer extends ModelObject
-	implements IFeatureContentConsumer {
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureDownloadException.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureDownloadException.java
deleted file mode 100644
index 41d15f1..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureDownloadException.java
+++ /dev/null
@@ -1,39 +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 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.update.internal.core;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Exception thrown when IOException during downloading features
- * 
- * @since 3.0
- */
-public class FeatureDownloadException extends CoreException {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-	 * Construct the exception indicating enclosing CoreException
-	 * 
-	 * @since 3.0
-	 */
-	public FeatureDownloadException(String msg, Exception e) {
-		super(
-			new Status(
-				IStatus.INFO,
-				"org.eclipse.update.core", //$NON-NLS-1$
-				IStatus.OK,
-				msg,
-				e));
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableContentConsumer.java
deleted file mode 100644
index 002d79a..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableContentConsumer.java
+++ /dev/null
@@ -1,180 +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 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.update.internal.core;

-

- 

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * ContentConsumer Implementation for a FeatureExecutable

- */

-

-public class FeatureExecutableContentConsumer extends FeatureContentConsumer {

-

-	private IFeature feature;

-	private boolean closed= false;

-	private boolean aborted= false;	

-	private ISiteContentConsumer contentConsumer;

-	private IFeatureContentConsumer parent = null;

-	private List /* of IFeatureContentCOnsumer */ children;

-

-	/*

-	 * @see IContentConsumer#open(INonPluginEntry)

-	 */

-	public IContentConsumer open(INonPluginEntry nonPluginEntry)

-		throws CoreException {

-		ContentConsumer cons = new NonPluginEntryContentConsumer(

-			getContentConsumer().open(nonPluginEntry));

-		return cons;

-	}

-

-	/*

-	 * @see IContentConsumer#open(IPluginEntry)

-	 */

-	public IContentConsumer open(IPluginEntry pluginEntry) throws CoreException {

-		ContentConsumer cons = new PluginEntryContentConsumer(getContentConsumer().open(pluginEntry));

-		return cons;		

-	}

-

-	/*

-	 * @see IContentConsumer#addChild(IFeature)

-	 */

-	public void addChild(IFeature child) throws CoreException {

-		IFeatureContentConsumer childConsumer = child.getFeatureContentConsumer();

-		childConsumer.setParent(this);

-		if (children==null) children = new ArrayList();

-		children.add(childConsumer);

-		return;

-	}

-

-

-	/*

-	 * @see IFeatureContentConsumer#store(ContentReference, IProgressMonitor)

-	 */

-	public void store(ContentReference contentReference, IProgressMonitor monitor)

-		throws CoreException {

-		getContentConsumer().store(contentReference, monitor);

-	}

-

-	/*

-	 * @see IFeatureContentConsumer#close()

-	 */

-	public IFeatureReference close() throws CoreException {

-		

-		if (!closed && getParent()!=null){

-			closed=true;

-			return null;

-		}

-		

-		// parent consumer, log we are about to rename

-		// log files have been downloaded

-		if (getParent()==null){

-			ErrorRecoveryLog.getLog().append(ErrorRecoveryLog.ALL_INSTALLED);

-		}

-		

-		IFeatureReference ref= null;

-		if (contentConsumer != null)

-			ref = contentConsumer.close();

-		

-		// close nested feature

-		IFeatureContentConsumer[] children = getChildren();

-		for (int i = 0; i < children.length; i++) {

-			children[i].close();

-		}

-							

-		return ref;

-	}

-

-	/*

-	 * @see IFeatureContentConsumer#setFeature(IFeature)

-	 */

-	public void setFeature(IFeature feature) {

-		this.feature= feature;

-	}

-

-	/*

-	 * Sets the parent 

-	 */

-	public void setParent(IFeatureContentConsumer featureContentConsumer) {

-		this.parent= featureContentConsumer;

-	}

-

-	/*

-	 * returns the Content Consumer for the feature

-	 * 

-	 * Right now we are the only one to implement SiteContentConsumer

-	 * Need to be exposed as API post v2.0

-	 */

-	private ISiteContentConsumer getContentConsumer() throws CoreException {

-		if (contentConsumer == null)

-			if (feature.getSite() instanceof SiteFile) {

-				SiteFile site= (SiteFile) feature.getSite();

-				contentConsumer= site.createSiteContentConsumer(feature);

-			} else {

-				throw new UnsupportedOperationException();

-			}

-		return contentConsumer;

-	}

-

-	/*

-	 * @see IFeatureContentConsumer#abort()

-	 */

-	public void abort() throws CoreException {

-

-		if (aborted) return;

-		

-		IFeatureContentConsumer[] children = getChildren();

-		for (int i = 0; i < children.length; i++) {

-			try {

-			children[i].abort();

-			} catch (Exception e){

-				//do Nothing

-			}

-		}

-

-		// do not close plugin and non plugin content consumer

-		// the contentConsumer will abort them

-		// we do not need to abort the NonPluginEntryContentConsumer and PluginEntryContentConsume

-

-		//implement the cleanup

-		if (contentConsumer!=null)

-			contentConsumer.abort();

-		

-		aborted = true;

-	}

-

-	/*

-	 * @see IFeatureContentConsumer#getFeature()

-	 */

-	public IFeature getFeature(){

-		return feature;

-	}

-

-	/*

-	 * @see IFeatureContentConsumer#getParent()

-	 */

-	public IFeatureContentConsumer getParent(){

-		return parent;

-	}

-

-	/*

-	 * @see IFeatureContentConsumer#getChildren()

-	 */

-	public IFeatureContentConsumer[] getChildren(){

-		if (children==null || children.size() == 0)

-			return new IFeatureContentConsumer[0];

-

-		return (IFeatureContentConsumer[]) children.toArray(arrayTypeFor(children));

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableContentProvider.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableContentProvider.java
deleted file mode 100644
index b95613a..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableContentProvider.java
+++ /dev/null
@@ -1,273 +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 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.update.internal.core;

-

-

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * Default implementation of a Executable Feature Content Provider

- */

-

-public class FeatureExecutableContentProvider extends FeatureContentProvider {

-

-	/*

-	 * Constructor 

-	 */

-	public FeatureExecutableContentProvider(URL url) {

-		super(url);

-	}

-

-	/*

-	 * Return the path for a pluginEntry

-	 */

-	private String getPath(IPluginEntry pluginEntry)

-		throws IOException, CoreException {

-

-		// get the URL of the Archive file that contains the plugin entry

-		ISiteContentProvider provider = getFeature().getSite().getSiteContentProvider();

-		URL fileURL = provider.getArchiveReference(getPathID(pluginEntry));

-		String result = fileURL.getFile();

-

-		if (!result.endsWith(".jar") && !result.endsWith(File.separator)) //$NON-NLS-1$

-			result += File.separator;

-		File pluginPath = new File(result);

-		if (!pluginPath.exists())

-			throw new IOException(

-				Policy.bind("FeatureExecutableContentProvider.FileDoesNotExist", result));	//$NON-NLS-1$

-

-		return result;

-	}

-

-	/*

-	 * Returns the path for the Feature

-	 */

-	private String getFeaturePath() throws IOException {

-		String result = getFeature().getURL().getFile();

-

-		// return the list of all subdirectories

-		if (!(result.endsWith(File.separator) || result.endsWith("/"))) //$NON-NLS-1$

-			result += File.separator;

-		File pluginDir = new File(result);

-		if (!pluginDir.exists())

-			throw new IOException(

-				Policy.bind("FeatureExecutableContentProvider.FileDoesNotExist", result)); //$NON-NLS-1$

-

-		return result;

-	}

-

-	/*

-	 * Returns all the files under the directory

-	 * Recursive call

-	 */

-	private List getFiles(File dir) throws IOException {

-		List result = new ArrayList();

-

-		if (!dir.isDirectory()) {

-			String msg =

-				Policy.bind(

-					"FeatureExecutableContentProvider.InvalidDirectory", //$NON-NLS-1$

-					dir.getAbsolutePath());

-

-			throw new IOException(msg);

-

-		}

-

-		File[] files = dir.listFiles();

-		if (files != null)

-			for (int i = 0; i < files.length; ++i) {

-				if (files[i].isDirectory()) {

-					result.addAll(getFiles(files[i]));

-				} else {

-					result.add(files[i]);

-				}

-			}

-

-		return result;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getVerifier()

-	 */

-	public IVerifier getVerifier() throws CoreException {

-		return null;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getFeatureManifestReference()

-	 */

-	public ContentReference getFeatureManifestReference(InstallMonitor monitor)

-		throws CoreException {

-		ContentReference result = null;

-		try {

-			result = new ContentReference(Feature.FEATURE_XML, new URL(getURL(), Feature.FEATURE_XML));

-

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException(

-				Policy.bind(

-					"FeatureExecutableContentProvider.UnableToCreateURLFor", //$NON-NLS-1$

-					getURL().toExternalForm() + " " + Feature.FEATURE_XML), //$NON-NLS-1$

-				e);

-		}

-		return result;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getArchiveReferences()

-	 */

-	public ContentReference[] getArchiveReferences(InstallMonitor monitor)

-		throws CoreException {

-		// executable feature does not contain archives

-		return new ContentReference[0];

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getPluginEntryArchiveReferences(IPluginEntry)

-	 */

-	public ContentReference[] getPluginEntryArchiveReferences(

-		IPluginEntry pluginEntry,

-		InstallMonitor monitor)

-		throws CoreException {

-		ContentReference[] result = new ContentReference[1];

-		String archiveID = getPathID(pluginEntry);

-		try {

-			File archiveFile = new File(getPath(pluginEntry));

-			if(!archiveFile.isDirectory() && archiveFile.getName().endsWith(".jar")){ //$NON-NLS-1$

-				result[0] = new JarContentReference(archiveID, archiveFile);				

-			} else {

-				result[0] =

-					new ContentReference(archiveID, archiveFile);

-			}

-		} catch (IOException e) {

-			throw Utilities.newCoreException(

-					Policy.bind(

-						"FeatureExecutableContentProvider.UnableToRetrievePluginEntry", //$NON-NLS-1$

-						pluginEntry.getVersionedIdentifier().toString()),

-					e);

-		}

-		return result;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getNonPluginEntryArchiveReferences(INonPluginEntry)

-	 */

-	public ContentReference[] getNonPluginEntryArchiveReferences(

-		INonPluginEntry nonPluginEntry,

-		InstallMonitor monitor)

-		throws CoreException {

-

-		ContentReference[] result = new ContentReference[1];

-		URL fileURL;

-

-		//try {

-		// get the URL of the Archive file that contains the plugin entry

-		ISiteContentProvider provider = getFeature().getSite().getSiteContentProvider();

-		fileURL = provider.getArchiveReference(getPathID(nonPluginEntry));

-

-		String fileString = fileURL.getFile();

-		File nonPluginData = new File(fileString);

-		if (!nonPluginData.exists())

-			throw Utilities.newCoreException(

-				Policy.bind("FeatureExecutableContentProvider.FileDoesNotExist", fileString), //$NON-NLS-1$

-				null); 

-

-		try {

-			result[0] =

-				new ContentReference(nonPluginEntry.getIdentifier(), nonPluginData.toURL());

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException(

-				Policy.bind(

-					"FeatureExecutableContentProvider.UnableToRetrieveNonPluginEntry", //$NON-NLS-1$

-					nonPluginEntry.getIdentifier().toString()),

-				e);

-		}

-		return result;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getFeatureEntryArchiveReferences()

-	 */

-	public ContentReference[] getFeatureEntryArchiveReferences(InstallMonitor monitor)

-		throws CoreException {

-		ContentReference[] contentReferences = new ContentReference[1];

-		contentReferences[0] = new ContentReference(null, getURL());

-		return contentReferences;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getFeatureEntryArchivesContentReferences()

-	 */

-	public ContentReference[] getFeatureEntryContentReferences(InstallMonitor monitor)

-		throws CoreException {

-		ContentReference[] result = new ContentReference[0];

-		try {

-			File featureDir = new File(getFeaturePath());

-			List files = getFiles(featureDir);

-			result = new ContentReference[files.size()];

-			for (int i = 0; i < result.length; i++) {

-				File currentFile = (File) files.get(i);

-				result[i] = new ContentReference(currentFile.getName(), currentFile.toURL());

-			}

-		} catch (IOException e) {

-			throw Utilities.newCoreException(

-				Policy.bind(

-					"FeatureExecutableContentProvider.UnableToRetrieveFeatureEntryContentRef", //$NON-NLS-1$

-					getFeature().getVersionedIdentifier().toString()),

-				e);

-		}

-		return result;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getPluginEntryContentReferences(IPluginEntry)

-	 */

-	public ContentReference[] getPluginEntryContentReferences(

-		IPluginEntry pluginEntry,

-		InstallMonitor monitor)

-		throws CoreException {

-

-		ContentReference[] references = getPluginEntryArchiveReferences(pluginEntry, monitor);

-		ContentReference[] result = new ContentReference[0];

-

-		try {

-			if (references[0] instanceof JarContentReference) {

-				result = ((JarContentReference)references[0]).peek(null, monitor);

-			} else {

-				// return the list of all subdirectories

-				File pluginDir = new File(getPath(pluginEntry));

-				URL pluginURL = pluginDir.toURL();

-				List files = getFiles(pluginDir);

-				result = new ContentReference[files.size()];

-				for (int i = 0; i < result.length; i++) {

-					File currentFile = (File) files.get(i);

-					String relativeString = UpdateManagerUtils.getURLAsString(pluginURL, currentFile.toURL());

-					result[i] = new ContentReference(relativeString, currentFile.toURL());

-				}

-			}

-		} catch (IOException e) {

-			throw Utilities.newCoreException(

-				Policy.bind(

-					"FeatureExecutableContentProvider.UnableToRetriveArchiveContentRef") //$NON-NLS-1$

-					+ pluginEntry.getVersionedIdentifier().toString(),

-				e);

-		}

-		

-		//[20866] we did not preserve executable bit

-		validatePermissions(result);

-		

-		return result;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableFactory.java
deleted file mode 100644
index d4c8e2b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableFactory.java
+++ /dev/null
@@ -1,118 +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 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-

-/**

- * FeatureFactory for Executable Features

- */

-public class FeatureExecutableFactory extends BaseFeatureFactory {

-

-	/*

-	 * @see IFeatureFactory#createFeature(URL,ISite,IProgressMonitor)

-	 */

-	public IFeature createFeature(URL url, ISite site, IProgressMonitor monitor) throws CoreException {

-

-		TargetFeature feature = null;

-		InputStream featureStream = null;

-		if (monitor == null)

-			monitor = new NullProgressMonitor();

-

-		if (url == null)

-			return createFeature(site);

-

-		// the URL should point to a directory

-		url = validate(url);

-

-		try {

-			IFeatureContentProvider contentProvider = new FeatureExecutableContentProvider(url);

-//			// PERF: Do not create FeatureContentConsumer

-// bug 79893

-			IFeatureContentConsumer contentConsumer =new FeatureExecutableContentConsumer();

-

-			URL nonResolvedURL = contentProvider.getFeatureManifestReference(null).asURL();

-			URL resolvedURL = URLEncoder.encode(nonResolvedURL);

-			featureStream = UpdateCore.getPlugin().get(resolvedURL).getInputStream();

-

-			feature = (TargetFeature) this.parseFeature(featureStream, resolvedURL.toExternalForm());

-			monitor.worked(1);

-			feature.setSite(site);

-

-			feature.setFeatureContentProvider(contentProvider);

-//			// PERF: FeatureContentConsumer

-// bug 79893

-			feature.setContentConsumer(contentConsumer);

-

-			feature.resolve(url, url);

-			feature.markReadOnly();

-		} catch (CoreException e) {

-			throw e;

-		} catch (Exception e) {

-			throw Utilities.newCoreException(Policy.bind("FeatureFactory.CreatingError", url.toExternalForm()), e);	//$NON-NLS-1$

-		} finally {

-			try {

-				if (featureStream != null)

-					featureStream.close();

-			} catch (IOException e) {

-			}

-		}

-		return feature;

-	}

-

-	/*

-	 * @see FeatureModelFactory#createFeatureModel()

-	 */

-	public FeatureModel createFeatureModel() {

-		return new TargetFeature();

-	}

-

-	/*

-	 * Creates an empty feature on the site 

-	 */

-	private IFeature createFeature(ISite site) throws CoreException {

-		TargetFeature feature = null;

-

-		IFeatureContentProvider contentProvider = new FeatureExecutableContentProvider(null);

-		IFeatureContentConsumer contentConsumer = new FeatureExecutableContentConsumer();

-		feature = (TargetFeature) createFeatureModel();

-		feature.setSite(site);

-		feature.setFeatureContentProvider(contentProvider);

-		feature.setContentConsumer(contentConsumer);

-

-		// do not mark read only yet...	

-		return feature;

-	}

-

-	/*

-	 * validates a URL as a directory URL

-	 */

-	private URL validate(URL url) throws CoreException {

-

-		if (url == null)

-			throw Utilities.newCoreException(Policy.bind("FeatureExecutableFactory.NullURL"), null); //$NON-NLS-1$

-

-		if (!(url.getFile().endsWith("/") || url.getFile().endsWith(File.separator) || url.getFile().endsWith(Feature.FEATURE_XML))) { //$NON-NLS-1$

-			try {

-				String path = url.getFile() + "/"; //$NON-NLS-1$

-				url = new URL(url.getProtocol(), url.getHost(), url.getPort(), path);

-			} catch (MalformedURLException e) {

-				throw Utilities.newCoreException(Policy.bind("FeatureExecutableFactory.CannotCreateURL", url.toExternalForm()), e);	//$NON-NLS-1$

-			}

-		}

-		return url;

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackagedContentProvider.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackagedContentProvider.java
deleted file mode 100644
index dc51d69..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackagedContentProvider.java
+++ /dev/null
@@ -1,273 +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 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.security.*;

-

-/**

- * Content Provider of a Feature Package

- */

-public class FeaturePackagedContentProvider extends FeatureContentProvider {

-

-	private ContentReference localManifest = null;

-	private ContentReference[] localFeatureFiles = new ContentReference[0];

-	private IVerifier jarVerifier = null;

-

-	/*

-	 * filter for file with .jar

-	 */

-	public static final FilenameFilter filter = new FilenameFilter() {

-		public boolean accept(File dir, String name) {

-			return name.endsWith(FeaturePackagedContentProvider.JAR_EXTENSION);

-		}

-	};

-

-	/*

-	 * Constructor 

-	 */

-	public FeaturePackagedContentProvider(URL url) {

-		super(url);

-	}

-

-	/*

-	 * Returns a new verifier for each top-level install

-	 * (if the verifier has a parent, return the verifier

-	 * otherwise reinitialize)

-	 */

-	public IVerifier getVerifier() throws CoreException {

-		if (jarVerifier == null || jarVerifier.getParent() == null) {

-			jarVerifier = new JarVerifier();

-			return jarVerifier;

-		}

-

-		// re-init will be done if the parent changes

-		return jarVerifier;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getFeatureManifestReference()

-	 */

-	public ContentReference getFeatureManifestReference(InstallMonitor monitor) throws CoreException {

-

-		// check to see if we already have local copy of the manifest

-		if (localManifest != null)

-			return localManifest;

-		ContentReference[] featureArchiveReference = getFeatureEntryArchiveReferences(monitor);

-		JarContentReference featureJarReference = null;

-		try {

-

-			// force feature archive to local.

-			// This content provider always assumes exactly 1 archive file (index [0])		

-			featureJarReference = (JarContentReference) asLocalReference(featureArchiveReference[0], null);

-			// we need to unpack archive locally for UI browser references to be resolved correctly

-			localFeatureFiles = featureJarReference.unpack(getWorkingDirectory(), null, monitor);

-		} catch (IOException e) {

-			throw errorRetrieving(Feature.FEATURE_XML, featureJarReference, e); //$NON-NLS-1$ 

-		}

-

-		// find the manifest in the unpacked feature files

-		for (int i = 0; i < localFeatureFiles.length; i++) {

-			if (localFeatureFiles[i].getIdentifier().equals(Feature.FEATURE_XML)) {

-				localManifest = localFeatureFiles[i];

-				// cache reference to manifest

-				return localManifest;

-			}

-		}

-

-		// the manifest has not been found

-		String[] values = new String[] { Feature.FEATURE_XML, getURL().toExternalForm()};

-		throw Utilities.newCoreException(Policy.bind("FeaturePackagedContentProvider.NoManifestFile", values), new Exception()); //$NON-NLS-1$ 

-

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getArchiveReferences()

-	 */

-	public ContentReference[] getArchiveReferences(InstallMonitor monitor) throws CoreException {

-

-		IPluginEntry[] entries = getFeature().getPluginEntries();

-		INonPluginEntry[] nonEntries = getFeature().getNonPluginEntries();

-		List listAllContentRef = new ArrayList();

-		ContentReference[] allContentRef = new ContentReference[0];

-

-		// feature

-		listAllContentRef.addAll(Arrays.asList(getFeatureEntryArchiveReferences(monitor)));

-

-		// plugins

-		for (int i = 0; i < entries.length; i++) {

-			listAllContentRef.addAll(Arrays.asList(getPluginEntryArchiveReferences(entries[i], monitor)));

-		}

-

-		// non plugins

-		for (int i = 0; i < nonEntries.length; i++) {

-			listAllContentRef.addAll(Arrays.asList(getNonPluginEntryArchiveReferences(nonEntries[i], monitor)));

-		}

-

-		// transform List in Array

-		if (listAllContentRef.size() > 0) {

-			allContentRef = new ContentReference[listAllContentRef.size()];

-			listAllContentRef.toArray(allContentRef);

-		}

-

-		return allContentRef;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getFeatureEntryArchiveReferences()

-	 */

-	public ContentReference[] getFeatureEntryArchiveReferences(InstallMonitor monitor) throws CoreException {

-

-		//1 jar file <-> 1 feature

-		// we will return the JAR file 

-		ContentReference[] references = new ContentReference[1];

-		ContentReference currentReference = null;

-		String archiveID = null;

-

-		try {

-			archiveID = (getFeature() != null) ? getFeature().getVersionedIdentifier().toString() : "";	//$NON-NLS-1$

-			currentReference = new JarContentReference(archiveID, getURL());

-			currentReference = asLocalReference(currentReference, monitor);

-			references[0] = currentReference;

-		} catch (IOException e) {

-			throw errorRetrieving(archiveID, currentReference, e); //$NON-NLS-1$

-		}

-		return references;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getPluginEntryArchiveReferences(IPluginEntry)

-	 */

-	public ContentReference[] getPluginEntryArchiveReferences(IPluginEntry pluginEntry, InstallMonitor monitor) throws CoreException {

-

-		// 1 plugin <-> 1 jar

-		// we return the JAR file	

-		ContentReference[] references = new ContentReference[1];

-		String archiveID = getPathID(pluginEntry);

-		ISite site = (getFeature() == null) ? null : getFeature().getSite();

-		ISiteContentProvider siteContentProvider = (site == null) ? null : site.getSiteContentProvider();

-		URL url = (siteContentProvider == null) ? null : siteContentProvider.getArchiveReference(archiveID);

-

-		try {

-			references[0] = asLocalReference(new JarContentReference(archiveID, url), monitor);

-		} catch (IOException e) {

-			throw errorRetrieving(archiveID, references[0], e);

-		}

-		return references;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getNonPluginEntryArchiveReferences(INonPluginEntry)

-	 */

-	public ContentReference[] getNonPluginEntryArchiveReferences(INonPluginEntry nonPluginEntry, InstallMonitor monitor) throws CoreException {

-

-		// archive = feature/<id>_<ver>/<file>

-		String archiveID = Site.DEFAULT_FEATURE_PATH + ((getFeature() != null) ? getFeature().getVersionedIdentifier().toString() : ""); //$NON-NLS-1$

-		archiveID += "/" + nonPluginEntry.getIdentifier(); //$NON-NLS-1$

-

-		ContentReference[] references = new ContentReference[1];

-		ContentReference currentReference = null;

-

-		try {

-			ISite site = (getFeature() == null) ? null : getFeature().getSite();

-			ISiteContentProvider siteContentProvider = (site == null) ? null : site.getSiteContentProvider();

-			URL url = (siteContentProvider == null) ? null : siteContentProvider.getArchiveReference(archiveID);

-

-			currentReference = new ContentReference(nonPluginEntry.getIdentifier(), url);

-			currentReference = asLocalReference(currentReference, monitor);

-			references[0] = currentReference;

-

-		} catch (IOException e) {

-			throw errorRetrieving(archiveID, currentReference, e);

-		}

-

-		return references;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getFeatureEntryContentReferences()

-	 */

-	public ContentReference[] getFeatureEntryContentReferences(InstallMonitor monitor) throws CoreException {

-

-		return localFeatureFiles; // return cached feature references

-		// Note: assumes this content provider is always called first to

-		//       get the feature manifest. This forces the feature files

-		//       to be unpacked and caches the references

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getPluginEntryContentReferences(IPluginEntry)

-	 */

-	public ContentReference[] getPluginEntryContentReferences(IPluginEntry pluginEntry, InstallMonitor monitor) throws CoreException {

-

-		ContentReference[] references = getPluginEntryArchiveReferences(pluginEntry, monitor);

-		ContentReference[] pluginReferences = new ContentReference[0];

-

-		try {

-			if (references[0] instanceof JarContentReference) {

-				JarContentReference localRef = (JarContentReference) asLocalReference(references[0], monitor);

-				pluginReferences = localRef.peek(null, monitor);

-			} else {

-				// return the list of all subdirectories

-				List files = getFiles(references[0].asFile());

-				pluginReferences = new ContentReference[files.size()];

-				for (int i = 0; i < pluginReferences.length; i++) {

-					File currentFile = (File) files.get(i);

-					pluginReferences[i] = new ContentReference(null, currentFile.toURL());

-				}

-			}

-

-			//[20866] we did not preserve executable bit

-			validatePermissions(pluginReferences);

-

-		} catch (IOException e) {

-			throw errorRetrieving(pluginEntry.getVersionedIdentifier().toString(), references[0], e);

-		}

-		return pluginReferences;

-	}

-

-	/*

-	 * return all the files under the directory

-	 */

-	private List getFiles(File dir) throws IOException {

-		List result = new ArrayList();

-

-		if (!dir.isDirectory())

-			throw new IOException(Policy.bind("FeaturePackagedContentProvider.InvalidDirectory", dir.getPath())); //$NON-NLS-1$

-

-		File[] files = dir.listFiles();

-		if (files != null) // be careful since it can be null

-			for (int i = 0; i < files.length; ++i) {

-				if (files[i].isDirectory()) {

-					result.addAll(getFiles(files[i]));

-				} else {

-					result.add(files[i]);

-				}

-			}

-		return result;

-	}

-

-	/*

-	 * 

-	 */

-	private CoreException errorRetrieving(String obj, ContentReference archive, Exception e) {

-

-		String[] values = new String[] { obj };

-

-		return Utilities.newCoreException(Policy.bind("FeaturePackagedContentProvider.ErrorRetrieving", values), e); //$NON-NLS-1$	 	

-

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackagedFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackagedFactory.java
deleted file mode 100644
index bbd7de4..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackagedFactory.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-

-/**

- * Factory for Feature Packaged

- */

-public class FeaturePackagedFactory extends BaseFeatureFactory {

-

-	/*

-	 * @see IFeatureFactory#createFeature(URL,ISite,IProgressMonitor)

-	 */

-	public IFeature createFeature(URL url,ISite site, IProgressMonitor monitor) throws CoreException {

-		Feature feature = null;

-		InputStream featureStream = null;

-		if (monitor == null)

-			monitor = new NullProgressMonitor();

-		monitor.beginTask(null,2);

-		monitor.worked(1);

-			

-					

-		try {	

-			IFeatureContentProvider contentProvider = new FeaturePackagedContentProvider(url);	

-			ContentReference manifest = contentProvider.getFeatureManifestReference(null/*IProgressMonitor*/);

-			featureStream = manifest.getInputStream();

-			feature = (Feature)parseFeature(featureStream);

-			monitor.worked(1);

-	

-			// if there is no update URL for the Feature

-			// use the Site URL

-			if (feature.getUpdateSiteEntry()==null){

-				URLEntryModel entryModel = createURLEntryModel();

-				URL siteUrl = site.getURL();

-				if (siteUrl!=null){

-					entryModel.setURLString(siteUrl.toExternalForm());

-					entryModel.resolve(siteUrl,null);

-					feature.setUpdateSiteEntryModel(entryModel);

-				}

-			}	

-			feature.setFeatureContentProvider(contentProvider);

-			feature.setSite(site);						

-			URL baseUrl = null;

-			try {

-				baseUrl = new URL(manifest.asURL(),"."); // make sure we have URL to feature directory //$NON-NLS-1$

-			} catch(MalformedURLException e) {	

-			}

-			feature.resolve(baseUrl, baseUrl);

-			feature.markReadOnly();			

-		}  catch (CoreException e){

-			throw e;

-		} catch (Exception e) { 

-			throw Utilities.newCoreException(Policy.bind("FeatureFactory.CreatingError", url.toExternalForm()), e); //$NON-NLS-1$

-		}finally {

-			try {

-				if (featureStream!=null)	

-					featureStream.close();

-			} catch (IOException e) {

-			}

-		}

-		return feature;

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePlugin.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePlugin.java
deleted file mode 100644
index 3c3d854..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePlugin.java
+++ /dev/null
@@ -1,46 +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 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.update.internal.core;
-import org.eclipse.update.core.*;
-/**
- * An IPluginEntry - IFeature pair.
- * The IFeature is a featue or a patch wich delivered the plugin
- */
-public class FeaturePlugin {
-	private IPluginEntry pluginEntry;
-	private IFeature feature;
-	public FeaturePlugin(IPluginEntry entry, IFeature feature) {
-		pluginEntry = entry;
-		this.feature = feature;
-	}
-	public IPluginEntry getEntry() {
-		return pluginEntry;
-	}
-	public IFeature getFeature() {
-		return feature;
-	}
-	/**
-	 * Plugins are equal if their IDs and versions are the same.
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof FeaturePlugin) {
-			FeaturePlugin p = (FeaturePlugin) o;
-			return getEntry().getVersionedIdentifier().equals(p.getEntry().getVersionedIdentifier());
-		}
-		return false;
-	}
-	public int hashCode() {
-		return getEntry().getVersionedIdentifier().hashCode();
-	}
-	public String toString() {
-		return pluginEntry + " in " + feature; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureTypeFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureTypeFactory.java
deleted file mode 100644
index ba988f9..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureTypeFactory.java
+++ /dev/null
@@ -1,86 +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 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.update.internal.core;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * Manages FeatureFactory extension point

- */

-public final class FeatureTypeFactory {

-

-	private static FeatureTypeFactory inst;

-	private Map factories;

-

-	private static final String SIMPLE_EXTENSION_ID = "featureTypes";	//$NON-NLS-1$	

-

-	/*

-	 * hide constructor

-	 */

-	private FeatureTypeFactory() {

-	}

-

-	/*

-	 * Singleton pattern

-	 */

-	public static FeatureTypeFactory getInstance() {

-		if (inst == null)

-			inst = new FeatureTypeFactory();

-		return inst;

-	}

-

-	/*

-	 * return the factory for the associated type

-	 */

-	public IFeatureFactory getFactory(String type) throws CoreException {

-		//

-		Object instance = getFactories().get(type);

-		if (instance == null) {

-			instance = createFactoryFor(type);

-			getFactories().put(type, instance);

-		}

-		return (IFeatureFactory) instance;

-	}

-

-	/*

-	 * creates a factory for the associated type and cache it 

-	 */

-	private IFeatureFactory createFactoryFor(String type) throws CoreException {

-		IFeatureFactory result = null;

-

-		String pluginID =

-			UpdateCore.getPlugin().getBundle().getSymbolicName();

-		IExtensionRegistry registry = Platform.getExtensionRegistry();

-		IConfigurationElement[] elements =

-			registry.getConfigurationElementsFor(pluginID, SIMPLE_EXTENSION_ID, type);

-

-		if (elements == null || elements.length == 0) {

-			throw Utilities.newCoreException(

-					Policy.bind("FeatureTypeFactory.UnableToFindFeatureFactory", type), //$NON-NLS-1$

-					null);

-		} 

-

-		IConfigurationElement element = elements[0];

-		result = (IFeatureFactory) element.createExecutableExtension("class");	//$NON-NLS-1$

-		return result;

-	}

-

-	/*

-	 * 

-	 */

-	private Map getFactories() {

-		if (factories == null)

-			factories = new HashMap();

-		return factories;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FileFragment.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FileFragment.java
deleted file mode 100644
index d382705..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FileFragment.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.core;
-
-import java.io.*;
-
-
-public class FileFragment{
-	private File file;
-	private long bytes;
-	public FileFragment(File file, long size){
-		this.file=file;
-		this.bytes=size;
-	}
-	public File getFile(){
-		return file;
-	}
-	public long getSize(){
-		return bytes;
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FileResponse.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FileResponse.java
deleted file mode 100644
index 7707014..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FileResponse.java
+++ /dev/null
@@ -1,56 +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 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.update.internal.core;
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-
-public class FileResponse implements Response {
-
-	protected URL url;
-	protected long lastModified;
-
-	public FileResponse(URL url) {
-		this.url = url;
-	}
-
-	public InputStream getInputStream() throws IOException {
-		return url.openStream();
-	}
-
-	public InputStream getInputStream(IProgressMonitor monitor)
-		throws IOException, CoreException {
-		return getInputStream();
-	}
-
-	public long getContentLength() {
-		return 0;
-	}
-
-	public int getStatusCode() {
-		return IStatusCodes.HTTP_OK;
-	}
-
-	public String getStatusMessage() {
-		return ""; //$NON-NLS-1$
-	}
-
-	public long getLastModified() {
-		if (lastModified == 0) {
-			File f = new File(url.getFile());
-			if (f.isDirectory())
-				f = new File(f, "site.xml"); //$NON-NLS-1$
-			lastModified = f.lastModified();
-		}
-		return lastModified;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FragmentEntry.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FragmentEntry.java
deleted file mode 100644
index 4c54354..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FragmentEntry.java
+++ /dev/null
@@ -1,71 +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 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.update.internal.core;
-
-
-/**
- * This class is used to retrieve the fragments associated with a plugin.
- */
-public class FragmentEntry {
-	
-	private String pluginId;
-	private String pluginVersion;
-	private String name; 
-	private String location;
-	
-	public FragmentEntry(String id, String version, String name, String location) {
-		this.pluginId = id;
-		this.pluginVersion = version;
-		this.name = name;
-		this.location = location;
-	}
-
-	/**
-	 * @return the plugin translatable name
-	 */
-	public String getName() {
-		return name;
-	}
-	
-	/**
-	 * @return the location of the plugin
-	 */
-	public String getLocation() {
-		return location;
-	}
-	
-	/**
-	 * Returns the plug-in identifier for this entry.
-	 * 
-	 * @return the plug-in identifier, or <code>null</code>
-	 */
-	public String getPluginIdentifier() {
-		return pluginId;
-	}
-
-	/**
-	 * Returns the plug-in version for this entry.
-	 * 
-	 * @return the plug-in version, or <code>null</code>
-	 */
-	public String getPluginVersion() {
-		return pluginVersion;
-	}
-
-	/**
-	 * @see Object#toString()
-	 */
-	public String toString() {
-		String msg = (getPluginIdentifier()!=null)?getPluginIdentifier().toString():""; //$NON-NLS-1$
-		msg += getPluginVersion()!=null?" "+getPluginVersion().toString():""; //$NON-NLS-1$ //$NON-NLS-2$
-		return msg;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/HttpResponse.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/HttpResponse.java
deleted file mode 100644
index 2bfb594..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/HttpResponse.java
+++ /dev/null
@@ -1,169 +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 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.update.internal.core;
-
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-
-public class HttpResponse implements Response {
-	private static final long POLLING_INTERVAL = 200;
-	protected URL url;
-	protected InputStream in;
-	protected URLConnection connection;
-	protected long lastModified;
-	protected long offset;
-
-	public HttpResponse(URL url) {
-		this.url = url;
-	}
-
-	public InputStream getInputStream() throws IOException {
-		if (in == null && url != null) {
-			if (connection == null)
-				connection = url.openConnection();
-			if (offset > 0)
-				connection.setRequestProperty("Range", "bytes=" + offset + "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			in = connection.getInputStream();
-			checkOffset();
-		}
-		return in;
-	}
-	/**
-	 * @see Response#getInputStream(IProgressMonitor)
-	 */
-	public InputStream getInputStream(IProgressMonitor monitor)
-		throws IOException, CoreException {
-		if (in == null && url != null) {
-			if (connection == null)
-				connection = url.openConnection();
-			if (offset > 0)
-				connection.setRequestProperty("Range", "bytes=" + offset + "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-			if (monitor != null) {
-				this.in =
-					openStreamWithCancel(connection, monitor);
-			} else {
-				this.in = connection.getInputStream();
-			}
-			// this can also be run inside a monitoring thread, but it is safe
-			// to
-			// just call it now, if the input stream has already been obtained
-			checkOffset();
-			if (in != null) {
-				this.lastModified = connection.getLastModified();
-			}
-		}
-		return in;
-	}
-
-	public long getContentLength() {
-		if (connection != null)
-			return connection.getContentLength();
-		return 0;
-	}
-
-	public int getStatusCode() {
-		if (connection == null)
-			try {
-				connection = url.openConnection();
-			} catch (IOException e) {
-			}
-		if (connection != null) {
-			try {
-				return ((HttpURLConnection) connection).getResponseCode();
-			} catch (IOException e) {
-				UpdateCore.warn("", e); //$NON-NLS-1$
-			}
-		}
-		return IStatusCodes.HTTP_OK;
-	}
-
-	public String getStatusMessage() {
-		if (connection != null) {
-			try {
-				return ((HttpURLConnection) connection).getResponseMessage();
-			} catch (IOException e) {
-				UpdateCore.warn("", e); //$NON-NLS-1$
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public long getLastModified() {
-		if (lastModified == 0) {
-			if (connection == null)
-				try {
-					connection = url.openConnection();
-				} catch (IOException e) {
-				}
-			if (connection != null)
-				lastModified = connection.getLastModified();
-		}
-		return lastModified;
-	}
-
-	private InputStream openStreamWithCancel(
-		URLConnection urlConnection,
-		IProgressMonitor monitor)
-		throws IOException, CoreException {
-		ConnectionThreadManager.StreamRunnable runnable =
-			new ConnectionThreadManager.StreamRunnable(urlConnection);
-		Thread t =
-			UpdateCore.getPlugin().getConnectionManager().createThread(
-				runnable);
-		t.start();
-		InputStream is = null;
-		try {
-			for (;;) {
-				if (monitor.isCanceled()) {
-					runnable.disconnect();
-                    connection = null;
-					break;
-				}
-				if (runnable.getInputStream() != null) {
-					is = runnable.getInputStream();
-					break;
-				}
-				if (runnable.getException() != null) {
-					if (runnable.getException() instanceof IOException)
-						throw (IOException) runnable.getException();
-					else
-						throw new CoreException(new Status(IStatus.ERROR,
-								UpdateCore.getPlugin().getBundle()
-										.getSymbolicName(), IStatus.OK,
-								runnable.getException().getMessage(), runnable
-										.getException()));
-				}
-				t.join(POLLING_INTERVAL);
-			}
-		} catch (InterruptedException e) {
-		}
-		return is;
-	}
-	public void setOffset(long offset) {
-		this.offset = offset;
-	}
-	private void checkOffset() throws IOException {
-		if (offset == 0)
-			return;
-		String range = connection.getHeaderField("Content-Range"); //$NON-NLS-1$
-		//System.out.println("Content-Range=" + range);
-		if (range == null) {
-			//System.err.println("Server does not support ranges");
-			throw new IOException(Policy.bind("HttpResponse.rangeExpected")); //$NON-NLS-1$
-		} else if (!range.startsWith("bytes " + offset + "-")) { //$NON-NLS-1$ //$NON-NLS-2$
-			//System.err.println("Server returned wrong range");
-			throw new IOException(Policy.bind("HttpResponse.wrongRange")); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ISiteContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ISiteContentConsumer.java
deleted file mode 100644
index cc1a9dd..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ISiteContentConsumer.java
+++ /dev/null
@@ -1,66 +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 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.update.internal.core;
-
- 
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
- 
- /**
-  * A site content consumer manages the storage or archives, plugins and
-  * feature inside an <code> ISite</code>
-  */
- 
-public interface ISiteContentConsumer {
-
-	/**
-	 * Stores a content reference into the SiteContentConsumer
-	 * @param contentReference the content reference to store
-	 * @param monitor the progress monitor
-	 * @throws CoreException if an error occurs storing the content reference
-	 * @since 2.0 
-	 */
-	public void store(ContentReference contentReference, IProgressMonitor monitor) throws CoreException;
-
-	/**
-	 * opens a Non plugin Entry for storage
-	 * @return the new FeatureContentConsumer for this <code>INonPluginEntry</code>
-	 * @throws CoreException if the opens is done on a FeatureContentConsumer parent other than an IFeature.
-	 * @since 2.0 
-	 */
-	public IContentConsumer open(INonPluginEntry nonPluginEntry) throws CoreException;
-
-	/**
-	 * opens a Non plugin Entry for storage
-	 * @return the new FeatureContentConsumer for this <code>IPluginEntry</code>
-	 * @throws CoreException if the opens is done on a FeatureContentConsumer parent other than an IFeature.
-	 * @since 2.0 
-	 */
-	public IContentConsumer open(IPluginEntry pluginEntry) throws CoreException;
-	
-	/**
-	 * closes the opened SiteContentConsumer
-	 * @throws CoreException
-	 * @since 2.0 
-	 */
-	public IFeatureReference close() throws CoreException ;	
-	
-
-	/**
-	 * aborts the opened SiteContentConsumer
-	 * @throws CoreException
-	 * @since 2.0 
-	 */
-	public void abort() throws CoreException;		
-	
-}
-
-
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/IStatusCodes.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/IStatusCodes.java
deleted file mode 100644
index 6582d7b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/IStatusCodes.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.core;
-
-/**
- * HTTP status codes.
- * <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 IStatusCodes {
-	public static final int HTTP_CONTINUE = 100;
-	public static final int HTTP_SWITCHING_PROTOCOLS = 101;
-	public static final int HTTP_OK = 200;
-	public static final int HTTP_CREATED = 201;
-	public static final int HTTP_ACCEPTED = 202;
-	public static final int HTTP_NON_AUTHORITATIVE_INFORMATION = 203;
-	public static final int HTTP_NO_CONTENT = 204;
-	public static final int HTTP_RESET_CONTENT = 205;
-	public static final int HTTP_PARTIAL_CONTENT = 206;
-	public static final int HTTP_MULTIPLE_CHOICES = 300;
-	public static final int HTTP_MOVED_PERMANENTLY = 301;
-	public static final int HTTP_MOVED_TEMPORARILY = 302;
-	public static final int HTTP_SEE_OTHER = 303;
-	public static final int HTTP_NOT_MODIFIED = 304;
-	public static final int HTTP_USE_PROXY = 305;
-	public static final int HTTP_TEMPORARY_REDIRECT = 307;
-	public static final int HTTP_BAD_REQUEST = 400;
-	public static final int HTTP_UNAUTHORIZED = 401;
-	public static final int HTTP_PAYMENT_REQUIRED = 402;
-	public static final int HTTP_FORBIDDEN = 403;
-	public static final int HTTP_NOT_FOUND = 404;
-	public static final int HTTP_METHOD_NOT_ALLOWED = 405;
-	public static final int HTTP_NOT_ACCEPTABLE = 406;
-	public static final int HTTP_PROXY_AUTHENTICATION_REQUIRED = 407;
-	public static final int HTTP_REQUEST_TIMEOUT = 408;
-	public static final int HTTP_CONFLICT = 409;
-	public static final int HTTP_GONE = 410;
-	public static final int HTTP_LENGTH_REQUIRED = 411;
-	public static final int HTTP_PRECONDITION_FAILED = 412;
-	public static final int HTTP_REQUEST_TOO_LONG = 413;
-	public static final int HTTP_REQUEST_URI_TOO_LONG = 414;
-	public static final int HTTP_UNSUPPORTED_MEDIA_TYPE = 415;
-	public static final int HTTP_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
-	public static final int HTTP_EXPECTATION_FAILED = 417;
-	public static final int HTTP_INTERNAL_SERVER_ERROR = 500;
-	public static final int HTTP_NOT_IMPLEMENTED = 501;
-	public static final int HTTP_BAD_GATEWAY = 502;
-	public static final int HTTP_SERVICE_UNAVAILABLE = 503;
-	public static final int HTTP_GATEWAY_TIMEOUT = 504;
-	public static final int HTTP_HTTP_VERSION_NOT_SUPPORTED = 505;
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/IWritable.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/IWritable.java
deleted file mode 100644
index cc63d84..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/IWritable.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.core;

-

-import java.io.*;

-

-/**

- * Called when we want the model to persist as XML

- */

-

-public interface IWritable {

-	

-	public static final int INDENT = 3;

-

-	void write(int indent, PrintWriter w);

-

-

-}

-

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallConfiguration.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallConfiguration.java
deleted file mode 100644
index ac8ec10..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallConfiguration.java
+++ /dev/null
@@ -1,853 +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 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.configurator.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.VersionedIdentifier;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.configurator.*;

-import org.eclipse.update.internal.model.*;

-import org.osgi.framework.*;

-

-/**

- * Manages ConfiguredSites

- *

- */

-

-public class InstallConfiguration extends InstallConfigurationModel implements IInstallConfiguration {

-	private static boolean isWindows = System.getProperty("os.name").startsWith("Win"); //$NON-NLS-1$ //$NON-NLS-2$

-	private ListenersList listeners = new ListenersList();

-

-	/*

-	 * default constructor.

-	 */

-	public InstallConfiguration() {

-	}

-

-	/*

-	 * Copy constructor 

-	 * @since 3.0

-	 */

-	public InstallConfiguration(IInstallConfiguration config) throws MalformedURLException, CoreException {

-		this(config, null, null);

-	}

-	

-	/*

-	 * copy constructor

-	 */

-	public InstallConfiguration(IInstallConfiguration config, URL newLocation, String label) throws CoreException, MalformedURLException {

-		// set current date and timeline as caller can call setDate if the

-		// date on the URL string has to be the same

-		Date now = new Date();

-		setCreationDate(now);

-		setCurrent(false);

-		

-		if (newLocation == null) {

-			String newFileName = UpdateManagerUtils.getLocalRandomIdentifier(SiteLocal.CONFIG_FILE, now);

-			newLocation = UpdateManagerUtils.getURL(((SiteLocal)SiteManager.getLocalSite()).getLocationURL(), newFileName, null);

-		}

-		setLocationURLString(newLocation.toExternalForm());

-		

-		if (label == null)

-			label = Utilities.format(now);

-		setLabel(label);

-

-		// do not copy list of listeners nor activities

-		// make a copy of the siteConfiguration object

-		if (config != null) {

-			IConfiguredSite[] csites = config.getConfiguredSites();

-			if (csites != null) {

-				for (int i = 0; i < csites.length; i++) {

-					ConfiguredSite configSite = new ConfiguredSite(csites[i]);

-					addConfigurationSiteModel(configSite);

-				}

-			}

-		}

-

-		resolve(newLocation, null);

-		// no need to parse file, all data are initialized

-		initialized = true;

-	}

-	

-

-	/*

-	 * Returns the list of configured sites or an empty array

-	 */

-	public IConfiguredSite[] getConfiguredSites() {

-		ConfiguredSiteModel[] result = getConfigurationSitesModel();

-		if (result.length == 0)

-			return new IConfiguredSite[0];

-		else

-			return (IConfiguredSite[]) result;

-	}

-

-	/*

-	 * Returns the default site policy

-	 */

-	private int getDefaultPolicy() {

-		return IConfigurationConstants.DEFAULT_POLICY_TYPE;

-	}

-

-	/**

-	 * Creates a Configuration Site and a new Site

-	 * The policy is from <code> org.eclipse.core.boot.IPlatformConfiguration</code>

-	 */

-	public IConfiguredSite createConfiguredSite(File file) throws CoreException {

-

-		if (!file.getName().equals("eclipse")) { //$NON-NLS-1$

-			file = new File(file, "eclipse"); //$NON-NLS-1$

-			file.mkdirs();

-		}

-		

-		if (isDuplicateSite(file))

-			throw Utilities.newCoreException(Policy.bind("InstallConfiguration.location.exists", file.getPath()),null); //$NON-NLS-1$

-		ISite site = InternalSiteManager.createSite(file);

-

-		//create a config site around the site

-		// even if the site == null

-		BaseSiteLocalFactory factory = new BaseSiteLocalFactory();

-		ConfiguredSite configSite = (ConfiguredSite) factory.createConfigurationSiteModel((SiteModel) site, getDefaultPolicy());

-

-		if (configSite.isNativelyLinked()) {

-			throw Utilities.newCoreException(Policy.bind("InstallConfiguration.AlreadyNativelyLinked"), null); //$NON-NLS-1$

-		}

-		

-		if (configSite.isProductSite()) {

-			throw Utilities.newCoreException(Policy.bind("InstallConfiguration.AlreadyProductSite"), null); //$NON-NLS-1$

-		}

-		

-		if (site != null) {

-			configSite.setPlatformURLString(site.getURL().toExternalForm());

-

-			// obtain the list of plugins

-			IPlatformConfiguration runtimeConfiguration = ConfiguratorUtils.getCurrentPlatformConfiguration();

-			ConfigurationPolicy configurationPolicy = configSite.getConfigurationPolicy();

-			String[] pluginPath = new String[0];

-			if (configurationPolicy.getPolicy() == IPlatformConfiguration.ISitePolicy.USER_INCLUDE)

-				pluginPath = configurationPolicy.getPluginPath(site);

-

-			// create new Site in configuration

-			IPlatformConfiguration.ISitePolicy sitePolicy = runtimeConfiguration.createSitePolicy(configurationPolicy.getPolicy(), pluginPath);

-

-			// change runtime

-			IPlatformConfiguration.ISiteEntry siteEntry = runtimeConfiguration.createSiteEntry(site.getURL(), sitePolicy);

-			runtimeConfiguration.configureSite(siteEntry);

-

-			// if the privatre marker doesn't already exist create it

-			configSite.createPrivateSiteMarker();

-			((SiteModel)site).setConfiguredSiteModel(configSite);

-		}

-		// configure all features as enable

-		configure(configSite);

-		

-		return configSite;

-	}

-

-	/**

-	 * Creates a Configuration Site and a new Site as a private link site

-	 * The policy is from <code> org.eclipse.core.boot.IPlatformConfiguration</code>

-	 */

-	public IConfiguredSite createLinkedConfiguredSite(File file) throws CoreException {

-		return createConfiguredSite(file);

-//		if (isDuplicateSite(file))

-//			throw Utilities.newCoreException(UpdateUtils.getFormattedMessage("InstallConfiguration.location.exists", file.getPath()),null);

-//		

-//		ISite site = InternalSiteManager.createSite(file);

-//

-//		//create a config site around the site

-//		// even if the site == null

-//		BaseSiteLocalFactory factory = new BaseSiteLocalFactory();

-//		ConfiguredSite configSite = (ConfiguredSite) factory.createConfigurationSiteModel((SiteModel) site, getDefaultPolicy());

-//

-//		if (!configSite.isExtensionSite()) {

-//			String msg = Policy.bind("InstallConfiguration.NotAnExtensionSite");

-//			throw Utilities.newCoreException(msg, null);

-//		}

-//

-//		if (configSite.isNativelyLinked()) {

-//			throw Utilities.newCoreException("InstallConfiguration.AlreadyNativelyLinked", null);

-//		}

-//

-//		if (site != null) {

-//			configSite.setPlatformURLString(site.getURL().toExternalForm());

-//

-//			// obtain the list of plugins

-//			IPlatformConfiguration runtimeConfiguration = ConfiguratorUtils.getCurrentPlatformConfiguration();

-//			ConfigurationPolicy configurationPolicy = configSite.getConfigurationPolicy();

-//			String[] pluginPath = new String[0];

-//			if (configurationPolicy.getPolicy() == IPlatformConfiguration.ISitePolicy.USER_INCLUDE)

-//				pluginPath = configurationPolicy.getPluginPath(site);

-//

-//			// create new Site in configuration

-//			IPlatformConfiguration.ISitePolicy sitePolicy = runtimeConfiguration.createSitePolicy(configurationPolicy.getPolicy(), pluginPath);

-//

-//			// change runtime

-//			IPlatformConfiguration.ISiteEntry siteEntry = runtimeConfiguration.createSiteEntry(site.getURL(), sitePolicy);

-//			runtimeConfiguration.configureSite(siteEntry);

-//

-//		}

-//

-//		// configure all features as enable

-//		configure(configSite);

-//

-//		return configSite;

-	}

-

-	/*

-	 *Configure all features as Enable Check we only enable highest version

-	 */

-	private void configure(ConfiguredSite linkedSite) throws CoreException {

-		ISite site = linkedSite.getSite();

-		ISiteFeatureReference[] newFeaturesRef = site.getFeatureReferences();

-

-		for (int i = 0; i < newFeaturesRef.length; i++) {

-			// TRACE

-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER) {

-				String reconciliationType = "enable (optimistic)"; //$NON-NLS-1$

-				UpdateCore.debug("New Linked Site:New Feature: " + newFeaturesRef[i].getURL() + " as " + reconciliationType); //$NON-NLS-1$ //$NON-NLS-2$

-			}

-			ConfigurationPolicy policy = linkedSite.getConfigurationPolicy();

-			policy.configure(newFeaturesRef[i], true, false);

-		}

-		SiteReconciler.checkConfiguredFeatures(linkedSite);

-	}

-

-	/*

-	 *

-	 */

-	public void addConfiguredSite(IConfiguredSite site) {

-		if (!isCurrent() && isReadOnly())

-			return;

-

-		ConfigurationActivity activity = new ConfigurationActivity(IActivity.ACTION_SITE_INSTALL);

-		activity.setLabel(site.getSite().getURL().toExternalForm());

-		activity.setDate(new Date());

-		ConfiguredSiteModel configSiteModel = (ConfiguredSiteModel) site;

-		addConfigurationSiteModel(configSiteModel);

-		configSiteModel.setInstallConfigurationModel(this);

-

-		// notify listeners

-		Object[] configurationListeners = listeners.getListeners();

-		for (int i = 0; i < configurationListeners.length; i++) {

-			IInstallConfigurationChangedListener listener = ((IInstallConfigurationChangedListener) configurationListeners[i]);

-			listener.installSiteAdded(site);

-		}

-

-		// everything done ok

-		activity.setStatus(IActivity.STATUS_OK);

-		this.addActivity(activity);

-	}

-

-	/**

-	 * Method addActivity.

-	 * @param activity

-	 */

-	public void addActivity(IActivity activity) {

-		addActivityModel((ConfigurationActivityModel)activity);

-	}

-

-	/*

-	 *

-	 */

-	public void removeConfiguredSite(IConfiguredSite site) {

-		if (!isCurrent() && isReadOnly())

-			return;

-

-		if (removeConfigurationSiteModel((ConfiguredSiteModel) site)) {

-			// notify listeners

-			Object[] configurationListeners = listeners.getListeners();

-			for (int i = 0; i < configurationListeners.length; i++) {

-				IInstallConfigurationChangedListener listener = ((IInstallConfigurationChangedListener) configurationListeners[i]);

-				listener.installSiteRemoved(site);

-			}

-			

-			//activity

-			ConfigurationActivity activity = new ConfigurationActivity(IActivity.ACTION_SITE_REMOVE);

-			activity.setLabel(site.getSite().getURL().toExternalForm());

-			activity.setDate(new Date());

-			activity.setStatus(IActivity.STATUS_OK);

-			this.addActivity(activity);

-		}

-	}

-

-	/*

-	 * @see IInstallConfiguration#addInstallConfigurationChangedListener(IInstallConfigurationChangedListener)

-	 */

-	public void addInstallConfigurationChangedListener(IInstallConfigurationChangedListener listener) {

-		synchronized (listeners) {

-			listeners.add(listener);

-		}

-	}

-

-	/*

-	 * @see IInstallConfiguration#removeInstallConfigurationChangedListener(IInstallConfigurationChangedListener)

-	 */

-	public void removeInstallConfigurationChangedListener(IInstallConfigurationChangedListener listener) {

-		synchronized (listeners) {

-			listeners.remove(listener);

-		}

-	}

-

-

-	/*

-	 * Deletes the configuration from its URL/location

-	 */

-	public void remove() {

-		// save the configuration

-		if ("file".equalsIgnoreCase(getURL().getProtocol())) { //$NON-NLS-1$

-			// the location points to a file

-			File file = new File(getURL().getFile());

-			UpdateManagerUtils.removeFromFileSystem(file);

-		}

-	}

-

-	/**

-	 * Saves the configuration into its URL/location

-	 * and changes the platform configuration.

-	 * The runtime site entries from platform.xml are updated as required

-	 * (cannot recreate these because must preserve other runtime state) [18520]

-	 * @return true if restart is needed

-	 */

-	public boolean save() throws CoreException {

-		

-		// Write info  into platform for the next runtime

-		IPlatformConfiguration runtimeConfiguration = ConfiguratorUtils.getCurrentPlatformConfiguration();

-		ConfiguredSiteModel[] configurationSites = getConfigurationSitesModel();

-

-		// clean configured Entries from platform runtime

-		IPlatformConfiguration.IFeatureEntry[] configuredFeatureEntries = runtimeConfiguration.getConfiguredFeatureEntries();

-		for (int i = 0; i < configuredFeatureEntries.length; i++) {

-			runtimeConfiguration.unconfigureFeatureEntry(configuredFeatureEntries[i]);

-		}

-

-		// [19958] remember sites currently configured by runtime (use

-		// temp configuration object rather than a straight list to ensure

-		// correct lookup)

-		IPlatformConfiguration tempConfig = null;

-		try {

-			tempConfig = ConfiguratorUtils.getPlatformConfiguration(null);

-			IPlatformConfiguration.ISiteEntry[] tmpSites = runtimeConfiguration.getConfiguredSites();

-			for (int i = 0; i < tmpSites.length; i++) {

-				tempConfig.configureSite(tmpSites[i]);

-			}

-		} catch (IOException e) {

-			// assume no currently configured sites

-		}

-

-		//check sites

-		checkSites(configurationSites, runtimeConfiguration);

-

-		// Save the plugin path, primary feature and platform

-		for (int i = 0; i < configurationSites.length; i++) {

-			ConfiguredSite cSite = ((ConfiguredSite) configurationSites[i]);

-			ConfigurationPolicy configurationPolicy = cSite.getConfigurationPolicy();

-

-			savePluginPath(cSite, runtimeConfiguration, tempConfig);

-

-			// IF primary feature URL or platform feature URL that we need to pass to runtime config

-			// is part of platform:base:, write it as platform:base: URL

-			IFeatureReference[] configuredFeaturesRef = configurationPolicy.getConfiguredFeatures();

-			for (int j = 0; j < configuredFeaturesRef.length; j++) {

-				IFeature feature = null;

-				try {

-					feature = configuredFeaturesRef[j].getFeature(null);

-				} catch (CoreException e) {

-					UpdateCore.warn(null, e);

-				}

-				saveFeatureEntry(cSite, feature, runtimeConfiguration);

-			}

-		}

-

-		// [19958] remove any extra site entries from runtime configuration

-		// (site entries that no longer exist in this configuration)

-		if (tempConfig != null) {

-			IPlatformConfiguration.ISiteEntry[] tmpSites = tempConfig.getConfiguredSites();

-			for (int i = 0; i < tmpSites.length; i++) {

-				runtimeConfiguration.unconfigureSite(tmpSites[i]);

-			}

-		}

-

-		try {

-			runtimeConfiguration.save();

-			// log configuration and activities

-			this.date = new Date(runtimeConfiguration.getChangeStamp());

-			if ("file".equalsIgnoreCase(getURL().getProtocol())) //$NON-NLS-1$

-				UpdateCore.log(this);

-			resetActivities();

-			return isRestartNeeded(runtimeConfiguration);

-		} catch (IOException e) {

-			CoreException exc = Utilities.newCoreException(Policy.bind("InstallConfiguration.UnableToSavePlatformConfiguration", runtimeConfiguration.getConfigurationLocation().toExternalForm()), e);	//$NON-NLS-1$

-			UpdateCore.warn("",exc); //$NON-NLS-1$

-		}

-		return true;

-	}

-

-	/*

-	 * Write the plugin path for each site

-	 * Do not check if the site already existed before [16696].

-	 * Reuse any runtime site objects in platform.cfg (to preserve state) [18520].

-	 */

-	private void savePluginPath(ConfiguredSite cSite, IPlatformConfiguration runtimeConfiguration, IPlatformConfiguration tempConfig) // [19958]

-	throws CoreException {

-

-		ConfigurationPolicy configurationPolicy = cSite.getConfigurationPolicy();

-

-		// create a ISitePolicy (policy, pluginPath)

-		// for the site

-		String[] pluginPath = configurationPolicy.getPluginPath(cSite.getSite());

-		IPlatformConfiguration.ISitePolicy sitePolicy = runtimeConfiguration.createSitePolicy(configurationPolicy.getPolicy(), pluginPath);

-

-		// get the URL of the site that matches the one platform.cfg gave us

-		URL urlToCheck = null;

-		try {

-			urlToCheck = new URL(cSite.getPlatformURLString());

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException(Policy.bind("InstallConfiguration.UnableToCreateURL", cSite.getPlatformURLString()), e); //$NON-NLS-1$

-		} catch (ClassCastException e) {

-			throw Utilities.newCoreException(Policy.bind("InstallConfiguration.UnableToCast"), e);	//$NON-NLS-1$

-		}

-

-		// update runtime configuration [18520]

-		// Note: we must not blindly replace the site entries because they

-		//       contain additional runtime state that needs to be preserved.

-		IPlatformConfiguration.ISiteEntry siteEntry = runtimeConfiguration.findConfiguredSite(urlToCheck);

-		if (siteEntry == null)

-			siteEntry = runtimeConfiguration.createSiteEntry(urlToCheck, sitePolicy);

-		else {

-			siteEntry.setSitePolicy(sitePolicy);

-			((SiteEntry)siteEntry).refreshPlugins();

-			if (tempConfig != null) // [19958] remove reused entries from list

-				tempConfig.unconfigureSite(siteEntry);

-		}

-		((SiteEntry)siteEntry).setEnabled(cSite.isEnabled());

-		runtimeConfiguration.configureSite(siteEntry, true /*replace if exists*/);

-	}

-

-	/*

-	 * Save the Feature entry

-	 * The feature can be a primary feature and/or a platform feature

-	 */

-	private void saveFeatureEntry(ConfiguredSite cSite, IFeature feature, IPlatformConfiguration runtimeConfiguration) throws CoreException {

-		if (feature == null)

-			return;

-

-		// get the URL of the plugin that corresponds to the feature (pluginid = featureid)

-		String id = feature.getVersionedIdentifier().getIdentifier();

-		IPluginEntry[] entries = feature.getPluginEntries();

-		URL url = null;

-		IPluginEntry featurePlugin = null;

-		for (int k = 0; k < entries.length; k++) {

-			if (id.equalsIgnoreCase(entries[k].getVersionedIdentifier().getIdentifier())) {

-				url = getRuntimeConfigurationURL(entries[k], cSite);

-				featurePlugin = entries[k];

-				break;

-			}

-		}

-		String pluginVersion = null;

-		if (featurePlugin != null)

-			pluginVersion = featurePlugin.getVersionedIdentifier().getVersion().toString();

-

-		// write the primary features

-		if (feature.isPrimary()) {

-			// get any fragments for the feature plugin

-			ArrayList list = new ArrayList();

-			if (url != null)

-				list.add(url);

-			if (featurePlugin != null) {

-				URL[] fragments = getRuntimeFragmentURLs(featurePlugin);

-				list.addAll(Arrays.asList(fragments));

-			}

-			URL[] roots = (URL[]) list.toArray(new URL[0]);

-			String pluginIdentifier = feature.getPrimaryPluginID();

-

-			// save information in runtime platform state

-			String version = feature.getVersionedIdentifier().getVersion().toString();

-			String application = feature.getApplication();

-			FeatureEntry featureEntry = (FeatureEntry)runtimeConfiguration.createFeatureEntry(id, version, pluginIdentifier, pluginVersion, true, application, roots);

-			featureEntry.setURL(getFeatureRelativeURL(feature));

-			SiteEntry siteEntry = (SiteEntry)runtimeConfiguration.findConfiguredSite(cSite.getSite().getURL());

-			siteEntry.addFeatureEntry(featureEntry);

-		} else {

-			// write non-primary feature entries

-			String version = feature.getVersionedIdentifier().getVersion().toString();

-			String pluginIdentifier = feature.getPrimaryPluginID();

-			FeatureEntry featureEntry = (FeatureEntry)runtimeConfiguration.createFeatureEntry(id, version, pluginIdentifier, pluginVersion, false, null, null);

-			featureEntry.setURL(getFeatureRelativeURL(feature));

-			SiteEntry siteEntry = (SiteEntry)runtimeConfiguration.findConfiguredSite(cSite.getSite().getURL());

-			siteEntry.addFeatureEntry(featureEntry);

-		}

-

-		// write the platform features (features that contain special platform plugins)

-		IPluginEntry[] platformPlugins = getPlatformPlugins(feature, runtimeConfiguration);

-		for (int k = 0; k < platformPlugins.length; k++) {

-			id = platformPlugins[k].getVersionedIdentifier().getIdentifier();

-			url = getRuntimeConfigurationURL(platformPlugins[k], cSite);

-			if (url != null) {

-				runtimeConfiguration.setBootstrapPluginLocation(id, url);

-			}

-		}

-	}

-

-	/*

-	 * Log if we are about to create a site that didn't exist before

-	 * in platform.cfg [16696].

-	 */

-	private void checkSites(ConfiguredSiteModel[] configurationSites, IPlatformConfiguration runtimeConfiguration) throws CoreException {

-

-		// check all the sites we are about to write already existed

-		// they should have existed either because they were created by

-		// updateManager or because we read them from platform.cfg

-		for (int i = 0; i < configurationSites.length; i++) {

-			// get the URL of the site that matches the one platform.cfg gave us

-			URL urlToCheck = null;

-			try {

-				urlToCheck = new URL(configurationSites[i].getPlatformURLString());

-			} catch (MalformedURLException e) {

-				UpdateCore.warn(Policy.bind("InstallConfiguration.UnableToCreateURL", configurationSites[i].getPlatformURLString()), e); //$NON-NLS-1$

-			} catch (ClassCastException e) {

-				UpdateCore.warn(Policy.bind("InstallConfiguration.UnableToCast"), e);//$NON-NLS-1$

-			}

-

-			// if the URL doesn't exits log it

-			IPlatformConfiguration.ISiteEntry siteEntry = runtimeConfiguration.findConfiguredSite(urlToCheck);

-			if (siteEntry == null) {

-				UpdateCore.warn(Policy.bind("Unable to find site {0} in platform configuration {1}.", urlToCheck.toExternalForm(), runtimeConfiguration.getConfigurationLocation().toExternalForm())); //$NON-NLS-1$

-			}

-		}

-	}

-

-

-	/*

-	 * reverts this configuration to the match the new one

-	 *

-	 * Compare the oldSites with the currentOne. the old state is the state we want to revert to.

-	 *

-	 * If a site was in old state, but not in the currentOne, keep it in the hash.

-	 * If a site is in the currentOne but was not in the old state, unconfigure all features and add it in the hash

-	 * If a site was in baoth state, calculate the 'delta' and re-set it in the hash map

-	 *

-	 * At the end, set the configured site from the new sites hash map

-	 *

-	 */

-	public void revertTo(IInstallConfiguration configuration, IProgressMonitor monitor, IProblemHandler handler) throws CoreException, InterruptedException {

-

-		IConfiguredSite[] oldConfigSites = configuration.getConfiguredSites();

-		IConfiguredSite[] nowConfigSites = this.getConfiguredSites();

-

-		// create a hashtable of the *old* and *new* sites

-		Map oldSitesMap = new Hashtable(0);

-		Map newSitesMap = new Hashtable(0);

-		for (int i = 0; i < oldConfigSites.length; i++) {

-			IConfiguredSite element = oldConfigSites[i];

-			oldSitesMap.put(element.getSite().getURL().toExternalForm(), element);

-			newSitesMap.put(element.getSite().getURL().toExternalForm(), element);

-		}

-		// create list of all the sites that map the *old* sites

-		// we want the intersection between the old sites and the current sites

-		if (nowConfigSites != null) {

-			String key = null;

-

-			for (int i = 0; i < nowConfigSites.length; i++) {

-				key = nowConfigSites[i].getSite().getURL().toExternalForm();

-				IConfiguredSite oldSite = (IConfiguredSite) oldSitesMap.get(key);

-				if (oldSite != null) {

-					// the Site existed before, calculate the delta between its current state and the

-					// state we are reverting to and put it back into the map

-					 ((ConfiguredSite) nowConfigSites[i]).revertTo(oldSite, monitor, handler);

-				} else {

-					// the site didn't exist in the InstallConfiguration we are reverting to

-					// unconfigure everything from this site so it is still present

-					ISiteFeatureReference[] featuresToUnconfigure = nowConfigSites[i].getSite().getFeatureReferences();

-					for (int j = 0; j < featuresToUnconfigure.length; j++) {

-						IFeature featureToUnconfigure = null;

-						try {

-							featureToUnconfigure = featuresToUnconfigure[j].getFeature(null);

-						} catch (CoreException e) {

-							UpdateCore.warn(null, e);

-						}

-						if (featureToUnconfigure != null)

-							nowConfigSites[i].unconfigure(featureToUnconfigure);

-					}

-				}

-				newSitesMap.put(key,nowConfigSites[i]);

-			}

-

-			// the new configuration has the exact same sites as the old configuration

-			// the old configuration in the Map are either as-is because they don't exist

-			// in the current one, or they are the delta from the current one to the old one

-			Collection sites = newSitesMap.values();

-			if (sites != null && !sites.isEmpty()) {

-				ConfiguredSiteModel[] sitesModel = new ConfiguredSiteModel[sites.size()];

-				sites.toArray(sitesModel);

-				setConfigurationSiteModel(sitesModel);

-			}

-		}

-	}

-

-	/*

-	 * @see IInstallConfiguration#getActivities()

-	 */

-	public IActivity[] getActivities() {

-		if (getActivityModel().length == 0)

-			return new IActivity[0];

-		return (IActivity[]) getActivityModel();

-	}

-

-	/*

-	 * returns the list of platform plugins of the feature or an empty list

-	 * if the feature doesn't contain any platform plugins

-	 */

-	private IPluginEntry[] getPlatformPlugins(IFeature feature, IPlatformConfiguration runtimeConfiguration) {

-		Map featurePlatformPlugins = new HashMap();

-		String[] platformPluginID = runtimeConfiguration.getBootstrapPluginIdentifiers();

-		IPluginEntry[] featurePlugins = feature.getPluginEntries();

-

-		for (int i = 0; i < platformPluginID.length; i++) {

-			String featurePluginId = null;

-			for (int j = 0; j < featurePlugins.length; j++) {

-				featurePluginId = featurePlugins[j].getVersionedIdentifier().getIdentifier();

-				if (platformPluginID[i].equals(featurePluginId)) {

-					featurePlatformPlugins.put(platformPluginID[i], featurePlugins[j]);

-				}

-			}

-		}

-

-		Collection values = featurePlatformPlugins.values();

-		if (values == null || values.size() == 0)

-			return new IPluginEntry[0];

-

-		IPluginEntry[] result = new IPluginEntry[values.size()];

-		Iterator iter = values.iterator();

-		int index = 0;

-		while (iter.hasNext()) {

-			result[index] = ((IPluginEntry) iter.next());

-			index++;

-		}

-		return result;

-	}

-

-	/*

-	 * returns the URL of the pluginEntry on the site

-	 * Transform the URL to use platform: protocol if needed

-	 * return null if the URL to write is not valid

-	 */

-	private URL getRuntimeConfigurationURL(IPluginEntry entry, ConfiguredSite cSite) throws CoreException {

-

-		String rootString = cSite.getPlatformURLString();

-		String pluginPathID = getPathID(entry);

-		try {

-			ISiteContentProvider siteContentProvider = cSite.getSite().getSiteContentProvider();

-			URL pluginEntryfullURL = siteContentProvider.getArchiveReference(pluginPathID);

-

-			//

-			if (!rootString.startsWith("platform")) { //$NON-NLS-1$

-				// DEBUG:

-				if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)

-					UpdateCore.debug("getRuntimeConfiguration Plugin Entry Full URL:" + pluginEntryfullURL + " Platform String:" + rootString + " [NON PLATFORM URL]."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-				return pluginEntryfullURL;

-			}

-

-			//URL pluginEntryRootURL = Platform.resolve(new URL(rootString));

-			// Do not resolve [16507], just use platform:base/ as a root

-			// rootString = platform:base

-			// pluginRoot = /home/a

-			// pluginFull = /home/a/c/boot.jar

-			// relative = platform:/base/c/boot.jar

-			URL pluginEntryRootURL = cSite.getSite().getURL();

-			String relativeString = UpdateManagerUtils.getURLAsString(pluginEntryRootURL, pluginEntryfullURL);

-			URL result = new URL(new URL(rootString), relativeString);

-

-			// DEBUG:

-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)

-				UpdateCore.debug("getRuntimeConfiguration plugin Entry Full URL:" + pluginEntryfullURL + " Platform String:" + rootString + " Site URL:" + pluginEntryRootURL + " Relative:" + relativeString); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$

-

-			// verify we are about to write a valid file URL

-			// check with fullURL as it is not resolved to platform:base/

-			if (pluginEntryfullURL != null) {

-				if ("file".equals(pluginEntryfullURL.getProtocol())) { //$NON-NLS-1$

-					String fileString = pluginEntryfullURL.getFile();

-					if (!new File(fileString).exists()) {

-						UpdateCore.warn("The URL:" + result + " doesn't point to a valid platform plugin.The URL will not be written in the platform configuration", new Exception()); //$NON-NLS-1$ //$NON-NLS-2$

-						return null;

-					}

-				}

-			}

-

-			return result;

-		} catch (IOException e) {

-			throw Utilities.newCoreException(Policy.bind("InstallConfiguration.UnableToCreateURL", rootString), e);	//$NON-NLS-1$

-		}

-	}

-

-	/*

-	 * Return URLs for any fragments that are associated with the specified plugin entry

-	 */

-	private URL[] getRuntimeFragmentURLs(IPluginEntry entry) throws CoreException {

-

-		// get the identifier associated with the entry

-		VersionedIdentifier vid = entry.getVersionedIdentifier();

-

-		// get the plugin descriptor from the registry

-		Bundle bundle = Platform.getBundle(vid.getIdentifier());

-		ArrayList list = new ArrayList();

-		if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.INSTALLED) {

-			FragmentEntry[] fragments = UpdateManagerUtils.getFragments(bundle);

-			for (int i = 0; fragments != null && i < fragments.length; i++) {

-				String location = fragments[i].getLocation();

-				try {

-					URL locationURL = new URL(location);

-					locationURL = Platform.asLocalURL(Platform.resolve(locationURL));

-					list.add(asInstallRelativeURL(locationURL));

-				} catch (IOException e) {

-					// skip bad fragments

-				}

-			}

-		}

-		return (URL[]) list.toArray(new URL[0]);

-	}

-

-	/**

-	 * Returns the path identifier for a plugin entry.

-	 * <code>plugins/&lt;pluginId>_&lt;pluginVersion>.jar</code>

-	 * @return the path identifier

-	 */

-	private String getPathID(IPluginEntry entry) {

-		return Site.DEFAULT_PLUGIN_PATH + entry.getVersionedIdentifier().toString() + FeatureContentProvider.JAR_EXTENSION;

-	}

-

-	/**

-	 * Try to recast URL as platform:/base/

-	 */

-	private URL asInstallRelativeURL(URL url) {

-		// get location of install

-		URL install = ConfiguratorUtils.getInstallURL();

-

-		// try to determine if supplied URL can be recast as install-relative

-		if (install.getProtocol().equals(url.getProtocol())) {

-			if (install.getProtocol().equals("file")) { //$NON-NLS-1$

-				String installS = new File(install.getFile()).getAbsolutePath().replace(File.separatorChar, '/');

-				if (!installS.endsWith("/")) //$NON-NLS-1$

-					installS += "/"; //$NON-NLS-1$

-				String urlS = new File(url.getFile()).getAbsolutePath().replace(File.separatorChar, '/');

-				if (!urlS.endsWith("/")) //$NON-NLS-1$

-					urlS += "/"; //$NON-NLS-1$

-				int ix = installS.lastIndexOf("/"); //$NON-NLS-1$

-				if (ix != -1) {

-					installS = installS.substring(0, ix + 1);

-					if (urlS.startsWith(installS)) {

-						try {

-							return new URL("platform:/base/" + urlS.substring(installS.length())); //$NON-NLS-1$

-						} catch (MalformedURLException e) {

-						}

-					}

-				}

-			}

-		}

-		return url;

-	}

-	

-	private boolean isDuplicateSite(File siteDirectory) {

-		IConfiguredSite[] sites = getConfiguredSites();

-		URL fileURL;

-		try {

-			fileURL = siteDirectory.toURL();

-		} catch (MalformedURLException e) {

-			return false;

-		}

-		for (int i = 0; i < sites.length; i++) {

-			URL url = sites[i].getSite().getURL();

-			if (UpdateManagerUtils.sameURL(fileURL, url))

-				return true;

-		}

-		return false;

-	}

-	

-	/*

-	 * Returns the feature url relative to the site.

-	 */

-	private String getFeatureRelativeURL(IFeature feature) {

-		String url = feature.getURL().toExternalForm();

-		String siteURL = feature.getSite().getURL().toExternalForm();

-		// TODO fix this. toURL() returns file:/d:/eclipse/etc... wheareas the 

-		// platform.asLocalURL() returns file:d:/eclipse/etc... (no leading / )

-//		if (url.startsWith("file:/") && Platform.getOS().equals("win32"))

-//			url = "file:" + url.substring(6);

-		

-		if (url.startsWith(siteURL))

-			return url.substring(siteURL.length());

-		else

-			return url;

-	}

-	

-	/**

-	 * @return true if restart is needed

-	 */

-	private boolean isRestartNeeded(IPlatformConfiguration runtimeConfig) {

-

-		// First, create a map for faster lookups

-		URL[] newBundlePaths = runtimeConfig.getPluginPath();

-		HashSet newPluginsSet = new HashSet(newBundlePaths.length);

-		for (int i=0; i<newBundlePaths.length; i++) {

-			

-			String pluginLocation = newBundlePaths[i].getFile();

-			newPluginsSet.add(pluginLocation);

-			// On windows, we will be doing case insensitive search as well, so lower it now

-			if (isWindows)

-				newPluginsSet.add(pluginLocation.toLowerCase());

-		}

-		

-		Bundle[] oldBundles = UpdateCore.getPlugin().getBundleContext().getBundles();

-

-		int offset = ConfigurationActivator.UPDATE_PREFIX.length();

-		for (int i=0; i<oldBundles.length; i++) {

-			if (oldBundles[i].getBundleId() == 0)

-				continue; // skip the system bundle

-			String oldBundleLocation = oldBundles[i].getLocation();

-			// Don't worry about bundles we did not install

-			if (!oldBundleLocation.startsWith(ConfigurationActivator.UPDATE_PREFIX))

-				continue;

-			oldBundleLocation = oldBundleLocation.substring(offset);

-			

-			if (newPluginsSet.contains(oldBundleLocation))

-				continue;

-			if (isWindows && newPluginsSet.contains(oldBundleLocation.toLowerCase()))

-				continue;

-			

-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)

-				UpdateCore.debug("Bundle " + oldBundleLocation + " has been removed"); //$NON-NLS-1$ //$NON-NLS-2$

-			return true;

-		}

-

-		return false;

-	}

-	

-	/* (non-Javadoc)

-	 * @see java.lang.Object#equals(java.lang.Object)

-	 */

-	public boolean equals(Object obj) {

-		if (this == obj)

-			return true;

-		if (!(obj instanceof InstallConfiguration))

-			return false;

-		

-		InstallConfiguration config = (InstallConfiguration)obj;

-	

-		return getCreationDate().equals(config.getCreationDate()) && 

-				getLabel().equals(config.getLabel()) &&

-				getLocationURLString().equals(config.getLocationURLString());

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallHandlerProxy.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallHandlerProxy.java
deleted file mode 100644
index 3a0a68d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallHandlerProxy.java
+++ /dev/null
@@ -1,553 +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 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.update.internal.core;
-
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.osgi.framework.*;
-
-public class InstallHandlerProxy implements IInstallHandler {
-
-	private IFeature feature = null;
-	private int type;
-	private IInstallHandler handler = null;
-	private IStatus savedStatus = null;
-	private boolean DEBUG = false;
-
-	private static final String EXT_PLUGIN = "org.eclipse.update.core"; //$NON-NLS-1$
-	private static final String UI_PLUGIN = "org.eclipse.ui"; //$NON-NLS-1$
-	private static final String EXT_POINT = "installHandlers"; //$NON-NLS-1$
-
-	/**
-	 * A class loader that combines a the org.eclipse.update.core plugin class loader with the
-	 * org.eclipse.ui class loader (only when UI is active).
-	 */
-	private static class InstallHandlerClassLoader extends URLClassLoader {
-		private Bundle updateCore;
-		private Bundle eclipseUI;
-
-		public InstallHandlerClassLoader(URL classpath) {
-			super(new URL[] {classpath});
-			updateCore = Platform.getBundle(EXT_PLUGIN);
-			eclipseUI = Platform.getBundle(UI_PLUGIN);
-			if (eclipseUI != null && eclipseUI.getState() != Bundle.ACTIVE) 
-				eclipseUI = null;
-		}
-
-		public Class loadClass(String className) throws ClassNotFoundException {
-			// First check update core plugin loader, then the eclipse ui plugin loader
-			Class c = null;
-			try {
-				c = updateCore.loadClass(className);
-			} catch (ClassNotFoundException e) {
-				try {
-					if(eclipseUI != null)
-						c = eclipseUI.loadClass(className);
-				} catch (ClassNotFoundException e2) {
-				} finally {
-				}
-			} finally {
-			}
-			if (c != null)
-				return c;
-			else
-				return super.loadClass(className);
-		}
-
-		public URL getResource(String resName) {
-			// First check update core plugin loader, then the eclipse ui plugin loader
-			URL u = updateCore.getResource(resName);
-			if(u == null && eclipseUI != null)
-				u = eclipseUI.getResource(resName);
-				
-			if (u != null)
-				return u;
-			else
-				return super.getResource(resName);
-		}
-	}
-	
-	private InstallHandlerProxy() {
-	}
-
-	public InstallHandlerProxy(
-		int type,
-		IFeature feature,
-		IInstallHandlerEntry entry,
-		InstallMonitor monitor)
-		throws CoreException {
-
-		initialize(type, feature, entry, monitor);
-	}
-
-	/*
-	 * @see IInstallHandler#initialize
-	 */
-	public void initialize(
-		int type,
-		IFeature feature,
-		IInstallHandlerEntry entry,
-		InstallMonitor monitor)
-		throws CoreException {
-
-		DEBUG = UpdateCore.DEBUG_SHOW_IHANDLER;
-		// validate arguments
-		if (feature == null)
-			throw new IllegalArgumentException();
-		this.feature = feature;
-		this.type = type;
-
-		//  check if we have a handler entry specified in the feature.xml
-		if (entry == null) {
-			if (DEBUG)
-				debug("not specified"); //$NON-NLS-1$
-			return; // no handler entry
-		}
-
-		String library = entry.getLibrary();
-		String handlerName = entry.getHandlerName();
-		if (handlerName == null || handlerName.trim().equals("")) { //$NON-NLS-1$
-			if (DEBUG)
-				debug("not specified"); //$NON-NLS-1$
-			return; // no handler class spacified in entry
-		}
-		if (DEBUG) {
-			debug("handler=" + handlerName); //$NON-NLS-1$
-			debug("path=   " + library); //$NON-NLS-1$
-		}
-
-		// get handler instance
-		try {
-			if (library == null || library.trim().equals("")) //$NON-NLS-1$
-				this.handler = getGlobalHandler(handlerName);
-			else
-				this.handler = getLocalHandler(library, handlerName);
-			if (this.handler == null)
-				return;
-			handler.initialize(type, feature, entry, monitor);
-		} catch (ClassNotFoundException e) {
-			handleExceptionInInit(
-				Policy.bind("InstallHandler.notFound", feature.getLabel()), //$NON-NLS-1$
-				e);
-
-		} catch (ClassCastException e) {
-			handleExceptionInInit(
-				Policy.bind("InstallHandler.invalidHandler", feature.getLabel()), //$NON-NLS-1$
-				e);
-		} catch (CoreException e) {
-			handleExceptionInInit(null, e);
-		} catch (Exception e) {
-			handleExceptionInInit(
-				Policy.bind("InstallHandler.unableToCreateHandler", feature.getLabel()), //$NON-NLS-1$
-				e);
-		}
-
-	}
-
-	/*
-	 * @see IInstallHandler#installInitiated
-	 */
-	public void installInitiated() throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling installInitiated()"); //$NON-NLS-1$
-				handler.installInitiated();
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#allPluginsDownloaded
-	 */
-	public void pluginsDownloaded(IPluginEntry[] plugins) throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling pluginsDownloaded()"); //$NON-NLS-1$
-				handler.pluginsDownloaded(plugins);
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#allPluginsInstalled
-	 */
-	public void completeInstall(IFeatureContentConsumer consumer)
-		throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling completeInstall()"); //$NON-NLS-1$
-				handler.completeInstall(consumer);
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#allDataDownloaded
-	 */
-	public void nonPluginDataDownloaded(
-		INonPluginEntry[] nonPluginData,
-		IVerificationListener listener)
-		throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling nonPluginDataDownloaded()"); //$NON-NLS-1$
-				handler.nonPluginDataDownloaded(nonPluginData, listener);
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#installCompleted
-	 */
-	public void installCompleted(boolean success) throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling installCompleted()"); //$NON-NLS-1$
-				handler.installCompleted(success);
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#configureInitiated
-	 */
-	public void configureInitiated() throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling configureInitiated()"); //$NON-NLS-1$
-				handler.configureInitiated();
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#completeConfigure
-	 */
-	public void completeConfigure() throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling completeConfigure()"); //$NON-NLS-1$
-				handler.completeConfigure();
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#configureCompleted
-	 */
-	public void configureCompleted(boolean success) throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling configureCompleted()"); //$NON-NLS-1$
-				handler.configureCompleted(success);
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#unconfigureInitiated
-	 */
-	public void unconfigureInitiated() throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling unconfigureInitiated()"); //$NON-NLS-1$
-				handler.unconfigureInitiated();
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#completeUnconfigure
-	 */
-	public void completeUnconfigure() throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling completeUnconfigure()"); //$NON-NLS-1$
-				handler.completeUnconfigure();
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#unconfigureCompleted
-	 */
-	public void unconfigureCompleted(boolean success) throws CoreException {
-		if (handler == null) {
-			if (savedStatus == null)
-				return;
-			else
-				throw new CoreException(savedStatus); // delayed exception
-		} else {
-			try {
-				if (DEBUG)
-					debug("calling unconfigureCompleted()"); //$NON-NLS-1$
-				handler.unconfigureCompleted(success);
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-			if (savedStatus != null)
-				throw new CoreException(savedStatus); // delayed exception
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#uninstallInitiated
-	 */
-	public void uninstallInitiated() throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling uninstallInitiated()"); //$NON-NLS-1$
-				handler.uninstallInitiated();
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#completeUninstall
-	 */
-	public void completeUninstall() throws CoreException {
-		if (handler == null)
-			return;
-		else {
-			try {
-				if (DEBUG)
-					debug("calling completeUninstall()"); //$NON-NLS-1$
-				handler.completeUninstall();
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-		}
-	}
-
-	/*
-	 * @see IInstallHandler#uninstallCompleted
-	 */
-	public void uninstallCompleted(boolean success) throws CoreException {
-		if (handler == null) {
-			if (savedStatus == null)
-				return;
-			else
-				throw new CoreException(savedStatus); // delayed exception
-		} else {
-			try {
-				if (DEBUG)
-					debug("calling uninstallCompleted()"); //$NON-NLS-1$
-				handler.uninstallCompleted(success);
-			} catch (Throwable e) {
-				handleExceptionInCall(e, feature);
-			}
-			if (savedStatus != null)
-				throw new CoreException(savedStatus); // delayed exception
-		}
-	}
-
-	/*
-	 * common exception handling for initialization
-	 */
-	private void handleExceptionInInit(String s, Exception e)
-		throws CoreException {
-
-		CoreException ce;
-		if (e instanceof CoreException)
-			ce = (CoreException) e;
-		else
-			ce = Utilities.newCoreException(s, e);
-
-		if (isUndoAction()) {
-			// for "undo" operations, deactivate handler and log error
-			String id =
-				UpdateCore.getPlugin().getBundle().getSymbolicName();
-			IStatus status =
-				new Status(IStatus.ERROR, id, 0, "InstallHandler.deactivated", ce);	//$NON-NLS-1$
-			UpdateCore.getPlugin().getLog().log(status);
-			handler = null; // disable subsequent handler calls
-			savedStatus = status;
-		} else
-			// for "do" operations, hurl ...
-			throw ce;
-	}
-
-	/*
-	 * common exception handling for calls to install handler
-	 */
-	private void handleExceptionInCall(Throwable e, IFeature feature)
-		throws CoreException {
-
-		CoreException ce;
-		if (e instanceof CoreException)
-			ce = (CoreException) e;
-		else
-			ce =
-				Utilities.newCoreException(
-					Policy.bind("InstallHandler.callException", feature.getLabel()), //$NON-NLS-1$
-					e);
-		
-		if (isUndoAction()) {
-			// for "undo" operations, deactivate handler and log error
-			String id =
-				UpdateCore.getPlugin().getBundle().getSymbolicName();
-			IStatus status =
-				new Status(IStatus.ERROR, id, 0, "InstallHandler.deactivated", ce);	//$NON-NLS-1$
-			UpdateCore.getPlugin().getLog().log(status);
-			handler = null; // disable subsequent handler calls
-			savedStatus = status;
-		} else
-			// for "do" operations, hurl ...
-			throw ce;
-	}
-
-	/*
-	 * Indicates whether we are doing (install, configure) or 
-	 * undoing (uninstall, unconfigure)
-	 */
-	private boolean isUndoAction() {
-		if (this.type == IInstallHandler.HANDLER_ACTION_INSTALL
-			|| this.type == IInstallHandler.HANDLER_ACTION_CONFIGURE)
-			return false; // causes exception to be thrown and action aborted
-		else
-			return true; // causes exception to be logged and action continues
-	}
-
-	/*
-	 * get an instance of handler downloaded as part of the feature
-	 */
-	private IInstallHandler getLocalHandler(String lib, String name)
-		throws Exception {
-
-		// Get baseline URL for handler (relative to feature.xml). For
-		// features being installed from a server (eg. http protocol)
-		// the URL will most likely be to a local file copy containing the
-		// unpacked feature jar.
-		ContentReference baseRef =
-			feature.getFeatureContentProvider().getFeatureManifestReference(null);
-		URL base = null;
-		if (baseRef != null)
-			base = baseRef.asURL();
-		if (base == null)
-			throw Utilities.newCoreException(
-				Policy.bind("InstallHandler.unableToCreateHandler", this.feature.getLabel()), //$NON-NLS-1$
-				null);
-
-
-		// determine loader class path
-		URL cp = new URL(base, lib);
-		if (this.type == IInstallHandler.HANDLER_ACTION_UNINSTALL) {
-			// check if we are doing uninstall
-			// ... need to make temp copy of library (being removed)
-			File tempLib = File.createTempFile("tmp", ".jar"); //$NON-NLS-1$ //$NON-NLS-2$
-			tempLib.deleteOnExit();
-			FileOutputStream fos = null;
-			InputStream is = null;
-			try {
-				fos = new FileOutputStream(tempLib);
-				is = UpdateCore.getPlugin().get(cp).getInputStream();
-				Utilities.copy(is, fos, null);
-			} finally {
-				if (fos != null)
-					try {
-						fos.close();
-					} catch (Exception e) {
-					}
-				if (is != null)
-					try {
-						is.close();
-					} catch (Exception e) {
-					}
-			}
-			cp = tempLib.toURL();
-		}
-
-		// create class loader, load and instantiate handler
-		ClassLoader loader = new InstallHandlerClassLoader(cp);
-		Class clazz = loader.loadClass(name);
-		IInstallHandler handler = (IInstallHandler) clazz.newInstance();
-		return handler;
-	}
-
-	/*
-	 * get instance of global handler registered via extension point
-	 */
-	private IInstallHandler getGlobalHandler(String name) throws Exception {
-
-		IExtensionRegistry reg = Platform.getExtensionRegistry();
-		IConfigurationElement[] handlerExtension =
-			reg.getConfigurationElementsFor(EXT_PLUGIN, EXT_POINT, name);
-		if (handlerExtension == null || handlerExtension.length <= 0)
-			throw Utilities.newCoreException(
-				Policy.bind("InstallHandler.unableToCreateHandler", this.feature.getLabel()), //$NON-NLS-1$
-				null);
-
-		return (IInstallHandler) handlerExtension[0].createExecutableExtension("class"); //$NON-NLS-1$
-	}
-	
-	private void debug(String s) {
-		String pfx = (feature==null) ? "" : feature.getVersionedIdentifier().toString(); //$NON-NLS-1$
-		System.out.println("InstallHandler["+pfx+"]: " + s); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallLogParser.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallLogParser.java
deleted file mode 100644
index 31e1bb0..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallLogParser.java
+++ /dev/null
@@ -1,240 +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 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.update.internal.core;
-
-import java.io.*;
-import java.net.*;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.operations.*;
-
-
-/**
- * Parses the installation log and creates installation configuration objects
- */
-public class InstallLogParser {
-	private IPath logPath;
-	private BufferedReader buffRead;
-	private InstallConfiguration currentConfiguration;
-	private HashMap installConfigMap;
-	private Comparator comparator;
-	
-	private static final String FEATURE_INSTALL = "feature-install"; //$NON-NLS-1$
-	private static final String FEATURE_REMOVE = "feature-remove"; //$NON-NLS-1$
-	private static final String SITE_INSTALL = "site-install"; //$NON-NLS-1$
-	private static final String SITE_REMOVE = "site-remove"; //$NON-NLS-1$
-	private static final String UNCONFIGURE = "feature-disable"; //$NON-NLS-1$
-	private static final String CONFIGURE = "feature-enable"; //$NON-NLS-1$
-	private static final String REVERT = "revert"; //$NON-NLS-1$
-	private static final String RECONCILIATION = "reconciliation"; //$NON-NLS-1$
-	private static final String PRESERVED = "preserve-configuration"; //$NON-NLS-1$	
-	
-	private static final String ACTIVITY = "!ACTIVITY"; //$NON-NLS-1$
-	
-	public static final String SUCCESS = "success"; //$NON-NLS-1$
-	public static final String FAILURE = "failure"; //$NON-NLS-1$
-
-	
-	public InstallLogParser(){
-		String loc = ConfiguratorUtils.getCurrentPlatformConfiguration().getConfigurationLocation().getFile();
-		logPath = new Path(loc).removeLastSegments(1).append("install.log");  //$NON-NLS-1$
-		installConfigMap = new HashMap();
-		try {
-			InstallConfiguration[] configs = (InstallConfiguration[])SiteManager.getLocalSite().getConfigurationHistory();
-			for (int i=0;i<configs.length; i++){
-				if (!configs[i].isCurrent())
-					installConfigMap.put(new Long(configs[i].getCreationDate().getTime()), configs[i]);
-			}
-			// Need to make a copy of the current config instead
-			InstallConfiguration config = getConfigCopy((InstallConfiguration)SiteManager.getLocalSite().getCurrentConfiguration());
-			installConfigMap.put(new Long(config.getCreationDate().getTime()), config);
-			
-		} catch (CoreException e) {
-			UpdateCore.log(e);
-		} catch (MalformedURLException e){
-			UpdateCore.log(e);
-		}
-		comparator = new Comparator(){
-			public int compare(Object e1, Object e2) {
-				Date date1 = ((InstallConfiguration)e1).getCreationDate();
-				Date date2 = ((InstallConfiguration)e2).getCreationDate();
-				return date1.before(date2) ? 1 : -1;
-			}
-		};
-	}
-	private InstallConfiguration getConfigCopy(InstallConfiguration origConfig) throws CoreException, MalformedURLException{
-		InstallConfiguration config = new InstallConfiguration(origConfig, origConfig.getURL(), origConfig.getLabel() );
-		config.setCreationDate(origConfig.getCreationDate());
-		return config;
-	}
-	public void parseInstallationLog(){
-		try {
-			openLog();
-			parseLog();
-		} catch (CoreException e) {
-			UpdateUtils.logException(e);
-		} finally {
-			closeLog();
-		}
-	}
-	
-	private void openLog() throws CoreException {
-		try {
-		    // throws FileNotFoundException, IOException
-		    InputStream is = new FileInputStream(logPath.toOSString());
-		    // throws UnsupportedEncodingException
-		    InputStreamReader isr = new InputStreamReader(is,"UTF-8");
-		    buffRead = new BufferedReader(isr);
-		} catch (Exception e) {
-			throwCoreException(e);
-		}
-	}
-	
-	private void throwCoreException(Throwable e) throws CoreException {
-		throw new CoreException(
-			new Status(
-				IStatus.ERROR,
-				UpdateUtils.getPluginId(),
-				IStatus.ERROR,
-				Policy.bind("InstallLogParser.errors"), //$NON-NLS-1$
-				e));
-	}
-	
-	private void parseLog() throws CoreException {
-		// 		.install-log template
-		//		!CONFIGURATION <configuration-date>
-		//		!ACTIVITY <date> <target> <action> <status>
-
-		try {
-			String type, status, action;
-			StringTokenizer htmlCode;
-
-			while (buffRead.ready()) {
-
-				htmlCode = new StringTokenizer(buffRead.readLine());
-				while (!(htmlCode.hasMoreElements())) {
-					if (!buffRead.ready())
-						return;
-					htmlCode = new StringTokenizer(buffRead.readLine());
-				}
-
-				type = htmlCode.nextToken().trim();
-
-				if (type.equals(ACTIVITY)) {
-					String time = htmlCode.nextToken();
-					String date;
-					StringBuffer target = new StringBuffer();
-					date = htmlCode.nextToken(".");  //$NON-NLS-1$
-					htmlCode.nextToken(" ");  //$NON-NLS-1$
-					while (htmlCode.countTokens() > 2){
-						target.append(" "); //$NON-NLS-1$
-						target.append(htmlCode.nextToken());
-					}
-					
-					action = htmlCode.nextToken();
-					status = htmlCode.nextToken();
-					createActivity(action, time, date, status, target.toString(), currentConfiguration);
-				}  else {
-					String time = htmlCode.nextToken();
-					StringBuffer date;
-					date = new StringBuffer();
-					while (htmlCode.countTokens() > 0){
-						if (date.length() != 0)
-							date.append(" "); //$NON-NLS-1$
-						date.append(htmlCode.nextToken());
-					}
-					currentConfiguration = (InstallConfiguration)installConfigMap.get(new Long(time));
-				}
-			}
-		} catch (Exception e) {
-			throwCoreException(e);
-		}
-	}
-	
-	private void closeLog() {
-		try {
-			if (buffRead != null)
-				buffRead.close();
-		} catch (IOException e) {
-		} finally {
-			buffRead = null;
-		}
-	}
-	private IActivity createActivity(String action, String time, String date, String status, String target, InstallConfiguration config){
-		ConfigurationActivity a = new ConfigurationActivity();
-
-		int code = 0;
-		if (FEATURE_INSTALL.equals(action))
-			code = IActivity.ACTION_FEATURE_INSTALL;
-		else if (FEATURE_REMOVE.equals(action))
-			code = IActivity.ACTION_FEATURE_REMOVE;
-		else if (SITE_INSTALL.equals(action))
-			code = IActivity.ACTION_SITE_INSTALL;
-		else if (SITE_REMOVE.equals(action))
-			code = IActivity.ACTION_SITE_REMOVE;
-		else if (UNCONFIGURE.equals(action))
-			code = IActivity.ACTION_UNCONFIGURE;
-		else if (CONFIGURE.equals(action))
-			code = IActivity.ACTION_CONFIGURE;
-		else if (REVERT.equals(action))
-			code = IActivity.ACTION_REVERT;
-		else if (RECONCILIATION.equals(action))
-			code = IActivity.ACTION_RECONCILIATION;
-		else if (PRESERVED.equals(action))
-			code = IActivity.ACTION_ADD_PRESERVED;
-		
-		a.setAction(code);
-		try {
-			long activityTime = Long.parseLong(time);
-			a.setDate(new Date(activityTime));
-		} catch (NumberFormatException e) {
-			//PAL foundation
-			//a.setDate(new Date(date));
-			try {
-				a.setDate(new SimpleDateFormat().parse(date));
-			} catch (ParseException e1) {
-				//ignore
-			}
-		}
-		a.setStatus(SUCCESS.equals(status) ? IActivity.STATUS_OK : IActivity.STATUS_NOK);
-		a.setLabel(target);
-		a.setInstallConfigurationModel(config);
-		
-		if (config != null && !configContainsActivity(config, a)){
-			config.addActivity(a);
-		}
-		
-		return a;
-	}
-	
-	private boolean configContainsActivity(InstallConfiguration c, IActivity a){
-		IActivity[] activities = c.getActivities();
-		for (int i = 0 ; i<activities.length; i++){
-			if (a.equals(activities[i]))
-				return true;
-		}
-		return false;
-	}
-
-	public InstallConfiguration[] getConfigurations(){
-		Collection configSet = installConfigMap.values();
-		InstallConfiguration[] configs = (InstallConfiguration[]) configSet.toArray(new InstallConfiguration[configSet.size()]);
-		Arrays.sort(configs, comparator);
-		return configs;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallRegistry.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallRegistry.java
deleted file mode 100644
index 3cddd58..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallRegistry.java
+++ /dev/null
@@ -1,182 +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 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.update.internal.core;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.core.*;
-
-/**
- * Keeps track of all the features and plugins installed by Update mgr
- * so they can be uninstalled later.
- * The info is persisted in the .config/registry file and each entry has a key=key where
- * for feature this key is feature_<id>_<version> and for plugins
- * key is plugin_<id>_<version>. Normally, getVersionedIdentifier() will
- * return <id>_<version>. Eg: feature_org.eclipse.platform_3.0.0
- * 
- */
-public class InstallRegistry extends Properties {
-
-    private static final long serialVersionUID = 1L;
-    private File file = null;
-	private final static String REGISTRY = "registry"; //$NON-NLS-1$
-	private static InstallRegistry instance;
-	
-	// plugins installed in this eclipse session
-	private HashMap justInstalledPlugins = new HashMap();
-	
-	/**
-	 * Creates empty Properties.
-	 */
-	private InstallRegistry() {
-		super();
-		String configFile =
-			ConfiguratorUtils
-				.getCurrentPlatformConfiguration()
-				.getConfigurationLocation()
-				.getFile();
-		file = new File(configFile);
-		file = file.getParentFile();
-		file = new File(file, REGISTRY);
-		restore();
-	}
-
-	/**
-	 * Singleton
-	 */
-	public static InstallRegistry getInstance() {
-		if (instance == null)
-			instance = new InstallRegistry();
-		return instance;
-	}
-
-	/**
-	 * Restores contents of the Properties from a file.
-	 * @return true if persistant data was read in
-	 */
-	public boolean restore() {
-		InputStream in = null;
-		boolean loaded = false;
-		clear();
-		// Test if we have a contribution file to start with
-		// If this is a clean start, then we will not have a 
-		// contribution file. return false.
-		if (!file.exists())
-			return loaded;
-		try {
-			in = new FileInputStream(file);
-			super.load(in);
-			loaded = true;
-		} catch (IOException e) {
-			UpdateCore.log(e);
-		} finally {
-			if (in != null)
-				try {
-					in.close();
-				} catch (IOException e) {
-				}
-		}
-		return loaded;
-	}
-	/**
-	 * Saves contents of the table to a file.
-	 * @return true if operation was successful
-	 */
-	public synchronized boolean save() {
-		OutputStream out = null;
-		boolean ret = false;
-		try {
-			out = new FileOutputStream(file);
-			super.store(out, "This is a generated file; do not edit."); //$NON-NLS-1$
-			ret = true;
-		} catch (IOException e) {
-			UpdateCore.log(e);
-		} finally {
-			try {
-				if (out != null) {
-					out.close();
-				}
-			} catch (IOException e) {
-			}
-		}
-		return ret;
-	}
-	
-	/**
-	 * Registers an installed feature so it can be uninstalled later.
-	 * @param feature feature to register.
-	 */
-	public static synchronized void registerFeature(IFeature feature) {
-		String name = "feature_"+feature.getVersionedIdentifier(); //$NON-NLS-1$
-		if (InstallRegistry.getInstance().get(name) == null) {
-			InstallRegistry.getInstance().put(name, name);
-			// we save after each registration
-			InstallRegistry.getInstance().save();
-		}
-	}
-	
-	/**
-	 * Registers an installed feature so it can be uninstalled later.
-	 * @param pluginEntry plugin to register.
-	 */
-	public static synchronized void registerPlugin(IPluginEntry pluginEntry) {
-		String name = "plugin_"+pluginEntry.getVersionedIdentifier(); //$NON-NLS-1$
-		if (InstallRegistry.getInstance().get(name) == null) {
-			InstallRegistry.getInstance().put(name, name);
-			// we save after each registration
-			InstallRegistry.getInstance().save();
-		}
-		
-		// add plugin to the list of just installed plugins .
-		InstallRegistry.getInstance().justInstalledPlugins.put(name,name);
-	}
-	
-	/**
-	 * Removes specified feature from registry
-	 *
-	 */
-	public static synchronized void unregisterFeature(IFeature feature) {
-		String name = "feature_"+feature.getVersionedIdentifier(); //$NON-NLS-1$
-		InstallRegistry.getInstance().remove(name);
-	}
-	
-	/**
-	 * Removes specified plugin from registry
-	 *
-	 */
-	public static synchronized void unregisterPlugin(IPluginEntry pluginEntry) {
-		String name = "plugin_"+pluginEntry.getVersionedIdentifier(); //$NON-NLS-1$
-		InstallRegistry.getInstance().remove(name);
-		
-		// remove the plugin from the list of just installed plugins (if needed).
-		InstallRegistry.getInstance().justInstalledPlugins.remove(name);
-	}
-	
-	/**
-	 * Returns true if the plugin was installed during this eclipse session
-	 * @param pluginEntry
-	 * @return
-	 */
-	public boolean isPluginJustInstalled(IPluginEntry pluginEntry) {
-		String name = "plugin_"+pluginEntry.getVersionedIdentifier(); //$NON-NLS-1$
-		return InstallRegistry.getInstance().justInstalledPlugins.get(name) != null;
-	}
-	
-	/**
-	 * This method is only needed for the update JUnit tests.
-	 *
-	 */
-	public static void cleanup() {
-		InstallRegistry.getInstance().justInstalledPlugins.clear();
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InternalSiteManager.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InternalSiteManager.java
deleted file mode 100644
index d0d8397..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InternalSiteManager.java
+++ /dev/null
@@ -1,359 +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 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.update.internal.core;

-

-

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-

-/**

- * 

- */

-public class InternalSiteManager {

-

-	public static ILocalSite localSite;

-

-	public static final String DEFAULT_SITE_TYPE = SiteURLContentProvider.SITE_TYPE;

-	private static final String DEFAULT_EXECUTABLE_SITE_TYPE = SiteFileContentProvider.SITE_TYPE;

-

-	private static Map estimates;

-

-	// cache found sites

-	private static Map sites = new HashMap();

-	// cache timestamps

-	private static Map siteTimestamps = new HashMap();

-	public static boolean globalUseCache = true;

-

-	// true if an exception occured creating localSite

-	// so we cache it and don't attempt to create it again

-	private static CoreException exceptionOccured = null;

-

-	/*

-	 * @see SiteManager#getLocalSite()

-	 */

-	public static ILocalSite getLocalSite() throws CoreException {

-		return internalGetLocalSite();

-	}

-

-	/*

-	 * Internal call if optimistic reconciliation needed

-	 */

-	private static ILocalSite internalGetLocalSite() throws CoreException {

-

-		// if an exception occured while retrieving the Site

-		// rethrow it

-		if (exceptionOccured != null)

-			throw exceptionOccured;

-

-		if (localSite == null) {

-			try {

-				localSite = SiteLocal.internalGetLocalSite();

-			} catch (CoreException e) {

-				exceptionOccured = e;

-				throw e;

-			}

-		}

-		return localSite;

-	}

-	

-	private static boolean isValidCachedSite(URL siteURL) {

-		if (!sites.containsKey(siteURL.toExternalForm()))

-			return false;

-			

-		Long timestamp = (Long)siteTimestamps.get(siteURL);

-		if (timestamp == null)

-			return false;

-		long localLastModified = timestamp.longValue();

-		

-		return UpdateManagerUtils.isSameTimestamp(siteURL, localLastModified);

-	}

-

-	/*

-	 * @see ILocalSite#getSite(URL)

-	 */

-	public static ISite getSite(URL siteURL, boolean useCache, IProgressMonitor monitor) throws CoreException {

-		ISite site = null;

-		if (monitor==null) monitor = new NullProgressMonitor();

-

-		if (siteURL == null)

-			return null;

-

-		// use cache if set up globally (globalUseCache=true)

-		// and passed as parameter (useCache=true)

-		String siteURLString = siteURL.toExternalForm();

-		if ((useCache && globalUseCache) && isValidCachedSite(siteURL)) {

-			site = (ISite) sites.get(siteURLString);

-			return site;

-		}

-		

-		// try adding "eclipse" to the site url, in case this is an extension site

-		if ("file".equals(siteURL.getProtocol()) ) { //$NON-NLS-1$

-			File f = new File(siteURL.getFile());

-			if (f.isDirectory() && !"eclipse".equals(f.getName())) { //$NON-NLS-1$

-				f = new File(f, "eclipse"); //$NON-NLS-1$

-				try {

-					if ((useCache && globalUseCache) && isValidCachedSite(f.toURL())) {

-						site = (ISite) sites.get(f.toURL().toExternalForm());

-						return site;

-					}

-				} catch (MalformedURLException e) {

-				}	

-			}

-		}

-

-		// consider file protocol also if the URL points to a directory

-		// and no site.xml exist

-		// if the user points to a file, consider DEFAULT_SITE_TYPE

-		// site.xml will have to specify the type

-		boolean fileProtocol = "file".equalsIgnoreCase(siteURL.getProtocol()); //$NON-NLS-1$

-		boolean directoryExists = false;

-		if (fileProtocol) {

-			File dir;

-			dir = new File(siteURL.getFile());

-			if (dir != null && dir.isDirectory()) {

-				if (!(new File(dir, Site.SITE_XML).exists()))

-					directoryExists = true;

-			}

-		}

-

-		//PERF: if file: <path>/ and directory exists then consider executable

-		monitor.beginTask(Policy.bind("InternalSiteManager.ConnectingToSite"), 8); //$NON-NLS-1$

-		if (fileProtocol && directoryExists) {

-			site = attemptCreateSite(DEFAULT_EXECUTABLE_SITE_TYPE, siteURL, monitor);

-			monitor.worked(4); // only one attempt

-		} else {

-			try {

-				monitor.worked(3);

-				site = attemptCreateSite(DEFAULT_SITE_TYPE, siteURL, monitor);

-				monitor.worked(1);

-			} catch (CoreException preservedException) {

-				if (!monitor.isCanceled()) {

-					// attempt a retry is the protocol is file, with executbale type

-					if (!fileProtocol)

-						throw preservedException;

-

-					try {

-						site = attemptCreateSite(DEFAULT_EXECUTABLE_SITE_TYPE, siteURL, monitor);

-					} catch (CoreException retryException) {

-						IStatus firstStatus = preservedException.getStatus();

-						MultiStatus multi = new MultiStatus(firstStatus.getPlugin(), IStatus.OK, Policy.bind("InternalSiteManager.FailedRetryAccessingSite"), retryException); //$NON-NLS-1$

-						multi.addAll(firstStatus);

-						throw preservedException;

-					}

-				}

-			}

-		}

-

-		if (site != null) {

-			sites.put(siteURL.toExternalForm(), site);

-			try {

-				Response response = UpdateCore.getPlugin().get(URLEncoder.encode(siteURL));

-				siteTimestamps.put(siteURL, new Long(response.getLastModified()));

-			} catch (MalformedURLException e) {

-			} catch (IOException e) {

-			}

-		}

-

-		//flush the JarFile we may hold on to

-		// we keep the temp not to create them again

-		JarContentReference.shutdown(); // make sure we are not leaving jars open for this site

-

-		//flush mapping of downloaded JAR files

-		// FIXME : provide better cache flushing after 2.1

-		// FIXED: everything downloaded is cached and timestamped.

-		//        Timestamps are compared to lastModifed on the server

-		//        and we download only when there is a differenc

-		// Utilities.flushLocalFile();

-

-		return site;

-	}

-

-	/*

-	 * Attempt to create a site

-	 * if the site guessed is not the type found,

-	 * attempt to create a type with the type found in the site.xml

-	 */

-	private static ISite attemptCreateSite(String guessedTypeSite, URL siteURL, IProgressMonitor monitor) throws CoreException {

-		if (monitor == null) monitor = new NullProgressMonitor();

-		ISite site = null;

-

-		try {

-			monitor.worked(1);

-			site = createSite(guessedTypeSite, siteURL, monitor);

-			monitor.worked(1); // if no error, occurs the retry branch doesn't need to be executed

-		} catch (InvalidSiteTypeException e) {

-			if (monitor.isCanceled()) return null;

-

-			// the type in the site.xml is not the one expected	

-			// attempt to use this type instead	

-			//DEBUG:

-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_TYPE) {

-				UpdateCore.debug("The Site :" + siteURL.toExternalForm() + " is a different type than the guessed type based on the protocol. new Type:" + e.getNewType());	//$NON-NLS-1$ //$NON-NLS-2$ 

-			}

-

-			try {

-				if (e.getNewType() == null)

-					throw e;

-				site = createSite(e.getNewType(), siteURL, monitor);

-			} catch (InvalidSiteTypeException e1) {

-				throw Utilities.newCoreException(Policy.bind("InternalSiteManager.UnableToCreateSiteWithType", e.getNewType(), siteURL.toExternalForm()), e1);	//$NON-NLS-1$ 

-			}

-		}

-

-		return site;

-	}

-

-	/*

-	 * create an instance of a class that implements ISite

-	 * 

-	 * the URL can be of the following form

-	 * 1 protocol://...../

-	 * 2 protocol://.....

-	 * 3 protocol://..../site.xml

-	 * 4 protocol://...#...

-	 * 

-	 * 1 If the file of the file of teh url ends with '/', attempt to open the stream.

-	 * if it fails, add site.xml and attempt to open the stream

-	 * 

-	 * 2 attempt to open the stream

-	 * 	fail

-	 * 		add '/site.xml' and attempt to open the stream

-	 * 	sucess

-	 * 		attempt to parse, if it fails, add '/site.xml' and attempt to open the stream

-	 * 

-	 * 3 open the stream

-	 * 

-	 * 4 open the stream	

-	 */

-	private static ISite createSite(String siteType, URL url, IProgressMonitor monitor) throws CoreException, InvalidSiteTypeException {

-		if (monitor == null) monitor = new NullProgressMonitor();

-		ISite site = null;

-		ISiteFactory factory = SiteTypeFactory.getInstance().getFactory(siteType);

-

-		try {

-			monitor.worked(1);

-			site = createSite(factory, url, monitor);

-		} catch (CoreException e) {

-			if (monitor.isCanceled()) return null;

-

-			// if the URL is pointing to either a file 

-			// or a directory, without reference			

-			if (url.getRef() != null) {

-				// 4 nothing we can do

-				throw Utilities.newCoreException(Policy.bind("InternalSiteManager.UnableToAccessURL", url.toExternalForm()), e); //$NON-NLS-1$

-			} else if (url.getFile().endsWith("/")) { //$NON-NLS-1$

-				// 1 try to add site.xml

-				URL urlRetry;

-				try {

-					urlRetry = new URL(url, Site.SITE_XML);

-				} catch (MalformedURLException e1) {

-					throw Utilities.newCoreException(Policy.bind("InternalSiteManager.UnableToCreateURL", url.toExternalForm() + "+" + Site.SITE_XML), e1);	//$NON-NLS-1$ //$NON-NLS-2$

-				}

-				try {

-					monitor.worked(1);

-					site = createSite(factory, urlRetry, monitor);

-				} catch (CoreException e1) {

-					throw Utilities.newCoreException(Policy.bind("InternalSiteManager.UnableToAccessURL", url.toExternalForm()), url.toExternalForm(), urlRetry.toExternalForm(), e, e1);//$NON-NLS-1$

-				}

-			} else if (url.getFile().endsWith(Site.SITE_XML)) {

-				// 3 nothing we can do

-				throw Utilities.newCoreException(Policy.bind("InternalSiteManager.UnableToAccessURL", url.toExternalForm()), e);//$NON-NLS-1$

-			} else {

-				// 2 try to add /site.xml 

-				URL urlRetry;

-				try {

-					urlRetry = new URL(url.getProtocol(), url.getHost(), url.getPort(), url.getFile() + "/" + Site.SITE_XML);	//$NON-NLS-1$

-				} catch (MalformedURLException e1) {

-					throw Utilities.newCoreException(Policy.bind("InternalSiteManager.UnableToCreateURL", url.toExternalForm() + "+" + Site.SITE_XML), e1);	//$NON-NLS-1$ //$NON-NLS-2$

-				}

-

-				try {

-					monitor.worked(1);

-					site = createSite(factory, urlRetry, monitor);

-				} catch (CoreException e1) {

-					throw Utilities.newCoreException(Policy.bind("InternalSiteManager.UnableToAccessURL", url.toExternalForm()), url.toExternalForm(), urlRetry.toExternalForm(), e, e1);//$NON-NLS-1$

-				}

-			}

-		}

-		return site;

-	}

-	

-	private static ISite createSite(ISiteFactory factory, URL url, IProgressMonitor monitor) throws CoreException, InvalidSiteTypeException {

-		if (factory instanceof ISiteFactoryExtension)

-			return ((ISiteFactoryExtension)factory).createSite(url, monitor);

-		else

-			return factory.createSite(url);

-	}

-

-	/*

-	 * Creates a new site on the file system

-	 * This is the only Site we can create.

-	 * 

-	 * @param siteLocation

-	 * @throws CoreException

-	 */

-	public static ISite createSite(File siteLocation) throws CoreException {

-		ISite site = null;

-		if (siteLocation != null) {

-			try {

-				URL siteURL = siteLocation.toURL();

-				site = getSite(siteURL, false, null);

-			} catch (MalformedURLException e) {

-				throw Utilities.newCoreException(Policy.bind("InternalSiteManager.UnableToCreateURL", siteLocation.getAbsolutePath()), e);	//$NON-NLS-1$

-			}

-		}

-		return site;

-	}

-

-

-	/**

-	 * Method downloaded.

-	 * @param downloadSize size downloaded in bytes

-	 * @param time time in seconds

-	 * @param url

-	 */

-	public static void downloaded(long downloadSize, long time, URL url) {

-		if (downloadSize <= 0 || time < 0)

-			return;

-		String host = url.getHost();

-		long sizeByTime = (time == 0) ? 0 : downloadSize / time;

-		Long value = new Long(sizeByTime);

-		if (estimates == null) {

-			estimates = new HashMap();

-		} else {

-			Long previous = (Long) estimates.get(host);

-			if (previous != null) {

-				value = new Long((previous.longValue() + sizeByTime) / 2);

-			}

-		}

-		estimates.put(host, value);

-	}

-	/**

-	 * Method getEstimatedTransferRate rate bytes/seconds.

-	 * @param host

-	 * @return long

-	 */

-	public static long getEstimatedTransferRate(String host) {

-		if (estimates == null)

-			return 0;

-		Long value = (Long) estimates.get(host);

-		if (value == null)

-			return 0;

-		return value.longValue();

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ListenersList.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ListenersList.java
deleted file mode 100644
index e46abb3..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ListenersList.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.core;

-

-

-/**

- * This class is used to maintain a list of listeners, and

- * is used in the implementations of several classes within JFace

- * which allow you to register listeners of various kinds.

- * It is a fairly lightweight object, occupying minimal space when

- * no listeners are registered.

- * <p>

- * Note that the <code>add</code> method checks for and eliminates 

- * duplicates based on identity (not equality).  Likewise, the

- * <code>remove</code> method compares based on identity.

- * </p>

- * <p>

- * Use the <code>getListeners</code> method when notifying listeners.

- * Note that no garbage is created if no listeners are registered.

- * The recommended code sequence for notifying all registered listeners

- * of say, <code>FooListener.eventHappened</code>, is:

- * <pre>

- * Object[] listeners = myListenerList.getListeners();

- * for (int i = 0; i < listeners.length; ++i) {

- *    ((FooListener) listeners[i]).eventHappened(event);

- * }

- * </pre>

- * </p>

- */

-

-public class ListenersList {

-	/**

-	 * The initial capacity of the list. Always >= 1.

-	 */

-	private int capacity;

-

-	/**

-	 * The current number of listeners.

-	 * Maintains invariant: 0 <= size <= listeners.length.

-	 */

-	private int size;

-

-	/**

-	 * The list of listeners.  Initially <code>null</code> but initialized

-	 * to an array of size capacity the first time a listener is added.

-	 * Maintains invariant: listeners != null IFF size != 0

-	 */

-	private Object[] listeners = null;

-

-	/**

-	 * The empty array singleton instance, returned by getListeners()

-	 * when size == 0.

-	 */

-	private static final Object[] EmptyArray = new Object[0];

-/**

- * Creates a listener list with an initial capacity of 3.

- */

-public ListenersList() {

-	this(3);

-}

-/**

- * Creates a listener list with the given initial capacity.

- *

- * @param capacity the number of listeners which this list can initially accept 

- *    without growing its internal representation; must be at least 1

- */

-public ListenersList(int capacity) {

-	Assert.isTrue(capacity >= 1);

-	this.capacity = capacity;

-}

-/**

- * Adds the given listener to this list. Has no effect if an identical listener

- * is already registered.

- *

- * @param listener the listener

- */

-public void add(Object listener) {

-	Assert.isNotNull(listener);

-	if (size == 0) {

-		listeners = new Object[capacity];

-	} else {

-	    // check for duplicates using identity

-		for (int i = 0; i < size; ++i) {

-			if (listeners[i] == listener) {

-				return;

-			}

-		}

-		// grow array if necessary

-		if (size == listeners.length) {

-			System.arraycopy(listeners, 0, listeners = new Object[size * 2 + 1], 0, size);

-		}

-	}

-	listeners[size++] = listener;

-}

-/**

- * Returns an array containing all the registered listeners.

- * The resulting array is unaffected by subsequent adds or removes.

- * If there are no listeners registered, the result is an empty array

- * singleton instance (no garbage is created).

- * Use this method when notifying listeners, so that any modifications

- * to the listener list during the notification will have no effect on the

- * notification itself.

- *

- * @return the list of registered listeners

- */

-public Object[] getListeners() {

-	if (size == 0)

-		return EmptyArray;

-	Object[] result = new Object[size];

-	System.arraycopy(listeners, 0, result, 0, size);

-	return result;

-}

-/**

- * Returns whether this listener list is empty.

- *

- * @return <code>true</code> if there are no registered listeners, and

- *   <code>false</code> otherwise

- */

-public boolean isEmpty() {

-	return size == 0;

-}

-/**

- * Removes the given listener from this list. Has no effect if an identical

- * listener was not already registered.

- *

- * @param listener the listener

- */

-public void remove(Object listener) {

-	Assert.isNotNull(listener);

-	for (int i = 0; i < size; ++i) {

-		if (listeners[i] == listener) {

-			if (size == 1) {

-				listeners = null;

-				size = 0;

-			}

-			else {

-				System.arraycopy(listeners, i + 1, listeners, i, --size - i);

-				listeners[size] = null;

-			}

-			return;

-		}

-	}

-}

-/**

- * Returns the number of registered listeners.

- *

- * @return the number of registered listeners

- */

-public int size() {

-	return size;

-}

-}

-	

-

-

-

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/NonPluginEntryContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/NonPluginEntryContentConsumer.java
deleted file mode 100644
index a64bd6b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/NonPluginEntryContentConsumer.java
+++ /dev/null
@@ -1,55 +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 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.update.internal.core;

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * ContentConsumer for a non plugin entry of a feature

- */

-

-public class NonPluginEntryContentConsumer extends ContentConsumer {

-

-	private boolean closed = false;

-

-	private IContentConsumer contentConsumer;

-		

-	/*

-	 * Constructor

-	 */

-	public NonPluginEntryContentConsumer(IContentConsumer contentConsumer){

-		this.contentConsumer = contentConsumer;

-	}

-

-	/*

-	 * @see ContentConsumer#store(ContentReference, IProgressMonitor)

-	 */

-	public void store(ContentReference contentReference, IProgressMonitor monitor) throws CoreException {

-		if (!closed){

-			contentConsumer.store( contentReference,monitor);

-		} else {

-			UpdateCore.warn("Attempt to store in a closed NonPluginEntryContentConsumer",new Exception()); //$NON-NLS-1$

-		}

-	}

-

-	/*

-	 * @see ContentConsumer#close()

-	 */

-	public void close() throws CoreException  {

-		if (!closed){

-			closed = true;

-			contentConsumer.close();

-		} else {

-			UpdateCore.warn("Attempt to close a closed NonPluginEntryContentConsumer",new Exception()); //$NON-NLS-1$

-		}

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/OtherResponse.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/OtherResponse.java
deleted file mode 100644
index b826c4b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/OtherResponse.java
+++ /dev/null
@@ -1,120 +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 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.update.internal.core;
-
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-
-public class OtherResponse implements Response {
-	private static final long POLLING_INTERVAL = 200;
-	protected URL url;
-	protected InputStream in;
-	protected URLConnection connection;
-	protected long lastModified;
-
-	public OtherResponse(URL url) throws IOException {
-		this.url = url;
-//		connection = url.openConnection();
-	}
-
-	public InputStream getInputStream() throws IOException {
-		if (in == null && url != null) {
-            if (connection == null)
-                connection = url.openConnection();
-			in = connection.getInputStream();
-			this.lastModified = connection.getLastModified();
-		}
-		return in;
-	}
-	/**
-	 * @see Response#getInputStream(IProgressMonitor)
-	 */
-	public InputStream getInputStream(IProgressMonitor monitor)
-		throws IOException, CoreException {
-		if (in == null && url != null) {
-            if (connection == null)
-                connection = url.openConnection();
-
-			if (monitor != null) {
-				this.in =
-					openStreamWithCancel(connection, monitor);
-			} else {
-				this.in = connection.getInputStream();
-			}
-			if (in != null) {
-				this.lastModified = connection.getLastModified();
-			}
-		}
-		return in;
-	}
-
-	public long getContentLength() {
-		if (connection != null)
-			return connection.getContentLength();
-		return 0;
-	}
-
-	public int getStatusCode() {
-		return IStatusCodes.HTTP_OK;
-	}
-
-	public String getStatusMessage() {
-		return ""; //$NON-NLS-1$
-	}
-
-	public long getLastModified() {
-		if (lastModified == 0 && connection != null) {
-			lastModified = connection.getLastModified();
-		}
-		return lastModified;
-	}
-	
-	private InputStream openStreamWithCancel(
-			URLConnection urlConnection,
-			IProgressMonitor monitor)
-			throws IOException, CoreException {
-			ConnectionThreadManager.StreamRunnable runnable =
-				new ConnectionThreadManager.StreamRunnable(urlConnection);
-			Thread t =
-				UpdateCore.getPlugin().getConnectionManager().createThread(
-					runnable);
-			t.start();
-			InputStream is = null;
-			try {
-				for (;;) {
-					if (monitor.isCanceled()) {
-						runnable.disconnect();
-                        connection = null;
-						break;
-					}
-					if (runnable.getInputStream() != null) {
-						is = runnable.getInputStream();
-						break;
-					}
-					if (runnable.getException() != null) {
-						if (runnable.getException() instanceof IOException)
-							throw (IOException) runnable.getException();
-						else
-							throw new CoreException(new Status(IStatus.ERROR,
-									UpdateCore.getPlugin().getBundle()
-											.getSymbolicName(), IStatus.OK,
-									runnable.getException().getMessage(), runnable
-											.getException()));
-					}
-					t.join(POLLING_INTERVAL);
-				}
-			} catch (InterruptedException e) {
-			}
-			return is;
-		}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/PatchedFeature.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/PatchedFeature.java
deleted file mode 100644
index f6d6edb..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/PatchedFeature.java
+++ /dev/null
@@ -1,101 +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 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.update.internal.core;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-/**
- * Feature and corresponding patch features
- */
-public class PatchedFeature {
-	private IFeatureReference feature;
-	private Collection patches = new HashSet();
-	/**
-	 *  
-	 */
-	public PatchedFeature(IFeatureReference feature) {
-		super();
-		this.feature = feature;
-	}
-	public void addPatch(IFeatureReference patch) {
-		patches.add(patch);
-	}
-	/**
-	 * @return Returns the feature.
-	 */
-	public IFeatureReference getFeature() {
-		return feature;
-	}
-	/**
-	 * @return Returns the patches.
-	 */
-	public IFeatureReference[] getPatches() {
-		return (IFeatureReference[]) patches.toArray(new IFeatureReference[patches.size()]);
-	}
-	/**
-	 * @return Returns the feature and the patches.
-	 */
-	public IFeatureReference[] getFeatureAndPatches() {
-		IFeatureReference[] features = new IFeatureReference[patches.size() + 1];
-		features[0] = feature;
-		System.arraycopy(getPatches(), 0, features, 1, patches.size());
-		return features;
-	}
-	/**
-	 * Obtains all plugins from the feature and its patches. Each plugin will
-	 * have unique ID.
-	 * If there are multiple version of plugin with same ID among the feature
-	 * and its patches, highest version plugins are chosen.
-	 * 
-	 * @return FeaturePlugin[]
-	 */
-	public FeaturePlugin[] getPlugins() {
-		// Use a map of PatchedPluigns by plugin ID
-		// to collect one version of each plugin
-		Map plugins = new HashMap();
-		IFeatureReference[] featureRefs = getFeatureAndPatches();
-		// for each (feature or any patch)
-		for (int i = 0; i < featureRefs.length; i++) {
-			try {
-				IFeature feature = featureRefs[i].getFeature(null);
-				if (feature == null) {
-					UpdateCore.warn("Null Feature", new Exception()); //$NON-NLS-1$
-					continue;
-				}
-				// get plugin entries
-				IPluginEntry[] entries = feature.getPluginEntries();
-				for (int entr = 0; entr < entries.length; entr++) {
-					String pluginId = entries[entr].getVersionedIdentifier().getIdentifier();
-					PluginVersionIdentifier pluginVersion = entries[entr].getVersionedIdentifier().getVersion();
-					// check if map contains >= version of same plugin
-					FeaturePlugin existingPlugin = (FeaturePlugin) plugins.get(pluginId);
-					if (existingPlugin != null && existingPlugin.getEntry().getVersionedIdentifier().getVersion().isGreaterOrEqualTo(pluginVersion)) {
-						// same or newer plugin already collected
-						continue;
-					} else {
-						plugins.put(pluginId, new FeaturePlugin(entries[entr], feature));
-					}
-				}
-			} catch (CoreException e) {
-				UpdateCore.warn(null, e);
-			}
-		}
-		return (FeaturePlugin[]) plugins.values().toArray(new FeaturePlugin[plugins.size()]);
-	}
-	public String toString() {
-		StringBuffer str = new StringBuffer(feature.toString());
-		IFeatureReference[] patches = getFeatureAndPatches();
-		for (int i = 0; i < patches.length; i++) {
-			str.append(" +patch=" + patches[i].toString() + " "); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return str.toString();
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/PluginEntryContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/PluginEntryContentConsumer.java
deleted file mode 100644
index cf1d34f..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/PluginEntryContentConsumer.java
+++ /dev/null
@@ -1,55 +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 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.update.internal.core;

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * ContentConsumer for a plugin entry of a feature

- */

-

-public class PluginEntryContentConsumer extends ContentConsumer {

-

-	private boolean closed = false;

-

-	private IContentConsumer contentConsumer;

-		

-	/*

-	 * Constructor

-	 */

-	public PluginEntryContentConsumer(IContentConsumer contentConsumer){

-		this.contentConsumer = contentConsumer;

-	}

-

-	/*

-	 * @see ContentConsumer#store(ContentReference, IProgressMonitor)

-	 */

-	public void store(ContentReference contentReference, IProgressMonitor monitor) throws CoreException {

-		if (!closed){

-			contentConsumer.store(contentReference,monitor);

-		} else {

-			UpdateCore.warn("Attempt to store in a closed PluginEntryContentConsumer",new Exception()); //$NON-NLS-1$

-		}

-	}

-

-	/*

-	 * @see ContentConsumer#close()

-	 */

-	public void close() throws CoreException {

-		if (!closed){

-			closed = true;

-			contentConsumer.close();

-		} else {

-			UpdateCore.warn("Attempt to close a closed PluginEntryContentConsumer",new Exception()); //$NON-NLS-1$

-		}

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Policy.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Policy.java
deleted file mode 100644
index 5c3e314..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Policy.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.core;
-
-
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-
-public class Policy {
-	protected static ResourceBundle bundle = null;
-
-	/**
-	 * Creates a NLS catalog for the given locale.
-	 */
-	public static void localize(String bundleName) {
-		bundle = ResourceBundle.getBundle(bundleName);
-	}
-	
-	/**
-	 * Lookup the message with the given ID in this catalog and bind its
-	 * substitution locations with the given string.
-	 */
-	public static String bind(String id, String binding) {
-		return bind(id, new String[] { binding });
-	}
-	
-	/**
-	 * Lookup the message with the given ID in this catalog and bind its
-	 * substitution locations with the given strings.
-	 */
-	public static String bind(String id, String binding1, String binding2) {
-		return bind(id, new String[] { binding1, binding2 });
-	}
-	
-	/**
-	 * Gets a string from the resource bundle. We don't want to crash because of a missing String.
-	 * Returns the key if not found.
-	 */
-	public static String bind(String key) {
-		try {
-			return bundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	
-	/**
-	 * Gets a string from the resource bundle and binds it with the given arguments. If the key is 
-	 * not found, return the key.
-	 */
-	public static String bind(String key, Object[] args) {
-		try {
-			return MessageFormat.format(bind(key), args);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	
-	/**
-	 * Progress monitor helpers
-	 */
-	public static void checkCanceled(IProgressMonitor monitor) {
-		if (monitor.isCanceled())
-			throw new OperationCanceledException();
-	}
-	public static IProgressMonitor monitorFor(IProgressMonitor monitor) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		return monitor;
-	}
-	
-	public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		if (monitor instanceof NullProgressMonitor)
-			return monitor;
-		return new SubProgressMonitor(monitor, ticks);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Response.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Response.java
deleted file mode 100644
index 1c9f4e0..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Response.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.core;
-
-import java.io.*;
-
-import org.eclipse.core.runtime.*;
-
-public interface Response {
-
-	/**
-	 * Method getInputStream.
-	 * 
-	 * @return InputStream
-	 */
-	public InputStream getInputStream() throws IOException;
-
-	/**
-	 * A special version of 'getInputStream' that can be canceled.
-	 * A monitor thread checks the state of the monitor
-	 * and disconnects the connection if 'isCanceled()' is detected.
-	 * 
-	 * @param monitor
-	 *            the progress monitor
-	 * @return InputStream an opened stream or null if failed.
-	 * @throws IOException
-	 *             if there are problems
-	 * @throws CoreException
-	 *             if no more connection threads are available
-	 */
-	public InputStream getInputStream(IProgressMonitor monitor)
-		throws IOException, CoreException;
-
-	/**
-	 * Method getContentLength.
-	 * 
-	 * @return long
-	 */
-	public long getContentLength();
-
-	/**
-	 * Method getStatusCode.
-	 * 
-	 * @return int
-	 */
-	public int getStatusCode();
-
-	/**
-	 * Method getStatusMessage.
-	 * 
-	 * @return String
-	 */
-	public String getStatusMessage();
-
-	/**
-	 * Returns the timestamp of last modification to the resource
-	 * 
-	 * @return
-	 */
-	public long getLastModified();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteContentConsumer.java
deleted file mode 100644
index a5de692..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteContentConsumer.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.core;
-
-
-import org.eclipse.update.core.*;
-
-/**
- * A default implementation for IFeatureContentConsumer
- * </p>
- * @since 2.0
- */
-
-public abstract class SiteContentConsumer implements ISiteContentConsumer {
-	
-	private ISite site;
-	
-	/*
-	 * @see ISiteContentConsumer#setSite(ISite)
-	 */
-	/**
-	 * Sets the site.
-	 * @param site The site to set
-	 */
-	public void setSite(ISite site) {
-		this.site = site;
-	}
-
-	/**
-	 * Gets the site.
-	 * @return Returns a ISite
-	 */
-	public ISite getSite() {
-		return site;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFile.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFile.java
deleted file mode 100644
index 36b192d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFile.java
+++ /dev/null
@@ -1,427 +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 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.update.internal.core;

-import java.io.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-

-

-/**

- * Site on the File System

- */

-public class SiteFile extends Site {

-

-	/**

-	 * plugin entries 

-	 */

-	private List pluginEntries = new ArrayList(0);

-

-	/**

-	 * 

-	 */

-	public ISiteContentConsumer createSiteContentConsumer(IFeature targetFeature) throws CoreException {

-		SiteFileContentConsumer consumer = new SiteFileContentConsumer(targetFeature);

-		consumer.setSite(this);

-		return consumer;

-	}

-

-	/**

-	 */

-	public String getDefaultPackagedFeatureType() {

-		return DEFAULT_INSTALLED_FEATURE_TYPE;

-	}

-

-	/*

-	 * @see ISite#install(IFeature, IVerifier, IProgressMonitor)

-	 */

-	public IFeatureReference install(IFeature sourceFeature, IVerificationListener verificationListener, IProgressMonitor progress) throws CoreException {

-		return install(sourceFeature,null,verificationListener,progress);

-	}

-

-	/*

-	 * @see ISite#install(IFeature, IVerifier, IProgressMonitor)

-	 */

-	public IFeatureReference install(IFeature sourceFeature, IFeatureReference[] optionalfeatures, IVerificationListener verificationListener, IProgressMonitor progress) throws CoreException {

-

-		if (sourceFeature == null)

-			return null;

-

-		// make sure we have an InstallMonitor		

-		InstallMonitor monitor;

-		if (progress == null)

-			monitor = null;

-		else if (progress instanceof InstallMonitor)

-			monitor = (InstallMonitor) progress;

-		else

-			monitor = new InstallMonitor(progress);

-

-		// create new executable feature and install source content into it

-		IFeature localFeature = createExecutableFeature(sourceFeature);

-

-		IFeatureReference localFeatureReference = null;

-		localFeatureReference = sourceFeature.install(localFeature, optionalfeatures, verificationListener, monitor);

-

-		return localFeatureReference;

-	}

-

-	/*

-	 * @see ISite#install(IFeature,IFeatureContentConsumer, IVerifier,IVerificationLIstener, IProgressMonitor)

-	 */

-	public IFeatureReference install(IFeature sourceFeature, IFeatureReference[] optionalfeatures, IFeatureContentConsumer parentContentConsumer, IVerifier parentVerifier, IVerificationListener verificationListener, IProgressMonitor progress)

-		throws InstallAbortedException, CoreException {

-

-		if (sourceFeature == null)

-			return null;

-

-		// make sure we have an InstallMonitor		

-		InstallMonitor monitor;

-		if (progress == null)

-			monitor = null;

-		else if (progress instanceof InstallMonitor)

-			monitor = (InstallMonitor) progress;

-		else

-			monitor = new InstallMonitor(progress);

-

-		// create new executable feature and install source content into it

-		IFeature localFeature = createExecutableFeature(sourceFeature);

-		parentContentConsumer.addChild(localFeature);

-

-		// set the verifier

-		IVerifier vr = sourceFeature.getFeatureContentProvider().getVerifier();

-		if (vr != null)

-			vr.setParent(parentVerifier);

-

-		IFeatureReference localFeatureReference = null;

-		localFeatureReference = sourceFeature.install(localFeature, optionalfeatures, verificationListener, monitor);

-

-		return localFeatureReference;

-	}

-

-	/*

-	 * @see ISite#remove(IFeature, IProgressMonitor)

-	 */

-	public void remove(IFeature feature, IProgressMonitor progress) throws CoreException {

-

-		if (feature == null) {

-			UpdateCore.warn("Feature to remove is null"); //$NON-NLS-1$

-			return;

-		}

-		

-		ErrorRecoveryLog recoveryLog = ErrorRecoveryLog.getLog();

-

-		// make sure we have an InstallMonitor		

-		InstallMonitor monitor;

-		if (progress == null)

-			monitor = null;

-		else if (progress instanceof InstallMonitor)

-			monitor = (InstallMonitor) progress;

-		else

-			monitor = new InstallMonitor(progress);

-

-		// Setup optional install handler

-		InstallHandlerProxy handler = new InstallHandlerProxy(IInstallHandler.HANDLER_ACTION_UNINSTALL, feature, feature.getInstallHandlerEntry(), monitor);

-		boolean success = false;

-		Throwable originalException = null;

-

-		try {

-

-			// start log

-			recoveryLog.open(ErrorRecoveryLog.START_REMOVE_LOG);

-

-			aboutToRemove(feature);

-

-			// log files have been downloaded

-			recoveryLog.append(ErrorRecoveryLog.END_ABOUT_REMOVE);

-

-			handler.uninstallInitiated();

-

-			// remove the feature and the plugins if they are not used and not activated

-			// get the plugins from the feature

-			IPluginEntry[] pluginsToRemove = getPluginEntriesOnlyReferencedBy(feature);

-

-			if (monitor != null) {

-				monitor.beginTask(Policy.bind("SiteFile.Removing") + feature.getLabel(), pluginsToRemove.length + 1);	//$NON-NLS-1$

-			}

-

-			// remove feature reference from the site

-			ISiteFeatureReference[] featureReferences = getFeatureReferences();

-			if (featureReferences != null) {

-				for (int indexRef = 0; indexRef < featureReferences.length; indexRef++) {

-					IFeatureReference element = featureReferences[indexRef];

-					if (element.getVersionedIdentifier().equals(feature.getVersionedIdentifier())) {

-						removeFeatureReferenceModel((FeatureReferenceModel) element);

-						break;

-					}

-				}

-			}

-

-			if (InstallRegistry.getInstance().get("feature_"+feature.getVersionedIdentifier()) == null) { //$NON-NLS-1$

-				UpdateCore.log(Policy.bind("SiteFile.featureNotRemoved", feature.getVersionedIdentifier().toString()), null); //$NON-NLS-1$ //$NON-NLS-2$

-			} else {

-				// remove the feature content

-				ContentReference[] references = feature.getFeatureContentProvider().getFeatureEntryArchiveReferences(monitor);

-				for (int i = 0; i < references.length; i++) {

-					try {

-						UpdateManagerUtils.removeFromFileSystem(references[i].asFile());

-						if (monitor != null)

-							monitor.worked(1);

-					} catch (IOException e) {

-						throw Utilities.newCoreException(Policy.bind("SiteFile.CannotRemoveFeature", feature.getVersionedIdentifier().getIdentifier(), getURL().toExternalForm()), e);	//$NON-NLS-1$

-					}

-				}

-				InstallRegistry.unregisterFeature(feature);

-			}

-

-			//finds the contentReferences for an IPluginEntry

-			// and remove it

-			for (int i = 0; i < pluginsToRemove.length; i++) {

-				remove(feature, pluginsToRemove[i], monitor);

-			}

-

-			// remove any children feature

-			IFeatureReference[] childrenRef = feature.getIncludedFeatureReferences();

-			for (int i = 0; i < childrenRef.length; i++) {

-				IFeature childFeature = null;

-				try {

-					childFeature = childrenRef[i].getFeature(null);

-				} catch (CoreException e) {

-					UpdateCore.warn("Unable to retrieve feature to remove for:" + childrenRef[i]); //$NON-NLS-1$

-				}

-                // do not remove nested feature if configured (i.e. used by another configured feature)

-				if (childFeature != null && !getCurrentConfiguredSite().isConfigured(childFeature))

-					remove(childrenRef[i].getFeature(null), monitor);

-			}

-

-			// remove the feature from the site cache

-			removeFeatureFromCache(feature.getURL());

-			

-			handler.completeUninstall();

-

-			success = true;

-		} catch (Throwable t) {

-			originalException = t;

-		} finally {

-			Throwable newException = null;

-			try {

-				if (success) {

-					// close the log

-					recoveryLog.close(ErrorRecoveryLog.END_REMOVE_LOG);

-					recoveryLog.delete();

-				} else {

-					recoveryLog.close(ErrorRecoveryLog.END_REMOVE_LOG);

-				}

-				handler.uninstallCompleted(success);

-			} catch (Throwable t) {

-				newException = t;

-			}

-			if (originalException != null) // original exception wins

-				throw Utilities.newCoreException(Policy.bind("InstallHandler.error", feature.getLabel()), originalException); //$NON-NLS-1$

-			if (newException != null)

-				throw Utilities.newCoreException(Policy.bind("InstallHandler.error", feature.getLabel()), newException);//$NON-NLS-1$

-		}

-	}

-

-	/**

-	 * returns the download size

-	 * of the feature to be installed on the site.

-	 * If the site is <code>null</code> returns the maximum size

-	 * 

-	 * If one plug-in entry has an unknown size.

-	 * then the download size is unknown.

-	 * 

-	 */

-	public long getDownloadSizeFor(IFeature feature) {

-		long result = 0;

-		IPluginEntry[] entriesToInstall = feature.getPluginEntries();

-		IPluginEntry[] siteEntries = this.getPluginEntries();

-		entriesToInstall = UpdateManagerUtils.diff(entriesToInstall, siteEntries);

-		//[18355]

-		INonPluginEntry[] nonPluginEntriesToInstall = feature.getNonPluginEntries();

-

-		try {

-			result = feature.getFeatureContentProvider().getDownloadSizeFor(entriesToInstall, nonPluginEntriesToInstall);

-		} catch (CoreException e) {

-			UpdateCore.warn(null, e);

-			result = ContentEntryModel.UNKNOWN_SIZE;

-		}

-		return result;

-	}

-

-	/**

-	 * returns the download size

-	 * of the feature to be installed on the site.

-	 * If the site is <code>null</code> returns the maximum size

-	 * 

-	 * If one plug-in entry has an unknown size.

-	 * then the download size is unknown.

-	 * 

-	 * @see ISite#getDownloadSizeFor(IFeature)

-	 * 

-	 */

-	public long getInstallSizeFor(IFeature feature) {

-		long result = 0;

-

-		try {

-			List pluginsToInstall = new ArrayList();

-

-			// get all the plugins [17304]

-			pluginsToInstall.addAll(Arrays.asList(feature.getPluginEntries()));

-			IFeatureReference[] children = feature.getIncludedFeatureReferences();

-			IFeature currentFeature = null;

-			for (int i = 0; i < children.length; i++) {

-				currentFeature = children[i].getFeature(null);

-				if (currentFeature != null) {

-					pluginsToInstall.addAll(Arrays.asList(currentFeature.getPluginEntries()));

-				}

-			}

-

-			IPluginEntry[] entriesToInstall = new IPluginEntry[0];

-			if (pluginsToInstall.size() > 0) {

-				entriesToInstall = new IPluginEntry[pluginsToInstall.size()];

-				pluginsToInstall.toArray(entriesToInstall);

-			}

-

-			IPluginEntry[] siteEntries = this.getPluginEntries();

-			entriesToInstall = UpdateManagerUtils.diff(entriesToInstall, siteEntries);

-

-			//[18355]

-			INonPluginEntry[] nonPluginEntriesToInstall = feature.getNonPluginEntries();

-

-			result = feature.getFeatureContentProvider().getInstallSizeFor(entriesToInstall, nonPluginEntriesToInstall);

-		} catch (CoreException e) {

-			UpdateCore.warn(null, e);

-			result = ContentEntryModel.UNKNOWN_SIZE;

-		}

-

-		return result;

-	}

-

-	/**

-	 * Adds a plugin entry 

-	 * Either from parsing the file system or 

-	 * installing a feature

-	 * 

-	 * We cannot figure out the list of plugins by reading the Site.xml as

-	 * the archives tag are optionals

-	 */

-	public void addPluginEntry(IPluginEntry pluginEntry) {

-		pluginEntries.add(pluginEntry);

-	}

-

-	public IPluginEntry[] getPluginEntries() {

-		IPluginEntry[] result = new IPluginEntry[0];

-		if (!(pluginEntries == null || pluginEntries.isEmpty())) {

-			result = new IPluginEntry[pluginEntries.size()];

-			pluginEntries.toArray(result);

-		}

-		return result;

-	}

-

-

-	public int getPluginEntryCount() {

-		return getPluginEntries().length;

-	}

-

-	/**

-	 * 

-	 */

-	private IFeature createExecutableFeature(IFeature sourceFeature) throws CoreException {

-		IFeature result = null;

-		IFeatureFactory factory = FeatureTypeFactory.getInstance().getFactory(DEFAULT_INSTALLED_FEATURE_TYPE);

-		result = factory.createFeature(/*URL*/null, this, null);

-

-		// at least set the version identifier to be the same

-		 ((FeatureModel) result).setFeatureIdentifier(sourceFeature.getVersionedIdentifier().getIdentifier());

-		((FeatureModel) result).setFeatureVersion(sourceFeature.getVersionedIdentifier().getVersion().toString());

-		return result;

-	}

-

-	/**

-	 * 

-	 */

-	private void remove(IFeature feature, IPluginEntry pluginEntry, InstallMonitor monitor) throws CoreException {

-

-		if (pluginEntry == null)

-			return;

-			

-		if (InstallRegistry.getInstance().get("plugin_"+pluginEntry.getVersionedIdentifier()) == null) { //$NON-NLS-1$

-			UpdateCore.log(Policy.bind("SiteFile.pluginNotRemoved", pluginEntry.getVersionedIdentifier().toString()), null); //$NON-NLS-1$ //$NON-NLS-2$

-			return; 

-		}

-

-		ContentReference[] references = feature.getFeatureContentProvider().getPluginEntryArchiveReferences(pluginEntry, monitor);

-		for (int i = 0; i < references.length; i++) {

-			try {

-				UpdateManagerUtils.removeFromFileSystem(references[i].asFile());

-				if (monitor != null)

-					monitor.worked(1);

-			} catch (IOException e) {

-				throw Utilities.newCoreException(Policy.bind("SiteFile.CannotRemovePlugin", pluginEntry.getVersionedIdentifier().toString(), getURL().toExternalForm()), e);//$NON-NLS-1$

-			}

-		}

-		pluginEntries.remove(pluginEntry);

-		InstallRegistry.unregisterPlugin(pluginEntry);

-	}

-

-	/*

-	 * 

-	 */

-	private void aboutToRemove(IFeature feature) throws CoreException {

-

-		ErrorRecoveryLog recoveryLog = ErrorRecoveryLog.getLog();

-		// if the recovery is not turned on

-		if (!ErrorRecoveryLog.RECOVERY_ON)

-			return;

-

-		//logFeature

-		if (feature != null) {

-					

-			// log feature URL

-			ContentReference[] references = feature.getFeatureContentProvider().getFeatureEntryArchiveReferences(null);

-			for (int i = 0; i < references.length; i++) {

-				try {

-					recoveryLog.appendPath(ErrorRecoveryLog.FEATURE_ENTRY, references[i].asFile().getAbsolutePath());

-				} catch (IOException e) {

-					String id = UpdateCore.getPlugin().getBundle().getSymbolicName();

-					throw Utilities.newCoreException(Policy.bind("SiteFile.CannotRemoveFeature", feature.getVersionedIdentifier().getIdentifier(), getURL().toExternalForm()), e); //$NON-NLS-1$

-				}

-			}

-			// log pluginEntry URL

-			IPluginEntry[] pluginsToRemove = getPluginEntriesOnlyReferencedBy(feature);

-			for (int i = 0; i < pluginsToRemove.length; i++) {

-				references = feature.getFeatureContentProvider().getPluginEntryArchiveReferences(pluginsToRemove[i], null);

-				for (int j = 0; j < references.length; j++) {

-					try {

-						recoveryLog.appendPath(ErrorRecoveryLog.BUNDLE_JAR_ENTRY, references[j].asFile().getAbsolutePath());

-					} catch (IOException e) {

-						throw Utilities.newCoreException(Policy.bind("SiteFile.CannotRemovePlugin", pluginsToRemove[i].getVersionedIdentifier().toString(), getURL().toExternalForm()), e); //$NON-NLS-1$

-					}

-				}

-			}

-		}

-

-		// call recursively for each children	 

-		IFeatureReference[] childrenRef = feature.getIncludedFeatureReferences();

-		IFeature childFeature = null;

-		for (int i = 0; i < childrenRef.length; i++) {

-			try {

-				childFeature = childrenRef[i].getFeature(null);

-			} catch (CoreException e) {

-				UpdateCore.warn("Unable to retrieve feature to remove for:" + childrenRef[i]); //$NON-NLS-1$

-			}

-			aboutToRemove(childFeature);

-		}

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileContentConsumer.java
deleted file mode 100644
index 4fdbe14..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileContentConsumer.java
+++ /dev/null
@@ -1,296 +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 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-

-/**

- * ContentConsummer for a SiteFile

- */

-public class SiteFileContentConsumer extends SiteContentConsumer {

-

-	private IFeature feature;

-	private boolean closed = false;

-

-	// recovery

-	private String oldPath;

-	private String newPath;

-

-	//  for abort

-	private List /* of SiteFilePluginContentConsumer */

-	contentConsumers;

-	private List /*of path as String */

-	installedFiles;

-	

-	// PERF: new instance variable

-	private SiteFileFactory archiveFactory = new SiteFileFactory();

-

-	/*

-	 * Constructor 

-	 */

-	public SiteFileContentConsumer(IFeature feature) {

-		this.feature = feature;

-		installedFiles = new ArrayList();

-	}

-

-	/*

-	 * Returns the path in which the Feature will be installed

-	 */

-	private String getFeaturePath() throws CoreException {

-		String featurePath = null;

-		try {

-			VersionedIdentifier featureIdentifier = feature.getVersionedIdentifier();

-			String path = Site.DEFAULT_INSTALLED_FEATURE_PATH + featureIdentifier.toString() + File.separator;

-			URL newURL = new URL(getSite().getURL(), path);

-			featurePath = newURL.getFile();

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException(Policy.bind("SiteFileContentConsumer.UnableToCreateURL") + e.getMessage(), e);	//$NON-NLS-1$

-		}

-		return featurePath;

-	}

-

-	/*

-	 * @see ISiteContentConsumer#open(INonPluginEntry)

-	 */

-	public IContentConsumer open(INonPluginEntry nonPluginEntry) throws CoreException {

-		return new SiteFileNonPluginContentConsumer(getFeaturePath());

-	}

-

-	/*

-	 * @see ISiteContentConsumer#open(IPluginEntry)

-	 */

-	public IContentConsumer open(IPluginEntry pluginEntry) throws CoreException {

-		ContentConsumer cons;

-		if(pluginEntry instanceof PluginEntryModel && !((PluginEntryModel)pluginEntry).isUnpack()){

-			// plugin can run from a jar

-			 cons = new SiteFilePackedPluginContentConsumer(pluginEntry, getSite());

-		} else{

-			// plugin must be unpacked

-			cons = new SiteFilePluginContentConsumer(pluginEntry, getSite());

-		}

-		addContentConsumers(cons);

-		return cons;

-	}

-

-	/*

-	 * @see ISiteContentConsumer#store(ContentReference, IProgressMonitor)

-	 */

-	public void store(ContentReference contentReference, IProgressMonitor monitor) throws CoreException {

-

-		if (closed) {

-			UpdateCore.warn("Attempt to store in a closed SiteFileContentConsumer", new Exception()); //$NON-NLS-1$

-			return;

-		}

-

-		InputStream inStream = null;

-		String featurePath = getFeaturePath();

-		String contentKey = contentReference.getIdentifier();

-		featurePath += contentKey;

-

-		// error recovery

-		if (featurePath.endsWith("\\"+Feature.FEATURE_XML) || featurePath.endsWith("/"+Feature.FEATURE_XML)) { //$NON-NLS-1$ //$NON-NLS-2$

-			oldPath = featurePath.replace(File.separatorChar, '/');

-			File localFile = new File(oldPath);

-			if (localFile.exists()) {

-				throw Utilities.newCoreException(Policy.bind("UpdateManagerUtils.FileAlreadyExists", new Object[] { localFile }), null); //$NON-NLS-1$

-			}

-			featurePath = ErrorRecoveryLog.getLocalRandomIdentifier(featurePath);

-			newPath = featurePath;

-			ErrorRecoveryLog.getLog().appendPath(ErrorRecoveryLog.FEATURE_ENTRY, featurePath);

-		}

-

-		try {

-			inStream = contentReference.getInputStream();

-			UpdateManagerUtils.copyToLocal(inStream, featurePath, null);

-			UpdateManagerUtils.checkPermissions(contentReference, featurePath); // 20305

-			installedFiles.add(featurePath);

-		} catch (IOException e) {

-			throw Utilities.newCoreException(Policy.bind("GlobalConsumer.ErrorCreatingFile", featurePath), e); //$NON-NLS-1$

-		} finally {

-			if (inStream != null) {

-				try {

-					// close stream

-					inStream.close();

-				} catch (IOException e) {

-				}

-			}

-		}

-

-	}

-

-	/*

-	 * @see ISiteContentConsumer#close()

-	 */

-	public IFeatureReference close() throws CoreException {

-

-		if (closed)

-			UpdateCore.warn("Attempt to close a closed SiteFileContentConsumer", new Exception()); //$NON-NLS-1$

-

-		// create a new Feature reference to be added to the site

-		SiteFeatureReference ref = new SiteFeatureReference();

-		ref.setSite(getSite());

-		File file = null;

-

-		try {

-			file = new File(getFeaturePath());

-			ref.setURL(file.toURL());

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException(Policy.bind("SiteFileContentConsumer.UnableToCreateURLForFile", file.getAbsolutePath()), e); //$NON-NLS-1$

-		}

-

-		//rename file back 

-		if (newPath != null) {

-			ErrorRecoveryLog.getLog().appendPath(ErrorRecoveryLog.RENAME_ENTRY, newPath);

-			boolean sucess = false;

-			File fileToRename = new File(newPath);

-			if (fileToRename.exists()) {

-				File renamedFile = new File(oldPath);

-				if (renamedFile.exists()) {

-					UpdateManagerUtils.removeFromFileSystem(renamedFile);

-					UpdateCore.warn("Removing already existing file:" + oldPath); //$NON-NLS-1$

-				}

-				sucess = fileToRename.renameTo(renamedFile);

-			}

-			if (!sucess) {

-				String msg = Policy.bind("ContentConsumer.UnableToRename", newPath, oldPath); //$NON-NLS-1$

-				throw Utilities.newCoreException(msg, new Exception(msg));

-			}

-		}

-

-		// close plugin and non plugin content consumer

-		if (contentConsumers != null) {

-			Iterator iter = contentConsumers.iterator();

-			while (iter.hasNext()) {

-				ContentConsumer element = (ContentConsumer) iter.next();

-				element.close();

-			}

-		}

-		contentConsumers = null;

-

-		if (ref != null) {

-			// the feature MUST have renamed the plugins at that point

-			// (by closing the PluginContentConsumer)

-			commitPlugins(ref);

-			ref.markReadOnly();

-		}

-

-		closed = true;

-		return ref;

-	}

-

-	/*

-	 * @see ISiteContentConsumer#abort()

-	 */

-	public void abort() throws CoreException {

-

-		if (closed) {

-			UpdateCore.warn("Attempt to abort a closed SiteFileContentConsumer", new Exception()); //$NON-NLS-1$

-			return;

-		}

-

-		//abort all plugins content consumer opened

-		if (contentConsumers != null) {

-			Iterator iter = contentConsumers.iterator();

-			while (iter.hasNext()) {

-				SiteFilePluginContentConsumer element = (SiteFilePluginContentConsumer) iter.next();

-				element.abort();

-			}

-		}

-		contentConsumers = null;

-		boolean sucess = true;

-

-		//Remove feature.xml first if it exists

-		if (oldPath != null) {

-			ErrorRecoveryLog.getLog().appendPath(ErrorRecoveryLog.DELETE_ENTRY, oldPath);

-			File fileToDelete = new File(oldPath);

-			if (fileToDelete.exists()) {

-				sucess = fileToDelete.delete();

-			}

-		}

-

-		if (!sucess) {

-			String msg = Policy.bind("Unable to delete", oldPath); //$NON-NLS-1$

-			UpdateCore.log(msg, null);

-		} else {

-			// remove the feature files;

-			Iterator iter = installedFiles.iterator();

-			File featureFile = null;

-			while (iter.hasNext()) {

-				String path = (String) iter.next();

-				featureFile = new File(path);

-				UpdateManagerUtils.removeFromFileSystem(featureFile);

-			}

-

-			// remove the feature directory if empty

-			String featurePath = getFeaturePath();

-			UpdateManagerUtils.removeEmptyDirectoriesFromFileSystem(new File(featurePath));

-		}

-		closed = true;

-		return;

-	}

-

-	/*

-	 * commit the plugins installed as archive on the site

-	 * (creates the map between the plugin id and the location of the plugin)

-	 */

-	private void commitPlugins(IFeatureReference localFeatureReference) throws CoreException {

-	

-		// get the feature

-		 ((SiteFile) getSite()).addFeatureReferenceModel((SiteFeatureReferenceModel) localFeatureReference);

-		IFeature localFeature = null;

-		try {

-			localFeature = localFeatureReference.getFeature(null);

-		} catch (CoreException e) {

-			UpdateCore.warn(null, e);

-			return;

-		}

-	

-		if (localFeature == null)

-			return;

-	

-		// add the installed plugins directories as archives entry

-		ArchiveReferenceModel archive = null;

-		IPluginEntry[] pluginEntries = localFeature.getPluginEntries();

-		for (int i = 0; i < pluginEntries.length; i++) {

-			String versionId = pluginEntries[i].getVersionedIdentifier().toString();

-			String pluginID = Site.DEFAULT_PLUGIN_PATH + versionId + FeaturePackagedContentProvider.JAR_EXTENSION;

-			archive = archiveFactory.createArchiveReferenceModel();

-			archive.setPath(pluginID);

-			try {

-				URL url = new URL(getSite().getURL(), Site.DEFAULT_PLUGIN_PATH + versionId + File.separator);

-				archive.setURLString(url.toExternalForm());

-				archive.resolve(url, null);

-				((SiteFile) getSite()).addArchiveReferenceModel(archive);

-			} catch (MalformedURLException e) {

-	

-				String urlString = (getSite().getURL() != null) ? getSite().getURL().toExternalForm() : "";	//$NON-NLS-1$

-				urlString += Site.DEFAULT_PLUGIN_PATH + pluginEntries[i].toString();

-				throw Utilities.newCoreException(Policy.bind("SiteFile.UnableToCreateURL", urlString), e);	//$NON-NLS-1$

-			}

-		}

-		return;

-	}

-

-	/*

-	 * Adds a SiteFilePluginContentConsumer to the list

-	 */

-	private void addContentConsumers(ContentConsumer cons) {

-		if (contentConsumers == null)

-			contentConsumers = new ArrayList();

-		contentConsumers.add(cons);

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileContentProvider.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileContentProvider.java
deleted file mode 100644
index 3b4ee22..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileContentProvider.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.core;

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * Site on the File System

- */

-public class SiteFileContentProvider extends SiteContentProvider {

-	

-	public static final String SITE_TYPE = "org.eclipse.update.core.file";	 //$NON-NLS-1$

-

-	/**

-	 * Constructor for FileSite

-	 */

-	public SiteFileContentProvider(URL url) {

-		super(url);

-	}

-

-			

-	/*

-	 * @see ISiteContentProvider#getArchiveReference(String)

-	 */

-	public URL getArchiveReference(String archiveId)  throws CoreException {

-		URL contentURL = null;

-		

-		contentURL = getArchiveURLfor(archiveId);

-		// if there is no mapping in the site.xml

-		// for this archiveId, use the default one

-		if (contentURL==null) {

-			return super.getArchiveReference(archiveId);

-		}

-		

-		return contentURL;

-	}

-

-	/**

-	 * return the URL associated with the id of the archive for this site

-	 * return null if the archiveId is null, empty or 

-	 * if teh list of archives on the site is null or empty

-	 * of if there is no URL associated with the archiveID for this site

-	 */

-	private URL getArchiveURLfor(String archiveId) {

-		URL result = null;

-		boolean found = false;

-

-		IArchiveReference[] siteArchives = getSite().getArchives();

-		if (siteArchives.length > 0) {

-			for (int i = 0; i < siteArchives.length && !found; i++) {

-				if (archiveId.trim().equalsIgnoreCase(siteArchives[i].getPath())) {

-					result = siteArchives[i].getURL();

-					found = true;

-					break;

-				}

-			}

-		}

-		return result;

-	}

-}

-

-

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileFactory.java
deleted file mode 100644
index 6be1b9c..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileFactory.java
+++ /dev/null
@@ -1,387 +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 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.model.*;

-import org.xml.sax.*;

-

-public class SiteFileFactory extends BaseSiteFactory {

-

-	// private when parsing file system

-	private SiteFile site;

-

-

-	/*

-	 * @see ISiteFactory#createSite(URL,boolean)

-	 */

-	public ISite createSite(URL url) throws CoreException, InvalidSiteTypeException {

-	

-		Site site = null;

-		InputStream siteStream = null;

-		SiteModelFactory factory = this;

-	

-		try {

-			// if url points to a directory

-			// attempt to parse site.xml

-			String path = url.getFile();

-			File siteLocation = new File(path);

-			if (siteLocation.isDirectory()) {

-				url = siteLocation.toURL();

-				File siteXMLFile = new File(siteLocation, Site.SITE_XML);

-				if (siteXMLFile.exists()) {

-					siteStream = new FileInputStream(siteXMLFile);

-					site = (Site) factory.parseSite(siteStream);

-				} else {

-					// parse siteLocation

-					site = parseSite(siteLocation);

-				}

-			} else {

-				// we are not pointing to a directory

-				// attempt to parse the file

-				try {

-					URL resolvedURL = URLEncoder.encode(url);

-					siteStream = openStream(resolvedURL);

-					site = (Site) factory.parseSite(siteStream);

-				} catch (IOException e) {

-	

-					// attempt to parse parent directory

-					File file = new File(url.getFile());

-					File parentDirectory = file.getParentFile();

-	

-					// do not create directory if it doesn't exist	[18318]

-					// instead hrow error					

-					if (parentDirectory != null && !parentDirectory.exists())

-						throw Utilities.newCoreException(Policy.bind("SiteFileFactory.DirectoryDoesNotExist", file.getAbsolutePath()), null);	//$NON-NLS-1$

-	

-					if (parentDirectory == null || !parentDirectory.isDirectory())

-						throw Utilities.newCoreException(Policy.bind("SiteFileFactory.UnableToObtainParentDirectory", file.getAbsolutePath()), null);	//$NON-NLS-1$

-	

-					site = parseSite(parentDirectory);

-	

-				}

-			}

-	

-			SiteContentProvider contentProvider = new SiteFileContentProvider(url);

-			site.setSiteContentProvider(contentProvider);

-			contentProvider.setSite(site);

-			site.resolve(url, url);

-	

-			// Do not set read only as may install in it

-			//site.markReadOnly();

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException(Policy.bind("SiteFileFactory.UnableToCreateURL", url == null ? "" : url.toExternalForm()), e);	//$NON-NLS-1$ //$NON-NLS-2$

-		} catch (IOException e) {

-			throw Utilities.newCoreException(Policy.bind("SiteFileFactory.UnableToAccessSite"),ISite.SITE_ACCESS_EXCEPTION, e);//$NON-NLS-1$

-		} finally {

-			try {

-				if (siteStream != null)

-					siteStream.close();

-			} catch (IOException e) {

-			}

-		}

-		return site;

-	}

-	/**

-	 * Method parseSite.

-	 */

-	private Site parseSite(File directory) throws CoreException {

-

-		this.site = (SiteFile) createSiteMapModel();

-

-		if (!directory.exists())

-			throw Utilities.newCoreException(Policy.bind("SiteFileFactory.FileDoesNotExist", directory.getAbsolutePath()), null);//$NON-NLS-1$

-

-		File pluginPath = new File(directory, Site.DEFAULT_PLUGIN_PATH);

-

-		//PACKAGED

-		parsePackagedFeature(directory); // in case it contains JAR files

-

-		parsePackagedPlugins(pluginPath);

-

-		// INSTALLED	

-		parseInstalledFeature(directory);

-

-		parseInstalledPlugins(pluginPath);

-

-		return site;

-

-	}

-

-	/**

-	 * Method parseFeature.

-	 * @throws CoreException

-	 */

-	private void parseInstalledFeature(File directory) throws CoreException {

-

-		File featureDir = new File(directory, Site.DEFAULT_INSTALLED_FEATURE_PATH);

-		if (featureDir.exists()) {

-			String[] dir;

-			SiteFeatureReferenceModel featureRef;

-			URL featureURL;

-			File currentFeatureDir;

-			String newFilePath = null;

-

-			try {

-				// handle the installed featuresConfigured under featuresConfigured subdirectory

-				dir = featureDir.list();

-				for (int index = 0; index < dir.length; index++) {

-

-					// the URL must ends with '/' for the bundle to be resolved

-					newFilePath = dir[index] + (dir[index].endsWith("/") ? "/" : ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-					currentFeatureDir = new File(featureDir, newFilePath);

-					// check if feature.xml exists

-					File featureXMLFile = new File(currentFeatureDir, Feature.FEATURE_XML);

-					if (!featureXMLFile.exists()) {

-						UpdateCore.warn("Unable to find feature.xml in directory:" + currentFeatureDir); //$NON-NLS-1$

-					} else {

-						// PERF: remove code

-						//SiteFileFactory archiveFactory = new SiteFileFactory();

-						featureURL = currentFeatureDir.toURL();

-						featureRef = createFeatureReferenceModel();

-						featureRef.setSiteModel(site);

-						featureRef.setURLString(featureURL.toExternalForm());

-						featureRef.setType(ISite.DEFAULT_INSTALLED_FEATURE_TYPE);

-						((Site) site).addFeatureReferenceModel(featureRef);

-					}

-				}

-			} catch (MalformedURLException e) {

-				throw Utilities.newCoreException(Policy.bind("SiteFileFactory.UnableToCreateURLForFile", newFilePath), e);	//$NON-NLS-1$

-			}

-		}

-	}

-

-	/**

-	* Method parseFeature.

-	* @throws CoreException

-	*/

-	private void parsePackagedFeature(File directory) throws CoreException {

-

-		// FEATURES

-		File featureDir = new File(directory, Site.DEFAULT_FEATURE_PATH);

-		if (featureDir.exists()) {

-			String[] dir;

-			SiteFeatureReferenceModel featureRef;

-			URL featureURL;

-			File currentFeatureFile;

-			String newFilePath = null;

-

-			try {

-				// only list JAR files

-				dir = featureDir.list(FeaturePackagedContentProvider.filter);

-				for (int index = 0; index < dir.length; index++) {

-

-					// check if the JAR file contains a feature.xml

-					currentFeatureFile = new File(featureDir, dir[index]);

-					JarContentReference ref = new JarContentReference("", currentFeatureFile); //$NON-NLS-1$

-					ContentReference result = null;

-					try {

-						result = ref.peek(Feature.FEATURE_XML, null, null);

-					} catch (IOException e) {

-						UpdateCore.warn("Exception retrieving feature.xml in file:" + currentFeatureFile, e); //$NON-NLS-1$

-					}

-					if (result == null) {

-						UpdateCore.warn("Unable to find feature.xml in file:" + currentFeatureFile); //$NON-NLS-1$

-					} else {

-						featureURL = currentFeatureFile.toURL();

-						// PERF: remove code

-						//SiteFileFactory archiveFactory = new SiteFileFactory();

-						featureRef = createFeatureReferenceModel();

-						featureRef.setSiteModel(site);

-						featureRef.setURLString(featureURL.toExternalForm());

-						featureRef.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);

-						site.addFeatureReferenceModel(featureRef);

-					}

-				}

-			} catch (MalformedURLException e) {

-				throw Utilities.newCoreException(Policy.bind("SiteFileFactory.UnableToCreateURLForFile", newFilePath), e);	//$NON-NLS-1$

-			}

-		}

-	}

-

-	/**

-	 * Method parsePlugins.

-	 * 

-	 * look into each plugin/fragment directory, crack the plugin.xml open (or

-	 * fragment.xml ???) get id and version, calculate URL...

-	 * 

-	 * @throws CoreException

-	 */

-	private void parseInstalledPlugins(File pluginsDir) throws CoreException {

-		if (!pluginsDir.exists() || !pluginsDir.isDirectory()) {

-			return;

-		}

-		File[] dirs = pluginsDir.listFiles(new FileFilter() {

-			public boolean accept(File f) {

-				return f.isDirectory();

-			}

-		});

-		DefaultPluginParser parser = new DefaultPluginParser();

-		for (int i = 0; i < dirs.length; i++) {

-			File pluginFile = new File(dirs[i], "META-INF/MANIFEST.MF"); //$NON-NLS-1$

-			InputStream in = null;

-			try {

-				BundleManifest bundleManifest = new BundleManifest(pluginFile);

-				if (bundleManifest.exists()) {

-					PluginEntry entry = bundleManifest.getPluginEntry();

-					addParsedPlugin(entry, dirs[i]);

-				} else {

-					if (!(pluginFile = new File(dirs[i], "plugin.xml")) //$NON-NLS-1$

-							.exists()) { //$NON-NLS-1$

-						pluginFile = new File(dirs[i], "fragment.xml"); //$NON-NLS-1$

-					}

-					if (pluginFile != null && pluginFile.exists()

-							&& !pluginFile.isDirectory()) {

-						in = new FileInputStream(pluginFile);

-						PluginEntry entry = parser.parse(in);

-						addParsedPlugin(entry, dirs[i]);

-					}

-				}

-			} catch (IOException e) {

-				String pluginFileString = (pluginFile == null)

-						? null

-						: pluginFile.getAbsolutePath();

-				throw Utilities.newCoreException(Policy.bind(

-						"SiteFileFactory.ErrorAccessing", pluginFileString), e); //$NON-NLS-1$

-			} catch (SAXException e) {

-				String pluginFileString = (pluginFile == null)

-						? null

-						: pluginFile.getAbsolutePath();

-				throw Utilities.newCoreException(Policy.bind(

-						"SiteFileFactory.ErrorParsingFile", pluginFileString), //$NON-NLS-1$

-						e);

-			} finally {

-				if (in != null){

-					try{

-						in.close();

-					} catch(IOException e){

-					}

-				}

-			}

-		}

-	}

-

-	/**

-	 * tranform each Plugin and Fragment into an ArchiveReferenceModel

-	 * and a PluginEntry for the Site	 

-	 */

-	// PERF: removed intermediate Plugin object

-	private void addParsedPlugin(PluginEntry entry,File file) throws CoreException {

-

-		String location = null;

-		try {

-			if (entry != null) {

-

-				// create the plugin Entry

-				((Site) site).addPluginEntry(entry);

-

-				// Create the Site mapping ArchiveRef->PluginEntry

-				// the id of the archiveRef is plugins\<pluginid>_<ver>.jar as per the specs

-				// PERF: remove code

-				//SiteFileFactory archiveFactory = new SiteFileFactory();				

-				ArchiveReferenceModel archive = createArchiveReferenceModel();

-				String id = (entry.getVersionedIdentifier().toString());

-				String pluginID = Site.DEFAULT_PLUGIN_PATH + id + FeaturePackagedContentProvider.JAR_EXTENSION;

-				archive.setPath(pluginID);

-				location = file.toURL().toExternalForm();

-				archive.setURLString(location);

-				((Site) site).addArchiveReferenceModel(archive);

-

-				// TRACE				

-				if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {

-					UpdateCore.debug("Added archive to site:" + pluginID + " pointing to: " + location); //$NON-NLS-1$ //$NON-NLS-2$

-				}

-			}

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException(Policy.bind("SiteFileFactory.UnableToCreateURLForFile", location), e);	//$NON-NLS-1$

-		}

-	}

-

-	/**

-	 *  

-	 */

-	private void parsePackagedPlugins(File pluginDir) throws CoreException {

-		if (!pluginDir.exists()) {

-			return;

-		}

-		String[] dir = pluginDir.list(FeaturePackagedContentProvider.filter);

-		for (int i = 0; i < dir.length; i++) {

-			ContentReference ref = null;

-			String refString = null;

-			InputStream in = null;

-			try {

-				File file = new File(pluginDir, dir[i]);

-				JarContentReference jarReference = new JarContentReference(

-						null, file);

-				ref = jarReference.peek("META-INF/MANIFEST.MF", null, null); //$NON-NLS-1$

-				if (ref != null) {

-					in = ref.getInputStream();

-					BundleManifest manifest = new BundleManifest(in);

-					if (manifest.exists()) {

-						addParsedPlugin(manifest.getPluginEntry(), file);

-						continue;

-					}

-				}

-				ref = jarReference.peek("plugin.xml", null, null); //$NON-NLS-1$

-				if (ref == null) {

-					ref = jarReference.peek("fragment.xml", null, null); //$NON-NLS-1$

-				}

-				if (ref != null) {

-					in = ref.getInputStream();

-					PluginEntry entry = new DefaultPluginParser().parse(in);

-					addParsedPlugin(entry, file);

-				}

-			} catch (IOException e) {

-				try {

-					refString = (ref == null) ? null : ref.asURL()

-							.toExternalForm();

-				} catch (IOException ioe) {

-				}

-				throw Utilities.newCoreException(Policy.bind(

-						"SiteFileFactory.ErrorAccessing", refString), e);//$NON-NLS-1$

-			} catch (SAXException e) {

-				try {

-					refString = (ref == null) ? null : ref.asURL()

-							.toExternalForm();

-				} catch (IOException ioe) {

-				}

-				throw Utilities.newCoreException(Policy.bind(

-						"SiteFileFactory.ErrorParsingFile", refString), e); //$NON-NLS-1$

-			} finally {

-				if(in != null){

-					try{

-						in.close();

-					}catch(IOException ce){

-					}

-				}

-			}

-		}

-	}

-

-	/*

-	 * @see SiteModelFactory#createSiteMapModel()

-	 */

-	public SiteModel createSiteMapModel() {

-		return new SiteFile();

-	}

-

-	/*

-	 * @see SiteModelFactory#canParseSiteType(String)

-	 */

-	public boolean canParseSiteType(String type) {

-		return (super.canParseSiteType(type) || SiteFileContentProvider.SITE_TYPE.equalsIgnoreCase(type));

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileNonPluginContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileNonPluginContentConsumer.java
deleted file mode 100644
index e35a001..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileNonPluginContentConsumer.java
+++ /dev/null
@@ -1,75 +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 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.update.internal.core;

-import java.io.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * Plugin Content Consumer on a Site

- */

-public class SiteFileNonPluginContentConsumer extends ContentConsumer {

-

-	private String path;

-	private boolean closed = false;

-

-	/*

-	 * Constructor 

-	 */

-	public SiteFileNonPluginContentConsumer(String featurePath) {

-		this.path = featurePath;

-	}

-

-	/*

-	 * @see ISiteContentConsumer#store(ContentReference, IProgressMonitor)

-	 */

-	public void store(ContentReference contentReference, IProgressMonitor monitor) throws CoreException {

-

-		if (closed) {

-			UpdateCore.warn("Attempt to store in a closed SiteFileNonPluginContentConsumer", new Exception()); //$NON-NLS-1$

-			return;

-		}

-

-		InputStream inStream = null;

-		String featurePath = path;

-		String contentKey = contentReference.getIdentifier();

-		featurePath += contentKey;

-		try {

-			inStream = contentReference.getInputStream();

-			UpdateManagerUtils.copyToLocal(inStream, featurePath, null);

-			UpdateManagerUtils.checkPermissions(contentReference, featurePath); // 20305

-		} catch (IOException e) {

-			throw Utilities.newCoreException(Policy.bind("GlobalConsumer.ErrorCreatingFile", featurePath), e); //$NON-NLS-1$

-		} finally {

-			if (inStream != null) {

-				try {

-					// close stream

-					inStream.close();

-				} catch (IOException e) {

-				}

-			}

-		}

-

-	}

-

-	/*

-	 * @see ISiteContentConsumer#close()

-	 */

-	public void close() {

-		if (closed) {

-			UpdateCore.warn("Attempt to close a closed SiteFileNonPluginContentConsumer", new Exception()); //$NON-NLS-1$

-			return;

-		}

-		closed = true;

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFilePackedPluginContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFilePackedPluginContentConsumer.java
deleted file mode 100644
index fb3de3d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFilePackedPluginContentConsumer.java
+++ /dev/null
@@ -1,134 +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 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.update.internal.core;
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-
-/**
- * Plugin Content Consumer on a Site
- * for a plugin that will run from a jar
- */
-public class SiteFilePackedPluginContentConsumer extends ContentConsumer {
-
-	private IPluginEntry pluginEntry;
-	private ISite site;
-	private boolean closed = false;
-	private String jarPath;
-	private String tempPath;
-
-	/*
-	 * Constructor
-	 */
-	public SiteFilePackedPluginContentConsumer(IPluginEntry pluginEntry, ISite site) {
-		this.pluginEntry = pluginEntry;
-		this.site = site;
-	}
-
-	/*
-	 * @see ISiteContentConsumer#store(ContentReference, IProgressMonitor)
-	 */
-	public void store(ContentReference contentReference, IProgressMonitor monitor) throws CoreException {
-		InputStream inStream = null;
-
-		if (closed) {
-			UpdateCore.warn("Attempt to store in a closed SiteFilePluginContentConsumer", new Exception()); //$NON-NLS-1$
-			return;
-		}
-
-		try {
-			URL newURL = new URL(site.getURL(), Site.DEFAULT_PLUGIN_PATH + pluginEntry.getVersionedIdentifier().toString() + ".jar"); //$NON-NLS-1$
-			inStream = contentReference.getInputStream();
-			jarPath = newURL.getFile().replace(File.separatorChar, '/');
-			File jarFile = new File(jarPath);
-			if (jarFile.exists()) {
-				throw Utilities.newCoreException(Policy.bind("UpdateManagerUtils.FileAlreadyExists", new Object[] { jarFile }), null); //$NON-NLS-1$
-			}
-			// error recovery
-			tempPath= ErrorRecoveryLog.getLocalRandomIdentifier(jarPath+".tmp"); //$NON-NLS-1$
-				ErrorRecoveryLog.getLog().appendPath(ErrorRecoveryLog.BUNDLE_JAR_ENTRY, tempPath);
-			//
-			UpdateManagerUtils.copyToLocal(inStream, tempPath, null);
-		} catch (IOException e) {
-			throw Utilities.newCoreException(Policy.bind("GlobalConsumer.ErrorCreatingFile", tempPath), e); //$NON-NLS-1$
-		} finally {
-			if (inStream != null) {
-				try {
-					// close stream
-					inStream.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-
-	/*
-	 * @see ISiteContentConsumer#close() 
-	 */
-	public void close() throws CoreException {
-
-		if (closed) {
-			UpdateCore.warn("Attempt to close a closed SiteFilePluginContentConsumer", new Exception()); //$NON-NLS-1$
-			return;
-		}
-
-		if (tempPath != null) {
-			// rename file 
-			ErrorRecoveryLog.getLog().appendPath(ErrorRecoveryLog.RENAME_ENTRY, tempPath);
-			File fileToRename = new File(tempPath);
-			boolean sucess = false;
-			if (fileToRename.exists()) {
-				File renamedFile = new File(jarPath);
-				sucess = fileToRename.renameTo(renamedFile);
-			}
-			if (!sucess) {
-				String msg = Policy.bind("ContentConsumer.UnableToRename", tempPath, jarPath); //$NON-NLS-1$
-				throw Utilities.newCoreException(msg, new Exception(msg));
-			}
-		}
-
-		if (site instanceof SiteFile)
-			 ((SiteFile) site).addPluginEntry(pluginEntry);
-		closed = true;
-	}
-
-	/*
-	 * 
-	 */
-	public void abort() throws CoreException {
-
-		if (closed) {
-			UpdateCore.warn("Attempt to abort a closed SiteFilePluginContentConsumer", new Exception()); //$NON-NLS-1$
-			return;
-		}
-
-		boolean sucess = true;
-
-		// delete plugin.jar
-		if (jarPath != null) {
-			ErrorRecoveryLog.getLog().appendPath(ErrorRecoveryLog.DELETE_ENTRY, jarPath);
-			File fileToRemove = new File(jarPath);
-
-			if (fileToRemove.exists()) {
-				sucess = fileToRemove.delete();
-			}
-		}
-
-		if (!sucess) {
-			String msg = Policy.bind("Unable to delete", jarPath); //$NON-NLS-1$
-			UpdateCore.log(msg, null);
-		}
-		closed = true;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFilePluginContentConsumer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFilePluginContentConsumer.java
deleted file mode 100644
index af088f6..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFilePluginContentConsumer.java
+++ /dev/null
@@ -1,183 +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 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * Plugin Content Consumer on a Site

- */

-public class SiteFilePluginContentConsumer extends ContentConsumer {

-

-	private IPluginEntry pluginEntry;

-	private ISite site;

-	private boolean closed = false;

-

-	// recovery

-	// temporary name to original name map

-	private Map renames = new HashMap(2);

-

-	// for abort

-	private List /*of path as String */

-	installedFiles;

-

-	/*

-	 * Constructor

-	 */

-	public SiteFilePluginContentConsumer(IPluginEntry pluginEntry, ISite site) {

-		this.pluginEntry = pluginEntry;

-		this.site = site;

-		installedFiles = new ArrayList();

-	}

-

-	/*

-	 * @see ISiteContentConsumer#store(ContentReference, IProgressMonitor)

-	 */

-	public void store(ContentReference contentReference, IProgressMonitor monitor) throws CoreException {

-		InputStream inStream = null;

-		String pluginPath = null;

-

-		if (closed) {

-			UpdateCore.warn("Attempt to store in a closed SiteFilePluginContentConsumer", new Exception()); //$NON-NLS-1$

-			return;

-		}

-

-		try {

-			URL newURL = new URL(site.getURL(), Site.DEFAULT_PLUGIN_PATH + pluginEntry.getVersionedIdentifier().toString());

-			pluginPath = newURL.getFile(); 

-			String contentKey = contentReference.getIdentifier();

-			inStream = contentReference.getInputStream();

-			pluginPath += pluginPath.endsWith(File.separator) ? contentKey : File.separator + contentKey;

-

-			// error recovery

-			String logEntry=null;

-			if ("plugin.xml".equals(contentKey)) { //$NON-NLS-1$

-				logEntry=ErrorRecoveryLog.PLUGIN_ENTRY;

-			} else if ("fragment.xml".equals(contentKey)) { //$NON-NLS-1$

-				logEntry=ErrorRecoveryLog.FRAGMENT_ENTRY;

-			} else if ("META-INF/MANIFEST.MF".equals(contentKey)) { //$NON-NLS-1$

-				logEntry=ErrorRecoveryLog.BUNDLE_MANIFEST_ENTRY;

-			}

-			if (logEntry!=null) {

-				String originalName = pluginPath.replace(File.separatorChar, '/');

-				File localFile = new File(originalName);

-				if (localFile.exists()) {

-					throw Utilities.newCoreException(Policy.bind("UpdateManagerUtils.FileAlreadyExists", new Object[] { localFile }), null); //$NON-NLS-1$

-				}

-				pluginPath = ErrorRecoveryLog.getLocalRandomIdentifier(pluginPath);

-				renames.put(pluginPath, originalName);

-				ErrorRecoveryLog.getLog().appendPath(logEntry, pluginPath);

-			}

-			//

-			UpdateManagerUtils.copyToLocal(inStream, pluginPath, null);

-			UpdateManagerUtils.checkPermissions(contentReference, pluginPath); // 20305

-			installedFiles.add(pluginPath);

-		} catch (IOException e) {

-			throw Utilities.newCoreException(Policy.bind("GlobalConsumer.ErrorCreatingFile", pluginPath), e);//$NON-NLS-1$

-		} finally {

-			if (inStream != null) {

-				try {

-					// close stream

-					inStream.close();

-				} catch (IOException e) {

-				}

-			}

-		}

-	}

-

-	/*

-	 * @see ISiteContentConsumer#close() 

-	 */

-	public void close() throws CoreException {

-

-		if (closed) {

-			UpdateCore.warn("Attempt to close a closed SiteFilePluginContentConsumer", new Exception()); //$NON-NLS-1$

-			return;

-		}

-

-		for(Iterator it = renames.entrySet().iterator(); it.hasNext();){

-			// rename file 

-			Map.Entry entry = (Map.Entry)it.next();

-			String temporary = (String) entry.getKey();

-			String original = (String) entry.getValue();

-			ErrorRecoveryLog.getLog().appendPath(ErrorRecoveryLog.RENAME_ENTRY, temporary);

-			File fileToRename = new File(temporary);

-			boolean sucess = false;

-			if (fileToRename.exists()) {

-				File renamedFile = new File(original);

-				sucess = fileToRename.renameTo(renamedFile);

-			}

-			if (!sucess) {

-				String msg = Policy.bind("ContentConsumer.UnableToRename", temporary, original); //$NON-NLS-1$

-				throw Utilities.newCoreException(msg, new Exception(msg));

-			}

-		}

-

-		if (site instanceof SiteFile)

-			 ((SiteFile) site).addPluginEntry(pluginEntry);

-		closed = true;

-	}

-

-	/*

-	 * 

-	 */

-	public void abort() throws CoreException {

-

-		if (closed) {

-			UpdateCore.warn("Attempt to abort a closed SiteFilePluginContentConsumer", new Exception()); //$NON-NLS-1$

-			return;

-		}

-

-		boolean success = true;

-		InstallRegistry.unregisterPlugin(pluginEntry);

-

-		// delete plugin manifests first

-		for(Iterator it = renames.values().iterator(); it.hasNext();){

-			String originalName = (String) it.next();

-

-			ErrorRecoveryLog.getLog().appendPath(ErrorRecoveryLog.DELETE_ENTRY, originalName);

-			File fileToRemove = new File(originalName);

-			if (fileToRemove.exists()) {

-				if(!fileToRemove.delete()){

-					String msg = Policy.bind("Unable to delete", originalName); //$NON-NLS-1$

-					UpdateCore.log(msg, null);	

-					success = false;

-				}

-			}

-		}

-

-		if (success) {

-			// remove the plugin files;

-			Iterator iter = installedFiles.iterator();

-			File featureFile = null;

-			while (iter.hasNext()) {

-				String path = (String) iter.next();

-				featureFile = new File(path);

-				UpdateManagerUtils.removeFromFileSystem(featureFile);

-			}

-

-			// remove the plugin directory if empty

-			try {

-				URL newURL = new URL(site.getURL(), Site.DEFAULT_PLUGIN_PATH + pluginEntry.getVersionedIdentifier().toString());

-				String pluginPath = newURL.getFile();

-				UpdateManagerUtils.removeEmptyDirectoriesFromFileSystem(new File(pluginPath));

-			} catch (MalformedURLException e) {

-				throw Utilities.newCoreException(e.getMessage(), e);

-			}

-		}

-		closed = true;

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java
deleted file mode 100644
index fb1973d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteLocal.java
+++ /dev/null
@@ -1,363 +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 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.configurator.*;

-import org.eclipse.update.internal.model.*;

-

-/**

- * This class manages the configurations.

- */

-

-public class SiteLocal extends SiteLocalModel implements ILocalSite{

-

-	private ListenersList listeners = new ListenersList();

-	private SiteStatusAnalyzer siteStatusAnalyzer;

-	private boolean isTransient = false;

-

-	/*

-	 * Have new features been found during reconciliation

-	 */

-	public static boolean newFeaturesFound = false;

-

-	/*

-	 * initialize the configurations from the persistent model.

-	 * Set the reconciliation as non optimistic

-	 */

-	public static ILocalSite getLocalSite() throws CoreException {

-		return internalGetLocalSite();

-	}

-

-	/*

-	 *Internal call is reconciliation needs to be optimistic

-	 */

-	public static ILocalSite internalGetLocalSite() throws CoreException {

-	

-		SiteLocal localSite = new SiteLocal();

-	

-		// obtain platform configuration

-		IPlatformConfiguration currentPlatformConfiguration = ConfiguratorUtils.getCurrentPlatformConfiguration();

-		localSite.isTransient(currentPlatformConfiguration.isTransient());

-	

-		try {

-			URL configXML = currentPlatformConfiguration.getConfigurationLocation();

-			localSite.setLocationURLString(configXML.toExternalForm());

-			localSite.resolve(configXML, null);

-	

-			// Attempt to read previous state

-			parseLocalSiteFile(currentPlatformConfiguration, localSite);

-

-		} catch (MalformedURLException exception) {

-			throw Utilities.newCoreException(Policy.bind("SiteLocal.UnableToCreateURLFor", localSite.getLocationURLString() + " & " + CONFIG_FILE), exception); //$NON-NLS-1$ //$NON-NLS-2$

-		}

-	

-		return localSite;

-	}

-

-	/**

-	 * Create the localSite object

-	 */

-	private static boolean parseLocalSiteFile(IPlatformConfiguration platformConfig, SiteLocal localSite ) throws CoreException, MalformedURLException {

-

-		//attempt to parse the LocalSite.xml	

-//		URL resolvedURL = URLEncoder.encode(configXML);

-		try {

-//			InputStream in = UpdateCore.getPlugin().get(resolvedURL).getInputStream();

-			new SiteLocalParser(platformConfig, localSite);

-			return true;

-		} catch (Exception exception) {

-			return false;

-		}

-	}

-

-	/**

-	 * 

-	 */

-	private SiteLocal() {

-	}

-

-	/**

-	 * adds a new configuration to the LocalSite

-	 *  the newly added configuration is teh current one

-	 */

-	public void addConfiguration(IInstallConfiguration config) {

-		if (config != null) {

-			addConfigurationModel((InstallConfigurationModel) config);

-

-			trimHistoryToCapacity();

-

-			// set configuration as current		

-			if (getCurrentConfigurationModel() != null)

-				getCurrentConfigurationModel().setCurrent(false);

-			if (config instanceof InstallConfiguration)

-				 ((InstallConfiguration) config).setCurrent(true);

-

-			setCurrentConfigurationModel((InstallConfigurationModel) config);

-			((InstallConfigurationModel) config).markReadOnly();

-

-			// notify listeners

-			Object[] siteLocalListeners = listeners.getListeners();

-			for (int i = 0; i < siteLocalListeners.length; i++) {

-				((ILocalSiteChangedListener) siteLocalListeners[i]).currentInstallConfigurationChanged(config);

-			}

-		}

-

-	}

-

-	/*

-	 * 

-	 */

-	private void trimHistoryToCapacity() {

-		// check if we have to remove a configuration

-		// the first added is #0

-		while (getConfigurationHistory().length > getMaximumHistoryCount() &&

-				getConfigurationHistory().length > 1) {

-			// do not remove the first element in history, this is the original config

-			InstallConfigurationModel removedConfig = getConfigurationHistoryModel()[1];

-			if (removeConfigurationModel(removedConfig)) {

-

-				// DEBUG:

-				if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION) {

-					UpdateCore.debug("Removed configuration :" + removedConfig.getLabel()); //$NON-NLS-1$

-				}

-

-				// notify listeners

-				Object[] siteLocalListeners = listeners.getListeners();

-				for (int i = 0; i < siteLocalListeners.length; i++) {

-					((ILocalSiteChangedListener) siteLocalListeners[i]).installConfigurationRemoved((IInstallConfiguration) removedConfig);

-				}

-

-				//remove files

-				URL url = removedConfig.getURL();

-				UpdateManagerUtils.removeFromFileSystem(new File(url.getFile()));

-			}

-		}

-	}

-	/*

-	 * @see ILocalSite#addLocalSiteChangedListener(ILocalSiteChangedListener)

-	 */

-	public void addLocalSiteChangedListener(ILocalSiteChangedListener listener) {

-		synchronized (listeners) {

-			listeners.add(listener);

-		}

-	}

-

-	/*

-	 * @see ILocalSite#removeLocalSiteChangedListener(ILocalSiteChangedListener)

-	 */

-	public void removeLocalSiteChangedListener(ILocalSiteChangedListener listener) {

-		synchronized (listeners) {

-			listeners.add(listener);

-		}

-	}

-

-	/**

-	 * Saves the site into the config file.

-	 * @return true if changes restart is needed

-	 */

-	public boolean save() throws CoreException {

-

-		// Save the current configuration as

-		// the other are already saved

-		// and set runtim info for next startup

-		return ((InstallConfiguration) getCurrentConfiguration()).save();

-	}

-	

-//	/**

-//	 * Method createNewInstallConfiguration.

-//	 * @return IInstallConfiguration

-//	 */

-//	private IInstallConfiguration createNewInstallConfiguration() throws CoreException {

-//		InstallConfiguration newInstallConfig = createConfigurationSite(null);

-//		newInstallConfig.setTimeline(newInstallConfig.getCreationDate().getTime());

-//		return newInstallConfig;

-//	}

-

-

-	/**

-	 * @since 2.0

-	 * @deprecated This method should not be used. The current install configuration is to be used.

-	 */

-	public IInstallConfiguration cloneCurrentConfiguration() throws CoreException {

-		try {

-			return new InstallConfiguration(getCurrentConfiguration());

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException(Policy.bind("SiteLocal.cloneConfig"), e); //$NON-NLS-1$

-		}

-	}

-

-	/**

-	 * @since 2.0

-	 */

-	public void revertTo(IInstallConfiguration configuration, IProgressMonitor monitor, IProblemHandler handler) throws CoreException {

-

-		// create the activity 

-		//Start UOW ?

-		ConfigurationActivity activity = new ConfigurationActivity(IActivity.ACTION_REVERT);

-		activity.setLabel(configuration.getLabel());

-		activity.setDate(new Date());

-		IInstallConfiguration newConfiguration = null;

-

-		try {

-			// create a configuration

-			newConfiguration = cloneCurrentConfiguration();

-			newConfiguration.setLabel(configuration.getLabel());

-

-			// add to the stack which will set up as current

-			addConfiguration(newConfiguration);

-

-			// process delta

-			// the Configured featuresConfigured are the same as the old configuration

-			// the unconfigured featuresConfigured are the rest...

-			 ((InstallConfiguration) newConfiguration).revertTo(configuration, monitor, handler);

-

-			// everything done ok

-			activity.setStatus(IActivity.STATUS_OK);

-		} catch (CoreException e) {

-			// error

-			activity.setStatus(IActivity.STATUS_NOK);

-			throw e;

-		} catch (InterruptedException e) {

-			//user decided not to revert, do nothing

-			// because we didn't add the configuration to the history

-		} finally {

-			if (newConfiguration != null)

-				 ((InstallConfiguration) newConfiguration).addActivity(activity);

-		}

-

-	}

-

-	/**

-	 * @since 2.0

-	 * @deprecated

-	 */

-	public IInstallConfiguration addToPreservedConfigurations(IInstallConfiguration configuration) throws CoreException {

-		return null;

-	}

-

-	/*

-	 * @see ILocalSite#getPreservedConfigurationFor(IInstallConfiguration)

-	 */

-	public IInstallConfiguration findPreservedConfigurationFor(IInstallConfiguration configuration) {

-

-		// based on time stamp for now

-		InstallConfigurationModel preservedConfig = null;

-		if (configuration != null) {

-			InstallConfigurationModel[] preservedConfigurations = getPreservedConfigurationsModel();

-			if (preservedConfigurations != null) {

-				for (int indexPreserved = 0; indexPreserved < preservedConfigurations.length; indexPreserved++) {

-					if (configuration.getCreationDate().equals(preservedConfigurations[indexPreserved].getCreationDate())) {

-						preservedConfig = preservedConfigurations[indexPreserved];

-						break;

-					}

-				}

-			}

-		}

-

-		return (IInstallConfiguration) preservedConfig;

-	}

-

-	/*

-	 * @see ILocalSite#getCurrentConfiguration()

-	 * LocalSiteModel#getCurrentConfigurationModel() may return null if

-	 * we just parsed LocalSite.xml

-	 */

-	public IInstallConfiguration getCurrentConfiguration() {

-		if (getCurrentConfigurationModel() == null) {

-			int index = 0;

-			if ((index = getConfigurationHistoryModel().length) == 0) {

-				return null;

-			} else {

-				InstallConfigurationModel config = getConfigurationHistoryModel()[index - 1];

-				config.setCurrent(true);

-				setCurrentConfigurationModel(config);

-			}

-		}

-		return (IInstallConfiguration) getCurrentConfigurationModel();

-	}

-

-	/*

-	 * @see ILocalSite#getPreservedConfigurations()

-	 */

-	public IInstallConfiguration[] getPreservedConfigurations() {

-		if (getPreservedConfigurationsModel().length == 0)

-			return new IInstallConfiguration[0];

-		return (IInstallConfiguration[]) getPreservedConfigurationsModel();

-	}

-

-	/*

-	 * @see ILocalSite#removeFromPreservedConfigurations(IInstallConfiguration)

-	 */

-	public void removeFromPreservedConfigurations(IInstallConfiguration configuration) {

-		if (removePreservedConfigurationModel((InstallConfigurationModel) configuration))

-			 ((InstallConfiguration) configuration).remove();

-	}

-

-	/*

-	 * @see ILocalSite#getConfigurationHistory()

-	 */

-	public IInstallConfiguration[] getConfigurationHistory() {

-		if (getConfigurationHistoryModel().length == 0)

-			return new IInstallConfiguration[0];

-		return (IInstallConfiguration[]) getConfigurationHistoryModel();

-	}

-

-

-	/**

-	 * Gets the isTransient.

-	 * @return Returns a boolean

-	 */

-	public boolean isTransient() {

-		return isTransient;

-	}

-

-	/**

-	 * Sets the isTransient.

-	 * @param isTransient The isTransient to set

-	 */

-	private void isTransient(boolean isTransient) {

-		this.isTransient = isTransient;

-	}

-

-	/*

-	 * 

-	 */

-	private SiteStatusAnalyzer getSiteStatusAnalyzer() {

-		if (siteStatusAnalyzer == null)

-			siteStatusAnalyzer = new SiteStatusAnalyzer(this);

-		return siteStatusAnalyzer;

-	}

-

-	/*

-	 *  check if the Plugins of the feature are on the plugin path

-	 *  If all the plugins are on the plugin path, and the version match and there is no other version -> HAPPY

-	 *  If all the plugins are on the plugin path, and the version match and there is other version -> AMBIGUOUS

-	 *  If some of the plugins are on the plugin path, but not all -> UNHAPPY

-	 * 	Check on all ConfiguredSites

-	 */

-	public IStatus getFeatureStatus(IFeature feature) throws CoreException {

-		return getSiteStatusAnalyzer().getFeatureStatus(feature);

-	}

-	/**

-	 * @see org.eclipse.update.internal.model.SiteLocalModel#setMaximumHistoryCount(int)

-	 */

-	public void setMaximumHistoryCount(int history) {

-		super.setMaximumHistoryCount(history);

-		trimHistoryToCapacity();

-	}

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteReconciler.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteReconciler.java
deleted file mode 100644
index d7e79b3..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteReconciler.java
+++ /dev/null
@@ -1,462 +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 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.update.internal.core;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.configurator.*;
-
-/**
- * This class manages the reconciliation.
- */
-
-public class SiteReconciler extends ModelObject {
-
-	/**
-	 * 
-	 */
-	public SiteReconciler(SiteLocal siteLocal) {
-//		this.siteLocal = siteLocal;
-	}
-
-
-	/**
-	* 
-	*/
-	/*package */
-	URL resolveSiteEntry(IPlatformConfiguration.ISiteEntry newSiteEntry) throws CoreException {
-		URL resolvedURL = null;
-		try {
-			resolvedURL = Platform.resolve(newSiteEntry.getURL());
-		} catch (IOException e) {
-			throw Utilities.newCoreException(Policy.bind("SiteLocal.UnableToResolve", newSiteEntry.getURL().toExternalForm()), e);	//$NON-NLS-1$
-		}
-		return resolvedURL;
-	}
-
-
-	/**
-	 * Validate we have only one configured feature of a specific id
-	 * per configured site
-	 */
-	public static void checkConfiguredFeaturesOld(IConfiguredSite configuredSite) throws CoreException {
-
-		// NOT USED
-
-		ConfiguredSite cSite = (ConfiguredSite) configuredSite;
-		IFeatureReference[] configuredFeatures = cSite.getConfiguredFeatures();
-		ConfigurationPolicy cPolicy = cSite.getConfigurationPolicy();
-
-		// TRACE
-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER) {
-			UpdateCore.debug("Compare features within :" + configuredSite.getSite().getURL()); //$NON-NLS-1$
-		}
-
-		for (int indexConfiguredFeatures = 0; indexConfiguredFeatures < configuredFeatures.length - 1; indexConfiguredFeatures++) {
-
-			IFeatureReference featureToCompare = configuredFeatures[indexConfiguredFeatures];
-
-			// within the configured site
-			// compare with the other configured features of this site
-			for (int restOfConfiguredFeatures = indexConfiguredFeatures + 1; restOfConfiguredFeatures < configuredFeatures.length; restOfConfiguredFeatures++) {
-				int result = compare(featureToCompare, configuredFeatures[restOfConfiguredFeatures]);
-				if (result != 0) {
-					if (result == 1) {
-						cPolicy.unconfigure(configuredFeatures[restOfConfiguredFeatures], true, false);
-					}
-					if (result == 2) {
-						cPolicy.unconfigure(featureToCompare, true, false);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * compare two feature references
-	 * returns 0 if the feature are different
-	 * returns 1 if the version of feature 1 is greater than the version of feature 2
-	 * returns 2 if opposite
-	 */
-	private static int compare(IFeatureReference featureRef1, IFeatureReference featureRef2) throws CoreException {
-
-		// TRACE
-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER) {
-			UpdateCore.debug("Compare: " + featureRef1 + " && " + featureRef2); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (featureRef1 == null)
-			return 0;
-
-		IFeature feature1 = null;
-		IFeature feature2 = null;
-		try {
-			feature1 = featureRef1.getFeature(null);
-			feature2 = featureRef2.getFeature(null);
-		} catch (CoreException e) {
-			UpdateCore.warn(null, e);
-			return 0;
-		}
-
-		if (feature1 == null || feature2 == null) {
-			return 0;
-		}
-
-		VersionedIdentifier id1 = feature1.getVersionedIdentifier();
-		VersionedIdentifier id2 = feature2.getVersionedIdentifier();
-
-		if (id1 == null || id2 == null) {
-			return 0;
-		}
-
-		if (id1.getIdentifier() != null && id1.getIdentifier().equals(id2.getIdentifier())) {
-			PluginVersionIdentifier version1 = id1.getVersion();
-			PluginVersionIdentifier version2 = id2.getVersion();
-			if (version1 != null) {
-				if (version1.isGreaterThan(version2)) {
-					return 1;
-				} else {
-					return 2;
-				}
-			} else {
-				return 2;
-			}
-		}
-		return 0;
-	}
-
-	/**
-	 * Validate the list of configured features eliminating extra
-	 * entries (if possible). Make sure we do not leave configured
-	 * nested features with "holes" (ie. unconfigured children)
-	 */
-	public static void checkConfiguredFeatures(IConfiguredSite configuredSite) {
-
-		// Note: if we hit errors in the various computation
-		// methods and throw a CoreException, we will not catch it
-		// in this method. Consequently we will not attempt to
-		// unconfigure any "extra" features because we would 
-		// likely get it wrong. The platform will run with extra features
-		// configured. The runtime will eliminate extra plugins based
-		// on runtime binding rules.
-
-		// determine "proposed" list of configured features
-		ConfiguredSite cSite = (ConfiguredSite) configuredSite;
-		// debug
-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER) {
-			UpdateCore.debug("Validate configuration of site " + cSite.getSite().getURL()); //$NON-NLS-1$
-		}
-		IFeatureReference[] configuredRefs = cSite.getConfiguredFeatures();
-		ArrayList allPossibleConfiguredFeatures = new ArrayList();
-		for (int i = 0; i < configuredRefs.length; i++) {
-			try {
-				IFeature feature = configuredRefs[i].getFeature(null);
-				allPossibleConfiguredFeatures.add(feature);
-				// debug
-				if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER) {
-					UpdateCore.debug("   configured feature " + feature.getVersionedIdentifier().toString()); //$NON-NLS-1$
-				}
-			} catch (CoreException e) {
-				UpdateCore.warn("", e); //$NON-NLS-1$
-			}
-		}
-
-		// find top level features
-		ArrayList topFeatures = computeTopFeatures(allPossibleConfiguredFeatures);
-
-		// find non efix top level features
-		ArrayList topNonEfixFeatures = getNonEfixFeatures(topFeatures);
-
-		// expand non efix top level features (compute full nesting structures).
-		ArrayList configuredFeatures = expandFeatures(topNonEfixFeatures, configuredSite);
-
-		// retrieve efixes that patch enable feature
-		// they must be kept enabled
-		if (topFeatures.size() != topNonEfixFeatures.size()) {
-			Map patches = getPatchesAsFeature(allPossibleConfiguredFeatures);
-			if (!patches.isEmpty()) {
-				// calculate efixes to enable
-				List efixesToEnable = getPatchesToEnable(patches, configuredFeatures);
-				// add efies to keep enable
-				//add them to the enable list
-				for (Iterator iter = efixesToEnable.iterator(); iter.hasNext();) {
-					IFeature element = (IFeature) iter.next();
-					ArrayList expandedEfix = new ArrayList();
-					expandEfixFeature(element, expandedEfix, configuredSite);
-					configuredFeatures.addAll(expandedEfix);
-				}
-			}
-		}
-
-		// compute extra features
-		ArrayList extras = diff(allPossibleConfiguredFeatures, configuredFeatures);
-
-		// unconfigure extra features
-		ConfigurationPolicy cPolicy = cSite.getConfigurationPolicy();
-		for (int i = 0; i < extras.size(); i++) {
-			IFeature feature = (IFeature) extras.get(i);
-			IFeatureReference ref = cSite.getSite().getFeatureReference(feature);
-			try {
-				cPolicy.unconfigure(ref, true, false);
-				// debug
-				if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER) {
-					UpdateCore.debug("Unconfiguring \"extra\" feature " + feature.getVersionedIdentifier().toString()); //$NON-NLS-1$
-				}
-			} catch (CoreException e) {
-				UpdateCore.warn("", e); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/*
-	 *  
-	 */
-	private static ArrayList computeTopFeatures(ArrayList features) {
-		/* map of Feature by VersionedIdentifier */
-		Map topFeatures = new HashMap(features.size());
-		// start with the features passed in
-		for (Iterator it = features.iterator(); it.hasNext();) {
-			IFeature f = ((IFeature) it.next());
-			topFeatures.put(f.getVersionedIdentifier(), f);
-		}
-		// remove all features that nest in some other feature
-		for (Iterator it = features.iterator(); it.hasNext();) {
-			try {
-				IIncludedFeatureReference[] children = ((IFeature) it.next()).getIncludedFeatureReferences();
-				for (int j = 0; j < children.length; j++) {
-					try {
-						topFeatures.remove(children[j].getVersionedIdentifier());
-					} catch (CoreException e1) {
-						if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_WARNINGS)
-							UpdateCore.warn("", e1); //$NON-NLS-1$
-					}
-				}
-			} catch (CoreException e) {
-				UpdateCore.warn("", e); //$NON-NLS-1$
-			}
-		}
-		ArrayList list = new ArrayList();
-		list.addAll(topFeatures.values());
-		// debug
-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER) {
-			UpdateCore.debug("Computed top-level features"); //$NON-NLS-1$
-			for (int i = 0; i < topFeatures.size(); i++) {
-				UpdateCore.debug("   " + ((IFeature) list.get(i)).getVersionedIdentifier().toString()); //$NON-NLS-1$
-			}
-		}
-		return list;
-	}
-
-	/*
-	 * 
-	 */
-	private static ArrayList expandFeatures(ArrayList features, IConfiguredSite configuredSite) {
-		ArrayList result = new ArrayList();
-
-		// expand all top level features
-		for (int i = 0; i < features.size(); i++) {
-			expandFeature((IFeature) features.get(i), result, configuredSite);
-		}
-
-		return result;
-	}
-
-	/*
-	 * 
-	 */
-	private static void expandFeature(IFeature feature, ArrayList features, IConfiguredSite configuredSite) {
-
-		// add feature
-		if (!features.contains(feature)) {
-			features.add(feature);
-			// debug
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER) {
-				UpdateCore.debug("Retaining configured feature " + feature.getVersionedIdentifier().toString()); //$NON-NLS-1$
-			}
-		}
-
-		// add nested children to the list
-		IIncludedFeatureReference[] children = null;
-		try {
-			children = feature.getIncludedFeatureReferences();
-		} catch (CoreException e) {
-			UpdateCore.warn("", e); //$NON-NLS-1$
-			return;
-		}
-
-		for (int j = 0; j < children.length; j++) {
-			IFeature child = null;
-			try {
-				child = children[j].getFeature(null);
-			} catch (CoreException e) {
-				if (!UpdateManagerUtils.isOptional(children[j]))
-					UpdateCore.warn("", e); //$NON-NLS-1$
-				// 25202 do not return right now, the peer children may be ok
-			}
-			if (child != null)
-				expandFeature(child, features, configuredSite);
-		}
-	}
-
-	/*
-	 * 
-	 */
-	private static ArrayList diff(ArrayList left, ArrayList right) {
-		ArrayList result = new ArrayList();
-
-		// determine difference (left "minus" right)
-		for (int i = 0; i < left.size(); i++) {
-			IFeature feature = (IFeature) left.get(i);
-			if (!right.contains(feature))
-				result.add(feature);
-		}
-		return result;
-	}
-
-	/*
-	 * get the list of enabled patches
-	 */
-	private static Map getPatchesAsFeature(ArrayList allConfiguredFeatures) {
-		// get all efixes and the associated patched features
-		Map patches = new HashMap();
-		if (allConfiguredFeatures != null) {
-			Iterator iter = allConfiguredFeatures.iterator();
-			while (iter.hasNext()) {
-				List patchedFeaturesID = new ArrayList();
-				IFeature element = (IFeature) iter.next();
-				// add the patched feature identifiers
-				for (int i = 0; i < element.getImports().length; i++) {
-					if (element.getImports()[i].isPatch()) {
-						VersionedIdentifier id = element.getImports()[i].getVersionedIdentifier();
-						if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER)
-							UpdateCore.debug("Found patch " + element + " for feature identifier " + id); //$NON-NLS-1$ //$NON-NLS-2$
-						patchedFeaturesID.add(id);
-					}
-				}
-
-				if (!patchedFeaturesID.isEmpty()) {
-					patches.put(element, patchedFeaturesID);
-				}
-			}
-		}
-
-		return patches;
-	}
-
-	/*
-	 * retruns the list of pathes-feature who patch enabled features
-	 */
-	private static List getPatchesToEnable(Map efixes, ArrayList configuredFeatures) {
-
-		ArrayList enabledVersionedIdentifier = new ArrayList();
-		Iterator iter = configuredFeatures.iterator();
-		while (iter.hasNext()) {
-			IFeature element = (IFeature) iter.next();
-			enabledVersionedIdentifier.add(element.getVersionedIdentifier());
-		}
-
-		// loop through the patches
-		List result = new ArrayList();
-		iter = efixes.keySet().iterator();
-		while (iter.hasNext()) {
-			boolean toEnable = false;
-			IFeature efixFeature = (IFeature) iter.next();
-			List patchedFeatures = (List) efixes.get(efixFeature);
-			// loop through the 'patched features identifier' the for this patch
-			// see if it the patch patches at least one enable feature
-			Iterator patchedFeaturesIter = patchedFeatures.iterator();
-			while (patchedFeaturesIter.hasNext() && !toEnable) {
-				VersionedIdentifier patchedFeatureID = (VersionedIdentifier) patchedFeaturesIter.next();
-				if (enabledVersionedIdentifier.contains(patchedFeatureID)) {
-					toEnable = true;
-				}
-			}
-
-			if (!toEnable) {
-				if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER)
-				UpdateCore.debug("The Patch " + efixFeature + " does not patch any enabled features: it will be disabled"); //$NON-NLS-1$ //$NON-NLS-2$
-			} else {
-				if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER)
-					UpdateCore.debug("The patch " + efixFeature + " will be enabled."); //$NON-NLS-1$ //$NON-NLS-2$
-				result.add(efixFeature);
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * returns the feature that are not patches
-	 */
-	private static ArrayList getNonEfixFeatures(ArrayList topFeatures) {
-		Map efixFeatures = getPatchesAsFeature(topFeatures);
-		Set keySet = efixFeatures.keySet();
-		if (keySet == null || keySet.isEmpty())
-			return topFeatures;
-
-		Iterator iter = topFeatures.iterator();
-		ArrayList result = new ArrayList();
-		while (iter.hasNext()) {
-			IFeature element = (IFeature) iter.next();
-			if (!keySet.contains(element)) {
-				result.add(element);
-			}
-		}
-		return result;
-	}
-
-
-
-
-	/*
-	 * only enable non-efix children recursively
-	 */
-	private static void expandEfixFeature(IFeature feature, ArrayList features, IConfiguredSite configuredSite) {
-
-		// add feature
-		if (!features.contains(feature)) {
-			features.add(feature);
-			// debug
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_RECONCILER) {
-				UpdateCore.debug("Retaining configured feature " + feature.getVersionedIdentifier().toString()); //$NON-NLS-1$
-			}
-		}
-
-		// add nested children to the list
-		IIncludedFeatureReference[] children = null;
-		try {
-			children = feature.getIncludedFeatureReferences();
-		} catch (CoreException e) {
-			UpdateCore.warn("", e); //$NON-NLS-1$
-			return;
-		}
-
-		for (int j = 0; j < children.length; j++) {
-			IFeature child = null;
-			try {
-				child = children[j].getFeature(null);
-			} catch (CoreException e) {
-				if (!children[j].isOptional())
-					UpdateCore.warn("", e); //$NON-NLS-1$
-				// 25202 do not return right now, the peer children may be ok
-			}
-			if (child != null){
-				if (!UpdateCore.isPatch(child))
-					expandEfixFeature(child, features, configuredSite);
-			}
-		}
-	}	
-	
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteStatusAnalyzer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteStatusAnalyzer.java
deleted file mode 100644
index 156c089..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteStatusAnalyzer.java
+++ /dev/null
@@ -1,358 +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 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.update.internal.core;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.osgi.framework.*;
-import org.osgi.service.packageadmin.*;
-
-/**
- * This class manages the configurations.
- */
-
-public class SiteStatusAnalyzer {
-
-	private static List allConfiguredFeatures; /*VersionedIdentifier */
-	private SiteLocal siteLocal;
-
-	/**
-	 * 
-	 */
-	public SiteStatusAnalyzer(SiteLocal siteLocal) {
-		this.siteLocal = siteLocal;
-	}
-
-	/**
-	 * manages the versionedIdentifier and location of parsed plugins
-	 */
-	public class PluginIdentifier {
-		private VersionedIdentifier id;
-		private String label;
-		private boolean isFragment = false;
-
-		public PluginIdentifier(VersionedIdentifier id, String label, boolean fragment) {
-			this.id = id;
-			this.label = label;
-			this.isFragment = fragment;
-		}
-
-		public VersionedIdentifier getVersionedIdentifier() {
-			return id;
-		}
-
-		public boolean isFragment() {
-			return isFragment;
-		}
-
-		public String getLabel() {
-			return label;
-		}
-	}
-	/*
-	 *  check if the Plugins of the feature are on the plugin path
-	 *  If all the plugins are on the plugin path, and the version match and there is no other version -> HAPPY
-	 *  If all the plugins are on the plugin path, and the version match and there is other version -> AMBIGUOUS
-	 *  If some of the plugins are on the plugin path, but not all -> UNHAPPY
-	 * 	Check on all ConfiguredSites
-	 */
-	private IStatus getStatus(IFeature feature) {
-
-		// validate site
-		ISite featureSite = feature.getSite();
-		if (featureSite == null) {
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)
-				UpdateCore.debug("Cannot determine status of feature:" + feature.getLabel() + ". Site is NULL."); //$NON-NLS-1$ //$NON-NLS-2$
-			String msg = Policy.bind("SiteLocal.UnableToDetermineFeatureStatusSiteNull", new Object[] { feature.getURL()}); //$NON-NLS-1$
-			return createStatus(IStatus.ERROR, IFeature.STATUS_AMBIGUOUS, msg, null);
-		}
-
-		// validate configured site		
-		ConfiguredSite cSite = (ConfiguredSite) featureSite.getCurrentConfiguredSite();
-		if (cSite == null) {
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)
-				UpdateCore.warn("Cannot determine status of feature: " + feature.getLabel() + ". Configured Site is NULL."); //$NON-NLS-1$ //$NON-NLS-2$
-			String msg = Policy.bind("SiteLocal.UnableToDetermineFeatureStatusConfiguredSiteNull", new Object[] { feature.getURL()}); //$NON-NLS-1$
-			return createStatus(IStatus.ERROR, IFeature.STATUS_AMBIGUOUS, msg, null);
-		}
-
-		// check if disable, if so return
-		IFeatureReference ref = cSite.getSite().getFeatureReference(feature);
-		if (ref != null) {
-			if (!cSite.getConfigurationPolicy().isConfigured(ref))
-				return createStatus(IStatus.OK, IFeature.STATUS_DISABLED, "", null); //$NON-NLS-1$
-		} else {
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)
-				UpdateCore.warn("Unable to find reference for feature " + feature + " in site " + cSite.getSite().getURL()); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		// check if broken
-		IStatus status = cSite.getBrokenStatus(feature);
-		if (status.getSeverity() != IStatus.OK) {
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION)
-				UpdateCore.debug("Feature broken:" + feature.getLabel() + ".Site:" + cSite.toString()); //$NON-NLS-1$ //$NON-NLS-2$
-			return status;
-		}
-
-		// check ambiguous against registry [17015]
-		IPluginEntry[] featuresEntries = feature.getPluginEntries();
-		return status(featuresEntries);
-	}
-
-	/*
-	 *  check if the Plugins of the feature are on the plugin path
-	 *  If all the plugins are on the plugin path, and the version match and there is no other version -> HAPPY
-	 *  If all the plugins are on the plugin path, and the version match and there is other version -> AMBIGUOUS
-	 *  If some of the plugins are on the plugin path, but not all -> UNHAPPY
-	 * 	Check on all ConfiguredSites
-	 */
-	public IStatus getFeatureStatus(IFeature feature) throws CoreException {
-
-		IFeature childFeature = null;
-		IStatus childStatus;
-
-		IFeatureReference[] children = feature.getIncludedFeatureReferences();
-
-		// consider disable
-		// check the current feature
-		String msg = Policy.bind("SiteLocal.FeatureDisable"); //$NON-NLS-1$
-		int code = IFeature.STATUS_DISABLED;
-		IStatus featureStatus = getStatus(feature);
-		MultiStatus multiTemp = new MultiStatus(featureStatus.getPlugin(), code, msg, null);
-		if (featureStatus.getSeverity() == IStatus.ERROR) {
-			if (featureStatus.isMultiStatus()) {
-				multiTemp.addAll(featureStatus);
-			} else {
-				multiTemp.add(featureStatus);
-			}
-		}
-		// preserve the worse code through the method (self assesment + children assessment)
-		if (featureStatus.getCode() > code)
-			code = featureStatus.getCode();
-
-		// do not check children if feature is disable
-		if (!(code == IFeature.STATUS_DISABLED)) {
-			for (int i = 0; i < children.length; i++) {
-				if (!UpdateManagerUtils.isOptional(children[i])) {
-					try {
-						childFeature = children[i].getFeature(null);
-					} catch (CoreException e) {
-                        childFeature = null;
-						if (!UpdateManagerUtils.isOptional(children[i]))
-							UpdateCore.warn("Error retrieving feature:" + children[i]); //$NON-NLS-1$
-					}
-
-					if (childFeature == null) {
-						UpdateCore.warn("getFeatureStatus: Feature is null for:" + children[i]); //$NON-NLS-1$
-						// Unable to find children feature, broken
-						Object featureAsPrintableObject = children[i].getURL();
-						featureAsPrintableObject = children[i].getVersionedIdentifier();
-						String msg1 = Policy.bind("SiteLocal.NestedFeatureUnavailable", new Object[] { featureAsPrintableObject }); //$NON-NLS-1$
-						multiTemp.add(createStatus(IStatus.ERROR, IFeature.STATUS_UNHAPPY, msg1, null));
-						if (IFeature.STATUS_UNHAPPY > code)
-							code = IFeature.STATUS_UNHAPPY;
-					} else {
-						childStatus = getFeatureStatus(childFeature);
-						// do not add the status, add the children status as getFeatureStatus
-						// returns a multiStatus 
-						if (childStatus.getCode() == IFeature.STATUS_DISABLED) {
-							VersionedIdentifier versionID = childFeature.getVersionedIdentifier();
-							String featureVer = (versionID == null) ? "" : versionID.getVersion().toString(); //$NON-NLS-1$
-							String msg1 = Policy.bind("SiteLocal.NestedFeatureDisable", childFeature.getLabel(), featureVer); //$NON-NLS-1$
-							multiTemp.add(createStatus(IStatus.ERROR, childStatus.getCode(), msg1, null));
-							if (IFeature.STATUS_UNHAPPY > code)
-								code = IFeature.STATUS_UNHAPPY;
-						}
-						if (childStatus.getSeverity() != IStatus.OK) {
-							VersionedIdentifier versionID = childFeature.getVersionedIdentifier();
-							String featureVer = (versionID == null) ? "" : versionID.getVersion().toString(); //$NON-NLS-1$
-							String msg1 = Policy.bind("SiteLocal.NestedFeatureUnHappy", childFeature.getLabel(), featureVer); //$NON-NLS-1$
-							multiTemp.add(createStatus(IStatus.ERROR, childStatus.getCode(), msg1, null));
-							if (childStatus.getCode() > code)
-								code = childStatus.getCode();
-						}
-					}
-				}
-			}
-		}
-
-		// set message
-		switch (code) {
-			case IFeature.STATUS_HAPPY :
-				msg = Policy.bind("SiteLocal.FeatureHappy"); //$NON-NLS-1$
-				break;
-			case IFeature.STATUS_UNHAPPY :
-				msg = Policy.bind("SiteLocal.FeatureUnHappy"); //$NON-NLS-1$
-				break;
-			case IFeature.STATUS_AMBIGUOUS :
-				msg = Policy.bind("SiteLocal.FeatureAmbiguous"); //$NON-NLS-1$
-				break;
-			case IFeature.STATUS_DISABLED :
-				msg = Policy.bind("SiteLocal.FeatureDisable"); //$NON-NLS-1$
-				break;
-			default :
-				msg = Policy.bind("SiteLocal.FeatureStatusUnknown"); //$NON-NLS-1$
-				break;
-		}
-		MultiStatus multi = new MultiStatus(featureStatus.getPlugin(), code, msg, null);
-		multi.addAll(multiTemp);
-		return multi;
-	}
-
-	/*
-	 * compute the status based on getStatus() rules 
-	 */
-	private IStatus status(IPluginEntry[] featurePlugins) {
-		VersionedIdentifier featurePluginID;
-
-		String happyMSG = Policy.bind("SiteLocal.FeatureHappy"); //$NON-NLS-1$
-		String ambiguousMSG = Policy.bind("SiteLocal.FeatureAmbiguous"); //$NON-NLS-1$
-		IStatus featureStatus = createStatus(IStatus.OK, IFeature.STATUS_HAPPY, "", null); //$NON-NLS-1$
-		MultiStatus multi = new MultiStatus(featureStatus.getPlugin(), IFeature.STATUS_AMBIGUOUS, ambiguousMSG, null);
-		PackageAdmin pkgAdmin = UpdateCore.getPlugin().getPackageAdmin();
-		
-		// is Ambigous if we find a plugin from the feature
-		// with a different version and not the one we are looking
-		for (int i = 0; i < featurePlugins.length; i++) {
-			MultiStatus tempmulti = new MultiStatus(featureStatus.getPlugin(), IFeature.STATUS_AMBIGUOUS, ambiguousMSG, null);
-			featurePluginID = featurePlugins[i].getVersionedIdentifier();
-			boolean found = false;
-			
-			String singleVersionRange = '[' + featurePluginID.getVersion().toString() + ',' + featurePluginID.getVersion().toString() + ']';
-			Bundle[] bundles = pkgAdmin.getBundles(featurePluginID.getIdentifier(), singleVersionRange);
-			if (bundles != null && bundles.length == 1) {
-				found = true;
-				continue;
-			}
-			
-			// Check if there is another feature with this plugin (but different version)
-			// log it
-			bundles = pkgAdmin.getBundles(featurePluginID.getIdentifier(), null);
-			for (int j=0; bundles != null && j<bundles.length; j++ ) {
-				String bundleVersion = (String)bundles[j].getHeaders().get(Constants.BUNDLE_VERSION);
-				IFeature feature = getFeatureForId(new VersionedIdentifier(bundles[j].getSymbolicName(), bundleVersion ));
-				String msg = null;
-				if (feature == null) {
-					Object[] values = new Object[] {bundles[j].getSymbolicName(), featurePluginID.getVersion(), bundleVersion};
-					msg = Policy.bind("SiteLocal.TwoVersionSamePlugin1", values); //$NON-NLS-1$
-				} else {
-					String label = feature.getLabel();
-					String featureVersion = feature.getVersionedIdentifier().getVersion().toString();
-					Object[] values = new Object[] { bundles[j].getSymbolicName(), featurePluginID.getVersion(), bundleVersion, label, featureVersion };
-					msg = Policy.bind("SiteLocal.TwoVersionSamePlugin2", values); //$NON-NLS-1$
-				}
-
-				UpdateCore.warn("Found another version of the same plugin on the path:" + bundles[j].getSymbolicName() + " " + bundleVersion); //$NON-NLS-1$ //$NON-NLS-2$
-				tempmulti.add(createStatus(IStatus.ERROR, IFeature.STATUS_AMBIGUOUS, msg, null));
-			}
-	
-
-			// if we haven't found the exact plugin, add the children
-			// of tempMulti (i,e the other we found) 
-			// if we have no children, we have a problem as a required plugin is not there at all
-			if (!found) {
-				if (tempmulti.getChildren().length > 0) {
-					multi.addAll(tempmulti);
-				} else {
-					if (multi.getCode() != IFeature.STATUS_UNHAPPY) {
-						String unhappyMSG = Policy.bind("SiteLocal.FeatureUnHappy"); //$NON-NLS-1$
-						MultiStatus newMulti = new MultiStatus(featureStatus.getPlugin(), IFeature.STATUS_UNHAPPY, unhappyMSG, null);
-						newMulti.addAll(multi);
-						multi = newMulti;
-					}
-					String msg = Policy.bind("SiteLocal.NoPluginVersion", featurePluginID.getIdentifier()); //$NON-NLS-1$
-					multi.add(createStatus(IStatus.ERROR, IFeature.STATUS_UNHAPPY, msg, null));
-				}
-			}
-		}
-
-		if (!multi.isOK())
-			return multi;
-
-		// we return happy as we consider the isBroken verification has been done
-		return createStatus(IStatus.OK, IFeature.STATUS_HAPPY, happyMSG, null);
-	}
-	/*
-	 * creates a Status
-	 */
-	private IStatus createStatus(int statusSeverity, int statusCode, String msg, Exception e) {
-		String id = UpdateCore.getPlugin().getBundle().getSymbolicName();
-
-		StringBuffer completeString = new StringBuffer(""); //$NON-NLS-1$
-		if (msg != null)
-			completeString.append(msg);
-		if (e != null) {
-			completeString.append("\r\n["); //$NON-NLS-1$
-			completeString.append(e.toString());
-			completeString.append("]\r\n"); //$NON-NLS-1$
-		}
-		return new Status(statusSeverity, id, statusCode, completeString.toString(), e);
-	}
-
-
-	/*
-	 * returns all the configured fetaures
-	 */
-	private IFeature[] getAllConfiguredFeatures() {
-		if (allConfiguredFeatures == null) {
-
-			allConfiguredFeatures = new ArrayList();
-			IConfiguredSite[] allConfiguredSites = siteLocal.getCurrentConfiguration().getConfiguredSites();
-
-			for (int i = 0; i < allConfiguredSites.length; i++) {
-				IFeatureReference[] refs = allConfiguredSites[i].getConfiguredFeatures();
-				IFeature feature = null;
-				for (int j = 0; j < refs.length; j++) {
-					feature = null;
-					try {
-						feature = refs[j].getFeature(null);
-					} catch (CoreException e) {
-					}
-					if (feature != null) {
-						allConfiguredFeatures.add(feature);
-					}
-				}
-			}
-		}
-
-		IFeature[] features = new IFeature[allConfiguredFeatures.size()];
-		if (allConfiguredFeatures.size() > 0) {
-			allConfiguredFeatures.toArray(features);
-		}
-		return features;
-	}
-
-	/*
-	 * returns the Feature that declares this versionedIdentifier or null if none found
-	 */
-	private IFeature getFeatureForId(VersionedIdentifier id) {
-
-		if (id == null)
-			return null;
-
-		IFeature[] allFeatures = getAllConfiguredFeatures();
-		IFeature currentFeature = null;
-		IPluginEntry[] allPlugins = null;
-		IPluginEntry currentPlugin = null;
-		for (int i = 0; i < allFeatures.length; i++) {
-			currentFeature = allFeatures[i];
-			allPlugins = currentFeature.getPluginEntries();
-			for (int j = 0; j < allPlugins.length; j++) {
-				currentPlugin = allPlugins[j];
-				if (id.equals(currentPlugin.getVersionedIdentifier()))
-					return currentFeature;
-			}
-		}
-		return null;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteTypeFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteTypeFactory.java
deleted file mode 100644
index 5cd3ad4..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteTypeFactory.java
+++ /dev/null
@@ -1,88 +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 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.update.internal.core;

-

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * 

- */

-public final class SiteTypeFactory {

-	

-

-	/**

-	 * extension point ID

-	 */

-	public static final String SIMPLE_EXTENSION_ID = "siteTypes";	 //$NON-NLS-1$

-	

-

-	private static SiteTypeFactory inst;

-	

-	private Map factories;

-

-	/**

-	 * hide ctr 

-	 */

-	private SiteTypeFactory() {

-	}

-

-	public static SiteTypeFactory getInstance() {

-		if (inst == null)

-			inst = new SiteTypeFactory();

-		return inst;

-	}

-

-

-	/**

-	 * return the factory for the type

-	 */

-	public ISiteFactory getFactory(String type) throws CoreException {

-			//

-			Object instance = getFactories().get(type);

-			if (instance==null) {

-				instance = createFactoryFor(type);

-				getFactories().put(type,instance);

-			}

-			return (ISiteFactory) instance;

-	}

-

-	/**

-	 * 

-	 */

-	private ISiteFactory createFactoryFor(String type) throws CoreException {

-		ISiteFactory result = null;

-		

-		String pluginID = UpdateCore.getPlugin().getBundle().getSymbolicName();

-		IExtensionRegistry registry = Platform.getExtensionRegistry();

-		IConfigurationElement[] elements = registry.getConfigurationElementsFor(pluginID,SIMPLE_EXTENSION_ID,type);

-		if (elements==null || elements.length==0){

-			throw Utilities.newCoreException(Policy.bind("SiteTypeFactory.UnableToFindSiteFactory",type),null); //$NON-NLS-1$

-		} else {

-			IConfigurationElement element = elements[0];

-			result = (ISiteFactory)element.createExecutableExtension("class"); //$NON-NLS-1$

-		}

-		return result;

-	}

-

-	/**

-	 * Gets the actories.

-	 * @return Returns a Map

-	 */

-	private Map getFactories() {

-		if (factories==null) factories = new HashMap();

-			return factories;

-	}

-

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteURLContentProvider.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteURLContentProvider.java
deleted file mode 100644
index 974bb61..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteURLContentProvider.java
+++ /dev/null
@@ -1,77 +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 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.update.internal.core;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * 

- */

-public class SiteURLContentProvider extends SiteContentProvider {

-	

-	public static final String SITE_TYPE = "org.eclipse.update.core.http"; //$NON-NLS-1$

-

-	/**

-	 * Constructor for HTTPSite

-	 */

-	public SiteURLContentProvider(URL url) {

-		super(url);

-	}

-	

-	/*

-	 * @see ISiteContentProvider#getArchiveReference(String)

-	 */

-	public URL getArchiveReference(String archiveId)  throws CoreException {

-		URL contentURL = null;

-		

-		contentURL = getArchiveURLfor(archiveId);

-		// if there is no mapping in the site.xml

-		// for this archiveId, use the default one

-		if (contentURL==null) {

-			return super.getArchiveReference(archiveId);

-		}

-		

-		return contentURL;

-	}

-

-	/**

-	 * return the URL associated with the id of teh archive for this site

-	 * return null if the archiveId is null, empty or 

-	 * if teh list of archives on the site is null or empty

-	 * of if there is no URL associated with the archiveID for this site

-	 */

-	private URL getArchiveURLfor(String archiveId) {

-		URL result = null;

-		boolean found = false;

-

-		IArchiveReference[] siteArchives = getSite().getArchives();

-		if (siteArchives.length > 0) {

-			for (int i = 0; i < siteArchives.length && !found; i++) {

-				if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_INSTALL)

-					UpdateCore.debug("GetArchiveURL for:"+archiveId+" compare to "+siteArchives[i].getPath()); //$NON-NLS-1$ //$NON-NLS-2$

-				if (archiveId.trim().equalsIgnoreCase(siteArchives[i].getPath())) {

-					result = siteArchives[i].getURL();

-					found = true;

-					break;

-				}

-			}

-		}

-		return result;

-	}

-

-

-

-	}

-

-

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteURLFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteURLFactory.java
deleted file mode 100644
index 7fd5067..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteURLFactory.java
+++ /dev/null
@@ -1,99 +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 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-

-/**

- * An update site factory.

- *

- */

-public class SiteURLFactory extends BaseSiteFactory implements ISiteFactoryExtension {

-	

-	/*

-	 * For backward compatibility.

-	 */

-	public ISite createSite(URL url) throws CoreException, InvalidSiteTypeException {

-		return createSite(url, null);

-	}

-	/*

-	 * @see ISiteFactory#createSite(URL, boolean)

-	 * 

-	 * the URL can be of the following form

-	 * 1 protocol://...../

-	 * 2 protocol://.....

-	 * 3 protocol://..../site.xml

-	 * 

-	 * 1 If the file of the file of teh url ends with '/', attempt to open the stream.

-	 * if it fails, add site.xml and attempt to open the stream

-	 * 

-	 * 2 attempt to open the stream

-	 * 	fail

-	 * 		add '/site.xml' and attempt to open the stream

-	 * 	sucess

-	 * 		attempt to parse, if it fails, add '/site.xml' and attempt to open teh stream

-	 * 

-	 * 3 open the stream	 

-	 */

-	public ISite createSite(URL url, IProgressMonitor monitor) throws CoreException, InvalidSiteTypeException {

-		Site site = null;

-		InputStream siteStream = null;

-	

-		try {

-			SiteURLContentProvider contentProvider = new SiteURLContentProvider(url);

-	

-			URL resolvedURL = URLEncoder.encode(url);

-			Response response = UpdateCore.getPlugin().get(resolvedURL);

-			UpdateManagerUtils.checkConnectionResult(response, resolvedURL);

-			siteStream = response.getInputStream(monitor);

-			// the stream can be null if the user cancels the connection

-			if (siteStream==null) return null;

-

-			SiteModelFactory factory = this;

-			site = (Site) factory.parseSite(siteStream);

-	

-			site.setSiteContentProvider(contentProvider);

-			contentProvider.setSite(site);

-			site.resolve(url, url);

-			site.markReadOnly();

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException(Policy.bind("SiteURLFactory.UnableToCreateURL", url == null ? "" : url.toExternalForm()), e);	//$NON-NLS-1$ //$NON-NLS-2$

-		} catch (IOException e) {

-			throw Utilities.newCoreException(Policy.bind("SiteURLFactory.UnableToAccessSiteStream", url == null ? "" : url.toExternalForm()), ISite.SITE_ACCESS_EXCEPTION, e);	//$NON-NLS-1$ //$NON-NLS-2$

-		} finally {

-			if (siteStream != null) {

-				try {

-					siteStream.close();

-				} catch (IOException e) {

-				}

-			}

-		}

-		return site;

-	}

-

-	/*

-	 * @see SiteModelFactory#canParseSiteType(String)

-	 */

-	public boolean canParseSiteType(String type) {

-		return (super.canParseSiteType(type) || SiteURLContentProvider.SITE_TYPE.equalsIgnoreCase(type));

-	}

-    /* (non-Javadoc)

-     * @see org.eclipse.update.core.BaseSiteFactory#createFeatureReferenceModel()

-     */

-    public SiteFeatureReferenceModel createFeatureReferenceModel() {

-        return new UpdateSiteFeatureReference();

-    }

-

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/TargetFeature.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/TargetFeature.java
deleted file mode 100644
index 3697250..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/TargetFeature.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.core;
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-
-/**
- * 
- */
-public class TargetFeature extends Feature {
-
-
-	/**
-	 * The content consumer of the DefaultFeature
-	 */
-	private IFeatureContentConsumer contentConsumer;
-	
-
-	/**
-	 * Constructor for TargetFeature.
-	 */
-	public TargetFeature() {
-		super();
-	}
-
-	/**
-	 * Sets the content Consumer
-	 */
-	public void setContentConsumer(IFeatureContentConsumer contentConsumer) {
-		this.contentConsumer = contentConsumer;
-		contentConsumer.setFeature(this);
-	}
-
-	/*
-	 * @see IFeature#getFeatureContentConsumer()
-	 */
-	public IFeatureContentConsumer getFeatureContentConsumer() throws CoreException {
-		if (this.contentConsumer == null) {
-			throw Utilities.newCoreException( Policy.bind("Feature.NoFeatureContentConsumer", getURL().toExternalForm()), null); //$NON-NLS-1$
-		}
-		return contentConsumer;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/URLEncoder.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/URLEncoder.java
deleted file mode 100644
index ca831a0..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/URLEncoder.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.core;

-

-

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-/**

- * Encodes a <code>URL</code> into an <code>ASCII</code> readable

- * <code>URL</code> that is safe for transport. Encoded

- * <code>URL</code>s can be decoded using the <code>URLDecoder</code>.

- *

- * @see URLDecoder

- */

-public final class URLEncoder {

-	/**

-	 * Prevents instances from being created.

-	 */

-	private URLEncoder() {

-	}

-	/**

-	 * Encodes the given file and reference parts of a <code>URL</code> into

-	 * an <code>ASCII</code> readable <code>String</code> that is safe for

-	 * transport. Returns the result.

-	 *

-	 * @return the result of encoding the given file and reference parts of

-	 *         a <code>URL</code> into an <code>ASCII</code> readable

-	 *         <code>String</code> that is safe for transport

-	 */

-	public static String encode(String file, String query, String ref) {

-		StringBuffer buf = new StringBuffer();

-		StringTokenizer tokenizer = new StringTokenizer(file, "/", true); //$NON-NLS-1$

-

-		while (tokenizer.hasMoreTokens()) {

-			String token = tokenizer.nextToken();

-			if (token.equals("/")) { //$NON-NLS-1$

-				buf.append(token);

-			} else {

-				buf.append(encodeSegment(token));

-			}

-		}

-

-		if (query != null){

-			buf.append('?');

-			buf.append(query);

-		}

-

-		if (ref != null) {

-			buf.append('#');

-			buf.append(encodeSegment(ref));

-		}

-

-		return buf.toString();

-	}

-	/**

-	 * Encodes the given <code>URL</code> into an <code>ASCII</code>

-	 * readable <code>URL</code> that is safe for transport. Returns the

-	 * result.

-	 *

-	 * @return the result of encoding the given <code>URL</code> into an

-	 *         <code>ASCII</code> readable <code>URL</code> that is safe for

-	 *         transport

-	 */

-	public static URL encode(URL url) throws MalformedURLException {

-		// encode the path not the file as the URL may contain a query

-		String file = url.getPath();

-		String query = url.getQuery();

-		String ref = url.getRef();

-		String auth = url.getAuthority();

-		String host = url.getHost();

-		int port = url.getPort();

-

-		// do not encode if there is an authority, such as in

-		// ftp://user:password@host:port/path 

-		// because the URL constructor does not allow it

-		URL result = url;

-		if (auth == null || auth.equals("") || auth.equals(host+":"+ port)) // $NON-NLS-1$ $NON-NLS-2$

-			result =  new URL(url.getProtocol(), host, port, encode(file, query, ref));

-		return result;

-	}

-	private static String encodeSegment(String segment) {

-		

-		// if we find a '%' in the string, consider the URL to be already encoded

-		if (segment.indexOf('%')!=-1) return segment;

-		

-		StringBuffer result = new StringBuffer(segment.length());

-

-		for (int i = 0; i < segment.length(); ++i) {

-			char c = segment.charAt(i);

-			if (mustEncode(c)) {

-				byte[] bytes = null;

-				try {

-					bytes = new Character(c).toString().getBytes("UTF8"); //$NON-NLS-1$

-				} catch (UnsupportedEncodingException e) {

-					Assert.isTrue(false, e.getMessage());

-				}

-				for (int j = 0; j < bytes.length; ++j) {

-					result.append('%');

-					result.append(Integer.toHexString((bytes[j] >> 4) & 0x0F));

-					result.append(Integer.toHexString(bytes[j] & 0x0F));

-				}

-			} else {

-				result.append(c);

-			}

-		}

-

-		return result.toString();

-	}

-	private static boolean mustEncode(char c) {

-		if (c >= 'a' && c <= 'z') {

-			return false;

-		}

-

-		if (c >= 'A' && c <= 'Z') {

-			return false;

-		}

-

-		if (c >= '0' && c <= '9') {

-			return false;

-		}

-

-		if (c >= '\'' && c <= '.') {

-			return false;

-		}

-

-		if (c == '!' || c == '$' || c == '_') {

-			return false;

-		}

-

-		// needed otherwise file:///c:/file/ becomes file:///C%3a/file/

-		if (c ==':'){

-			return false;

-		}

-		return true;

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/URLKey.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/URLKey.java
deleted file mode 100644
index 6b1d9b5..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/URLKey.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.core;
- 
-import java.net.*;
-
-
-
-/**
- * 
- * 
- */
-public class URLKey {
-
-	private URL url;
-	
-	/**
-	 * Constructor for URLKey.
-	 */
-	public URLKey(URL url) {
-		super();
-		this.url = url;
-	}
-
-	/**
-	 * @see java.lang.Object#equals(Object)
-	 */
-	public boolean equals(Object obj) {
-			if (obj == null) {
-				return false;
-			}
-
-			if (this == obj) {
-				return true;
-			}
-
-			if (obj instanceof URLKey) {
-				return equals(((URLKey) obj).getURL());
-			}
-
-			if (!(obj instanceof URL)) {
-				return false;
-			}
-
-			URL url2 = (URL)obj;
-			if (url == url2) {
-				return true;
-			}
-
-			return UpdateManagerUtils.sameURL(url,url2);
-	}
-
-	/**
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return url.hashCode();
-	}
-
-	/**
-	 * Returns the url.
-	 * @return URL
-	 */
-	public URL getURL() {
-		return url;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateCore.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateCore.java
deleted file mode 100644
index 836a2c1..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateCore.java
+++ /dev/null
@@ -1,343 +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 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.update.internal.core;
-
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.configurator.*;
-import org.osgi.framework.*;
-import org.osgi.service.packageadmin.*;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class UpdateCore extends Plugin {
-
-	// debug options
-	public static boolean DEBUG;
-	public static boolean DEBUG_SHOW_INSTALL;
-	public static boolean DEBUG_SHOW_PARSING;
-	public static boolean DEBUG_SHOW_WARNINGS;
-	public static boolean DEBUG_SHOW_CONFIGURATION;
-	public static boolean DEBUG_SHOW_TYPE;
-	public static boolean DEBUG_SHOW_WEB;
-	public static boolean DEBUG_SHOW_IHANDLER;
-	public static boolean DEBUG_SHOW_RECONCILER;
-
-
-	public static String HTTP_PROXY_HOST = "org.eclipse.update.core.proxy.host"; //$NON-NLS-1$
-	public static String HTTP_PROXY_PORT = "org.eclipse.update.core.proxy.port"; //$NON-NLS-1$
-	public static String HTTP_PROXY_ENABLE = "org.eclipse.update.core.proxy.enable"; //$NON-NLS-1$
-	
-	// preference keys
-	public static final String P_HTTP_HOST = "http.proxyHost"; //$NON-NLS-1$
-	public static final String P_HTTP_PORT = "http.proxyPort";	 //$NON-NLS-1$
-	public static final String P_HTTP_PROXY = "http.proxySet"; //$NON-NLS-1$
-		
-	private static final String PREFIX = "org.eclipse.update.core"; //$NON-NLS-1$
-	public static final String P_HISTORY_SIZE = PREFIX + ".historySize"; //$NON-NLS-1$
-	public static final String P_CHECK_SIGNATURE = PREFIX + ".checkSignature"; //$NON-NLS-1$
-	public static final String P_UPDATE_VERSIONS = PREFIX + ".updateVersions"; //$NON-NLS-1$
-	public static final String EQUIVALENT_VALUE = "equivalent"; //$NON-NLS-1$
-	public static final String COMPATIBLE_VALUE = "compatible"; //$NON-NLS-1$
-	
-	public static int DEFAULT_HISTORY = 100;//Integer.MAX_VALUE;
-	
-	//The shared instance.
-	private static UpdateCore plugin;
-
-	//log
-	private static UpdateManagerLogWriter log;
-	private static final String LOG_FILE="install.log"; //$NON-NLS-1$
-	
-	//Connection manager
-	private ConnectionThreadManager connectionManager;
-
-	// bundle data
-	private BundleContext context;
-	private ServiceTracker pkgAdminTracker;
-	
-	/**
-	 * The constructor.
-	 */
-	public UpdateCore() {
-		plugin = this;
-	}
-	
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static UpdateCore getPlugin() {
-		return plugin;
-	}
-	
-	/**
-	 * Returns the manager that manages URL connection threads.
-	 */
-	public ConnectionThreadManager getConnectionManager() {
-		if (connectionManager==null)
-			connectionManager = new ConnectionThreadManager();
-		return connectionManager;
-	}
-
-	private boolean getBooleanDebugOption(String flag, boolean dflt) {
-		String result = Platform.getDebugOption(flag);
-		if (result == null)
-			return dflt;
-		else
-			return result.trim().equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-
-	/**
-	 * dumps a String in the trace
-	 */
-	public static void debug(String s) {
-		StringBuffer msg = new StringBuffer();
-		msg.append(getPlugin().toString());
-		msg.append("^"); //$NON-NLS-1$
-		msg.append(Integer.toHexString(Thread.currentThread().hashCode()));
-		msg.append(" "); //$NON-NLS-1$
-		msg.append(s);
-		System.out.println(msg.toString());
-	}
-	
-	/**
-	 * Dumps a String in the log if WARNING is set to true
-	 */
-	public static void warn(String s) {
-		if (DEBUG && DEBUG_SHOW_WARNINGS) {
-			if (s!=null){
-				s="WARNING: "+s; //$NON-NLS-1$
-			}
-			log(s, null); 
-		}
-	}
-
-	/**
-	 * Dumps an exception in the log if WARNING is set to true
-	 * 
-	 * @param s log string
-	 * @param e exception to be logged
-	 * @since 2.0
-	 */
-	public static void warn(String s, Throwable e) {
-		if (DEBUG && DEBUG_SHOW_WARNINGS){
-			if (s!=null){
-				s="UPDATE MANAGER INFO: "+s; //$NON-NLS-1$
-			}
-			log(s,e);
-		}
-	}
-			
-	/**
-	 * Logs a status
-	 */
-	public static void log(IStatus status){
-		UpdateCore.getPlugin().getLog().log(status);		
-	}
-	
-	/**
-	 * Logs an error
-	 */
-	public static void log(Throwable e){		
-		log("",e); //$NON-NLS-1$
-	}	
-	
-	/**
-	 * Logs a string and an  error
-	 */
-	public static void log(String msg, Throwable e){
-		IStatus status = null;
-		if (e instanceof CoreException) 
-			status = ((CoreException)e).getStatus();
-		else 
-			status = Utilities.newCoreException(msg,e).getStatus();		
-		if (status!=null)
-			log(status);
-	}		
-	/*
-	 * Method log.
-	 * @param newConfiguration
-	 */
-	public static void log(IInstallConfiguration newConfiguration) {
-		if (log!=null)
-			log.log(newConfiguration);
-	}
-
-	/*
-	 * Get update log location relative to platform configuration
-	 */
-	private static File getInstallLogFile() throws IOException {
-		
-		IPlatformConfiguration config = ConfiguratorUtils.getCurrentPlatformConfiguration();		
-		URL configurationLocation = config.getConfigurationLocation();
-		if (configurationLocation==null){
-			warn("Unable to retrieve location for update manager log file"); //$NON-NLS-1$
-			return null;
-		}
-//		URL configLocation = Platform.resolve(configurationLocation);
-		File updateStateLocation = null;
-
-		if ("file".equalsIgnoreCase(configurationLocation.getProtocol())) { //$NON-NLS-1$
-			File path = new File(configurationLocation.getFile());
-			updateStateLocation = new File(path.getParentFile(), LOG_FILE);
-		}
-		return updateStateLocation;
-	}
-
-	/**
-	 * Sends the GET request to the server and returns the server's
-	 * response.
-	 *
-	 * @param url the URL to open on the server
-	 * @return the server's response
-	 * @throws IOException if an I/O error occurs. Reasons include:
-	 * <ul>
-	 * <li>The client is closed.
-	 * <li>The client could not connect to the server
-	 * <li>An I/O error occurs while communicating with the server
-	 * <ul>
-	 */
-	public Response get(URL url) throws IOException {
-		//Request request = null;
-		Response response = null;
-		
-		if ("file".equals(url.getProtocol())) { //$NON-NLS-1$
-			response = new FileResponse(url);
-		} else if (url != null && url.getProtocol().startsWith("http")) { //$NON-NLS-1$
-			response = new HttpResponse(url);
-		} else {
-			response = new OtherResponse(url);
-		}
-		
-		/*else {
-			try {
-				request = new Request("GET", url, null);
-				response = client.invoke(request);
-			} finally {
-				if (request != null) {
-					try {
-						request.close();
-					} catch (IOException e) {
-						e.printStackTrace();
-					}
-				}
-			}
-		}*/
-		return response;
-	}
-	
-	/*
-	 * Returns true if the feature is a patch
-	 */
-	public static boolean isPatch(IFeature candidate) {
-		IImport[] imports = candidate.getImports();
-
-		for (int i = 0; i < imports.length; i++) {
-			IImport iimport = imports[i];
-			if (iimport.isPatch())
-				return true;
-		}
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		this.context = context;
-
-		Policy.localize("org.eclipse.update.internal.core.messages"); //$NON-NLS-1$
-		DEBUG = getBooleanDebugOption("org.eclipse.update.core/debug", false); //$NON-NLS-1$
-
-		if (DEBUG) {
-			DEBUG_SHOW_WARNINGS = getBooleanDebugOption("org.eclipse.update.core/debug/warning", false); //$NON-NLS-1$
-			DEBUG_SHOW_PARSING = getBooleanDebugOption("org.eclipse.update.core/debug/parsing", false); //$NON-NLS-1$
-			DEBUG_SHOW_INSTALL = getBooleanDebugOption("org.eclipse.update.core/debug/install", false); //$NON-NLS-1$
-			DEBUG_SHOW_CONFIGURATION = getBooleanDebugOption("org.eclipse.update.core/debug/configuration", false); //$NON-NLS-1$
-			DEBUG_SHOW_TYPE = getBooleanDebugOption("org.eclipse.update.core/debug/type", false); //$NON-NLS-1$
-			DEBUG_SHOW_WEB = getBooleanDebugOption("org.eclipse.update.core/debug/web", false); //$NON-NLS-1$
-			DEBUG_SHOW_IHANDLER = getBooleanDebugOption("org.eclipse.update.core/debug/installhandler", false); //$NON-NLS-1$
-			DEBUG_SHOW_RECONCILER = getBooleanDebugOption("org.eclipse.update.core/debug/reconciler", false); //$NON-NLS-1$
-		}
-		
-		//
-		try {
-			File logFile = getInstallLogFile();
-			if (logFile!=null)
-				log = new UpdateManagerLogWriter(logFile);
-		} catch (IOException e){
-			warn("",e); //$NON-NLS-1$
-		}
-		
-		initProxySettings();
-	}
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		
-		JarContentReference.shutdown(); // make sure we are not leaving jars open
-		Utilities.shutdown(); // cleanup temp area
-		if (log!=null)
-			log.shutdown();
-		if (connectionManager!=null)
-			connectionManager.shutdown();
-		
-		this.context = null;
-		if (pkgAdminTracker != null) {
-			pkgAdminTracker.close();
-			pkgAdminTracker = null;
-		}
-	}
-	
-	BundleContext getBundleContext() {
-		return context;
-	}
-	
-	PackageAdmin getPackageAdmin() {
-		if (pkgAdminTracker == null) {
-			pkgAdminTracker = new ServiceTracker(context, PackageAdmin.class.getName(), null);
-			pkgAdminTracker.open();
-		}
-		return (PackageAdmin)pkgAdminTracker.getService();
-	}
-	
-	private void initProxySettings() {
-		// Get system properties for proxy setup.
-		// If system properties are not set then pick up values from preference store
-		String httpProxyHost = System.getProperty(P_HTTP_HOST) != null ? 
-				System.getProperty(P_HTTP_HOST)
-				: getPluginPreferences().getString(HTTP_PROXY_HOST);
-		if ("".equals(httpProxyHost)) //$NON-NLS-1$
-			httpProxyHost = null;
-		
-		String httpProxyPort = System.getProperty(P_HTTP_PORT) != null ?
-				System.getProperty(P_HTTP_PORT)
-				: getPluginPreferences().getString(HTTP_PROXY_PORT);
-		if ("".equals(httpProxyPort)) //$NON-NLS-1$
-			httpProxyPort = null;
-		
-		boolean httpProxyEnable = System.getProperty(P_HTTP_HOST) != null && System.getProperty(P_HTTP_PORT) != null ? 
-				true
-				: getPluginPreferences().getBoolean(HTTP_PROXY_ENABLE);
-		
-		SiteManager.setHttpProxyInfo(httpProxyEnable, httpProxyHost, httpProxyPort );
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateManagerLogWriter.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateManagerLogWriter.java
deleted file mode 100644
index ad98699..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateManagerLogWriter.java
+++ /dev/null
@@ -1,291 +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 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.update.internal.core;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.configurator.*;
-
-
-/**
- * A log writer that writes update manager log entries.  
- */
-public class UpdateManagerLogWriter {
-	private File logFile = null;
-	private Writer log = null;
-
-	private static final String CONFIGURATION = "!CONFIGURATION"; //$NON-NLS-1$
-	private static final String ACTIVITY = "!ACTIVITY"; //$NON-NLS-1$
-
-	private static final String SUCCESS = "success"; //$NON-NLS-1$
-	private static final String FAILURE = "failure"; //$NON-NLS-1$
-
-	private static final String FEATURE_INSTALL = "feature-install"; //$NON-NLS-1$
-	private static final String FEATURE_REMOVE = "feature-remove"; //$NON-NLS-1$
-	private static final String SITE_INSTALL = "site-install"; //$NON-NLS-1$
-	private static final String SITE_REMOVE = "site-remove"; //$NON-NLS-1$
-	private static final String UNCONFIGURE = "feature-disable"; //$NON-NLS-1$
-	private static final String CONFIGURE = "feature-enable"; //$NON-NLS-1$
-	private static final String REVERT = "revert"; //$NON-NLS-1$
-	private static final String RECONCILIATION = "reconciliation"; //$NON-NLS-1$
-	private static final String PRESERVED = "preserve-configuration"; //$NON-NLS-1$	
-	private static final String UNKNOWN = "unknown"; //$NON-NLS-1$	
-
-	private static final String LINE_SEPARATOR;
-
-	static {
-		String s = System.getProperty("line.separator"); //$NON-NLS-1$
-		LINE_SEPARATOR = s == null ? "\n" : s; //$NON-NLS-1$
-	}
-
-	/*
-	 * 
-	 */
-	public UpdateManagerLogWriter(File file) {
-		this.logFile = file;
-		UpdateCore.warn("UPDATE MANAGER LOG Location: "+file.getAbsolutePath()); //$NON-NLS-1$
-
-		// If the file does not exist, prime it with the sites in the exisiting config
-		if (!file.exists())
-			initLog();
-	}
-	
-	/*
-	 * Initializes the log with the original configuration
-	 */
-	private void initLog() {
-		try {
-			IPlatformConfiguration runtimeConfig = ConfiguratorUtils.getCurrentPlatformConfiguration();
-			IPlatformConfiguration.ISiteEntry[] sites = runtimeConfig.getConfiguredSites();
-			ConfigurationActivity[] activities = new ConfigurationActivity[sites.length];
-			for (int i=0; i<sites.length; i++) {
-				activities[i] = new ConfigurationActivity(IActivity.ACTION_SITE_INSTALL);
-				activities[i].setLabel(Platform.asLocalURL(sites[i].getURL()).toExternalForm());
-				activities[i].setDate(new Date());
-				activities[i].setStatus(IActivity.STATUS_OK);
-			}
-			Date date = new Date(runtimeConfig.getChangeStamp());
-			safeWriteConfiguration(date, activities);
-		} catch (Exception e) {
-			// silently ignore errors
-		}
-	}
-
-	/*
-	 * 
-	 */
-	private void closeLogFile() throws IOException {
-		try {
-			if (log != null) {
-				log.flush();
-				log.close();
-			}
-		} finally {
-			log = null;
-		}
-	}
-	
-	/*
-	 * 
-	 */
-	public void log(IInstallConfiguration installConfig) {
-		safeWriteConfiguration(installConfig.getCreationDate(), installConfig.getActivities());
-	}
-	
-	
-	/*
-	 * 
-	 */
-	private void openLogFile() {
-		try {
-			log = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(logFile.getAbsolutePath(), true), "UTF-8")); //$NON-NLS-1$
-		} catch (IOException e) {
-			// there was a problem opening the log file so log to the console
-			log = logForStream(System.err);
-		}
-	}
-	
-    /*
-     * 
-     */
-	private String getFormattedDate(Date date) {
-		try {
-			DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy kk:mm:ss.SS"); //$NON-NLS-1$
-			return formatter.format(date);
-		} catch (Exception e) {
-			// If there were problems writing out the date, ignore and
-			// continue since that shouldn't stop us from losing the rest
-			// of the information
-		}
-		return Long.toString(System.currentTimeMillis());
-	}
-	
-	/*
-	 * 
-	 */
-	private Writer logForStream(OutputStream output) {
-		try {
-			return new BufferedWriter(new OutputStreamWriter(output, "UTF-8")); //$NON-NLS-1$
-		} catch (UnsupportedEncodingException e) {
-			return new BufferedWriter(new OutputStreamWriter(output));
-		}
-	}
-	
-	
-	/*
-	 * Shuts down the update manager log.
-	 */
-	public synchronized void shutdown() {
-		try {
-			if (logFile != null) {
-				closeLogFile();
-				logFile = null;
-			} else {
-				if (log != null) {
-					Writer old = log;
-					log = null;
-					old.flush();
-					old.close();
-				}
-			}
-		} catch (IOException e) {
-			//we've shutdown the log, so not much else we can do!
-			e.printStackTrace();
-		}
-	}
-
-	/*
-	 * 
-	 */
-	private synchronized void safeWriteConfiguration(Date date, IActivity[] activities) {
-		// thread safety: (Concurrency003)
-		if (logFile != null)
-			openLogFile();
-		if (log == null)
-			log = logForStream(System.err);
-		try {
-			try {
-				write(date, activities);
-			} finally {
-				if (logFile != null)
-					closeLogFile();
-				else
-					log.flush();
-			}
-		} catch (Exception e) {
-			System.err.println("An exception occurred while writing to the update manager log:"); //$NON-NLS-1$
-			e.printStackTrace(System.err);
-			System.err.println("Logging to the console instead."); //$NON-NLS-1$
-			//we failed to write, so dump log entry to console instead
-			try {
-				log = logForStream(System.err);
-				write(date, activities);
-				log.flush();
-			} catch (Exception e2) {
-				System.err.println("An exception occurred while logging to the console:"); //$NON-NLS-1$
-				e2.printStackTrace(System.err);
-			}
-		} finally {
-			log = null;
-		}
-	}
-	
-
-	/*
-	 * !CONFIGURATION <label>
-	 */
-	private void write(Date date, IActivity[] activities) throws IOException {
-		writeln();
-		write(CONFIGURATION);
-		writeSpace();	
-		write(String.valueOf(date.getTime()));
-		writeSpace();
-		write(date.toString());
-		writeln();
-		for (int i = 0; i < activities.length; i++) {
-			write(activities[i]);
-		}				
-	}
-
-	/*
-	 * !ACTIVITY <date> <target> <action> <status>
-	 */
-	private void write(IActivity activity) throws IOException {
-		write(ACTIVITY);
-		writeSpace();	
-		write(String.valueOf(activity.getDate().getTime()));
-		writeSpace();
-		write(getFormattedDate(activity.getDate()));
-		writeSpace();
-		write(activity.getLabel());
-		writeSpace();
-		write(getAction(activity.getAction()));
-		writeSpace();
-		write((activity.getStatus()==IActivity.STATUS_OK)?SUCCESS:FAILURE);
-		writeln();		
-	}
-
-	/*
-	 * 
-	 */
-	private String getAction(int i) {
-		switch (i) {
-			case IActivity.ACTION_FEATURE_INSTALL :
-				return FEATURE_INSTALL;
-			case IActivity.ACTION_FEATURE_REMOVE :
-				return FEATURE_REMOVE;
-			case IActivity.ACTION_SITE_INSTALL :
-				return SITE_INSTALL;
-			case IActivity.ACTION_SITE_REMOVE :
-				return SITE_REMOVE;
-			case IActivity.ACTION_UNCONFIGURE :
-				return UNCONFIGURE;
-			case IActivity.ACTION_CONFIGURE :
-				return CONFIGURE;
-			case IActivity.ACTION_REVERT :
-				return REVERT;
-			case IActivity.ACTION_RECONCILIATION :
-				return RECONCILIATION;
-			case IActivity.ACTION_ADD_PRESERVED :
-				return PRESERVED;
-							
-			default :
-				return UNKNOWN+" ["+i+"]"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-
-	/*
-	 * 
-	 */
-	private void writeln() throws IOException {
-		write(LINE_SEPARATOR);
-	}
-	
-	/*
-	 * 
-	 */
-	private void write(String message) throws IOException {
-		if (message != null)
-			log.write(message);
-	}
-	
-	/*
-	 * 
-	 */
-	private void writeSpace() throws IOException {
-		write(" "); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateManagerUtils.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateManagerUtils.java
deleted file mode 100644
index 3eaada9..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateManagerUtils.java
+++ /dev/null
@@ -1,982 +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 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.update.internal.core;

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-import org.osgi.framework.*;

-import org.osgi.service.packageadmin.*;

-

-/**

- * 

- */

-public class UpdateManagerUtils {

-

-	private static boolean OS_UNIX = org.eclipse.osgi.service.environment.Constants.OS_HPUX

-			.equals(Platform.getOS())

-			|| org.eclipse.osgi.service.environment.Constants.OS_AIX

-					.equals(Platform.getOS())

-			|| org.eclipse.osgi.service.environment.Constants.OS_LINUX

-					.equals(Platform.getOS())

-			|| org.eclipse.osgi.service.environment.Constants.OS_SOLARIS

-					.equals(Platform.getOS());

-	private static FragmentEntry[] noFragments = new FragmentEntry[0];

-	private static Map table;

-

-	static {

-		table = new HashMap();

-		table.put("compatible", new Integer(IImport.RULE_COMPATIBLE)); //$NON-NLS-1$

-		table.put("perfect", new Integer(IImport.RULE_PERFECT)); //$NON-NLS-1$

-		table.put("equivalent", new Integer(IImport.RULE_EQUIVALENT)); //$NON-NLS-1$

-		table.put("greaterOrEqual", new Integer(IImport.RULE_GREATER_OR_EQUAL)); //$NON-NLS-1$

-	}

-

-	private static Writer writer;

-	// manage URL to File

-	private static Map urlFileMap;

-

-	private static Map localFileFragmentMap;

-	private static Stack bufferPool;

-	private static final int BUFFER_SIZE = 4096; // 4kbytes

-	private static final int INCREMENT_SIZE = 10240; // 10kbytes

-	/**

-	 * return the urlString if it is a absolute URL

-	 * otherwise, return the default URL if the urlString is null

-	 * The defaultURL may point ot a file, create a file URL then

-	 * if the urlString or the default URL are relatives, prepend the rootURL to it

-	 */

-	public static URL getURL(URL rootURL, String urlString, String defaultURL) throws MalformedURLException {

-		URL url = null;

-

-		// if no URL , provide Default

-		if (urlString == null || urlString.trim().equals("")) { //$NON-NLS-1$

-

-			// no URL, no default, return right now...

-			if (defaultURL == null || defaultURL.trim().equals("")) //$NON-NLS-1$

-				return null;

-			else

-				urlString = defaultURL;

-		}

-

-		// URL can be relative or absolute	

-		if (urlString.startsWith("/") && urlString.length() > 1) //$NON-NLS-1$

-			urlString = urlString.substring(1);

-		try {

-			url = new URL(urlString);

-		} catch (MalformedURLException e) {

-			// the url is not an absolute URL

-			// try relative

-			url = new URL(rootURL, urlString);

-		}

-

-		return url;

-	}

-

-	/**

-	 * return a relative String to rootURL 

-	 * if url contains rootURL so

-	 * new URL(rootURL, resultString) == url

-	 * 

-	 */

-	public static String getURLAsString(URL rootURL, URL url) {

-		String result = null;

-

-		if (rootURL == null) {

-			return (url == null) ? null : url.toString();

-		}

-

-		// if no URL , return null

-		if (url != null) {

-

-			result = url.toExternalForm();

-

-			if (rootURL.getHost() != null && !rootURL.getHost().equals(url.getHost()))

-				return result;

-

-			if (rootURL.getProtocol() != null && !rootURL.getProtocol().equals(url.getProtocol()))

-				return result;

-

-			if (rootURL.getPort() != url.getPort())

-				return result;

-

-			String rootURLFileString = rootURL.getFile();

-			rootURLFileString = rootURLFileString.replace(File.separatorChar, '/');

-			if (!rootURLFileString.endsWith("/")) { //$NON-NLS-1$

-				int index = rootURLFileString.lastIndexOf('/');

-				if (index != -1) {

-					rootURLFileString = rootURLFileString.substring(0, index);

-				}

-			}

-			String urlFileString = url.getFile();

-

-			if (urlFileString.startsWith(rootURLFileString)) {

-				result = urlFileString.substring(rootURLFileString.length());

-				result = result.replace(File.separatorChar, '/');

-			} else {

-				// we need to check the following

-				// file:/C:/ and file:C:/

-				if ("file".equalsIgnoreCase(url.getProtocol())) { //$NON-NLS-1$

-					File rootFile = new File(rootURLFileString);

-					File urlFile = new File(urlFileString);

-

-					File relativePath = urlFile;

-					while (relativePath != null && !rootFile.equals(relativePath.getParentFile())) {

-						relativePath = relativePath.getParentFile();

-					}

-

-					if (relativePath == null) {

-						UpdateCore.warn("Cannot calculate relative path"); //$NON-NLS-1$

-						return url.toString();

-					} else {

-						String relativeRootString = relativePath.getParentFile().getAbsolutePath();

-						String fullString = urlFile.getAbsolutePath();

-						if (!fullString.startsWith(relativeRootString)) {

-							UpdateCore.warn("Full path:" + fullString + " does not start with " + relativeRootString); //$NON-NLS-1$ //$NON-NLS-2$

-							return url.toString();

-						} else {

-							String returnString = fullString.substring(relativeRootString.length() + 1);

-							if (urlFile.isDirectory())

-								returnString += File.separator;

-							// we lost the last slash when tranforming in File

-							returnString = returnString.replace(File.separatorChar, '/');

-							return returnString;

-						}

-

-					}

-

-				} else {

-					result = url.toString();

-				}

-			}

-		}

-

-		return result;

-	}

-

-	/**

-	 * returns a translated String

-	 */

-	public static String getResourceString(String infoURL, ResourceBundle bundle) {

-		String result = null;

-		if (infoURL != null) {

-			result = Platform.getResourceString(UpdateCore.getPlugin().getBundle(), infoURL, bundle);

-		}

-		return result;

-	}

-

-	/**

-	 * 

-	 */

-	public static URL copyToLocal(InputStream sourceContentReferenceStream, String localName, InstallMonitor monitor) throws MalformedURLException, IOException, InstallAbortedException {

-		URL result = null;

-		// create the Dir if they do not exist

-		// get the path from the File to resolve File.separator..

-		// do not use the String as it may contain URL like separator

-		File localFile = new File(localName);

-		int index = localFile.getPath().lastIndexOf(File.separator);

-		if (index != -1) {

-			File dir = new File(localFile.getPath().substring(0, index));

-			if (!dir.exists())

-				dir.mkdirs();

-		}

-

-		// transfer the content of the File

-		if (!localFile.isDirectory()) {

-			OutputStream localContentReferenceStream = new FileOutputStream(localFile);

-			try {

-				Utilities.copy(sourceContentReferenceStream, localContentReferenceStream, monitor);

-			} finally {

-				try {

-					localContentReferenceStream.close();

-				} catch (IOException e){}

-			}

-		}

-		result = localFile.toURL();

-		return result;

-	}

-

-	/*

-	 * [20305] need to slam permissions for executable libs on some

-	 * platforms. This is a temporary fix

-	 */

-	public static void checkPermissions(ContentReference ref, String filePath) {

-

-		if (ref.getPermission() != 0) {

-			UpdateCore.warn("Change permission for " + filePath + " to " + ref.getPermission()); //$NON-NLS-1$ //$NON-NLS-2$

-			// FIXME: change the code to use JNI

-		}

-

-		if (filePath != null && OS_UNIX && ref.getPermission() != 0) {

-			// add execute permission on shared libraries 20305

-			// do not remove write permission 20896

-			// chmod a+x *.sl

-			try {

-				Process pr = Runtime.getRuntime().exec(new String[] { "chmod", "a+x", filePath }); //$NON-NLS-1$ //$NON-NLS-2$

-				Thread chmodOutput = new StreamConsumer(pr.getInputStream());

-				chmodOutput.setName("chmod output reader"); //$NON-NLS-1$

-				chmodOutput.start();

-				Thread chmodError = new StreamConsumer(pr.getErrorStream());

-				chmodError.setName("chmod error reader"); //$NON-NLS-1$

-				chmodError.start();

-			} catch (IOException ioe) {

-			}

-

-		}

-	}

-

-	/**

-	 * Returns a random file name for the local system

-	 * attempt to conserve the extension if there is a '.' in the path

-	 * and no File.Seperator after the '.'

-	 * 

-	 * \a\b\c.txt -> c987659385.txt

-	 * c.txt -> c3854763.txt

-	 * c	-> c953867549

-	 */

-	public static String getLocalRandomIdentifier(String remotePath, Date date) {

-		int dotIndex = remotePath.lastIndexOf(".");	//$NON-NLS-1$

-		int fileIndex = remotePath.lastIndexOf(File.separator);

-		// if there is a separator after the dot

-		// do not consider it as an extension

-		String ext = (dotIndex != -1 && fileIndex < dotIndex) ? remotePath.substring(dotIndex) : ""; //$NON-NLS-1$

-		// the name is the string between the separator and the dot

-		// if there is no separator, it is the string up to the dot		

-		// if there is no dot, go to the end of the string 

-		if (fileIndex == -1)

-			fileIndex = 0;

-		if (dotIndex == -1)

-			dotIndex = remotePath.length();

-		// if I have a separator and no dot: /a/b/c -> c

-		// if my separator is the last /a/b/c/, fileIndex and dotIndex are the same, so it will return the default temp name

-		String name = (fileIndex < dotIndex) ? remotePath.substring(fileIndex, dotIndex) : "Eclipse_Update_TMP_"; //$NON-NLS-1$

-		String result = name + date.getTime() + ext;

-		return result;

-	}

-

-	/**

-	 * remove a file or directory from the file system.

-	 * used to clean up install

-	 */

-	public static void removeFromFileSystem(File file) {

-		if (!file.exists())

-			return;

-

-		if (file.isDirectory()) {

-			String[] files = file.list();

-			if (files != null) // be careful since file.list() can return null

-				for (int i = 0; i < files.length; ++i)

-					removeFromFileSystem(new File(file, files[i]));

-		}

-

-		if (!file.delete()) {

-			String msg = Policy.bind("UpdateManagerUtils.UnableToRemoveFile", file.getAbsolutePath());	//$NON-NLS-1$ //$NON-NLS-2$

-			UpdateCore.log(msg, new Exception());

-		}

-	}

-

-	/**

-	 * remove all the empty directories recursively

-	 * used to clean up install

-	 */

-	public static void removeEmptyDirectoriesFromFileSystem(File file) {

-		if (!file.isDirectory())

-			return;

-

-		String[] files = file.list();

-		if (files != null) { // be careful since file.list() can return null

-			for (int i = 0; i < files.length; ++i) {

-				removeEmptyDirectoriesFromFileSystem(new File(file, files[i]));

-			}

-		}

-		if (!file.delete()) {

-			String msg = Policy.bind("UpdateManagerUtils.UnableToRemoveFile", file.getAbsolutePath());	//$NON-NLS-1$ //$NON-NLS-2$

-			UpdateCore.log(msg, new Exception());

-		}

-	}

-

-	/**

-	 * Returns the plugin entries that are in source array and

-	 * not in target array

-	 */

-	public static IPluginEntry[] diff(IPluginEntry[] sourceArray, IPluginEntry[] targetArray) { // No pluginEntry to Install, return Nothing to instal

-		if (sourceArray == null || sourceArray.length == 0) {

-			return new IPluginEntry[0];

-		} // No pluginEntry installed, Install them all

-		if (targetArray == null || targetArray.length == 0) {

-			return sourceArray;

-		} // if a IPluginEntry from sourceArray is NOT in

-		// targetArray, add it to the list

-		List list1 = Arrays.asList(targetArray);

-		List result = new ArrayList(0);

-		for (int i = 0; i < sourceArray.length; i++) {

-			if (!list1.contains(sourceArray[i]))

-				result.add(sourceArray[i]);

-		}

-

-		IPluginEntry[] resultEntry = new IPluginEntry[result.size()];

-		if (result.size() > 0)

-			result.toArray(resultEntry);

-		return resultEntry;

-	}

-

-	/**

-	 * Returns the parent URL of the given URL, or <code>null</code> if the

-	 * given URL is the root.

-	 * <table>

-	 * <caption>Example</caption>

-	 * <tr>

-	 *   <th>Given URL</th>

-	 *   <th>Parent URL</th>

-	 * <tr>

-	 *   <td>"http://hostname/"</td>

-	 *   <td>null</td>

-	 * <tr>

-	 *   <td>"http://hostname/folder/file</td>

-	 *   <td>"http://hostname/folder/</td>

-	 * </table>

-	 *

-	 * @param url a URL

-	 * @return    the parent of the given URL

-	 */

-	public static URL getParent(URL url) {

-		String file = url.getFile();

-		int len = file.length();

-		if (len == 0 || len == 1 && file.charAt(0) == '/')

-			return null;

-		int lastSlashIndex = -1;

-		for (int i = len - 2; lastSlashIndex == -1 && i >= 0; --i) {

-			if (file.charAt(i) == '/')

-				lastSlashIndex = i;

-		}

-		if (lastSlashIndex == -1)

-			file = ""; //$NON-NLS-1$

-		else

-			file = file.substring(0, lastSlashIndex + 1);

-		try {

-			url = new URL(url.getProtocol(), url.getHost(), url.getPort(), file);

-		} catch (MalformedURLException e) {

-			Assert.isTrue(false, e.getMessage());

-		}

-		return url;

-	}

-

-	/**

-	 * 

-	 */

-	public static URL asDirectoryURL(URL url) throws MalformedURLException {

-		//url = URLEncoder.encode(url);

-		String path = url.getFile();

-		if (!path.endsWith("/")) { //$NON-NLS-1$

-			int index = path.lastIndexOf('/');

-			if (index != -1)

-				path = path.substring(0, index + 1);

-			// ignore any ref in original URL

-			url = new URL(url.getProtocol(), url.getHost(), url.getPort(), path);

-		}

-		return url;

-	}

-

-	/*

-	 * Compares two URL for equality

-	 * Return false if one of them is null

-	 */

-	public static boolean sameURL(URL url1, URL url2) {

-

-		if (url1 == null || url2 == null)

-			return false;

-		if (url1 == url2)

-			return true;

-		if (url1.equals(url2))

-			return true;

-

-		// check if URL are file: URL as we may

-		// have 2 URL pointing to the same featureReference

-		// but with different representation

-		// (i.e. file:/C;/ and file:C:/)

-		if (!"file".equalsIgnoreCase(url1.getProtocol())) //$NON-NLS-1$

-			return false;

-		if (!"file".equalsIgnoreCase(url2.getProtocol())) //$NON-NLS-1$

-			return false;

-

-		File file1 = getFileFor(url1);//new File(url1.getFile());

-		File file2 = getFileFor(url2);

-

-		if (file1 == null)

-			return false;

-

-		return (file1.equals(file2));

-	}

-	

-	/*

-	 * Method getFileFor.

-	 * @param url1

-	 * @return File

-	 */

-	private static File getFileFor(URL url1) {

-		if (urlFileMap == null) urlFileMap = new HashMap();

-		if (urlFileMap.get(url1)!=null) return (File)urlFileMap.get(url1);

-		File newFile = new File(url1.getFile());

-		urlFileMap.put(url1,newFile);

-		return newFile; 

-	}

-

-	/*

-	 * returns the list of FeatureReference that are parent of 

-	 * the Feature or an empty array if no parent found.

-	 * @param onlyOptional if set to <code>true</code> only return parents that consider the feature optional

-	 * @param child

-	 * @param possiblesParent

-	 */

-	public static IFeatureReference[] getParentFeatures(IFeature childFeature, IFeatureReference[] possiblesParent, boolean onlyOptional) throws CoreException {

-

-		if (childFeature == null)

-			return new IFeatureReference[0];

-

-		List parentList = new ArrayList();

-		IIncludedFeatureReference[] children = null;

-		IFeature compareFeature = null;

-		for (int i = 0; i < possiblesParent.length; i++) {

-			try {

-				IFeature possibleParentFeature = possiblesParent[i].getFeature(null);

-				if (possibleParentFeature != null) {

-					children = possibleParentFeature.getIncludedFeatureReferences();

-					for (int j = 0; j < children.length; j++) {

-						try {

-							compareFeature = children[j].getFeature(null);

-						} catch (CoreException e) {

-							UpdateCore.warn("", e); //$NON-NLS-1$

-						}

-						if (childFeature.equals(compareFeature)) {

-							if (onlyOptional) {

-								if (UpdateManagerUtils.isOptional(children[j])) {

-									parentList.add(possiblesParent[i]);

-								} else {

-									UpdateCore.warn("Feature :" + children[j] + " not optional. Not included in parents list."); //$NON-NLS-1$ //$NON-NLS-2$

-								}

-							} else {

-								parentList.add(possiblesParent[i]);

-							}

-						}

-					}

-				}

-			} catch (CoreException e) {

-				UpdateCore.warn("", e); //$NON-NLS-1$

-			}

-		}

-

-		IFeatureReference[] parents = new IFeatureReference[0];

-		if (parentList.size() > 0) {

-			parents = new IFeatureReference[parentList.size()];

-			parentList.toArray(parents);

-		}

-		return parents;

-	}

-

-	/*

-	 * returns the list of Features that are parent of 

-	 * the Feature or an empty array if no parent found

-	 * @param onlyOptional if set to <code>true</code> only return parents that consider the feature optional

-	 * @param child

-	 * @param possiblesParent

-	 */

-	public static IFeatureReference[] getParentFeatures(IFeatureReference child, IFeatureReference[] possiblesParent, boolean onlyOptional) throws CoreException {

-

-		if (child == null)

-			return new IFeatureReference[0];

-

-		IFeature childFeature = null;

-		try {

-			childFeature = child.getFeature(null);

-		} catch (CoreException e) {

-			UpdateCore.warn(null, e);

-		}

-

-		if (childFeature == null)

-			return new IFeatureReference[0];

-

-		return getParentFeatures(childFeature, possiblesParent, onlyOptional);

-	}

-

-	/*

-	 * If the return code of the HTTP connection is not 200 (OK)

-	 * thow an IO exception

-	 * 

-	 */

-	public static void checkConnectionResult(Response response,URL url) throws IOException {

-		// did the server return an error code ?

-			int result = response.getStatusCode();

-

-			if (result != IStatusCodes.HTTP_OK) {

-				String serverMsg = response.getStatusMessage();

-				throw new IOException(Policy.bind("ContentReference.HttpNok", new Object[] { new Integer(result), serverMsg, url })); //$NON-NLS-1$						

-			}

-	}

-

-	public static class StreamConsumer extends Thread {

-		InputStream is;

-		byte[] buf;

-		public StreamConsumer(InputStream inputStream) {

-			super();

-			this.setDaemon(true);

-			this.is = inputStream;

-			buf = new byte[512];

-		}

-		public void run() {

-			try {

-				int n = 0;

-				while (n >= 0)

-					n = is.read(buf);

-			} catch (IOException ioe) {

-			}

-		}

-	}

-

-	/**

-	 * Return the optional children to install

-	 * The optional features to install may not all be direct children 

-	 * of the feature.

-	 * Also include non-optional features

-	 * 

-	 * @param children all the nested features

-	 * @param optionalfeatures optional features to install

-	 * @return IFeatureReference[]

-	 */

-	public static IFeatureReference[] optionalChildrenToInstall(IFeatureReference[] children, IFeatureReference[] optionalfeatures) {

-

-		List optionalChildrenToInstall = new ArrayList();

-		for (int i = 0; i < children.length; i++) {

-			IFeatureReference optionalFeature = children[i];

-			if (!UpdateManagerUtils.isOptional(optionalFeature)) {

-				optionalChildrenToInstall.add(optionalFeature);

-			} else {

-				for (int j = 0; j < optionalfeatures.length; j++) {

-					if (optionalFeature.equals(optionalfeatures[j])) {

-						optionalChildrenToInstall.add(optionalFeature);

-						break;

-					}

-				}

-			}

-		}

-

-		IFeatureReference[] result = new IFeatureReference[optionalChildrenToInstall.size()];

-		if (optionalChildrenToInstall.size() > 0) {

-			optionalChildrenToInstall.toArray(result);

-		}

-

-		return result;

-	}

-

-	/**

-	 * returns the mapping of matching rules

-	 * the default returns perfect

-	 * 

-	 * @since 2.0.2

-	 */

-	public static int getMatchingRule(String rule) {

-		if (rule == null)

-			return IImport.RULE_PERFECT;

-		int ruleInt = ((Integer) table.get(rule)).intValue();

-		if (ruleInt == IImport.RULE_NONE)

-			return IImport.RULE_PERFECT;

-		return ruleInt;

-	}

-	

-	/**

-	 * returns the mapping of matching id rules

-	 * the default returns perfect

-	 * 

-	 * @since 2.0.2

-	 */

-	public static int getMatchingIdRule(String rule) {

-		if (rule!=null && rule.equalsIgnoreCase("prefix")) //$NON-NLS-1$

-			return IImport.RULE_PREFIX;

-		return IImport.RULE_PERFECT;

-	}

-	

-	/**

-	 * Method isOptional.

-	 * @param featureReference

-	 * @return boolean

-	 */

-	public static boolean isOptional(IFeatureReference featureReference) {

-		if (featureReference==null) return false;

-		if (featureReference instanceof IIncludedFeatureReference){

-			return ((IIncludedFeatureReference)featureReference).isOptional();

-		}

-		return false;

-	}

-

-	/**

-	 * 

-	 */

-	public static boolean isValidEnvironment(IPlatformEnvironment candidate) {

-		if (candidate==null) return false;

-		String os = candidate.getOS();

-		String ws = candidate.getWS();

-		String arch = candidate.getOSArch();

-		String nl = candidate.getNL();

-		if (os!=null && !isMatching(os, SiteManager.getOS())) return false;

-		if (ws!=null && !isMatching(ws, SiteManager.getWS())) return false;

-		if (arch!=null && !isMatching(arch, SiteManager.getOSArch())) return false;

-		if (nl!=null && !isMatchingLocale(nl, SiteManager.getNL())) return false;

-		return true;

-	}

-

-	/**

-	 * 

-	 */	

-	private static boolean isMatching(String candidateValues, String siteValues) {

-		if (siteValues==null) return false;

-		if ("*".equals(candidateValues)) return true; //$NON-NLS-1$

-		if ("".equals(candidateValues)) return true; //$NON-NLS-1$

-		siteValues = siteValues.toUpperCase();		

-		StringTokenizer stok = new StringTokenizer(candidateValues, ","); //$NON-NLS-1$

-		while (stok.hasMoreTokens()) {

-			String token = stok.nextToken().toUpperCase();

-			if (siteValues.indexOf(token)!=-1) return true;

-		}

-		return false;

-	}

-	

-	/**

-	 * 

-	 */	

-	private static boolean isMatchingLocale(String candidateValues, String locale) {

-		if (locale==null) return false;

-		if ("*".equals(candidateValues)) return true; //$NON-NLS-1$

-		if ("".equals(candidateValues)) return true; //$NON-NLS-1$

-		

-		locale = locale.toUpperCase();

-		candidateValues = candidateValues.toUpperCase();	

-		StringTokenizer stok = new StringTokenizer(candidateValues, ","); //$NON-NLS-1$

-		while (stok.hasMoreTokens()) {

-			String candidate = stok.nextToken();

-			if (locale.indexOf(candidate) == 0)

-				return true;

-			if (candidate.indexOf(locale) == 0)

-				return true;

-		}

-		return false;

-	}

-

-	

-/**

- * write XML file

- */

-public static class Writer {

-

-	private PrintWriter w;

-	private OutputStream out;

-	private OutputStreamWriter outWriter;

-	private BufferedWriter buffWriter;

-	private String encoding;

-

-	/*

-	 * 

-	 */

-	private Writer() {

-		super();

-	}

-	

-	public void init(File file, String encoding) throws FileNotFoundException, UnsupportedEncodingException{

-		this.encoding = encoding;

-		out = new FileOutputStream(file);

-		outWriter = new OutputStreamWriter(out, encoding); //$NON-NLS-1$

-		buffWriter = new BufferedWriter(outWriter);

-		w = new PrintWriter(buffWriter);

-	}

-

-	

-	/*

-	 * 

-	 */

-	public void write(IWritable element) {

-		w.println("<?xml version=\"1.0\" encoding=\""+encoding+"\"?>"); //$NON-NLS-1$ //$NON-NLS-2$

-		w.println(""); //$NON-NLS-1$

-		w.println("<!-- File written by Update manager 2.0 -->"); //$NON-NLS-1$

-		w.println("<!-- comments in this file are not preserved -->"); //$NON-NLS-1$

-		w.println(""); //$NON-NLS-1$

-		 ((IWritable) element).write(0, w);

-		close();

-	}

-	

-	/*

-	 * 

-	 */

-	 public void close(){

-	 		w.close();

-	 }

-

-	/*

-	 * 

-	 */

-	private static void appendEscapedChar(StringBuffer buffer, char c) {

-		String replacement = getReplacement(c);

-		if (replacement != null) {

-			buffer.append('&');

-			buffer.append(replacement);

-			buffer.append(';');

-		} else {

-			if ((c >= ' ' && c <= 0x7E) || c == '\n' || c == '\r' || c == '\t') {

-				buffer.append(c);

-			} else {

-				buffer.append("&#"); //$NON-NLS-1$

-				buffer.append(Integer.toString(c));

-				buffer.append(';');

-			}

-		}

-	}

-

-	/*

-	 * 

-	 */

-	public static String xmlSafe(String s) {

-		StringBuffer result = new StringBuffer(s.length() + 10);

-		for (int i = 0; i < s.length(); ++i)

-			appendEscapedChar(result, s.charAt(i));

-		return result.toString();

-	}

-	

-	/*

-	 * 

-	 */

-	private static String getReplacement(char c) {

-		// Encode special XML characters into the equivalent character references.

-		// These five are defined by default for all XML documents.

-		switch (c) {

-			case '<' :

-				return "lt"; //$NON-NLS-1$

-			case '>' :

-				return "gt"; //$NON-NLS-1$

-			case '"' :

-				return "quot"; //$NON-NLS-1$

-			case '\'' :

-				return "apos"; //$NON-NLS-1$

-			case '&' :

-				return "amp"; //$NON-NLS-1$

-		}

-		return null;

-	}

-}

-	public static Writer getWriter(File file,String encoding) throws FileNotFoundException, UnsupportedEncodingException {

-		if (writer==null) writer = new Writer();

-		writer.init(file,encoding);

-		return writer;

-	}

-	

-	public static boolean isSameTimestamp(URL url, long timestamp) {	

-		try {

-			URL resolvedURL = URLEncoder.encode(url);

-			Response response = UpdateCore.getPlugin().get(resolvedURL);

-			long remoteLastModified = response.getLastModified();

-			// 2 seconds tolerance, as some OS's may round up the time stamp

-			// to the closest second. For safety, we make it 2 seconds.

-			return Math.abs(remoteLastModified - timestamp)/1000 <= 2;

-		} catch (MalformedURLException e) {

-			return false;

-		} catch (IOException e) {

-			return false;

-		}

-	}

-	/**

-	 * The file is associated with a lookup key.

-	 * @param key optional lookup key, or <code>null</code>.

-	 * @param temp the local working file

-	 */

-	public synchronized static void mapLocalFileFragment(String key, FileFragment temp) {

-		// create file association 

-		if (key != null) {

-			if (localFileFragmentMap == null)

-				localFileFragmentMap = new HashMap();

-			localFileFragmentMap.put(key, temp);

-		}

-	}

-

-	/**

-	 * The file is associated with a lookup key.

-	 * @param key optional lookup key, or <code>null</code>.

-	 */

-	public synchronized static void unMapLocalFileFragment(String key) {

-		// remove file association 

-		if (key != null && localFileFragmentMap !=null) {

-			localFileFragmentMap.remove(key);

-		}

-	}

-	

-	/**

-	 * Returns a previously cached local file (in temporary area) matching the

-	 * specified key. 

-	 * 

-	 * @param key lookup key

-	 * @return cached file, or <code>null</code>.

-	 */

-	public static synchronized FileFragment lookupLocalFileFragment(String key) {

-		if (localFileFragmentMap == null)

-			return null;

-		return (FileFragment) localFileFragmentMap.get(key);

-	}

-	

-	/**

-	 * Copies specified input stream to the output stream. Neither stream

-	 * is closed as part of this operation.

-	 * 

-	 * @param is input stream

-	 * @param os output stream

-	 * @param monitor progress monitor

-     * @param expectedLength - if > 0, the number of bytes from InputStream will be verified

-	 * @@return the offset in the input stream where copying stopped. Returns -1 if end of input stream is reached.

-	 * @since 2.0

-	 */

-	public static long copy(InputStream is, OutputStream os, InstallMonitor monitor, long expectedLength) {

-		byte[] buf = getBuffer();

-		long offset=0;

-		try {

-			int len = is.read(buf);

-			int nextIncrement = 0;

-			while (len != -1) {

-				os.write(buf, 0, len);

-					offset += len;

-				if (monitor != null) {

-					nextIncrement += len;

-					// update monitor periodically

-					if (nextIncrement >= INCREMENT_SIZE){ 	

-						monitor.incrementCount(nextIncrement);

-						nextIncrement = 0;

-					}

-					if (monitor.isCanceled()) {

-						return offset;

-					}

-				}

-				if (expectedLength > 0 && offset == expectedLength) {

-					// everything read do not return offset, otherwise trying

-					// to read again from this offset will result in HTTP 416

-					break;

-				}

-				

-				len = is.read(buf);

-			}

-			if (nextIncrement > 0 && monitor != null)

-				monitor.incrementCount(nextIncrement);

-			if(expectedLength>0 && offset!=expectedLength)

-				throw new IOException(Policy.bind("UpdateManagerUtils.inputStreamEnded", String.valueOf(offset), String.valueOf(expectedLength))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-			return -1;

-		} catch(IOException e){

-			// Log the actual error, as this is no longer

-			// passed up the calling stack

-			UpdateCore.log(Policy.bind("UpdateManagerUtils.copy") + offset, e); //$NON-NLS-1$

-			return offset;

-		} finally {

-			freeBuffer(buf);

-		}

-	}

-

-	public static class CopyException extends Exception {

-        

-        private static final long serialVersionUID = 1L;

-        Exception rootException;

-		int bytesCopied;

-

-		/**

-		 * 

-		 */

-		public CopyException(Exception rootException, int bytesCopied) {

-			super();

-			this.rootException= rootException;

-			this.bytesCopied=bytesCopied;

-		}

-		/**

-		 * Instance of IOException or InstallAbortedException

-		 * @return

-		 */

-		public Exception getRootException(){

-			return rootException;

-		}

-		public int getBytesCopied(){

-			return bytesCopied;

-		}

-

-	}

-	

-	private static synchronized byte[] getBuffer() {

-		if (bufferPool == null) {

-			return new byte[BUFFER_SIZE];

-		}

-

-		try {

-			return (byte[]) bufferPool.pop();

-		} catch (EmptyStackException e) {

-			return new byte[BUFFER_SIZE];

-		}

-	}

-

-	private static synchronized void freeBuffer(byte[] buf) {

-		if (bufferPool == null)

-			bufferPool = new Stack();

-		bufferPool.push(buf);

-	}

-	

-	

-	/**

-	 * Returns a list of fragments. Zero length if no fragments.

-	 * @param bundle the bundle to get fragments for

-	 */

-	public static FragmentEntry[] getFragments(Bundle bundle) {

-		PackageAdmin pkgAdmin = UpdateCore.getPlugin().getPackageAdmin();

-		Bundle[] fragmentBundles = pkgAdmin.getFragments(bundle);

-		if (fragmentBundles == null) 

-			return noFragments;

-		

-		FragmentEntry[] fragments = new FragmentEntry[fragmentBundles.length];

-		for (int i = 0; i < fragments.length; i++) {

-			fragments[i] = new FragmentEntry((String) fragmentBundles[i]

-					.getHeaders().get(Constants.BUNDLE_SYMBOLICNAME),

-					(String) fragmentBundles[i].getHeaders().get(

-							Constants.BUNDLE_VERSION), Platform

-							.getResourceString(fragmentBundles[i],

-									(String) fragmentBundles[i].getHeaders()

-											.get(Constants.BUNDLE_VERSION)),

-					fragmentBundles[i].getLocation());

-		}

-		return fragments;	

-	}

-	

-	public static String getWritableXMLString(String value) {

-		StringBuffer buf = new StringBuffer();

-		for (int i = 0; i < value.length(); i++) {

-			char c = value.charAt(i);

-			switch (c) {

-				case '&' :

-					buf.append("&amp;"); //$NON-NLS-1$

-					break;

-				case '<' :

-					buf.append("&lt;"); //$NON-NLS-1$

-					break;

-				case '>' :

-					buf.append("&gt;"); //$NON-NLS-1$

-					break;

-				case '\'' :

-					buf.append("&apos;"); //$NON-NLS-1$

-					break;

-				case '\"' :

-					buf.append("&quot;"); //$NON-NLS-1$

-					break;

-				default :

-					buf.append(c);

-					break;

-			}

-		}

-		return buf.toString();

-	}

-}

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdatePreferencesInitializer.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdatePreferencesInitializer.java
deleted file mode 100644
index b7175dc..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdatePreferencesInitializer.java
+++ /dev/null
@@ -1,61 +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.update.internal.core;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-
-/**
- * Class to initialize the preferences for the Update core plugin.
- */
-public class UpdatePreferencesInitializer extends AbstractPreferenceInitializer {
-
-	/**
-	 * Default constructor
-	 */
-	public UpdatePreferencesInitializer() {
-		super();
-	}
-
-	/**
-	 * Initializes the default preferences settings for this plug-in.
-	 * <p>
-	 * This method is called sometime after the preference store for this
-	 * plug-in is created. Default values are never stored in preference
-	 * stores; they must be filled in each time. This method provides the
-	 * opportunity to initialize the default values.
-	 * </p>
-	 * <p>
-	 * The default implementation of this method does nothing. A subclass that needs
-	 * to set default values for its preferences must reimplement this method.
-	 * Default values set at a later point will override any default override
-	 * settings supplied from outside the plug-in (product configuration or
-	 * platform start up).
-	 * </p>
-	 */
-	public void initializeDefaultPreferences() {
-		Plugin plugin = UpdateCore.getPlugin();
-		plugin.getPluginPreferences().setDefault(UpdateCore.P_CHECK_SIGNATURE, true);		
-		plugin.getPluginPreferences().setDefault(UpdateCore.P_HISTORY_SIZE, UpdateCore.DEFAULT_HISTORY);
-		plugin.getPluginPreferences().setDefault(UpdateCore.P_UPDATE_VERSIONS, UpdateCore.EQUIVALENT_VALUE);
-		
-		// If proxy host and port are set as system properties, use them as defaults
-		String proxyHost = System.getProperty("http.proxyHost"); //$NON-NLS-1$
-		if (proxyHost != null && proxyHost.trim().length() > 0) {
-			String proxyPort = System.getProperty("http.proxyPort"); //$NON-NLS-1$
-			if (proxyPort == null || proxyPort.trim().length() == 0)
-				proxyPort = "80"; //$NON-NLS-1$
-			plugin.getPluginPreferences().setDefault(UpdateCore.HTTP_PROXY_ENABLE, true);
-			plugin.getPluginPreferences().setDefault(UpdateCore.HTTP_PROXY_HOST, proxyHost);
-			plugin.getPluginPreferences().setDefault(UpdateCore.HTTP_PROXY_PORT, proxyPort);
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateSiteFeatureReference.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateSiteFeatureReference.java
deleted file mode 100644
index ed220ec..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateSiteFeatureReference.java
+++ /dev/null
@@ -1,137 +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
- *******************************************************************************/
-package org.eclipse.update.internal.core;
-
-import org.eclipse.update.core.*;
-
-/**
- * Feature reference on an update site.
- * @since 3.1
- */
-public class UpdateSiteFeatureReference extends SiteFeatureReference {
-    private String os;
-    private String ws;
-    private String nl;
-    private String arch;
-    private String patch;  
-
-    /**
-     * Get optional operating system specification as a comma-separated string.
-     *
-     * @return the operating system specification string, or <code>null</code>.
-     * @since 3.1
-     */
-    public String getOS() {
-        return os;
-    }
-
-
-    /**
-     * Get optional windowing system specification as a comma-separated string.
-     *
-     * @return the windowing system specification string, or <code>null</code>.
-     * @since 3.1
-     */
-    public String getWS() {
-        return ws;
-    }
-
-
-    /**
-     * Get optional system architecture specification as a comma-separated string.
-     *
-     * @return the system architecture specification string, or <code>null</code>.
-     * @since 3.1
-     */
-    public String getOSArch() {
-        return arch;
-    }
-
-
-    /**
-     * Get optional locale specification as a comma-separated string.
-     *
-     * @return the locale specification string, or <code>null</code>.
-     * @since 3.1
-     */
-    public String getNL() {
-        return nl;
-    }
-
-    /**
-     * Sets the operating system specification.
-     * Throws a runtime exception if this object is marked read-only.
-     *
-     * @param os operating system specification as a comma-separated list
-     * @since 3.1
-     */
-    public void setOS(String os) {
-        assertIsWriteable();
-        this.os = os;
-    }
-
-
-    /**
-     * Sets the windowing system specification.
-     * Throws a runtime exception if this object is marked read-only.
-     *
-     * @param ws windowing system specification as a comma-separated list
-     * @since 3.1
-     */
-    public void setWS(String ws) {
-        assertIsWriteable();
-        this.ws = ws;
-    }
-
-
-    /**
-     * Sets the locale specification.
-     * Throws a runtime exception if this object is marked read-only.
-     *
-     * @param nl locale specification as a comma-separated list
-     * @since 3.1
-     */
-    public void setNL(String nl) {
-        assertIsWriteable();
-        this.nl = nl;
-    }
-
-
-    /**
-     * Sets the system architecture specification.
-     * Throws a runtime exception if this object is marked read-only.
-     *
-     * @param arch system architecture specification as a comma-separated list
-     * @since 3.1
-     */
-    public void setArch(String arch) {
-        assertIsWriteable();
-        this.arch = arch;
-    }
-
-    /**
-     * Returns the patch mode.
-     * @since 3.1
-     */
-    public String getPatch() {
-        return patch;
-    }
-
-
-    /**
-     * Sets the patch mode.
-     * @since 3.1
-     */
-    public void setPatch(String patch) {
-        this.patch = patch;
-    }
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Volume.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Volume.java
deleted file mode 100644
index 0dc6cf0..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Volume.java
+++ /dev/null
@@ -1,70 +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 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.update.internal.core;
-import java.io.*;
-
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.model.*;
-
-/**
- * Default implementation of a IVolume
- */
-public class Volume extends ModelObject implements IVolume {
-
-	private long size;
-	private int type;
-	private String label;
-	private File root;
-
-	/**
-	 * Constructor for Volume.
-	 */
-	public Volume(File root,String label,int type,long size) {
-		super();
-		this.root = root;
-		this.label = label;
-		this.type = type;
-		this.size = size;
-	}
-
-	/**
-	 * @see IVolume#getFreeSpace()
-	 */
-	public long getFreeSpace() {
-		return size;
-	}
-
-	/**
-	 * @see IVolume#getLabel()
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * @see IVolume#getType()
-	 */
-	public int getType() {
-		return type;
-	}
-
-	/**
-	 * @see IVolume#getFile()
-	 */
-	public File getFile() {
-		return root;
-	}
-
-	public Object getAdapter(Class arg0) {
-		return null;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties
deleted file mode 100644
index b18cf2e..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties
+++ /dev/null
@@ -1,329 +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 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
-###############################################################################
-# Install Update Core Properties File
-# 
-
-BaseSiteFactory.CannotRetriveParentDirectory=Unable to retrieve parent directory for URL \"{0}\".
-BaseSiteFactory.CannotEncodeURL= Unable to encode URL \"{0}\".
-ContentReference.UnableToCreateInputStream= Unable to create an input stream for the reference \"{0}\".
-ContentReference.UnableToReturnReferenceAsFile= Unable to return reference \"{0}\" as File.
-ContentReference.UnableToReturnReferenceAsURL= Unable to return reference \"{0}\" as URL.
-ContentReference.HttpNok= Server returned HTTP response code: \"{0} {1}\" for URL: {2}.
-ContentReference.FileDoesNotExist=The file \"{0}\" does not exist on the file system.
-Feature.SiteAlreadySet= Internal Error: Site already set for the feature \"{0}\".
-Feature.TaskInstallFeatureFiles= Installing feature files: 
-Feature.TaskInstallPluginFiles= Installing plug-in \"{0}\" files:
-Feature.TaskInstallNonPluginsFiles= Installing non-plug-in files: 
-Feature.NoContentProvider= Internal Error. The feature \"{0}\" does not have a content provider.
-Feature.NoFeatureContentConsumer= Internal Error. The Feature \"{0}\" does not have a content consumer.
-Feature.NoURL= Unknown URL.
-Feature.FeatureVersionToString= Feature: \"{0}\" Version: \"{1}\".
-Feature.InstallationCancelled= Installation has been cancelled by the User.
-Feature.UnableToInitializeFeatureReference= Unable to initialize feature reference for versioned identifier \"{0}\".
-FeatureContentProvider.Downloading= Downloading:
-FeatureContentProvider.UnableToRetrieve= Unable to retrieve remote reference \"{0}\".
-FeatureContentProvider.UnableToCreate= Unable to create local file \"{0}\".
-FeatureContentProvider.ExceptionDownloading = An exception occured while downloading feature from \"{0}\".
-InstallHandler.unableToCreateHandler = Unable to create custom install handler for feature \"{0}\".
-InstallHandler.notFound = Custom install handler required by feature \"{0}\" was not found.
-InstallHandler.invalidHandler = Feature \"{0}\" contains invalid custom install handler.
-InstallHandler.callException = Error reported by custom install handler for feature \"{0}\".
-InstallHandler.deactivated = Custom install handler for feature \"{0}\" deactivated due to errors.
-InstallHandler.error = Unable to complete action for feature \"{0}\" due to errors.
-InstallMonitor.DownloadSize = ({0}K bytes)
-InstallMonitor.DownloadSizeLong = ({0}K of {1}K bytes)
-Reconciler.appNotFound = Application \"{0}\" not found.
-JarContentReference.Unpacking= Unpacking:
-Site.CannotSaveSiteInto= Cannot save Site information into the File: \"{0}\".
-Site.CannotFindCategory= Unable to find category: \"{0}\" in Site: \"{1}\".
-Site.NoCategories= The Site does not contain any categories.
-Site.NoContentProvider= Internal Error. Content Provider not set for Site: \"{0}\".
-VersionedIdentifier.IdOrVersionNull= Internal Error. Unable to create an Identifier. The unique identifier or the version is null or empty: unique identifier=\"{0}\" version=\"{1}\".
-SiteFile.CannotRemovePlugin= Unable to remove plug-in: \"{0}\" from Site: \"{1}\".
-SiteFile.CannotRemoveFeature= Unable to remove feature: \"{0}\" from Site: \"{1}\".
-SiteFile.UnableToCreateURL= Unable to create URL for location \"{0}\".
-SiteFile.Removing= Removing: 
-SiteFileFactory.UnableToCreateURL= Internal Error. Unable to create URL from \"{0}\".
-SiteFileFactory.UnableToAccessSite= Unable to access site 
-SiteFileFactory.DirectoryDoesNotExist=The directory \"{0}\" does not exist on the file system.
-DefaultFeatureParser.location= Feature location: {0}
-DefaultFeatureParser.NoFeatureTag= Error parsing feature stream. Unable to find root element \"feature\" in the stream.
-DefaultFeatureParser.WrongParsingStack= Internal Error parsing feature stream. Unexpected Parsing Stack: \"{0}\"
-DefaultFeatureParser.UnknownElement= Error parsing feature stream. Unknown element \"{0}\" in parsing state \"{1}\". Check the validity of the XML file.
-DefaultFeatureParser.TooManyURLtag= Error parsing feature stream. There is more than one \"URL\" element in the XML stream. There should be only one.
-DefaultFeatureParser.UnknownStartState= Internal Error parsing feature stream. Unknown start state \"{0}\".
-DefaultFeatureParser.IdOrVersionInvalid= Error parsing feature stream. The unique identifier or the version is null or empty for the State: \"{2}\": unique identifier=\"{0}\" version=\"{1}\".
-DefaultFeatureParser.MissingId= Error parsing feature stream. The \"id\" tag of the element \"{0}\" is null or empty. Value is required.
-DefaultFeatureParser.ParsingStackBackToInitialState= Internal Error parsing feature stream. Parsing stack back to Initial State.
-DefaultFeatureParser.ElementAlreadySet= Error parsing feature stream. Element: \"{0}\" already set for the feature.
-DefaultFeatureParser.StateIncludeWrongElement= Error parsing feature stream. State: \"{0}\" should not include Element \"{1}\".
-DefaultFeatureParser.RequireStateWithoutImportElement=Error parsing feature stream. State: \"require\" must include at least an \"import\" element.
-DefaultFeatureParser.MissingPatchVersion=Error parsing feature stream. Attribute "version" of the element "import" must be set when "patch" is set to "true".
-DefaultFeatureParser.wrongMatchForPatch=Error parsing feature stream. When attribute "patch" of the element "import" is set to "true", the only valid value for the "match" attribute is "perfect". 
-DefaultFeatureParser.patchWithPlugin=Error parsing feature stream. Attribute "patch" can only be used for features.
-DefaultFeatureParser.MultiplePatchImports=Error parsing feature stream. State: "require" must not contain more than one "import" element with the attribute "patch" set to "true".
-DefaultFeatureParser.UnknownEndState= Internal Error parsing feature stream. Unknown end state \"{0}\".
-DefaultFeatureParser.ErrorParsing= Error Parsing feature stream. Error: \"{0}\"
-DefaultFeatureParser.ErrorlineColumnMessage= Error Parsing feature stream. Element \"{0}\" line: \"{1}\" column:\"{2}\". Error: \"{3}\".
-DefaultFeatureParser.ErrorParsingFeature= Error Parsing feature stream.
-DefaultFeatureParser.UnknownState= Unknown State \"{0}\".
-DefaultFeatureParser.NoLicenseText= Error parsing feature stream. State: \"license\" must include some text.
-DefaultFeatureParser.PluginAndFeatureId=One Import statement is incorrect: Both feature and plug-in ID are either null or specified.
-SiteContentProvider.ErrorCreatingURLForArchiveID= Internal Error. Unable to create URL for Archive Identifier \"{0}\" on Site \"{1}\".
-DefaultSiteParser.NoSiteTag= Error parsing site stream. Unable to find root element \"site\" in the stream.
-DefaultSiteParser.WrongParsingStack= Internal Error parsing site stream. Unexpected Parsing Stack: \"{0}\"
-DefaultSiteParser.UnknownElement= Error parsing site stream. Unknown element \"{0}\" in parsing state \"{1}\". Check the validity of the XML file.
-DefaultSiteParser.UnknownStartState= Internal Error parsing site stream. Unknown start state \"{0}\".
-DefaultSiteParser.Missing= Error parsing site stream. The \"{0}\" tag of the element \"{1}\" is null or empty. Value is required.
-DefaultSiteParser.ParsingStackBackToInitialState= Internal Error parsing site stream. Parsing stack back to Initial State.
-DefaultSiteParser.ElementAlreadySet= Error parsing site stream. Element: \"{0}\" already set for the Site.
-DefaultSiteParser.CategoryAlreadySet= Error parsing site stream. Element: \"{0}\": \"{1}\" already set for the Site.
-DefaultSiteParser.UnknownEndState= Internal Error parsing site stream. Unknown end state \"{0}\".
-DefaultSiteParser.ErrorParsing= Error Parsing site stream. Error: \"{0}\"
-DefaultSiteParser.ErrorlineColumnMessage= Error Parsing site stream. Element \"{0}\" line: \"{1}\" column:\"{2}\". Error: \"{3}\".
-DefaultSiteParser.ErrorParsingSite= Error Parsing site stream.
-DefaultSiteParser.UnknownState= Unknown State \"{0}\".
-DefaultSiteParser.InvalidXMLStream= The XML stream is not a valid default \"site.xml\" file. The root tag is not site.
-ModelObject.ModelReadOnly= Internal Error. The Model Object is read-only.
-SiteModelObject.ErrorParsingSiteStream= Error parsing site stream.
-SiteModelObject.ErrorAccessingSiteStream= Error accessing site stream.
-InstallConfiguration.ParsingErrorDuringCreation= Internal Error parsing \"{0}\": \"{1}\".
-InstallConfiguration.ErrorDuringFileAccess= Error accessing file: \"{0}\".
-Parser.UnableToCreateURL= Internal Error parsing stream. Check the validity of the URLs.
-Parser.InternalError= Error Parsing Stream. An internal error occurred. \"{0}\".
-Parser.UnableToResolveURL= Internal Error parsing stream. Unable to resolve URL \"{0}\".
-InstallConfigurationParser.FeatureReferenceNoURL= Error Parsing Stream. A feature reference element does not have a URL tag. Value is required.
-FeatureExecutableContentProvider.FileDoesNotExist= The file \"{0}\" does not exist.
-FeatureExecutableContentProvider.InvalidDirectory= The path \"{0}\" is not a valid directory.
-FeatureExecutableContentProvider.UnableToCreateURLFor=Unable to create a URL for \"{0}\".
-FeatureExecutableContentProvider.UnableToRetrieveArchive=Error retrieving the archive entry: \"{0}\".
-FeatureExecutableContentProvider.UnableToRetrieveNonPluginEntry=Error retrieving the non-plug-in entry: \"{0}\". 
-FeatureExecutableContentProvider.UnableToRetrieveFeatureEntry=Error retrieving feature entry content reference: \"{0}\".
-FeatureExecutableContentProvider.UnableToRetrievePluginEntry =Error retrieving the plug-in entry: \"{0}\". 
-ConfiguredSite.NonInstallableSite= You cannot install in the site \"{0}\". It is considered non updateable.
-ConfiguredSite.NullFeatureToInstall= Internal Error. The feature to be installed is null.
-ConfiguredSite.NonUninstallableSite= You cannot uninstall from the site \"{0}\". It is considered non updateable.
-ConfiguredSite.NoSite= No Site
-ConfiguredSite.CannotFindFeatureToUnconfigure= Internal Error. Unable to disable feature \"{0}\" on site \"{1}\". Cannot find feature.
-ConfiguredSite.CannotFindFeatureToConfigure= Internal Error. Unable to enable feature \"{0}\". Cannot find feature. 
-ConfiguredSite.CannotFindPluginEntry= Unable to retrieve Plug-in Entry \"{0}\" on site \"{1}\". Cannot find plug-in entry. Do you want to Continue ?
-ConfiguredSite.MissingPluginsBrokenFeature= Plug-in \"{0}\" version \"{1}\" referenced by this feature is missing.
-ConfiguredSite.UnableToRemoveConfiguredFeature= Unable to remove a enabled feature: \"{0}\" You must disable the feature first.
-ConfiguredSite.UnableToFindFeature= Unable to Find the feature \"{0}\" on this site.
-ConfiguredSite.SiteURLNull=The Site URL is null.
-ConfiguredSite.NonLocalSite=The Site is not on the local file system. Cannot validate. 
-ConfiguredSite.NotSameProductId=The site cannot be modified by this product. It is already associated with product: \"{0}\".
-ConfiguredSite.ContainedInAnotherSite=This site is contained in another site: \"{0}\".
-ConfiguredSite.ReadOnlySite=The site is marked as read only.
-ConfiguredSite.UnableResolveURL= Internal Error. Unable to resolve URL \"{0}\".
-ConfiguredSite.UnableToAccessSite= Internal Error. Unable to access platform site \"{0}\".
-FeatureFactory.CreatingError= Error creating feature \"{0}\".
-FeatureModelFactory.ErrorAccesingFeatureStream= Error accessing feature stream.
-FeatureExecutableFactory.NullURL= Error creating feature. The URL used to create the feature is null.
-FeatureExecutableFactory.CannotCreateURL= Error creating feature. Unable to create URL for \"{0}\".
-FeaturePackagedContentProvider.NoManifestFile= Unable to retrieve \"{0}\" in feature located at \"{1}\". 
-FeaturePackagedContentProvider.NoFeature= No feature
-FeaturePackagedContentProvider.FileDoesNotExist= The File \"{0}\" does not exist.
-FeaturePackagedContentProvider.InvalidDirectory= The directory \"{0}\" is not a valid directory.
-FeaturePackagedContentProvider.ErrorRetrieving= Error retrieving \"{0}\".
-FeaturePackagedContentProvider.ContentReferenceString= from \"{0}\"
-FeaturePackagedContentProvider.URLString= located at \"{0}\"
-FeatureReference.UnableToResolveURL= Internal Error: Unable to resolve model using URL: \"{0}\".
-FeatureTypeFactory.UnableToFindFeatureFactory= Unable to find a feature factory for the extension id \"{0}\". 
-InstallConfiguration.UnableToSaveConfiguration= Unable to save configuration in \"{0}\".
-InstallConfiguration.UnableToEncodeConfiguration= Unable to encode configuration in \"{0}\".
-InstallConfiguration.UnableToCreateURL= Unable to create URL from \"{0}\".
-InstallConfiguration.UnableToCast= Internal Error. The Configuration Site object is not a subclass of ConfiguredSiteModel
-InstallConfiguration.UnableToSavePlatformConfiguration=Unable to save platform configuration in \"{0}\".
-InstallConfiguration.AlreadyNativelyLinked=The site is already linked.
-InstallConfiguration.AlreadyProductSite=The location is already a product site.
-InstallConfiguration.NotAnExtensionSite=The site cannot be linked to. It is not an extension site.
-InternalSiteManager.UnableToCreateSiteWithType= Extension Error. The Site Factory of type \"{0}\" cannot access the Site \"{1}\".
-InternalSiteManager.UnableToAccessURL= Unable to access \"{0}\".
-InternalSiteManager.UnableToCreateURL= Unable to create URL from \"{0}\".
-InternalSiteManager.UnableToParseURL= Unable to parse the stream \"{0}\".
-InternalSiteManager.FailedRetryAccessingSite= Failed retry accessing site using default installed format instead of default packaged format.
-InternalSiteManager.ConnectingToSite = Connecting To Site...
-SiteReconciler.UnableToFindInstallDeltaFactory= Internal Error: Unable to find factory to display changes. Open the Update Manager manually.
-Policy.NoMessageAvailable= No message available.
-Policy.MissingMessage= Missing message: \"{0}\".
-Policy.Missing= missing \"{0}\".
-GlobalConsumer.ErrorCreatingFile= Unable to create file \"{0}\".
-SiteFileContentConsumer.UnableToCreateURL= Unable to create URL from \"{0}\".
-SiteFileContentConsumer.UnableToCreateURLForFile= Unable to create URL for the file \"{0}\".
-ContentConsumer.UnableToRename = Internal Error. Unable to rename \"{0}\" to \"{1}\".
-SiteFileFactory.UnableToRetriveSite= Unable retrieve this Site from a directory. The URL should point to a file instead.
-SiteFileFactory.UnableToObtainParentDirectory= Unable obtain the parent directory from the file \"{0}\".
-SiteFileFactory.FileDoesNotExist= Unable to access site \"{0}\". The directory does not exist.
-SiteFileFactory.UnableToCreateURLForFile= Unable to create URL from \"{0}\".
-SiteFileFactory.ErrorParsingFile= Unable to parse file \"{0}\".
-SiteFileFactory.ErrorAccessing= Unable to access file \"{0}\".
-SiteTypeFactory.UnableToFindSiteFactory= Unable to find a site factory for the extension id \"{0}\". 
-UpdateManagerUtils.UnableToRemoveFile= Unable to remove \"{0}\" from the file system.
-UpdateManagerUtils.FileAlreadyExists= Unable to create \"{0}\" on the file system. File already exists.
-SiteLocal.ErrorParsingSavedState= Error during parsing of the configuration saved state \"{0}\".
-SiteLocal.UnableToCreateURLFor= Unable to create URL from \"{0}\".
-SiteLocal.UnableToAccessFile= Unable to access file \"{0}\".
-SiteLocal.UnableToSaveStateIn= Unable to persist configurations into \"{0}\".
-SiteLocal.UnableToEncodeConfiguration= Unable to encode configurations into \"{0}\".
-SiteLocal.UnableToResolve= Internal Error. Unable to resolve \"{0}\".
-SiteLocal.UnableToRetrieveRWArea= Internal Error. Unable to retrieve location to write metadata.
-SiteLocal.SiteUrlIsNull= Internal Error: URL of local site is null.
-SiteLocal.UnableToDetermineFeatureStatusSiteNull=Unable to determine status of feature\"{0}\" The site is NULL.
-SiteLocal.TwoVersionSamePlugin1=Plug-in: \"{0}\" version: \"{1}\" referenced by this feature is not included at runtime. Runtime includes plug-in version \"{2}\".
-SiteLocal.TwoVersionSamePlugin2=Plug-in: \"{0}\" version: \"{1}\" referenced by this feature is not included at runtime. Runtime includes plug-in version \"{2}\" supplied by feature \"{3}\" version \"{4}\".
-SiteLocal.FeatureUnHappy=The feature is not configured properly.
-SiteLocal.FeatureHappy=The feature is configured properly.
-SiteLocal.FeatureAmbiguous=The feature may not be configured properly.
-SiteLocal.NestedFeatureUnHappy=Included feature \"{0}\" version \"{1}\" contains problems.
-SiteLocal.NestedFeatureUnavailable=Included feature \"{0}\" is missing.
-SiteLocal.NoPluginVersion=No plug-in: \"{0}\" included at runtime.
-SiteLocal.UnableToDetermineFeatureStatusConfiguredSiteNull=Unable to determine status of feature\"{0}\" The Configured Site is NULL.
-SiteLocal.FeatureDisable=The feature is disabled.
-SiteLocal.FeatureStatusUnknown=Unknown state.
-SiteLocal.NestedFeatureDisable=Included feature \"{0}\" version \"{1}\" is disabled.
-SiteLocal.NullFeature=The feature is null.
-SiteLocal.WrongURL=A URL of an Originating site is not valid.
-SiteReconciler.UnableToSaveStateIn= Unable to persist delta change into \"{0}\".
-SiteReconciler.UnableToEncodeConfiguration= Unable to encode delta change into \"{0}\".
-SiteURLFactory.UnableToCreateURL= Internal Error. Unable to create a URL from \"{0}\".
-SiteURLFactory.UnableToAccessSiteStream= Unable to access site: \"{0}\"
-JarVerifier.Verify= Verifying: \"{0}\"
-JarVerifier.UnableToFindEncryption= Unable to find algorithm to verify integrity of KeyStore \"{0}\".
-JarVerifier.UnableToLoadCertificate= Unable to load one or multiples certificates in the KeyStore \"{0}\".
-JarVerifier.UnableToFindProviderForKeystore= Unable to find provider for the KeyStore type \"{0}\".
-JarVerifier.KeyStoreNotLoaded= Internal Error. KeyStore not Initialized/Loaded.
-JarVerifier.UnableToAccessJar= Unable to access JAR file \"{0}\".
-JarVerifier.InvalidFile= The File \"{0}\" is not a valid JAR file. It does not contain a Manifest.
-JarVerifier.InvalidJar= The File \"{0}\" is not a valid JAR file.
-JarVerificationResult.ValidBetween= Valid between \"{0}\" and \"{1}\".
-JarVerificationResult.ExpiredCertificate= * EXPIRED CERTIFICATE *
-JarVerificationResult.CertificateNotYetValid= * CERTIFICATE NOT YET VALID *
-JarVerificationResult.CertificateValid= Valid certificate.
-JarVerificationService.UnsucessfulVerification=Verification of feature unsuccessful. Installation cancelled.
-JarVerificationService.CancelInstall=Installation cancelled.
-UpdateManagerUtils.UnableToLog=Unable to access error recovery log file: \"{0}\".
-ConfigurationPolicy.UnableToDisable= Unable to disable feature \"{0}\".
-ConfigurationPolicy.ParentIsEnable= The parent feature: \"{0}\" is enable.
-ConnectionThreadManager.tooManyConnections = There are too many network connections still active. \
-If you are experiencing network problems, try again later. If the error persists, restart the \
-application.
-ConnectionThreadManager.unresponsiveURL = Still waiting for response: {0}
-IncludedFeatureReference.featureUninstalled= Feature {0} is uninstalled.
-
-# Properties moved mostly from the ui plugin
-
-ActivityConstraints.warning=The current configuration contains errors and this operation can have unpredictable results.
-ActivityConstraints.rootMessage = Requested operation cannot be performed because it would invalidate the current configuration. See details for more information.
-ActivityConstraints.rootMessageInitial = Current configuration contains errors that are not corrected by the requested operation and more errors would be introduced. See details for more information.
-ActivityConstraints.beforeMessage = ----- Current configuration problems -----
-ActivityConstraints.afterMessage = ----- Configuration problems after the operation -----
-ActivityConstraints.platform = Resulting configuration does not contain the platform.
-ActivityConstraints.primary = Resulting configuration does not contain the primary feature.
-ActivityConstaints.prereq.plugin = plug-in
-ActivityConstaints.prereq.feature = feature
-ActivityConstraints.prereq = requires {0} "{1}".
-ActivityConstraints.prereqPerfect = requires {0} "{1} ({2})".
-ActivityConstraints.prereqEquivalent = requires {0} "{1} ({2})", or equivalent.
-ActivityConstraints.prereqCompatible = requires {0} "{1} ({2})", or compatible.
-ActivityConstraints.prereqGreaterOrEqual = requires {0} "{1} ({2})", or later version.
-ActivityConstraints.os = operating system does not match current environment.
-ActivityConstraints.ws = windowing system does not match current environment.
-ActivityConstraints.arch = platform architecture does not match current environment.
-ActivityConstraints.cycle = definition contains a nested features cycle: {0}_{1}prereq
-ActivityConstraints.conflict = Update conflict detected (see details). Please deselect this update and try again.
-ActivityConstraints.childMessage = {0} ({1}) {2}
-ActivityConstraints.optionalChild = Feature included in another feature cannot be enabled if the parent is disabled. Enable the parent first.
-ActivityConstraints.patchUnconfigure = is a patch and cannot be directly disabled. Use \'Revert\' to restore \
-the last configuration before the patch was installed.
-ActivityConstraints.patchUnconfigureBackup = is a patch and cannot be directly disabled. Use \'Revert\' to restore \
-configuration "{0}" in Saved Configurations.
-ActivityConstraints.timeline = Cannot revert to \"{0}\" because it is not compatible with the current configuration.
-ActivityConstraints.exclusive = must be processed separately from other features.
-ActivityConstraints.noLicense = does not have a valid license agreement.
-ActivityConstraints.readOnly = The site is not updateable: {0}.
-ActivityConstraints.platformModified = Platform configuration has been modified outside this program. A restart is recommended.
-DuplicateConflictsDialog.conflict = Version {0} in {1}
-UpdateManager.savedConfig = {0} backup
-OperationsManager.error.unable={0}: unable to locate configuration site
-OperationsManager.error.old= {0}: Error while updating the old feature version
-OperationsManager.installing=Initializing...
-OperationsManager.error.uninstall= {0} : Error while uninstalling feature
-Search.networkProblems=Network connection problems encountered during search.
-MissingFeature.id=unknown
-MissingFeature.desc.unknown=This feature reference cannot be resolved.
-MissingFeature.desc.optional=This feature is referenced as optional and is currently not installed.
-MissingFeature.provider=Unknown
-InstallConfiguration.location.exists = Site already exists.
-InstallLogParser.errors = Errors generated while parsing installation history file.
-SiteLocal.cloneConfig=Error clonning current configuration.
-
-UpdateManagerUtils.inputStreamEnded=InputStream ended after {0} bytes (expected {1} )
-UpdateSearchRequest.loadingPolicy=Loading update policy ...
-UpdateManagerUtils.copy=UpdateManagerUtils copy() at offset: 
-UpdatePolicy.parsePolicy=Errors while parsing update policy
-UpdatePolicy.parsePolicy=Errors while parsing update policy
-UpdatePolicy.policyExpected=' is expected.
-UpdateSearchRequest.searching=Searching...
-UpdateSearchRequest.contacting=Contacting 
-UpdateSearchRequest.checking=Checking 
-UpdatePolicy.invalidURL=invalid URL - 
-UpdatePolicy.nameNoNull= cannot be null.
-UpdatePolicy.UpdatePolicy=Update Policy: 
-SiteFile.featureNotRemoved=Feature {0} was not removed
-SiteFile.pluginNotRemoved=Plugin {0} was not removed
-ErrorRecoveryLog.recoveringStatus=Recovering status
-ErrorRecoveryLog.cannotFindLogFile=Unable to find log file:
-ErrorRecoveryLog.noPropertyFile=Unable to access property file:
-ErrorRecoveryLog.noLogEntry=Unable to read log file. File doesn't contain the log entry:
-ErrorRecoveryLog.noRecoveryToExecute=Unable to read log file. Unable to determine recovery to execute based on the first line of :
-ErrorRecoveryLog.wrongLogFile=Wrong log file. Unable to find entry for:
-ErrorRecoveryLog.noAction=Unable to determine what action was taken by parsing
-ErrorRecoveryLog.fileAlreadyRenamed=File already renamed into:
-ErrorRecoveryLog.cannotFindFile=Unable to find file:
-ErrorRecoveryLog.oldToNew=Unable to rename old in new:
-ErrorRecoveryLog.renamed=Sucessfully renamed:
-ErrorRecoveryLog.to= to:
-ErrorRecoveryLog.noAction=Unable to determine what action was taken by parsing
-ErrorRecoveryLog.cannotFindFile=Unable to find file:
-ErrorRecoveryLog.noFiletoRemove=Unable to find file to remove:
-ErrorRecoveryLog.removeFeature=The remove process didn't start. Please remove the disable feature from the program.
-ErrorRecoveryLog.wrongLogFile=Wrong log file. Unable to find entry for:
-UpdatesSearchCategory.errorSearchingForUpdates=Error while initializing the search for new updates
-Standalone.siteConfigured=Site is already configured: 
-Standalone.noSite=Cannot find site:  
-Standalone.noSite2=Cannot find site to install to: 
-Standalone.noSite3=No site specified
-Standalone.noConfiguredSite=Cannot find configured site:
-Standalone.installing=Installing feature
-Standalone.feature=Feature 
-Standalone.notFound= cannot be found on 
-Standalone.newerInstalled=\nor a newer version is already installed.
-Standalone.duplicate=Duplicate conflicts
-Standalone.feature=Feature 
-Standalone.installed= has successfully been installed
-Standalone.cannotInstall=Cannot install feature 
-Standalone.noFeatures1=There are no unconfigured features with id {0}
-Standalone.noFeatures2=Cannot find unconfigured feature  {0} with version {1}
-Standalone.noFeatures3=There are no configured features with id {0}
-Standalone.noFeatures4=Cannot find configured feature  {0} with version {1}
-Standalone.noConfigSiteForFeature=There are no configured sites for feature {0}
-Standalone.featureNotInstalledByUM=Feature {0} was not installed by the update manager, so it cannot be uninstalled.
-Standalone.invalidCmd=Invalid command:
-Standalone.connection = Connection error
-Standalone.searching = Searching on: 
-Standalone.cmdFailed = Command failed. Please check log file {0} for details.
-Standalone.cmdFailedNoLog = Command failed.
-Standalone.cmdCompleteWithErrors = Command completed with errors. Please check log file {0} for details.
-Standalone.cmdOK = Command completed successfully.
-Standalone.updating = Begin updating
-Standalone.noUpdate = Feature {0} cannot be updated.
-Standalone.updated= has successfully been updated.
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorCommand.java
deleted file mode 100644
index 30ba217..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorCommand.java
+++ /dev/null
@@ -1,228 +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 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.update.internal.mirror;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.standalone.*;
-
-/**
- * Mirrors a remote site locally.
- */
-public class MirrorCommand extends ScriptedCommand {
-
-	private String featureId;
-	private String featureVersion;
-	private String fromSiteUrl;
-	private String toSiteDir;
-	private String mirrorURL;
-	private MirrorSite mirrorSite;
-
-	public MirrorCommand(
-		String featureId,
-		String featureVersion,
-		String fromSiteUrl,
-		String toSiteDir,
-		String mirrorUrl) {
-		this.featureId = featureId;
-		this.featureVersion = featureVersion;
-		this.fromSiteUrl = fromSiteUrl;
-		this.toSiteDir = toSiteDir;
-		this.mirrorURL = mirrorUrl;
-	}
-
-	/**
-	 * true if success
-	 */
-	public boolean run(IProgressMonitor monitor) {
-		if (!validateParameters()) {
-			return false;
-		}
-
-		try {
-			if (getMirrorSite() == null)
-				return false;
-
-			URL remoteSiteUrl = new URL(fromSiteUrl);
-			ISite remoteSite =
-				SiteManager.getSite(remoteSiteUrl, new NullProgressMonitor());
-
-			ISiteFeatureReference featureReferencesToMirror[] =
-				findFeaturesToMirror(remoteSite);
-			if (featureReferencesToMirror.length == 0) {
-				StandaloneUpdateApplication.exceptionLogged();
-				UpdateCore.log(
-					Utilities.newCoreException(
-						"No matching features found on " + remoteSiteUrl + ".", //$NON-NLS-1$ //$NON-NLS-2$
-						null));
-				return false;
-			}
-
-			mirrorSite.mirrorAndExpose(
-				remoteSite,
-				featureReferencesToMirror,
-				null,
-				mirrorURL);
-			return true;
-		} catch (MalformedURLException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-			return false;
-		} catch (CoreException ce) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(ce);
-			return false;
-		} finally {
-			JarContentReference.shutdown();
-		}
-	}
-	private boolean validateParameters() {
-		if (fromSiteUrl == null || fromSiteUrl.length() <= 0) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(
-				Utilities.newCoreException("from parameter is missing.", null)); //$NON-NLS-1$
-			return false;
-		}
-		try {
-			new URL(fromSiteUrl);
-		} catch (MalformedURLException mue) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(
-				Utilities.newCoreException("from must be a valid URL", null)); //$NON-NLS-1$
-			return false;
-		}
-		if (toSiteDir == null || toSiteDir.length() <= 0) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(
-				Utilities.newCoreException("to parameter is missing.", null)); //$NON-NLS-1$
-			return false;
-		}
-		return true;
-	}
-	private MirrorSite getMirrorSite()
-		throws MalformedURLException, CoreException {
-		// Create mirror site
-		if (mirrorSite == null) {
-			if (toSiteDir != null) {
-				MirrorSiteFactory factory = new MirrorSiteFactory();
-				System.out.print("Analyzing features already mirrored ..."); //$NON-NLS-1$
-				try {
-					mirrorSite =
-						(MirrorSite) factory.createSite(new File(toSiteDir));
-				} catch (InvalidSiteTypeException iste) {
-				}
-				System.out.println("  Done."); //$NON-NLS-1$
-			}
-			if (mirrorSite == null) {
-				StandaloneUpdateApplication.exceptionLogged();
-				UpdateCore.log(
-					Utilities.newCoreException(
-						"Mirror site at " + toSiteDir + " cannot be accessed.", //$NON-NLS-1$ //$NON-NLS-2$
-						null));
-				return null;
-			}
-		}
-		return mirrorSite;
-
-	}
-	/**
-	 * Returns subset of feature references on remote site
-	 * as specified by optional featureId and featureVersion
-	 * parameters
-	 * @param remoteSite
-	 * @return ISiteFeatureReference[]
-	 * @throws CoreException
-	 */
-	private ISiteFeatureReference[] findFeaturesToMirror(ISite remoteSite)
-		throws CoreException {
-		ISiteFeatureReference remoteSiteFeatureReferences[] =
-			remoteSite.getRawFeatureReferences();
-		SiteFeatureReferenceModel existingFeatureModels[] =
-			mirrorSite.getFeatureReferenceModels();
-		Collection featureReferencesToMirror = new ArrayList();
-
-		PluginVersionIdentifier featureVersionIdentifier = null;
-
-		if (featureId == null) {
-			System.out.println(
-				"Parameter feature not specified.  All features on the remote site will be mirrored."); //$NON-NLS-1$
-		}
-		if (featureVersion == null) {
-			System.out.println(
-				"Parameter version not specified.  All versions of features on the remote site will be mirrored."); //$NON-NLS-1$
-		} else {
-			featureVersionIdentifier =
-				new PluginVersionIdentifier(featureVersion);
-		}
-		for (int i = 0; i < remoteSiteFeatureReferences.length; i++) {
-			VersionedIdentifier remoteFeatureVersionedIdentifier =
-				remoteSiteFeatureReferences[i].getVersionedIdentifier();
-
-			if (featureId != null
-				&& !featureId.equals(
-					remoteFeatureVersionedIdentifier.getIdentifier())) {
-				// id does not match
-				continue;
-			}
-			if (featureVersionIdentifier != null
-				&& !featureVersionIdentifier.isPerfect(
-					remoteFeatureVersionedIdentifier.getVersion())) {
-				// version does not match
-				continue;
-			}
-
-			for (int e = 0; e < existingFeatureModels.length; e++) {
-				if (existingFeatureModels[e]
-					.getVersionedIdentifier()
-					.equals(remoteFeatureVersionedIdentifier)) {
-					System.out.println(
-						"Feature " //$NON-NLS-1$
-							+ remoteFeatureVersionedIdentifier
-							+ " already mirrored and exposed."); //$NON-NLS-1$
-					// feature already mirrored and exposed in site.xml
-					continue;
-				}
-			}
-
-			// Check feature type
-			String type =
-				((SiteFeatureReference) remoteSiteFeatureReferences[i])
-					.getType();
-			if (type != null
-				&& !ISite.DEFAULT_PACKAGED_FEATURE_TYPE.equals(type)) {
-				// unsupported
-				throw Utilities.newCoreException(
-					"Feature " //$NON-NLS-1$
-						+ remoteFeatureVersionedIdentifier
-						+ " is of type " //$NON-NLS-1$
-						+ type
-						+ ".  Only features of type " //$NON-NLS-1$
-						+ ISite.DEFAULT_PACKAGED_FEATURE_TYPE
-						+ " are supported.", //$NON-NLS-1$
-					null);
-			}
-
-			featureReferencesToMirror.add(remoteSiteFeatureReferences[i]);
-			System.out.println(
-				"Feature " //$NON-NLS-1$
-					+ remoteSiteFeatureReferences[i].getVersionedIdentifier()
-					+ " will be mirrored."); //$NON-NLS-1$
-		}
-		return (ISiteFeatureReference[]) featureReferencesToMirror.toArray(
-			new ISiteFeatureReference[featureReferencesToMirror.size()]);
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorSite.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorSite.java
deleted file mode 100644
index fef9f39..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorSite.java
+++ /dev/null
@@ -1,749 +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 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.update.internal.mirror;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.standalone.*;
-
-/**
- * Local mirror site.  Read/Write
- */
-public class MirrorSite extends Site {
-	private final static String INDENT = "   "; //$NON-NLS-1$
-	private SiteModelFactory factory;
-	/**
-	 * plugin entries 
-	 */
-	private Collection downloadedPluginEntries = new ArrayList();
-	private Collection downloadedFeatureReferenceModels = new ArrayList();
-	public MirrorSite(SiteModelFactory factory) {
-		this.factory = factory;
-	}
-
-	/**
-	 * Mirrors the specified features and listed optional features on this site.
-	 * @see ISite#install(IFeature, IVerificationListener, IProgressMonitor)
-	 * @param mirrorSiteUrl external URL of the mirror site or null;
-	 * if parameter is provided policy fragment will be generated
-	 * @exception CoreException
-	 */
-	public void mirrorAndExpose(
-		ISite remoteSite,
-		ISiteFeatureReference[] sourceFeatureRefs,
-		IFeatureReference[] optionalfeatures,
-		String mirrorSiteUrl)
-		throws CoreException {
-
-		mirrorAndExposeFeatures(
-			remoteSite,
-			sourceFeatureRefs,
-			optionalfeatures);
-
-		System.out.println(
-			"Installing features finished. Updating categories ..."); //$NON-NLS-1$
-		updateCategories(remoteSite);
-		System.out.println(
-			"Updating categories finished. Updating site description ..."); //$NON-NLS-1$
-		updateDescription(remoteSite);
-		System.out.println(
-			"Updating site description finished. Saving site.xml ..."); //$NON-NLS-1$
-		save();
-		if (mirrorSiteUrl != null) {
-			generateUpdatePolicy(mirrorSiteUrl);
-		}
-	}
-	private void mirrorAndExposeFeatures(
-		ISite remoteSite,
-		ISiteFeatureReference[] sourceFeatureRefs,
-		IFeatureReference[] optionalfeatures)
-		throws CoreException {
-
-		// Features that failed will be retried once again
-		Collection failedFeatures = new ArrayList();
-		for (int i = 0; i < sourceFeatureRefs.length; i++) {
-			try {
-				IFeature sourceFeature =
-					sourceFeatureRefs[i].getFeature(new NullProgressMonitor());
-				SiteFeatureReferenceModel featureRef =
-					mirrorFeature(
-						remoteSite,
-						sourceFeature,
-						optionalfeatures,
-						1);
-				// Set categories of the new feature
-				ICategory remoteCategories[] =
-					sourceFeatureRefs[i].getCategories();
-				for (int j = 0; j < remoteCategories.length; j++) {
-					featureRef.addCategoryName(remoteCategories[j].getName());
-				}
-
-				addFeatureReferenceModel(remoteSite, featureRef);
-			} catch (CoreException ce) {
-				failedFeatures.add(sourceFeatureRefs[i]);
-			}
-		}
-
-		// do we need to retry?
-		if (failedFeatures.size() > 0) {
-			sourceFeatureRefs =
-				(ISiteFeatureReference[]) failedFeatures.toArray(
-					new ISiteFeatureReference[failedFeatures.size()]);
-		} else {
-			return;
-		}
-
-		for (int i = 0; i < sourceFeatureRefs.length; i++) {
-			IFeature sourceFeature =
-				sourceFeatureRefs[i].getFeature(new NullProgressMonitor());
-			SiteFeatureReferenceModel featureRef =
-				mirrorFeature(remoteSite, sourceFeature, optionalfeatures, 1);
-			// Set categories of the new feature
-			ICategory remoteCategories[] = sourceFeatureRefs[i].getCategories();
-			for (int j = 0; j < remoteCategories.length; j++) {
-				featureRef.addCategoryName(remoteCategories[j].getName());
-			}
-
-			addFeatureReferenceModel(remoteSite, featureRef);
-		}
-	}
-
-	/**
-	 * Install the specified feature and listed optional features on this site.
-	 * @see ISite#install(IFeature, IVerificationListener, IProgressMonitor)
-	 * @exception CoreException
-	 */
-	private SiteFeatureReferenceModel mirrorFeature(
-		ISite remoteSite,
-		IFeature sourceFeature,
-		IFeatureReference[] optionalfeatures,
-		int indent)
-		throws CoreException {
-		String tab = ""; //$NON-NLS-1$
-		for (int i = 0; i < indent; i++)
-			tab += " "; //$NON-NLS-1$
-		System.out.println(
-			tab
-				+ "Mirroring feature " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		SiteFeatureReferenceModel existingFeatures[] =
-			getDownloadedFeatureReferenceModels();
-		for (int e = 0; e < existingFeatures.length; e++) {
-			if (existingFeatures[e]
-				.getVersionedIdentifier()
-				.equals(sourceFeature.getVersionedIdentifier())) {
-				System.out.println(
-					tab
-						+ "Feature " //$NON-NLS-1$
-						+ sourceFeature.getVersionedIdentifier()
-						+ " already exists.  Skipping downloading."); //$NON-NLS-1$
-				return existingFeatures[e];
-			}
-		}
-
-		final IFeatureContentProvider provider =
-			sourceFeature.getFeatureContentProvider();
-		System.out.println(
-			tab
-				+ "Getting plugin entries for " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		final IPluginEntry[] sourceFeaturePluginEntries =
-			sourceFeature.getPluginEntries();
-
-		// determine list of plugins to install
-		// find the intersection between the plugin entries already contained
-		// on the target site, and plugin entries packaged in source feature
-
-		IPluginEntry[] pluginsToInstall =
-			UpdateManagerUtils.diff(
-				sourceFeaturePluginEntries,
-				getDownloadedPluginEntries());
-
-		System.out.println(
-			tab
-				+ "Getting non plugin entries for " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		final INonPluginEntry[] nonPluginsToInstall =
-			sourceFeature.getRawNonPluginEntries();
-
-		System.out.println(
-			tab
-				+ "Getting included features for " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		IFeatureReference[] children =
-			sourceFeature.getRawIncludedFeatureReferences();
-		if (optionalfeatures != null) {
-			children =
-				UpdateManagerUtils.optionalChildrenToInstall(
-					children,
-					optionalfeatures);
-		}
-
-		System.out.println(
-			tab
-				+ "Downloading feature archives for " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		// download feature archives
-		provider.getFeatureEntryArchiveReferences(null);
-
-		System.out.println(
-			tab
-				+ "Downloading plug-in archives for " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		// download plugin archives
-		for (int i = 0; i < pluginsToInstall.length; i++) {
-			provider.getPluginEntryArchiveReferences(pluginsToInstall[i], null);
-		}
-
-		System.out.println(
-			tab
-				+ "Downloading non plug-in archives for " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		// download non-plugin archives
-		for (int i = 0; i < nonPluginsToInstall.length; i++) {
-			provider.getNonPluginEntryArchiveReferences(
-				nonPluginsToInstall[i],
-				null);
-		}
-
-		System.out.println(
-			tab
-				+ "Installing child features for " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		// install child features first
-		for (int i = 0; i < children.length; i++) {
-			IFeature childFeature = children[i].getFeature(null);
-			mirrorFeature(
-				remoteSite,
-				childFeature,
-				optionalfeatures,
-				indent + 1);
-		}
-
-		System.out.println(
-			tab
-				+ "Storing plug-in archives for " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		// store plugins' archives
-		for (int i = 0; i < pluginsToInstall.length; i++) {
-			ContentReference[] references =
-				provider.getPluginEntryArchiveReferences(
-					pluginsToInstall[i],
-					null);
-			storePluginArchive(references[0]);
-			addDownloadedPluginEntry(pluginsToInstall[i]);
-		}
-
-		System.out.println(
-			tab
-				+ "Storing non plug-in archives for " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		// store non plugins' archives
-		for (int i = 0; i < nonPluginsToInstall.length; i++) {
-			ContentReference[] references =
-				provider.getNonPluginEntryArchiveReferences(
-					nonPluginsToInstall[i],
-					null);
-			for (int r = 0; r < references.length; r++) {
-				storeNonPluginArchive(
-					sourceFeature.getVersionedIdentifier(),
-					references[r]);
-			}
-		}
-
-		System.out.println(
-			tab
-				+ "Storing feature archives for " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " ..."); //$NON-NLS-1$
-		// store feature archive
-		ContentReference[] references =
-			provider.getFeatureEntryArchiveReferences(null);
-		storeFeatureArchive(references[0]);
-
-		System.out.println(
-			tab
-				+ "Adding feature " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " to model ..."); //$NON-NLS-1$
-
-		// add feature model to site model
-		SiteFeatureReferenceModel featureRef =
-			factory.createFeatureReferenceModel();
-		featureRef.setSiteModel(this);
-		//featureRef.setURLString(featureURL.toExternalForm());
-		featureRef.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);
-		featureRef.setFeatureIdentifier(
-			sourceFeature.getVersionedIdentifier().getIdentifier());
-		featureRef.setFeatureVersion(
-			sourceFeature.getVersionedIdentifier().getVersion().toString());
-		addDownloadedFeatureReferenceModel(featureRef);
-
-		System.out.println(
-			tab
-				+ "Mirroring feature " //$NON-NLS-1$
-				+ sourceFeature.getVersionedIdentifier()
-				+ " finished."); //$NON-NLS-1$
-		return featureRef;
-
-	}
-	/**
-	 * Adds a feature reference model to this site,
-	 * and exposes in site.xml if remote site exposes given feature.
-	 */
-	public void addFeatureReferenceModel(
-		ISite remoteSite,
-		SiteFeatureReferenceModel featureReference) {
-		// check if remote site exposes this feature
-		ISiteFeatureReference remoteFeatures[] =
-			remoteSite.getRawFeatureReferences();
-		for (int i = 0; i < remoteFeatures.length; i++) {
-			ISiteFeatureReference remoteFeatureRef = remoteFeatures[i];
-			try {
-				if (remoteFeatureRef
-					.getVersionedIdentifier()
-					.equals(featureReference.getVersionedIdentifier())) {
-					addFeatureReferenceModel(featureReference);
-				}
-			} catch (CoreException ce) {
-				StandaloneUpdateApplication.exceptionLogged();
-				UpdateCore.log(ce);
-			}
-		}
-		save();
-		System.out.println(
-			"Feature " //$NON-NLS-1$
-				+ featureReference.getVersionedIdentifier()
-				+ " added to site.xml."); //$NON-NLS-1$
-	}
-	/**
-	 * Adds feature model to site model, removing old feature
-	 */
-	public void addFeatureReferenceModel(SiteFeatureReferenceModel featureReference) {
-		SiteFeatureReferenceModel[] existingModels =
-			getFeatureReferenceModels();
-		for (int j = 0; j < existingModels.length; j++) {
-			if (existingModels[j]
-				.getVersionedIdentifier()
-				.equals(featureReference.getVersionedIdentifier())) {
-				super.removeFeatureReferenceModel(existingModels[j]);
-			}
-		}
-		super.addFeatureReferenceModel(featureReference);
-	}
-
-	/**
-	 * @see ISiteContentConsumer#store(ContentReference, IProgressMonitor)
-	 */
-	private void storeFeatureArchive(ContentReference contentReference)
-		throws CoreException {
-		InputStream inStream = null;
-		String featurePath = null;
-
-		try {
-			URL newURL =
-				new URL(
-					this.getURL(),
-					Site.DEFAULT_INSTALLED_FEATURE_PATH
-						+ contentReference.getIdentifier()
-						+ ".jar"); //$NON-NLS-1$
-			featurePath = newURL.getFile();
-			inStream = contentReference.getInputStream();
-			UpdateManagerUtils.copyToLocal(inStream, featurePath, null);
-		} catch (IOException e) {
-			throw Utilities.newCoreException(
-				"Error occurred while creating "+ featurePath+" file.", //$NON-NLS-1$ //$NON-NLS-2$
-				e);
-		} finally {
-			if (inStream != null) {
-				try {
-					inStream.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-
-	}
-	/**
-	* @see ISiteContentConsumer#store(ContentReference, IProgressMonitor)
-	*/
-	private void storePluginArchive(ContentReference contentReference)
-		throws CoreException {
-
-		InputStream inStream = null;
-		String pluginPath = null;
-		try {
-			URL newURL = new URL(getURL(), contentReference.getIdentifier());
-			pluginPath = newURL.getFile();
-			inStream = contentReference.getInputStream();
-			UpdateManagerUtils.copyToLocal(inStream, pluginPath, null);
-		} catch (IOException e) {
-			throw Utilities.newCoreException(
-			"Error occurred while creating "+ pluginPath+" file.", //$NON-NLS-1$ //$NON-NLS-2$
-				e);
-		} finally {
-			if (inStream != null) {
-				try {
-					inStream.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-
-	private void storeNonPluginArchive(
-		VersionedIdentifier featureVersionedIdentifier,
-		ContentReference contentReference)
-		throws CoreException {
-
-		InputStream inStream = null;
-		File nonPluginArchivePath = null;
-		try {
-			URL newDirURL =
-				new URL(
-					getURL(),
-					Site.DEFAULT_INSTALLED_FEATURE_PATH
-						+ "/" //$NON-NLS-1$
-						+ featureVersionedIdentifier);
-			File dir = new File(newDirURL.getFile());
-			dir.mkdirs();
-			inStream = contentReference.getInputStream();
-			nonPluginArchivePath =
-				new File(dir, contentReference.getIdentifier());
-			UpdateManagerUtils.copyToLocal(
-				inStream,
-				nonPluginArchivePath.getAbsolutePath(),
-				null);
-		} catch (IOException e) {
-			throw Utilities.newCoreException(
-			"Error occurred while creating "+ nonPluginArchivePath.getAbsolutePath()+" file." //$NON-NLS-1$ //$NON-NLS-2$
-				,e);
-		} finally {
-			if (inStream != null) {
-				try {
-					inStream.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-
-	private void save() {
-		FileOutputStream fos = null;
-		try {
-			URL siteURL = new URL(this.getURL(), "site.xml"); //$NON-NLS-1$
-			fos = new FileOutputStream(new File(siteURL.getFile()));
-			OutputStreamWriter outWriter = new OutputStreamWriter(fos, "UTF-8"); //$NON-NLS-1$
-			PrintWriter writer = new PrintWriter(outWriter);
-			save(writer);
-			writer.flush();
-		} catch (IOException ioe) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(
-				Utilities.newCoreException(
-					"Site XML could not be saved.", //$NON-NLS-1$
-					ioe));
-		} finally {
-			if (fos != null) {
-				try {
-					fos.close();
-				} catch (IOException ioe2) {
-				}
-			}
-		}
-	}
-	private void save(PrintWriter writer) {
-		writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); //$NON-NLS-1$
-		//writer.println("<!DOCTYPE site SYSTEM \"dtd/site.dtd\">");
-		writeSite("", writer); //$NON-NLS-1$
-	}
-
-	private void writeSite(String indent, PrintWriter writer) {
-		writer.print(indent + "<site"); //$NON-NLS-1$
-		String indent2 = indent + INDENT;
-		// default type
-		//writeIfDefined(indenta, writer, "type", getType());
-		// stored relative to site.xml
-		//writeIfDefined(indenta, writer, "url", getURL());
-		writer.println(">"); //$NON-NLS-1$
-		URLEntryModel description = getDescriptionModel();
-		if (description != null) {
-			writer.println();
-			writeDescription(indent2, writer, description);
-			writer.println();
-		}
-		writeFeatures(indent2, writer);
-		writeCategories(indent2, writer);
-		writer.println(indent + "</site>"); //$NON-NLS-1$
-	}
-	private void writeFeatures(String indent, PrintWriter writer) {
-		SiteFeatureReferenceModel[] featureReferenceModels =
-			getFeatureReferenceModels();
-		for (int i = 0; i < featureReferenceModels.length; i++) {
-			writer.print(indent);
-			writer.print("<feature"); //$NON-NLS-1$
-			writer.print(
-				" url=\"features/" //$NON-NLS-1$
-					+ featureReferenceModels[i].getFeatureIdentifier()
-					+ "_" //$NON-NLS-1$
-					+ featureReferenceModels[i].getFeatureVersion()
-					+ ".jar\""); //$NON-NLS-1$
-			writer.print(
-				" id=\"" //$NON-NLS-1$
-					+ featureReferenceModels[i].getFeatureIdentifier()
-					+ "\""); //$NON-NLS-1$
-			writer.print(
-				" version=\"" //$NON-NLS-1$
-					+ featureReferenceModels[i].getFeatureVersion()
-					+ "\""); //$NON-NLS-1$
-			writer.println(">"); //$NON-NLS-1$
-
-			String[] categoryNames =
-				featureReferenceModels[i].getCategoryNames();
-			for (int cn = 0; cn < categoryNames.length; cn++) {
-				writer.print(indent + INDENT);
-				writer.println(
-					"<category name=\"" + categoryNames[cn] + "\" />"); //$NON-NLS-1$ //$NON-NLS-2$
-
-			}
-
-			writer.print(indent);
-			writer.println("</feature>"); //$NON-NLS-1$
-			writer.println();
-		}
-	}
-	private void writeCategories(String indent, PrintWriter writer) {
-		CategoryModel[] categoryModels = getCategoryModels();
-		if (categoryModels.length <= 0) {
-			return;
-		}
-		for (int i = 0; i < categoryModels.length; i++) {
-			writer.print(indent);
-			writer.print("<category-def"); //$NON-NLS-1$
-			writer.print(
-				" name=\"" //$NON-NLS-1$
-					+ categoryModels[i].getName()
-					+ "\" label=\"" //$NON-NLS-1$
-					+ categoryModels[i].getLabel()
-					+ "\""); //$NON-NLS-1$
-			writer.println(">"); //$NON-NLS-1$
-			writeDescription(
-				indent + INDENT,
-				writer,
-				categoryModels[i].getDescriptionModel());
-			writer.print(indent);
-			writer.println("</category-def>"); //$NON-NLS-1$
-			writer.println();
-		}
-	}
-	private void writeDescription(
-		String indent,
-		PrintWriter writer,
-		URLEntryModel urlEntryModel) {
-		String url = urlEntryModel.getURLString();
-		String text = urlEntryModel.getAnnotationNonLocalized();
-		if (url == null && text == null && text.length() <= 0) {
-			return;
-		}
-		writer.print(indent);
-		writer.print("<description"); //$NON-NLS-1$
-		if (url != null)
-			writer.print(" url=\"" + url + "\""); //$NON-NLS-1$ //$NON-NLS-2$
-		if (text == null || text.length() <= 0) {
-			writer.println(" />"); //$NON-NLS-1$
-		} else {
-			writer.println(">"); //$NON-NLS-1$
-			if (text != null) {
-				writer.println(
-					indent + INDENT + UpdateManagerUtils.Writer.xmlSafe(text));
-			}
-			writer.println(indent + "</description>"); //$NON-NLS-1$
-		}
-	}
-	/**
-	 * Adds a plugin entry 
-	 * Either from parsing the file system or 
-	 * installing a feature
-	 * 
-	 * We cannot figure out the list of plugins by reading the Site.xml as
-	 * the archives tag are optionals
-	 */
-	public void addDownloadedPluginEntry(IPluginEntry pluginEntry) {
-		downloadedPluginEntries.add(pluginEntry);
-	}
-
-	private IPluginEntry[] getDownloadedPluginEntries() {
-		return (IPluginEntry[]) downloadedPluginEntries.toArray(
-			new IPluginEntry[downloadedPluginEntries.size()]);
-	}
-	/**
-	 * Adds a plugin entry 
-	 * Either from parsing the file system or 
-	 * installing a feature
-	 * 
-	 * We cannot figure out the list of plugins by reading the Site.xml as
-	 * the archives tag are optionals
-	 */
-	public void addDownloadedFeatureReferenceModel(SiteFeatureReferenceModel featureModel) {
-		downloadedFeatureReferenceModels.add(featureModel);
-	}
-
-	private SiteFeatureReferenceModel[] getDownloadedFeatureReferenceModels() {
-		return (
-			SiteFeatureReferenceModel[]) downloadedFeatureReferenceModels
-				.toArray(
-			new SiteFeatureReferenceModel[downloadedFeatureReferenceModels
-				.size()]);
-	}
-	/**
-	 * Checks if mirror site contains a feature with given ID and version
-	 * @param featureRefModel
-	 * @return true if such feature exists
-	 */
-	/*private boolean contains(SiteFeatureReferenceModel featureRefModel) {
-		ISiteFeatureReference featureRefs[] = getRawFeatureReferences();
-		for (int i = 0; i < featureRefs.length; i++) {
-			try {
-				if (featureRefs[i]
-					.getVersionedIdentifier()
-					.equals(featureRefModel.getVersionedIdentifier())) {
-					return true;
-				}
-			} catch (CoreException ce) {
-				ce.printStackTrace();
-			}
-		}
-		return false;
-	}*/
-
-	/**
-	 * Updates description of this site
-	 * from description of the remote site.
-	 */
-	private void updateDescription(ISite remoteSite) {
-		IURLEntry urlEntry = remoteSite.getDescription();
-		if (urlEntry != null) {
-			URLEntryModel newUrlEntryModel = new URLEntryModel();
-			URL url = urlEntry.getURL();
-			newUrlEntryModel.setAnnotation(urlEntry.getAnnotation());
-			newUrlEntryModel.setURLString(url.toExternalForm());
-			this.setDescriptionModel(newUrlEntryModel);
-		}
-	}
-	/**
-	 * Updates all categories used by features on this site
-	 * from categories defined on remote site.
-	 * Categories not defined on remote site are unchanged.
-	 */
-	private void updateCategories(ISite remoteSite) {
-		// collect name of categories used on this site
-		Set usedCategoryNames = new HashSet();
-		SiteFeatureReferenceModel featureRefModels[] =
-			getFeatureReferenceModels();
-		for (int f = 0; f < featureRefModels.length; f++) {
-			String[] featureCategoryNames =
-				featureRefModels[f].getCategoryNames();
-
-			for (int c = 0; c < featureCategoryNames.length; c++) {
-				usedCategoryNames.add(featureCategoryNames[c]);
-			}
-		}
-
-		Collection newCategoryModels = new ArrayList();
-		for (Iterator it = usedCategoryNames.iterator(); it.hasNext();) {
-			String name = (String) it.next();
-			ICategory remoteCategory = remoteSite.getCategory(name);
-			if (remoteCategory == null) {
-				// remote site does not define this category
-				CategoryModel oldCategory = null;
-				try {
-					oldCategory = (CategoryModel) getCategory(name);
-				} catch (NullPointerException npe) {
-					// cannot reproduce npe anymore
-				}
-				if (oldCategory != null) {
-					newCategoryModels.add(oldCategory);
-				}
-			} else {
-				newCategoryModels.add(remoteCategory);
-			}
-
-		}
-		setCategoryModels(
-			(CategoryModel[]) newCategoryModels.toArray(
-				new CategoryModel[newCategoryModels.size()]));
-
-	}
-	private void generateUpdatePolicy(String url) {
-		FileOutputStream fos = null;
-		try {
-			URL siteURL = new URL(this.getURL(), "policy.xml"); //$NON-NLS-1$
-			fos = new FileOutputStream(new File(siteURL.getFile()));
-			OutputStreamWriter outWriter = new OutputStreamWriter(fos, "UTF-8"); //$NON-NLS-1$
-			PrintWriter writer = new PrintWriter(outWriter);
-
-			writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); //$NON-NLS-1$
-			writer.println("<update-policy>"); //$NON-NLS-1$
-
-			writer.println(
-				"<!-- You can paste the following fragment, containing url-map elements, into another policy file. -->"); //$NON-NLS-1$
-			writeUrlMaps(writer, url);
-			writer.println("<!-- End of fragment with url-map elements. -->"); //$NON-NLS-1$
-
-			writer.println("</update-policy>"); //$NON-NLS-1$
-
-			writer.flush();
-		} catch (IOException ioe) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(
-				Utilities.newCoreException(
-					"policy.xml could not be saved", //$NON-NLS-1$
-					ioe));
-		} finally {
-			if (fos != null) {
-				try {
-					fos.close();
-				} catch (IOException ioe2) {
-				}
-			}
-		}
-	}
-	private void writeUrlMaps(PrintWriter writer, String url) {
-		SiteFeatureReferenceModel[] featureReferenceModels =
-			getFeatureReferenceModels();
-		for (int i = 0; i < featureReferenceModels.length; i++) {
-			writer.print("\t"); //$NON-NLS-1$
-			writer.print("<url-map"); //$NON-NLS-1$
-			writer.print(
-				" pattern=\"" //$NON-NLS-1$
-					+ featureReferenceModels[i].getFeatureIdentifier()
-					+ "\""); //$NON-NLS-1$
-			writer.print(" url=\"" + url + "\""); //$NON-NLS-1$ //$NON-NLS-2$
-			writer.println(" />"); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorSiteFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorSiteFactory.java
deleted file mode 100644
index 02815e0..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorSiteFactory.java
+++ /dev/null
@@ -1,224 +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 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.update.internal.mirror;
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.model.*;
-import org.eclipse.update.standalone.*;
-import org.xml.sax.*;
-
-public class MirrorSiteFactory extends BaseSiteFactory {
-	/*
-	 * @see SiteModelFactory#createSiteMapModel()
-	 */
-	public SiteModel createSiteMapModel() {
-		return new MirrorSite(this);
-	}
-	/*
-	 * @see ISiteFactory#createSite(URL)
-	 */
-	public ISite createSite(URL url)
-		throws CoreException, InvalidSiteTypeException {
-		return createSite(new File(url.getFile()));
-	}
-	/*
-	 * @see ISiteFactory#createSite(URL)
-	 */
-	public ISite createSite(File siteLocation)
-		throws CoreException, InvalidSiteTypeException {
-
-		InputStream siteStream = null;
-
-		if (!siteLocation.exists()) {
-			if (!siteLocation.mkdirs()) {
-				throw Utilities.newCoreException(
-					"Directory " //$NON-NLS-1$
-						+ siteLocation.getAbsolutePath()
-						+ " could not be created.", //$NON-NLS-1$
-					null);
-			}
-		}
-		if (!siteLocation.isDirectory() || !siteLocation.canWrite())
-			throw Utilities.newCoreException(
-				siteLocation.getAbsolutePath()
-					+ " is not a directory or is not writtable.", //$NON-NLS-1$
-				null);
-
-		MirrorSite site = null;
-		// parse public features
-		if (new File(siteLocation, Site.SITE_XML).exists()) {
-			try {
-				siteStream =
-					new FileInputStream(new File(siteLocation, Site.SITE_XML));
-			} catch (FileNotFoundException fnfe) {
-			}
-			site = (MirrorSite) parseSite(siteStream);
-			try {
-				if (siteStream != null)
-					siteStream.close();
-			} catch (IOException e) {
-			}
-		}
-		if (site == null) {
-			site = (MirrorSite) createSiteMapModel();
-		}
-		// parse downloaded plugins and fragments
-		parseDownloadedPluginsAndFragments(
-			site,
-			new File(siteLocation, Site.DEFAULT_PLUGIN_PATH));
-		// parse downloaded features
-		parseDownloadedFeatures(
-			site,
-			new File(siteLocation, Site.DEFAULT_FEATURE_PATH));
-
-		URL url;
-		try {
-			url = siteLocation.toURL();
-		} catch (MalformedURLException mue) {
-			throw Utilities.newCoreException(
-				"A URL for site " //$NON-NLS-1$
-					+ siteLocation.getAbsolutePath()
-					+ " could not be created.", //$NON-NLS-1$
-				mue);
-		}
-		SiteContentProvider contentProvider = null;
-		contentProvider = new SiteFileContentProvider(url);
-
-		site.setSiteContentProvider(contentProvider);
-		contentProvider.setSite(site);
-		try {
-			site.resolve(url, url);
-		} catch (MalformedURLException mue) {
-			throw Utilities.newCoreException(
-				"Unable to resolve URL " //$NON-NLS-1$
-					+ (url == null ? "" : url.toExternalForm()), //$NON-NLS-1$
-				mue);
-		}
-		return site;
-	}
-	/**
-	 *  
-	 */
-	private void parseDownloadedPluginsAndFragments(MirrorSite site,
-			File pluginDir) throws CoreException {
-		if (!pluginDir.exists()) {
-			return;
-		}
-		String[] dir = pluginDir.list(FeaturePackagedContentProvider.filter);
-		for (int i = 0; i < dir.length; i++) {
-			InputStream in = null;
-			try {
-				File file = new File(pluginDir, dir[i]);
-				JarContentReference jarReference = new JarContentReference(
-						null, file);
-				ContentReference ref = jarReference.peek("META-INF/MANIFEST.MF", null, null); //$NON-NLS-1$
-				if (ref != null) {
-					in = ref.getInputStream();
-					BundleManifest manifest = new BundleManifest(in);
-					if (manifest.exists()) {
-						site
-								.addDownloadedPluginEntry(manifest
-										.getPluginEntry());
-						continue;
-					}
-				}
-				ref = jarReference.peek("plugin.xml", null, null); //$NON-NLS-1$
-				if (ref == null) {
-					ref = jarReference.peek("fragment.xml", null, null); //$NON-NLS-1$
-				}
-				if (ref != null) {
-					in = ref.getInputStream();
-					PluginEntry entry = new DefaultPluginParser().parse(in);
-					site.addDownloadedPluginEntry(entry);
-				}
-			} catch (IOException e) {
-				StandaloneUpdateApplication.exceptionLogged();
-				UpdateCore.log(e);
-			} catch (SAXException e) {
-				StandaloneUpdateApplication.exceptionLogged();
-				UpdateCore.log(e);
-			} finally {
-				if(in !=null){
-					try{
-						in.close();
-					}catch(IOException ce){
-					}
-				}
-			}
-		}
-	}
-	/**
-	* Method parseFeature.
-	* @throws CoreException
-	*/
-	private void parseDownloadedFeatures(MirrorSite site, File featureDir)
-		throws CoreException {
-		if (featureDir.exists()) {
-			String[] dir;
-			SiteFeatureReferenceModel featureRef;
-			URL featureURL;
-			File currentFeatureFile;
-			String newFilePath = null;
-
-			try {
-				// only list JAR files
-				dir = featureDir.list(FeaturePackagedContentProvider.filter);
-				for (int index = 0; index < dir.length; index++) {
-
-					// check if the JAR file contains a feature.xml
-					currentFeatureFile = new File(featureDir, dir[index]);
-					JarContentReference ref =
-						new JarContentReference("", currentFeatureFile); //$NON-NLS-1$
-					ContentReference result = null;
-					try {
-						result = ref.peek(Feature.FEATURE_XML, null, null);
-					} catch (IOException e) {
-						UpdateCore.warn(
-							"Exception retrieving feature.xml in file:" //$NON-NLS-1$
-								+ currentFeatureFile,
-							e);
-					}
-					if (result == null) {
-						UpdateCore.warn(
-							"Unable to find feature.xml in file:" //$NON-NLS-1$
-								+ currentFeatureFile);
-					} else {
-						featureURL = currentFeatureFile.toURL();
-						featureRef = createFeatureReferenceModel();
-						featureRef.setSiteModel(site);
-						featureRef.setURLString(featureURL.toExternalForm());
-						featureRef.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);
-						featureRef.setFeatureIdentifier(
-							featureRef
-								.getVersionedIdentifier()
-								.getIdentifier());
-						featureRef.setFeatureVersion(
-							featureRef
-								.getVersionedIdentifier()
-								.getVersion()
-								.toString());
-						site.addDownloadedFeatureReferenceModel(featureRef);
-					}
-				}
-			} catch (MalformedURLException e) {
-				throw Utilities.newCoreException(
-					"Unable to create URL for file " + newFilePath + ".", //$NON-NLS-1$ //$NON-NLS-2$
-					e);
-			}
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/BundleManifest.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/BundleManifest.java
deleted file mode 100644
index 0057cf4..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/BundleManifest.java
+++ /dev/null
@@ -1,111 +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 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.update.internal.model;
-import java.io.*;
-import java.util.jar.*;
-
-import org.eclipse.osgi.util.*;
-import org.eclipse.update.core.*;
-import org.osgi.framework.*;
-/**
- * Parses MANIFEST.MF
- */
-public class BundleManifest {
-	private PluginEntry pluginEntry;
-	private IOException exception;
-	/**
-	 * Constructor for local file
-	 */
-public BundleManifest(File manifest) {
-		super();
-		if (manifest.exists() && !manifest.isDirectory()) {
-			FileInputStream fos = null;
-			try {
-				fos = new FileInputStream(manifest);
-				parse(fos);
-			} catch (IOException ioe) {
-			} finally {
-				if (fos != null) {
-					try {
-						fos.close();
-					} catch (IOException e) {
-					}
-				}
-			}
-		}
-	}
-	/**
-	 * Constructor for local file
-	 */
-	public BundleManifest(InputStream input) {
-		super();
-		if (input != null) {
-			parse(input);
-		}
-	}
-	/**
-	 * Parses manifest, creates PluginEntry if manifest is valid, stores
-	 * exception if any occurs
-	 * 
-	 * @param in
-	 *            InputStream
-	 */
-	private void parse(InputStream in) {
-		try {
-			Manifest m = new Manifest(in);
-			Attributes a = m.getMainAttributes();
-			// plugin id
-			String symbolicName = a.getValue(Constants.BUNDLE_SYMBOLICNAME);
-			if (symbolicName == null) {
-				// In Eclipse manifest must have Bundle-SymbolicName attribute
-				return;
-			}
-			String id;
-			try {
-				ManifestElement[] elements = ManifestElement.parseHeader(
-						Constants.BUNDLE_SYMBOLICNAME, symbolicName);
-				id = elements[0].getValue();
-			} catch (BundleException be) {
-				throw new IOException(be.getMessage());
-			}
-			// plugin version
-			String version = a.getValue(Constants.BUNDLE_VERSION);
-			if (version == null) {
-				return;
-			}
-			String hostPlugin = a.getValue(Constants.FRAGMENT_HOST);
-			pluginEntry = new PluginEntry();
-			pluginEntry.setVersionedIdentifier(new VersionedIdentifier(id,
-					version));
-			pluginEntry.isFragment(hostPlugin != null
-					&& hostPlugin.length() > 0);
-		} catch (IOException ioe) {
-			exception = ioe;
-		}
-	}
-	public boolean exists() {
-		return exception != null || pluginEntry != null;
-	}
-	/**
-	 * Obtains PluginEntry from a manifest.
-	 * 
-	 * @return PluginEntry or null if valid manifest does not exist
-	 * @throws IOException
-	 *             if exception during parsing
-	 */
-	public PluginEntry getPluginEntry() throws IOException {
-		if (exception != null) {
-			throw exception;
-		} else {
-			return pluginEntry;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationActivityModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationActivityModel.java
deleted file mode 100644
index 074981b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationActivityModel.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.model;
- 
-import java.util.*;
-
-import org.eclipse.update.core.model.*;
-
-public class ConfigurationActivityModel extends ModelObject{
-	
-	private String label;
-	private int action;
-	private Date date;
-	private int status;
-	private InstallConfigurationModel installConfiguration;
-	
-
-	/**
-	 * Constructor for ConfigurationActivityModel.
-	 */
-	public ConfigurationActivityModel() {
-		super();
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public int getAction() {
-		return action;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public Date getDate() {
-		return date;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public int getStatus() {
-		return status;
-	}
-
-	/**
-	 * Sets the date.
-	 * @param date The date to set
-	 */
-	public void setDate(Date date) {
-		assertIsWriteable();
-		this.date = date;
-	}
-
-	/**
-	 * Sets the status.
-	 * @param status The status to set
-	 */
-	public void setStatus(int status) {
-		assertIsWriteable();
-		this.status = status;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Sets the label.
-	 * @param label The label to set
-	 */
-	public void setLabel(String label) {
-		assertIsWriteable();
-		this.label = label;
-	}
-
-	/**
-	 * Sets the action.
-	 * @param action The action to set
-	 */
-	public void setAction(int action) {
-		assertIsWriteable();
-		this.action = action;
-	}
-
-	/**
-	 * Gets the installConfiguration.
-	 * @return Returns a InstallConfigurationModel
-	 */
-	public InstallConfigurationModel getInstallConfigurationModel() {
-		return installConfiguration;
-	}
-
-	/**
-	 * Sets the installConfiguration.
-	 * @param installConfiguration The installConfiguration to set
-	 */
-	public void setInstallConfigurationModel(InstallConfigurationModel installConfiguration) {
-		assertIsWriteable();		
-		this.installConfiguration = installConfiguration;
-	}
-
-}
-
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationPolicyModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationPolicyModel.java
deleted file mode 100644
index 2de011b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationPolicyModel.java
+++ /dev/null
@@ -1,277 +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 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.update.internal.model;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * 
- */
-public class ConfigurationPolicyModel extends ModelObject {
-
-	
-	
-
-	private int policy;
-	private Map /* of FeatureReferenceModel */configuredFeatureReferences;
-	private Map /* of FeatureReferenceModel */unconfiguredFeatureReferences;
-	
-	// since 2.0.2
-	private ConfiguredSiteModel configuredSiteModel;
-	
-	// since 2.1
-	private boolean enable;
-
-	/**
-	 * Constructor for ConfigurationPolicyModel.
-	 */
-	public ConfigurationPolicyModel() {
-		super();
-		enable = true;
-		configuredFeatureReferences = new HashMap();
-//		unconfiguredFeatureReferences = new HashMap();		
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public int getPolicy() {
-		return policy;
-	}
-
-	/**
-	 * Sets the policy.
-	 * @param policy The policy to set
-	 */
-	public void setPolicy(int policy) {
-		assertIsWriteable();
-		this.policy = policy;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public FeatureReferenceModel[] getConfiguredFeaturesModel() {
-		if (configuredFeatureReferences==null || configuredFeatureReferences.isEmpty())
-			return new FeatureReferenceModel[0];
-		return (FeatureReferenceModel[]) configuredFeatureReferences.keySet().toArray(arrayTypeFor(configuredFeatureReferences.keySet()));
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public FeatureReferenceModel[] getUnconfiguredFeaturesModel() {
-		// obtain unconfigured features by comparing configured ones with those installed
-		if (unconfiguredFeatureReferences == null
-				&& configuredSiteModel != null
-				&& configuredSiteModel.getSiteModel() != null) {
-			ISite site = (ISite) configuredSiteModel.getSiteModel();
-			ISiteFeatureReference[] siteFeatures = site.getFeatureReferences();
-			if (siteFeatures.length > getConfiguredFeaturesModel().length) {
-				for (int i=0; i<siteFeatures.length; i++) {
-					if (!(siteFeatures[i] instanceof SiteFeatureReference))
-						continue;
-					Iterator iterator = configuredFeatureReferences.keySet().iterator();
-					boolean found = false;
-					while(!found && iterator.hasNext()) {
-						FeatureReferenceModel f = (FeatureReferenceModel)iterator.next();
-						if (UpdateManagerUtils.sameURL(f.getURL(), siteFeatures[i].getURL()))
-							found = true;
-					}
-					if (!found)
-						addUnconfiguredFeatureReference((SiteFeatureReference)siteFeatures[i]);
-				}
-			}
-		}
-		if (unconfiguredFeatureReferences == null
-				|| unconfiguredFeatureReferences.isEmpty())
-			return new FeatureReferenceModel[0];
-		return (FeatureReferenceModel[]) unconfiguredFeatureReferences.keySet()
-				.toArray(arrayTypeFor(unconfiguredFeatureReferences.keySet()));
-	}
-
-	/**
-	 * Gets the configuredSiteModel.
-	 * @return Returns a ConfiguredSiteModel
-	 * @since 2.0.2
-	 */
-	public ConfiguredSiteModel getConfiguredSiteModel() {
-		return configuredSiteModel;
-	}
-
-	/**
-	 * Sets the configuredSiteModel.
-	 * @param configuredSiteModel The configuredSiteModel to set
-	 * @since 2.0.2
-	 */
-	public void setConfiguredSiteModel(ConfiguredSiteModel configuredSiteModel) {
-		this.configuredSiteModel = configuredSiteModel;
-	}
-
-	/**
-	 * 
-	 */
-	private boolean remove(FeatureReferenceModel feature, Map list) {
-		URL featureURL = feature.getURL();
-		boolean found = false;
-		Iterator iter = list.keySet().iterator();
-		while (iter.hasNext() && !found) {
-			FeatureReferenceModel element = (FeatureReferenceModel) iter.next();
-			if (UpdateManagerUtils.sameURL(element.getURL(),featureURL)) {
-				list.remove(element);
-				found = true;
-			}
-		}
-		return found;
-	}
-
-	/**
-	 * returns an array of string corresponding to plugins file
-	 */
-	/*package*/
-
-	
-	/**
-	 * 
-	 */
-	private void add(FeatureReferenceModel feature, Map list) {
-		URL featureURL = feature.getURL();
-		boolean found = false;
-		Iterator iter = list.keySet().iterator();
-		while (iter.hasNext() && !found) {
-			FeatureReferenceModel element = (FeatureReferenceModel) iter.next();
-			if (UpdateManagerUtils.sameURL(element.getURL(),featureURL)) {
-				found = true;
-			}
-		}
-
-		if (!found) {
-			list.put(feature,null);
-		} else {
-			UpdateCore.warn("Feature Reference :"+feature+" already part of the list."); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * adds a feature in the configuredReference list
-	 * also used by the parser to avoid creating another activity
-	 */
-	public void addConfiguredFeatureReference(FeatureReferenceModel feature) {
-		assertIsWriteable();
-		
-		if (configuredFeatureReferences == null)
-			this.configuredFeatureReferences = new HashMap();
-		if (!configuredFeatureReferences.containsKey(feature)){
-			//DEBUG:
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION){
-				UpdateCore.debug("Configuring "+feature.getURLString()); //$NON-NLS-1$
-			}
-			this.add(feature, configuredFeatureReferences);
-		}	
-
-		// when user configure a feature,
-		// we have to remove it from unconfigured feature if it exists
-		// because the user doesn't know...
-		if (unconfiguredFeatureReferences != null) {
-			boolean success = remove(feature, unconfiguredFeatureReferences);
-			if (!success)
-				UpdateCore.warn("Feature not part of Unconfigured list: "+feature.getURLString());			 //$NON-NLS-1$
-		}
-
-	}
-
-	/**
-	 * adds a feature in the list
-	 * also used by the parser to avoid creating another activity
-	 */
-	public void addUnconfiguredFeatureReference(FeatureReferenceModel feature) {
-		assertIsWriteable();
-		if (unconfiguredFeatureReferences == null)
-			this.unconfiguredFeatureReferences = new HashMap();
-		if (!unconfiguredFeatureReferences.containsKey(feature)){
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_CONFIGURATION){
-				UpdateCore.debug("Unconfiguring "+feature.getURLString()); //$NON-NLS-1$
-			}
-			this.add(feature, unconfiguredFeatureReferences);
-		}	
-
-		// an unconfigured feature is always from a configured one no ?
-		// unless it was parsed right ?
-		if (configuredFeatureReferences != null) {
-			boolean success = remove(feature, configuredFeatureReferences);
-			if (!success)
-				UpdateCore.warn("Feature not part of Configured list: "+feature.getURLString());				 //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * removes a feature from any list
-	 */
-	public void removeFeatureReference(FeatureReferenceModel feature) {
-		assertIsWriteable();
-		if (unconfiguredFeatureReferences!=null){
-			boolean success = remove(feature, unconfiguredFeatureReferences);
-			if (!success)
-				UpdateCore.warn(feature.getURLString()+" not part of unconfigured list.");							 //$NON-NLS-1$
-		}
-
-		if (configuredFeatureReferences != null) {
-			boolean success = remove(feature, configuredFeatureReferences);
-			if (!success)
-				UpdateCore.warn(feature.getURLString()+" not part of configured list.");							 //$NON-NLS-1$
-		}
-	}
-	
-	/**
-	 * Sets the unconfiguredFeatureReferences.
-	 * @param featureReferences The unconfiguredFeatureReferences to set
-	 */
-	protected void setUnconfiguredFeatureReferences(IFeatureReference[] featureReferences) {
-		unconfiguredFeatureReferences = new HashMap();
-		for (int i = 0; i < featureReferences.length; i++) {
-			unconfiguredFeatureReferences.put(featureReferences[i],null);
-		}
-	}
-
-
-	/**
-	 * Sets the configuredFeatureReferences.
-	 * @param featureReferences The configuredFeatureReferences to set
-	 */
-	protected void setConfiguredFeatureReferences(IFeatureReference[] featureReferences) {
-		configuredFeatureReferences = new HashMap();
-		for (int i = 0; i < featureReferences.length; i++) {
-			configuredFeatureReferences.put(featureReferences[i],null);
-		}		
-	
-	}
-
-	/**
-	 * @return boolean
-	 */
-	public boolean isEnabled() {
-		return enable;
-	}
-
-	/**
-	 * @param value
-	 */
-	public void setEnabled(boolean value) {
-		enable = value;
-	}
-
-
-	
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfiguredSiteModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfiguredSiteModel.java
deleted file mode 100644
index e7bd495..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfiguredSiteModel.java
+++ /dev/null
@@ -1,177 +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 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.update.internal.model;
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * 
- */
-public class ConfiguredSiteModel extends ModelObject {
-	private String[] previousPluginPath;
-
-	private SiteModel site;
-	private String platformURLString;
-	private ConfigurationPolicyModel policy;
-	private InstallConfigurationModel installConfiguration;
-	private boolean installable = false;
-
-	/**
-	 * Constructor
-	 */
-	public ConfiguredSiteModel() {
-		super();
-	}
-
-	/**
-	 * returns the site
-	 * @return The ISite 
-	 * @since 2.0
-	 */
-	public SiteModel getSiteModel() {
-		return site;
-	}
-
-	/**
-	 * Sets the site.
-	 * @param site The site to set
-	 */
-	public void setSiteModel(SiteModel site) {
-		assertIsWriteable();
-		this.site = site;
-	}
-
-	/**
-	 * returns the policy
-	 */
-	public ConfigurationPolicyModel getConfigurationPolicyModel() {
-		return policy;
-	}
-
-	/**
-	 * 
-	 * @since 2.0
-	 */
-	public void setConfigurationPolicyModel(ConfigurationPolicyModel policy) {
-		assertIsWriteable();
-		this.policy = policy;
-		policy.setConfiguredSiteModel(this);
-	}
-
-	/**
-	 * @since
-	 */
-	public boolean isUpdatable() {
-		return installable;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public void setUpdatable(boolean installable) {
-		assertIsWriteable();
-		this.installable = installable;
-	}
-
-	/**
-	 * Gets the installConfiguration.
-	 * @return Returns a InstallConfigurationModel
-	 */
-	public InstallConfigurationModel getInstallConfigurationModel() {
-		return installConfiguration;
-	}
-
-	/**
-	 * Sets the installConfiguration.
-	 * @param installConfiguration The installConfiguration to set
-	 */
-	public void setInstallConfigurationModel(InstallConfigurationModel installConfiguration) {
-		assertIsWriteable();
-		this.installConfiguration = installConfiguration;
-	}
-
-	/**
-	 * Gets the platformURLString.
-	 * @return Returns a String
-	 */
-	public String getPlatformURLString() {
-		return platformURLString;
-	}
-
-	/**
-	 * Sets the platformURLString.
-	 * @param platformURLString The platformURLString to set
-	 */
-	public void setPlatformURLString(String platformURLString) {
-		this.platformURLString = platformURLString;
-	}
-
-	
-		/**
-	 * Gets the previousPluginPath. The list of plugins the platform had.
-	 * @return Returns a String[]
-	 */
-	public String[] getPreviousPluginPath() {
-		if (previousPluginPath == null)
-			previousPluginPath = new String[0];
-		return previousPluginPath;
-	}
-
-	/**
-	 * Sets the previousPluginPath.
-	 * @param previousPluginPath The previousPluginPath to set
-	 */
-	public void setPreviousPluginPath(String[] previousPluginPath) {
-		this.previousPluginPath = new String[previousPluginPath.length];
-		System.arraycopy(previousPluginPath, 0, this.previousPluginPath, 0, previousPluginPath.length);
-	}
-
-	/*
-	 * creates a Status
-	 */
-	protected IStatus createStatus(int statusType, String msg, Exception e){
-		if (statusType!=IStatus.OK) statusType = IStatus.ERROR;
-		return createStatus(statusType,IStatus.OK, msg.toString(), e);
-	}
-
-	/*
-	 * creates a Status
-	 */
-	protected IStatus createStatus(int statusSeverity, int statusCode, String msg, Exception e){
-		String id =	UpdateCore.getPlugin().getBundle().getSymbolicName();
-	
-		StringBuffer completeString = new StringBuffer(""); //$NON-NLS-1$
-		if (msg!=null)
-			completeString.append(msg);
-		if (e!=null){
-			completeString.append("\r\n["); //$NON-NLS-1$
-			completeString.append(e.toString());
-			completeString.append("]\r\n"); //$NON-NLS-1$
-		}
-		return new Status(statusSeverity, id, statusCode, completeString.toString(), e);
-	}
-	
-	/**
-	 * @see org.eclipse.update.configuration.IConfiguredSite#isEnabled()
-	 */
-	public boolean isEnabled() {
-		return getConfigurationPolicyModel().isEnabled();
-	}
-
-	/**
-	 * @see org.eclipse.update.configuration.IConfiguredSite#setEnabled(boolean)
-	 */
-	public void setEnabled(boolean value) {
-		getConfigurationPolicyModel().setEnabled(value);
-	}
-	
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/DefaultPluginParser.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/DefaultPluginParser.java
deleted file mode 100644
index 3ab7e2b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/DefaultPluginParser.java
+++ /dev/null
@@ -1,107 +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 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.update.internal.model;
-
-
-import java.io.*;
-import javax.xml.parsers.*;
-
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.xml.sax.*;
-import org.xml.sax.helpers.*;
-
-/**
- * Parse default feature.xml
- */
-
-public class DefaultPluginParser extends DefaultHandler {
-	private final static SAXParserFactory parserFactory =
-		SAXParserFactory.newInstance();
-	private SAXParser parser;
-	private String id = null;
-	private String version = null;
-	private PluginEntry pluginEntry;
-
-	private static final String PLUGIN = "plugin"; //$NON-NLS-1$
-	private static final String FRAGMENT = "fragment"; //$NON-NLS-1$
-
-	private class ParseCompleteException extends SAXException {
-
-        private static final long serialVersionUID = 1L;
-
-        public ParseCompleteException(String arg0) {
-			super(arg0);
-		}
-	}
-
-	/**
-	 * Constructor for DefaultFeatureParser
-	 */
-	public DefaultPluginParser() {
-		super();
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			UpdateCore.log(e);
-		} catch (SAXException e) {
-			UpdateCore.log(e);
-		}
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public synchronized PluginEntry parse(InputStream in) throws SAXException, IOException {
-		try {
-			pluginEntry = new PluginEntry();
-			parser.parse(new InputSource(in), this);
-		} catch (ParseCompleteException e) {
-			// expected, we stopped the parsing when we have the information we need
-			/// no need to pursue the parsing
-		}
-
-		if (id == null || id.trim().length() == 0)
-			id = "_no_id_"; //$NON-NLS-1$
-		pluginEntry.setVersionedIdentifier(new VersionedIdentifier(id, version));
-		return pluginEntry;
-	}
-
-	/**
-	 * @see DefaultHandler#startElement(String, String, String, Attributes)
-	 */
-	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-
-		String tag = localName.trim();
-
-		if (tag.equalsIgnoreCase(PLUGIN)) {
-			pluginEntry.isFragment(false);			
-			processPlugin(attributes);
-			return;
-		}
-
-		if (tag.equalsIgnoreCase(FRAGMENT)) {
-			pluginEntry.isFragment(true);			
-			processPlugin(attributes);
-			return;
-		}
-	}
-
-	/** 
-	 * process plugin entry info
-	 */
-	private void processPlugin(Attributes attributes) throws ParseCompleteException {
-		id = attributes.getValue("id"); //$NON-NLS-1$
-		version = attributes.getValue("version"); //$NON-NLS-1$
-		throw new ParseCompleteException(""); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/InstallConfigurationModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/InstallConfigurationModel.java
deleted file mode 100644
index bc97fd0..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/InstallConfigurationModel.java
+++ /dev/null
@@ -1,296 +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 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.update.internal.model;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * An InstallConfigurationModel is 
- * 
- */
-
-public class InstallConfigurationModel extends ModelObject {
-
-	// performance
-	private URL bundleURL;
-	private URL base;
-	private boolean resolved = false;
-
-	private boolean isCurrent;
-	private URL locationURL;
-	private String locationURLString;
-	protected Date date;
-	private String label;
-	private List /* of ConfiguretionActivityModel */ activities;
-	private List /* of configurationSiteModel */ configurationSites;
-
-	protected boolean initialized = false;
-
-	/**
-	 * default constructor. Create
-	 */
-	public InstallConfigurationModel() {
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public ConfiguredSiteModel[] getConfigurationSitesModel() {
-		if (!initialized) 
-			initialize();
-		if (configurationSites == null || configurationSites.size() == 0)
-			return new ConfiguredSiteModel[0];
-	
-		return (ConfiguredSiteModel[]) configurationSites.toArray(arrayTypeFor(configurationSites));
-	}
-
-	/**
-	 * Adds the configuration to the list
-	 * is called when adding a Site or parsing the XML file
-	 * in this case we do not want to create a new activity, so we do not want t call
-	 * addConfigurationSite()
-	 */
-	public void addConfigurationSiteModel(ConfiguredSiteModel site) {
-		if (configurationSites == null) {
-			configurationSites = new ArrayList();
-		}
-		if (!configurationSites.contains(site)) {
-			configurationSites.add(site);
-		}
-	}
-
-	public void setConfigurationSiteModel(ConfiguredSiteModel[] sites) {
-		configurationSites = null;
-		for (int i = 0; i < sites.length; i++) {
-			addConfigurationSiteModel(sites[i]);
-		}
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public boolean removeConfigurationSiteModel(ConfiguredSiteModel site) {
-		if (!initialized) initialize();
-
-		if (configurationSites != null) {
-			return configurationSites.remove(site);
-		}
-
-		return false;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public boolean isCurrent() {
-		if (!initialized) initialize();
-		return isCurrent;
-	}
-
-	/**
-	 *  @since 2.0
-	 */
-	public void setCurrent(boolean isCurrent) {
-		// do not check if writable as we may
-		// set an install config as Not current
-		this.isCurrent = isCurrent;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public ConfigurationActivityModel[] getActivityModel() {
-		if (activities == null && !initialized) 
-			initialize();
-		if (activities == null || activities.size() == 0)
-			return new ConfigurationActivityModel[0];
-		return (ConfigurationActivityModel[]) activities.toArray(arrayTypeFor(activities));
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public void addActivityModel(ConfigurationActivityModel activity) {
-		if (activities == null)
-			activities = new ArrayList();
-		if (!activities.contains(activity)) {
-			activities.add(activity);
-			activity.setInstallConfigurationModel(this);
-		}
-	}
-	/**
-	 * 
-	 */
-	public Date getCreationDate() {
-//		if (!initialized) initialize();
-		if (date == null)
-			initialize();
-		return date;
-	}
-	/**
-	 * Sets the date.
-	 * @param date The date to set
-	 */
-	public void setCreationDate(Date date) {
-		assertIsWriteable();
-		this.date = date;
-	}
-	/**
-	 * @since 2.0
-	 */
-	public URL getURL() {
-		//if (!initialized) initialize();
-		//no need to initialize, always set
-		delayedResolve();
-		return locationURL;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public String getLabel() {
-//		if (!initialized) initialize();
-		if (label == null)
-			initialize();
-		return label;
-	}
-
-	/**
-	 * @since 2.0.2
-	 */
-
-	public String toString() {
-		return getLabel();
-	}
-
-	/**
-	 * Sets the label.
-	 * @param label The label to set
-	 */
-	public void setLabel(String label) {
-		assertIsWriteable();
-		this.label = label;
-	}
-
-	/**
-	 * Gets the locationURLString.
-	 * @return Returns a String
-	 */
-	public String getLocationURLString() {
-		if (!initialized) delayedResolve();
-		return locationURLString;
-	}
-
-	/**
-	 * Sets the locationURLString.
-	 * @param locationURLString The locationURLString to set
-	 */
-	public void setLocationURLString(String locationURLString) {
-		assertIsWriteable();
-		this.locationURLString = locationURLString;
-		this.locationURL = null;
-	}
-
-	/*
-	 * @see ModelObject#resolve(URL, ResourceBundle)
-	 */
-	public void resolve(URL base, URL bundleURL) throws MalformedURLException {
-
-		this.base = base;
-		this.bundleURL = bundleURL;
-
-	}
-
-	/**
-	 * Returns the timeline.
-	 * @return long
-	 */
-	public long getTimeline() {
-		return 0;
-//		if (!initialized) initialize();
-//		return timeline;
-	}
-
-
-	/*
-	 * initialize the configurations from the persistent model.
-	 */
-	private void initialize() {
-		
-		try {
-			try {
-				IPlatformConfiguration platformConfig;
-				if (UpdateManagerUtils.sameURL(getURL(), ConfiguratorUtils.getCurrentPlatformConfiguration().getConfigurationLocation()))
-					platformConfig = ConfiguratorUtils.getCurrentPlatformConfiguration();
-				else 
-					platformConfig = ConfiguratorUtils.getPlatformConfiguration(getURL());
-				
-				new InstallConfigurationParser(platformConfig, this);
-			} catch (FileNotFoundException exception) {
-				UpdateCore.warn(locationURLString + " does not exist, The local site is not in synch with the file system and is pointing to a file that doesn't exist.", exception); //$NON-NLS-1$
-				throw Utilities.newCoreException(Policy.bind("InstallConfiguration.ErrorDuringFileAccess", locationURLString), exception); //$NON-NLS-1$
-			} catch (IOException exception) {
-				throw Utilities.newCoreException(Policy.bind("InstallConfiguration.ErrorDuringFileAccess", locationURLString), exception); //$NON-NLS-1$
-			}
-			
-		} catch (CoreException e) {
-			UpdateCore.warn("Error processing configuration history:" + locationURL.toExternalForm(), e); //$NON-NLS-1$
-		} finally {
-			initialized = true;
-		}
-		
-		//finish resolve
-		// PERF:
-		try {
-			// delegate
-			resolveListReference(getActivityModel(), base, bundleURL);
-			resolveListReference(getConfigurationSitesModel(), base, bundleURL);
-		} catch (MalformedURLException e){}		
-	}
-
-	/*
-	 * 
-	 */
-	private void delayedResolve() {
-
-		// PERF: delay resolution
-		if (resolved)
-			return;
-
-		resolved = true;
-		// resolve local elements
-		try {
-			//locationURL = resolveURL(base, bundleURL, locationURLString);		
-			locationURL = new URL(locationURLString);
-		} catch (MalformedURLException e){
-			File f = new File(locationURLString);
-			try {
-				if (f.exists())
-					locationURL = f.toURL();
-				else
-					locationURL = base;
-			} catch (MalformedURLException e1) {
-				locationURL = base;
-			}
-		}
-	}
-	
-	public void resetActivities() {
-		activities = null;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/InstallConfigurationParser.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/InstallConfigurationParser.java
deleted file mode 100644
index b4a7cbf..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/InstallConfigurationParser.java
+++ /dev/null
@@ -1,193 +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 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.update.internal.model;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.internal.configurator.*;
-import org.eclipse.update.internal.core.*;
-
-
-/**
- * parse the default site.xml
- */
-
-public class InstallConfigurationParser {
-	private PlatformConfiguration platformConfig;
-	private URL siteURL;
-	private InstallConfigurationModel config;
-	private ConfiguredSiteModel configSite;
-
-	/**
-	 * Constructor for DefaultSiteParser
-	 */
-	public InstallConfigurationParser(
-		IPlatformConfiguration platformConfig,
-		InstallConfigurationModel config)
-		throws IOException, CoreException {
-
-		Assert.isTrue(platformConfig instanceof PlatformConfiguration);
-		this.platformConfig = (PlatformConfiguration)platformConfig;
-		
-		this.config = config;
-
-		// DEBUG:		
-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {
-			UpdateCore.debug("Start parsing Configuration:" + (config).getURL().toExternalForm()); //$NON-NLS-1$
-		}
-		
-		processConfig(this.platformConfig);
-	}
-
-
-
-	/** 
-	 * process the Site info
-	 */
-	private void processSite(SiteEntry siteEntry) throws CoreException, IOException {
-
-		//site url
-		siteURL = siteEntry.getURL();
-		try {
-			siteURL = Platform.asLocalURL(siteURL);
-			// TODO workaround bug in platform url resolution
-			if (siteURL.getProtocol().equals("file")) //$NON-NLS-1$
-				siteURL = new File(siteURL.getFile()).toURL();
-		} catch (IOException e) {
-			// keep original url
-		}
-
-		// policy
-		ISite site = SiteManager.getSite(siteURL,null);
-
-		// configuration site
-		BaseSiteLocalFactory factory = new BaseSiteLocalFactory();
-		configSite = factory.createConfigurationSiteModel((SiteModel) site, siteEntry.getSitePolicy().getType());
-
-		//platform url
-		configSite.setPlatformURLString(siteEntry.getURL().toExternalForm());
-		
-		// configured
-		configSite.setEnabled(siteEntry.isEnabled());
-
-		// check if the site exists and is updatable
-	 	configSite.setUpdatable(siteEntry.isUpdateable());
-	 	
-		// add to install configuration
-	 	config.addConfigurationSiteModel(configSite);
-	 	configSite.setInstallConfigurationModel(config);
-		
-		FeatureEntry[] features = siteEntry.getFeatureEntries();
-		for (int i=0; i<features.length; i++) {
-			processFeature(features[i]);
-		}
-	}
-
-	/** 
-	 * process the DefaultFeature info
-	 */
-	private void processFeature(FeatureEntry feature) throws CoreException, IOException {
-
-		// url
-		String path = feature.getURL(); //$NON-NLS-1$
-		URL url = UpdateManagerUtils.getURL(siteURL, path, null);
-
-		if (url != null) {
-			SiteFeatureReference ref = new SiteFeatureReference();
-			ref.setSite((ISite) configSite.getSiteModel());
-			ref.setURL(url);
-			(configSite.getConfigurationPolicyModel()).addConfiguredFeatureReference(ref);
-
-			//updateURL
-//TODO do we need the update url and to resolve it?
-//			String updateURLString = attributes.getValue("updateURL"); //$NON-NLS-1$
-//			URLEntry entry = new URLEntry();
-//			entry.setURLString(updateURLString);
-//			entry.resolve(siteURL,null);
-
-			// DEBUG:		
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {
-				UpdateCore.debug("End Processing DefaultFeature Tag: url:" + url.toExternalForm()); //$NON-NLS-1$
-			}
-
-		} else {
-			UpdateCore.log( Policy.bind("InstallConfigurationParser.FeatureReferenceNoURL"), new Exception()); //$NON-NLS-1$
-		}
-
-	}
-
-	/** 
-	 * process the Activity info
-	 */
-//	private void processActivity(Attributes attributes) {
-//
-//		// action
-//		String actionString = attributes.getValue("action"); //$NON-NLS-1$
-//		int action = Integer.parseInt(actionString);
-//
-//		// create
-//		ConfigurationActivityModel activity =
-//			new BaseSiteLocalFactory().createConfigurationActivityModel();
-//		activity.setAction(action);
-//
-//		// label
-//		String label = attributes.getValue("label"); //$NON-NLS-1$
-//		if (label != null)
-//			activity.setLabel(label);
-//
-//		// date
-//		String dateString = attributes.getValue("date"); //$NON-NLS-1$
-//		Date date = new Date(Long.parseLong(dateString));
-//		activity.setDate(date);
-//
-//		// status
-//		String statusString = attributes.getValue("status"); //$NON-NLS-1$
-//		int status = Integer.parseInt(statusString);
-//		activity.setStatus(status);
-//
-//		config.addActivityModel(activity);
-//
-//		// DEBUG:		
-//		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {
-//			UpdateCore.debug("End Processing Activity: action:" + actionString + " label: " + label + " date:" + dateString + " status" + statusString); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		}
-//
-//	}
-
-	/** 
-	 * process the Config info
-	 */
-	private void processConfig(PlatformConfiguration platformConfig) throws IOException, CoreException {
-
-		// date
-		Date date = new Date(platformConfig.getChangeStamp());
-		config.setCreationDate(date);
-		config.setLabel(date.toString());
-		
-		//timeline
-//		String timelineString = attributes.getValue("timeline"); //$NON-NLS-1$
-//		long timeline = config.getCreationDate().getTime();
-//		if (timelineString!=null) {
-//			timeline = Long.parseLong(timelineString);
-//		}
-//		config.setTimeline(timeline);
-
-		SiteEntry[] sites = platformConfig.getConfiguration().getSites();
-		for (int i=0; i<sites.length; i++)
-			processSite(sites[i]);
-
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteLocalModel.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteLocalModel.java
deleted file mode 100644
index e210d8e..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteLocalModel.java
+++ /dev/null
@@ -1,279 +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 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.update.internal.model;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * This class manages the configurations.
- */
-
-public class SiteLocalModel extends ModelObject {
-	public static final String CONFIG_FILE = "platform.xml"; //$NON-NLS-1$
-	private long stamp;
-	private String label;
-	private URL location;
-	private String locationURLString;
-	private int history = UpdateCore.DEFAULT_HISTORY;
-	private List /* of InstallConfigurationModel */configurations;
-	private List /* of InstallConfigurationModel */preservedConfigurations;
-	private InstallConfigurationModel currentConfiguration;
-
-	/**
-	 * Constructor for LocalSite
-	 */
-	public SiteLocalModel(){
-		super();
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public InstallConfigurationModel getCurrentConfigurationModel() {
-		return currentConfiguration;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public InstallConfigurationModel[] getConfigurationHistoryModel() {
-		if (configurations==null)
-			// initialize history
-			processHistory();
-		
-		if (configurations == null || configurations.size() == 0)
-			return new InstallConfigurationModel[0];
-		else
-			return (InstallConfigurationModel[])configurations.toArray(arrayTypeFor(configurations));
-	}
-
-	/**
-	 * adds a new configuration to the LocalSite
-	 *  the newly added configuration is teh current one
-	 */
-	public void addConfigurationModel(InstallConfigurationModel config) {
-		if (config != null) {
-			if (configurations == null)
-				configurations = new ArrayList();
-			if (!configurations.contains(config))
-				configurations.add(config);
-		}
-	}
-
-	/**
-	 * adds a new configuration to the LocalSite
-	 *  the newly added configuration is teh current one
-	 */
-	public boolean removeConfigurationModel(InstallConfigurationModel config) {
-		if (config != null) {
-			return configurations.remove(config);
-		}
-		return false;
-	}
-	/**
-	 * Gets the location of the local site.
-	 * @return Returns a URL
-	 */
-	public URL getLocationURL() {
-		return location;
-	}
-
-	/**
-	 * Gets the locationURLString.
-	 * @return Returns a String
-	 */
-	public String getLocationURLString() {
-		return locationURLString;
-	}
-
-
-	/**
-	 * Sets the locationURLString.
-	 * @param locationURLString The locationURLString to set
-	 */
-	public void setLocationURLString(String locationURLString) {
-		assertIsWriteable();
-		this.locationURLString = locationURLString;
-		this.location=null;
-	}
-
-
-	/**
-	 * @since 2.0
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Sets the label.
-	 * @param label The label to set
-	 */
-	public void setLabel(String label) {
-		assertIsWriteable();
-		this.label = label;
-	}
-
-	
-	/**
-	 * @since 2.0
-	 */
-	public int getMaximumHistoryCount() {
-		return history;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public void setMaximumHistoryCount(int history) {
-		assertIsWriteable();
-		this.history = history;
-	}
-
-	
-	/**
-	 * Adds a preserved configuration into teh collection
-	 * do not save the configuration
-	 * @since 2.0
-	 */
-	public void addPreservedInstallConfigurationModel(InstallConfigurationModel configuration) {
-		if (preservedConfigurations == null)
-			preservedConfigurations = new ArrayList();
-
-		preservedConfigurations.add(configuration);
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public boolean removePreservedConfigurationModel(InstallConfigurationModel configuration) {
-		if (preservedConfigurations != null) {
-			return preservedConfigurations.remove(configuration);
-		}
-		return false;
-	}
-
-	/**
-	 * @since 2.0
-	 */
-	public InstallConfigurationModel[] getPreservedConfigurationsModel() {
-		if (preservedConfigurations==null || preservedConfigurations.isEmpty())
-			return new InstallConfigurationModel[0];
-		return (InstallConfigurationModel[])preservedConfigurations.toArray(arrayTypeFor(preservedConfigurations));
-	}
-
-
-	/**
-	 * Sets the currentConfiguration.
-	 * @param currentConfiguration The currentConfiguration to set
-	 */
-	public void setCurrentConfigurationModel(InstallConfigurationModel currentConfiguration) {
-		assertIsWriteable();
-		this.currentConfiguration = currentConfiguration;
-		
-		//2.0.2 set the configuredSite of sites
-		ConfiguredSiteModel[] confSites = currentConfiguration.getConfigurationSitesModel();
-		for (int i = 0; i < confSites.length; i++) {
-			confSites[i].getSiteModel().setConfiguredSiteModel(confSites[i]);
-		}
-	}
-
-	/*
-	 * @see ModelObject#resolve(URL)
-	 */
-	public void resolve(URL base,URL bundleURL) throws MalformedURLException {
-		// local
-		location = resolveURL(base,bundleURL,getLocationURLString());
-		
-		// delegate
-		resolveListReference(getConfigurationHistoryModel(),base,bundleURL);
-		resolveListReference(getPreservedConfigurationsModel(),base,bundleURL);
-		resolveReference(getCurrentConfigurationModel(),base,bundleURL);
-	}
-	
-
-	/**
-	 * Gets the stamp.
-	 * @return Returns a long
-	 */
-	public long getStamp() {
-		return stamp;
-	}
-
-	/**
-	 * Sets the stamp.
-	 * @param stamp The stamp to set
-	 */
-	public void setStamp(long stamp) {
-		this.stamp = stamp;
-	}
-
-	/**
-	 * @see org.eclipse.update.core.model.ModelObject#getPropertyName()
-	 */
-	protected String getPropertyName() {
-		return "platform"; //$NON-NLS-1$
-	}
-
-	/*
-	 * reads the configuration/history directory
-	 */
-	private void processHistory() {
-		try {
-			URL historyURL = new URL(getLocationURL(), "history"); //$NON-NLS-1$
-			historyURL = Platform.asLocalURL(historyURL);
-			File historyDir = new File(historyURL.getFile());
-			if (historyDir.exists()) {
-				File[] backedConfigs = historyDir.listFiles();
-				BaseSiteLocalFactory factory = new BaseSiteLocalFactory();
-				for (int i=0; i<backedConfigs.length; i++) {
-					String name = backedConfigs[i].getName();
-					if (name.endsWith(".xml")) //$NON-NLS-1$
-						name = name.substring(0, name.length()-4);
-					else 
-						continue;
-					Date date = new Date(Long.parseLong(name));
-					InstallConfigurationModel config = factory.createInstallConfigurationModel();
-					config.setLocationURLString(backedConfigs[i].getAbsolutePath().replace('\\', '/'));
-					config.setLabel(date.toString());
-					config.setCreationDate(date);
-					config.resolve(backedConfigs[i].toURL(), getResourceBundleURL());
-	
-					// add the config
-					addConfigurationModel(config);
-				}
-			}
-		} catch (Exception e) {
-			UpdateCore.warn("Error processing history: ", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * return the appropriate resource bundle for this sitelocal
-	 */
-	URL getResourceBundleURL() throws CoreException {
-		URL url = null;
-		try {
-			url = UpdateManagerUtils.asDirectoryURL(getLocationURL());
-		} catch (MissingResourceException e) {
-			UpdateCore.warn(e.getLocalizedMessage() + ":" + url.toExternalForm()); //$NON-NLS-1$
-		} catch (MalformedURLException e) {
-			UpdateCore.warn(e.getLocalizedMessage()); //$NON-NLS-1$
-		}
-		return url;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteLocalParser.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteLocalParser.java
deleted file mode 100644
index 1721470..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteLocalParser.java
+++ /dev/null
@@ -1,128 +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 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.update.internal.model;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.internal.configurator.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * parse the default site.xml
- */
-
-public class SiteLocalParser {
-
-	private PlatformConfiguration platformConfig;
-	private SiteLocalModel site;
-	public static final String CONFIG = "config"; //$NON-NLS-1$
-	private ResourceBundle bundle;
-	private BaseSiteLocalFactory factory = new BaseSiteLocalFactory();
-
-	/**
-	 * return the appropriate resource bundle for this sitelocal
-	 */
-	private ResourceBundle getResourceBundle() throws CoreException {
-		ResourceBundle bundle = null;
-		URL url = null;
-		try {
-			url = UpdateManagerUtils.asDirectoryURL(site.getLocationURL());
-			ClassLoader l = new URLClassLoader(new URL[] { url }, null);
-			bundle = ResourceBundle.getBundle("platform", Locale.getDefault(), l); //$NON-NLS-1$
-		} catch (MissingResourceException e) {
-			UpdateCore.warn(e.getLocalizedMessage() + ":" + url.toExternalForm()); //$NON-NLS-1$
-		} catch (MalformedURLException e) {
-			UpdateCore.warn(e.getLocalizedMessage()); //$NON-NLS-1$
-		}
-		return bundle;
-	}
-
-	/**
-	 * Constructor for DefaultSiteParser
-	 */
-	public SiteLocalParser(IPlatformConfiguration platformConfig, ILocalSite site) throws IOException, CoreException {
-		Assert.isTrue(platformConfig instanceof PlatformConfiguration);
-		this.platformConfig = (PlatformConfiguration)platformConfig;
-		
-		Assert.isTrue(site instanceof SiteLocalModel);
-		this.site = (SiteLocalModel) site;
-
-		// DEBUG:		
-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {
-			UpdateCore.debug("Start parsing localsite:" + ((SiteLocalModel) site).getLocationURLString()); //$NON-NLS-1$
-		}
-		
-		bundle = getResourceBundle();
-		
-		processConfig();
-		//processHistory();
-	}
-
-	
-//	/** 
-//	 * process the Site info
-//	 */
-//	private void processSite(Attributes attributes) throws MalformedURLException {
-//		//
-//		String info = attributes.getValue("label"); //$NON-NLS-1$
-//		info = UpdateManagerUtils.getResourceString(info, bundle);
-//		site.setLabel(info);
-//	
-//		// history
-//		String historyString = attributes.getValue("history"); //$NON-NLS-1$
-//		int history;
-//		if (historyString == null || historyString.equals("")) { //$NON-NLS-1$
-//			history = SiteLocalModel.DEFAULT_HISTORY;
-//		} else {
-//			history = Integer.parseInt(historyString);
-//		}
-//		site.setMaximumHistoryCount(history);
-//	
-//		//stamp
-//		String stampString = attributes.getValue("stamp"); //$NON-NLS-1$
-//		long stamp = Long.parseLong(stampString);
-//		site.setStamp(stamp);
-//	
-//		// DEBUG:		
-//		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {
-//			UpdateCore.debug("End process Site label:" + info); //$NON-NLS-1$
-//		}
-//	
-//	}
-
-	/** 
-	 * process the Config info
-	 */
-	private void processConfig() throws MalformedURLException, CoreException {
-
-		String label = platformConfig.getConfiguration().getDate().toString();
-		label = UpdateManagerUtils.getResourceString(label, bundle);
-		site.setLabel(label);
-
-		URL url = site.getLocationURL();
-		InstallConfigurationModel config = factory.createInstallConfigurationModel();
-		config.setLocationURLString(url.toExternalForm());
-		config.setLabel(label);
-		config.resolve(url, site.getResourceBundleURL());
-
-		// add the config
-		((SiteLocal)site).addConfiguration((InstallConfiguration)config);
-
-		// DEBUG:		
-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_PARSING) {
-			UpdateCore.debug("End Processing Config Tag: url:" + url.toExternalForm()); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/BatchInstallOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/BatchInstallOperation.java
deleted file mode 100644
index 707e95f..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/BatchInstallOperation.java
+++ /dev/null
@@ -1,111 +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 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.update.internal.operations;
-
-import java.lang.reflect.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.operations.*;
-
-public class BatchInstallOperation
-	extends Operation
-	implements IBatchOperation {
-		
-	private static final String KEY_INSTALLING = "OperationsManager.installing"; //$NON-NLS-1$
-	protected IInstallFeatureOperation[] operations;
-
-	public BatchInstallOperation(IInstallFeatureOperation[] operations) {
-		super();
-		this.operations = operations;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.operations.IMultiOperation#getOperations()
-	 */
-	public IFeatureOperation[] getOperations() {
-		return operations;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.operations.IOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public boolean execute(IProgressMonitor monitor, IOperationListener listener) throws CoreException, InvocationTargetException {
-		int installCount = 0;
-
-		if (operations == null || operations.length == 0)
-			return false;
-					
-		IStatus status = OperationsManager.getValidator().validatePendingChanges(operations);
-		if (status != null && status.getCode() == IStatus.ERROR) {
-			throw new CoreException(status);
-		}
-		
-//		// Check for duplication conflicts
-//		ArrayList conflicts =
-//			DuplicateConflictsValidator.computeDuplicateConflicts(
-//				operations,
-//				config);
-//		if (conflicts != null) {
-//			boolean continueProcessing = false;
-//			if (listener != null)
-//				continueProcessing = listener.beforeExecute(this, conflicts);
-//			if (!continueProcessing)
-//				return false;
-//		}
-		
-		OperationsManager.setInProgress(true);
-		if (monitor == null) 
-			monitor = new NullProgressMonitor();
-			
-		try {			
-			if (listener != null)
-				listener.beforeExecute(this, null);
-			
-			monitor.beginTask(
-				Policy.bind(KEY_INSTALLING),
-				operations.length);
-			for (int i = 0; i < operations.length; i++) {
-				SubProgressMonitor subMonitor =
-					new SubProgressMonitor(
-						monitor,
-						1,
-						SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
-
-				operations[i].execute(subMonitor, listener);
-				OperationsManager.addPendingOperation(operations[i]);
-
-				operations[i].markProcessed();
-				if (listener != null)
-					listener.afterExecute(operations[i], null);
-
-				//monitor.worked(1);
-				installCount++;
-			}
-			return SiteManager.getLocalSite().save();
-		} catch (InstallAbortedException e) {
-			// saves the current configuration
-			if (installCount > 0)
-				SiteManager.getLocalSite().save();
-			throw new InvocationTargetException(e);
-		} catch (CoreException e) {
-			// saves the current configuration
-			if (installCount > 0)
-				SiteManager.getLocalSite().save();
-			throw new InvocationTargetException(e);
-		} finally {
-			OperationsManager.setInProgress(false);
-			monitor.done();
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ConfigOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ConfigOperation.java
deleted file mode 100644
index 631fd19..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ConfigOperation.java
+++ /dev/null
@@ -1,79 +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 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.update.internal.operations;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Configure a feature.
- * ConfigOperation
- */
-public class ConfigOperation
-	extends FeatureOperation
-	implements IConfigFeatureOperation {
-
-	public ConfigOperation(
-		IConfiguredSite site,
-		IFeature feature) {
-		super(site, feature);
-	}
-
-	public boolean execute(IProgressMonitor pm, IOperationListener listener)
-		throws CoreException {
-
-		IStatus status =
-			OperationsManager.getValidator().validatePendingConfig(feature);
-		if (status != null && status.getCode() == IStatus.ERROR) {
-			throw new CoreException(status);
-		}
-
-		targetSite.configure(feature);
-//		ensureUnique();
-
-		try {
-			// Restart not needed
-			boolean restartNeeded = false;
-
-			// Check if this operation is cancelling one that's already pending
-			IOperation pendingOperation =
-				OperationsManager.findPendingOperation(feature);
-
-			if (pendingOperation instanceof IUnconfigFeatureOperation) {
-				// no need to do either pending change
-				OperationsManager.removePendingOperation(pendingOperation);
-			} else {
-				OperationsManager.addPendingOperation(this);
-			}
-
-			markProcessed();
-			if (listener != null)
-				listener.afterExecute(this, null);
-
-			restartNeeded = SiteManager.getLocalSite().save() && restartNeeded;
-
-			// notify the model
-			OperationsManager.fireObjectChanged(feature, null);
-
-			return restartNeeded;
-		} catch (CoreException e) {
-			undo();
-			UpdateUtils.logException(e);
-			throw e;
-		}
-	}
-
-	public void undo() throws CoreException {
-		targetSite.unconfigure(feature);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/DuplicateConflictsValidator.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/DuplicateConflictsValidator.java
deleted file mode 100644
index ac20829..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/DuplicateConflictsValidator.java
+++ /dev/null
@@ -1,223 +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 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.update.internal.operations;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.operations.*;
-
-
-/**
- * 
- */
-public class DuplicateConflictsValidator  {
-
-	private static final String KEY_CONFLICT =
-		"DuplicateConflictsDialog.conflict"; //$NON-NLS-1$
-
-	public static class IdEntry {
-		IConfiguredSite csite;
-		IFeature feature;
-
-		public IdEntry(IFeature feature, IConfiguredSite csite) {
-			this.feature = feature;
-			this.csite = csite;
-			if (csite == null) {
-				System.out.println("csite null"); //$NON-NLS-1$
-			}
-		}
-		public boolean isInstallCandidate() {
-			return csite != null;
-		}
-		public IFeature getFeature() {
-			return feature;
-		}
-
-		public String getIdentifier() {
-			return feature.getVersionedIdentifier().getIdentifier();
-		}
-		public IConfiguredSite getConfiguredSite() {
-			if (csite != null)
-				return csite;
-			return feature.getSite().getCurrentConfiguredSite();
-		}
-		public boolean sameLevel(IdEntry entry) {
-			VersionedIdentifier vid = feature.getVersionedIdentifier();
-			VersionedIdentifier evid =
-				entry.getFeature().getVersionedIdentifier();
-			return vid.equals(evid);
-		}
-		public String toString() {
-			IConfiguredSite configSite = getConfiguredSite();
-			String version =
-				feature.getVersionedIdentifier().getVersion().toString();
-			String location = configSite.getSite().getURL().getFile();
-			return Policy.bind(
-				KEY_CONFLICT,
-				new String[] { version, location });
-		}
-	}
-
-	public static ArrayList computeDuplicateConflicts(
-		IInstallFeatureOperation job,
-		IInstallConfiguration config,
-		IConfiguredSite targetSite,
-		IFeatureReference[] optionalFeatures) {
-		Hashtable featureTable = new Hashtable();
-		try {
-			computePresentState(featureTable, config);
-			computeNewFeature(
-				job.getFeature(),
-				targetSite,
-				featureTable,
-				optionalFeatures);
-			return computeConflicts(featureTable);
-		} catch (CoreException e) {
-			return null;
-		}
-	}
-
-	public static ArrayList computeDuplicateConflicts(
-		IInstallFeatureOperation[] jobs,
-		IInstallConfiguration config) {
-		Hashtable featureTable = new Hashtable();
-		computePresentState(featureTable, config);
-		computeNewFeatures(jobs, featureTable);
-		return computeConflicts(featureTable);
-	}
-
-	private static ArrayList computeConflicts(Hashtable featureTable) {
-		ArrayList result = null;
-		for (Enumeration iterator = featureTable.elements();
-			iterator.hasMoreElements();
-			) {
-			ArrayList candidate = (ArrayList) iterator.nextElement();
-			if (candidate.size() == 1)
-				continue;
-			ArrayList conflict = checkForConflict(candidate);
-			if (conflict != null) {
-				if (result == null)
-					result = new ArrayList();
-				result.add(conflict);
-			}
-		}
-		return result;
-	}
-
-	private static ArrayList checkForConflict(ArrayList candidate) {
-		IdEntry firstEntry = null;
-		for (int i = 0; i < candidate.size(); i++) {
-			IdEntry entry = (IdEntry) candidate.get(i);
-			if (firstEntry == null)
-				firstEntry = entry;
-			else if (!entry.sameLevel(firstEntry))
-				return candidate;
-		}
-		return null;
-	}
-
-	private static void computePresentState(
-		Hashtable table,
-		IInstallConfiguration config) {
-		IConfiguredSite[] csites = config.getConfiguredSites();
-		for (int i = 0; i < csites.length; i++) {
-			IConfiguredSite csite = csites[i];
-			IFeatureReference[] refs = csite.getConfiguredFeatures();
-			for (int j = 0; j < refs.length; j++) {
-				try {
-					addEntry(refs[j].getFeature(null), csite, table);
-				} catch (CoreException e) {
-					// don't let one bad feature stop the loop
-				}
-			}
-		}
-	}
-
-	private static void computeNewFeatures(
-		IInstallFeatureOperation[] jobs,
-		Hashtable featureTable) {
-		for (int i = 0; i < jobs.length; i++) {
-			IInstallFeatureOperation job = jobs[i];
-			IConfiguredSite targetSite = job.getTargetSite();
-			IFeature newFeature = job.getFeature();
-			try {
-				computeNewFeature(newFeature, targetSite, featureTable, null);
-			} catch (CoreException e) {
-			}
-		}
-	}
-
-	private static void computeNewFeature(
-		IFeature feature,
-		IConfiguredSite csite,
-		Hashtable table,
-		IFeatureReference[] optionalFeatures)
-		throws CoreException {
-		addEntry(feature, csite, table);
-		IIncludedFeatureReference[] irefs =
-			feature.getIncludedFeatureReferences();
-		for (int i = 0; i < irefs.length; i++) {
-			IIncludedFeatureReference iref = irefs[i];
-			boolean add = true;
-
-			if (iref.isOptional() && optionalFeatures != null) {
-				boolean found = false;
-				for (int j = 0; j < optionalFeatures.length; j++) {
-					IFeatureReference checked = optionalFeatures[j];
-					if (checked.equals(iref)) {
-						found = true;
-						break;
-					}
-				}
-				add = found;
-			}
-			if (add)
-				computeNewFeature(
-					iref.getFeature(null),
-					csite,
-					table,
-					optionalFeatures);
-		}
-	}
-
-	private static void addEntry(
-		IFeature feature,
-		IConfiguredSite csite,
-		Hashtable featureTable) {
-		String id = feature.getVersionedIdentifier().getIdentifier();
-		ArrayList entries = (ArrayList) featureTable.get(id);
-		if (entries == null) {
-			entries = new ArrayList();
-			featureTable.put(id, entries);
-		}
-		IdEntry entry = new IdEntry(feature, csite);
-		boolean replaced = false;
-		for (int i = 0; i < entries.size(); i++) {
-			IdEntry existingEntry = (IdEntry) entries.get(i);
-			IConfiguredSite existingSite = existingEntry.getConfiguredSite();
-			if (existingSite.equals(entry.getConfiguredSite())) {
-				// same site - replace it if not new
-				if (entry.isInstallCandidate()) {
-					entries.set(i, entry);
-					entries.remove(existingEntry);
-				}
-				replaced = true;
-				break;
-			}
-		}
-		if (!replaced)
-			entries.add(entry);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureHierarchyElement.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureHierarchyElement.java
deleted file mode 100644
index fe81a9b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureHierarchyElement.java
+++ /dev/null
@@ -1,445 +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 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.update.internal.operations;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * This class is used to construct a joint feature hiearchy.
- * Old feature reference represents feature that is
- * found on in the current configuration. New feature
- * reference is found in the feature that is an install/update
- * candidate. The element is used to join nodes of the
- * hiearchy formed by including features so that
- * each node in the hiearchy contains references to the
- * old and the new feature. Old and new features have
- * the same IDs but different versions, except in 
- * the case of optional features, where the tree may
- * be constructed to bring in an optional feature
- * that was not installed initially. In that case,
- * some nodes may have old an new references with the
- * same ID and version. 
- * <p>
- * Old feature reference may be null. That means
- * that the older feature with the same ID but lower
- * version was not found in the current configuration.
- */
-public class FeatureHierarchyElement {
-
-	private Object root;
-	private ArrayList children;
-	private IFeatureReference oldFeatureRef;
-	private IFeatureReference newFeatureRef;
-	private boolean checked;
-	private boolean optionalChildren;
-	private boolean nativeUpgrade = false;
-
-	public FeatureHierarchyElement(
-		IFeatureReference oldRef,
-		IFeatureReference newRef) {
-		oldFeatureRef = oldRef;
-		newFeatureRef = newRef;
-	}
-
-	public void setRoot(Object root) {
-		this.root = root;
-	}
-
-	public Object getRoot() {
-		return root;
-	}
-
-	/*
-	 * Return true if element can be checked, false otherwise.
-	 */
-	public boolean isEditable() {
-		// cannot uncheck non-optional features
-		if (isOptional() == false)
-			return false;
-		// cannot uncheck optional feature that
-		// has already been installed
-		if (oldFeatureRef != null)
-			return false;
-		return true;
-	}
-
-	/**
-	 * A hirearchy node represents a 'false update' if
-	 * both old and new references exist and both
-	 * point to the feature with the same ID and version.
-	 * These nodes will not any bytes to be downloaded - 
-	 * they simply exist to allow the hirarchy to
-	 * reach the optional children that are missing
-	 * and will be installed.
-	 */
-
-	public boolean isFalseUpdate() {
-		if (oldFeatureRef != null && newFeatureRef != null) {
-			try {
-				return oldFeatureRef.getVersionedIdentifier().equals(
-					newFeatureRef.getVersionedIdentifier());
-			} catch (CoreException e) {
-			}
-		}
-		return false;
-	}
-	/**
-	 * Returns true if feature is included as optional.
-	 */
-	public boolean isOptional() {
-		return newFeatureRef instanceof IIncludedFeatureReference
-			&& ((IIncludedFeatureReference) newFeatureRef).isOptional();
-	}
-	/**
-	 * Returns true if this optional feature is selected
-	 * for installation. Non-optional features or non-editable
-	 * features are always checked.
-	 */
-	public boolean isChecked() {
-		return checked;
-	}
-
-	void setNativeUpgrade(boolean nativeUpgrade) {
-		this.nativeUpgrade = nativeUpgrade;
-	}
-
-	/**
-	 * Returns true if this optional feature should
-	 * be enabled when installed. By default, all
-	 * features in the hiearchy should be enabled.
-	 * The exception is for optional features that
-	 * are updated to a new version in case where
-	 * the older version of the optional feature
-	 * is disabled in the given configuration. 
-	 * In this case, the feature is
-	 * updated and disabled in order to maintain
-	 * its state.
-	 */
-	public boolean isEnabled(IInstallConfiguration config) {
-		if (nativeUpgrade)
-			return true;
-		if (isOptional() && oldFeatureRef != null) {
-			try {
-				IFeature oldFeature = oldFeatureRef.getFeature(null);
-				IConfiguredSite csite =
-					UpdateUtils.getConfigSite(oldFeature, config);
-				return csite.isConfigured(oldFeature);
-			} catch (CoreException e) {
-			}
-		}
-		return true;
-	}
-
-	public IFeature getFeature() {
-		try {
-			IFeature feature = newFeatureRef.getFeature(null);
-			return feature;
-		} catch (CoreException e) {
-			return null;
-		}
-	}
-
-	/**
-	 * Selects an editable feature for installation.
-	 */
-	public void setChecked(boolean checked) {
-		this.checked = checked;
-	}
-	/**
-	 * Returns label for UI presentation.
-	 */
-	public String getLabel() {
-		try {
-			return getFeatureLabel(newFeatureRef);
-		} catch (CoreException e) {
-			if (newFeatureRef instanceof IIncludedFeatureReference) {
-				String iname =
-					((IIncludedFeatureReference) newFeatureRef).getName();
-				if (iname != null)
-					return iname;
-			}
-			try {
-				VersionedIdentifier vid =
-					newFeatureRef.getVersionedIdentifier();
-				return vid.toString();
-			} catch (CoreException e2) {
-			}
-		}
-		return null;
-	}
-	/**
-	 * Computes label from the feature.
-	 */
-	private String getFeatureLabel(IFeatureReference featureRef)
-		throws CoreException {
-		IFeature feature = featureRef.getFeature(null);
-		return feature.getLabel()
-			+ " " //$NON-NLS-1$
-			+ feature.getVersionedIdentifier().getVersion().toString();
-	}
-	/**
-	 * Computes children by linking matching features from the
-	 * old feature's and new feature's hierarchy.
-	 */
-	public FeatureHierarchyElement[] getChildren(
-		boolean update,
-		boolean patch,
-		IInstallConfiguration config) {
-		computeChildren(update, patch, config);
-		FeatureHierarchyElement[] array =
-			new FeatureHierarchyElement[children.size()];
-		children.toArray(array);
-		return array;
-	}
-
-	public FeatureHierarchyElement[] getChildren() {
-		if (children != null) {
-			FeatureHierarchyElement[] array =
-				new FeatureHierarchyElement[children.size()];
-			children.toArray(array);
-			return array;
-		}
-
-		return new FeatureHierarchyElement[0];
-	}
-	/**
-	 * Computes children of this node.
-	 */
-	public void computeChildren(
-		boolean update,
-		boolean patch,
-		IInstallConfiguration config) {
-		if (children == null) {
-			children = new ArrayList();
-			try {
-				IFeature oldFeature = null;
-				IFeature newFeature = null;
-				newFeature = newFeatureRef.getFeature(null);
-				if (oldFeatureRef != null)
-					oldFeature = oldFeatureRef.getFeature(null);
-				optionalChildren =
-					computeElements(
-						oldFeature,
-						newFeature,
-						update,
-						patch,
-						config,
-						children);
-				for (int i = 0; i < children.size(); i++) {
-					FeatureHierarchyElement element =
-						(FeatureHierarchyElement) children.get(i);
-					element.setRoot(getRoot());
-				}
-			} catch (CoreException e) {
-			}
-		}
-	}
-	/**
-	 * 
-	 */
-	public boolean hasOptionalChildren() {
-		return optionalChildren;
-	}
-	/**
-	 * Adds checked optional features to the provided set.
-	 */
-	public void addCheckedOptionalFeatures(
-		boolean update,
-		boolean patch,
-		IInstallConfiguration config,
-		Set set) {
-		if (isOptional() && isChecked()) {
-			// Do not add checked optional features
-			// if this is an update case but
-			// the node is not a 'true' update
-			// (old and new feature are the equal)
-			if (!update || !isFalseUpdate())
-				set.add(newFeatureRef);
-		}
-		FeatureHierarchyElement[] elements = getChildren(update, patch, config);
-		for (int i = 0; i < elements.length; i++) {
-			elements[i].addCheckedOptionalFeatures(update, patch, config, set);
-		}
-	}
-
-	/**
-	 * Computes first-level children of the linked hierarchy
-	 * for the provided old and new features (same ID, different version
-	 * where new version is greater or equal the old version).
-	 * Old feature may be null. 
-	 */
-	public static boolean computeElements(
-		IFeature oldFeature,
-		IFeature newFeature,
-		boolean update,
-		boolean patch,
-		IInstallConfiguration config,
-		ArrayList list) {
-		Object[] oldChildren = null;
-		Object[] newChildren = getIncludedFeatures(newFeature);
-		boolean optionalChildren = false;
-
-		try {
-			if (oldFeature != null) {
-				oldChildren = getIncludedFeatures(oldFeature);
-			}
-			for (int i = 0; i < newChildren.length; i++) {
-				IFeatureReference oldRef = null;
-				IFeatureReference newRef = (IFeatureReference) newChildren[i];
-				if (oldChildren != null) {
-					String newId =
-						newRef.getVersionedIdentifier().getIdentifier();
-
-					for (int j = 0; j < oldChildren.length; j++) {
-						IFeatureReference cref =
-							(IFeatureReference) oldChildren[j];
-						try {
-							if (cref
-								.getVersionedIdentifier()
-								.getIdentifier()
-								.equals(newId)) {
-								oldRef = cref;
-								break;
-							}
-						} catch (CoreException ex) {
-						}
-					}
-				} else if (patch) {
-					// 30849 - find the old reference in the
-					// configuration.
-					if (!UpdateUtils.isPatch(newFeature)) {
-						oldRef = findPatchedReference(newRef, config);
-					}
-				}
-				// test if the old optional feature exists
-				if (oldRef != null
-					&& ((oldRef instanceof IIncludedFeatureReference
-						&& ((IIncludedFeatureReference) oldRef).isOptional())
-						|| patch)) {
-					try {
-						IFeature f = oldRef.getFeature(null);
-						if (f == null)
-							oldRef = null;
-					} catch (CoreException e) {
-						// missing
-						oldRef = null;
-					}
-				}
-				FeatureHierarchyElement element =
-					new FeatureHierarchyElement(oldRef, newRef);
-				// If this is an update (old feature exists), 
-				// only check the new optional feature if the old exists.
-				// Otherwise, always check.
-				if (element.isOptional() && (update || patch)) {
-					element.setChecked(oldRef != null);
-					if (oldRef == null) {
-						// Does not have an old reference,
-						// but it may contain an older
-						// feature that may still qualify
-						// for update. For example,
-						// an older version may have been
-						// installed natively from the CD-ROM.
-						if (hasOlderVersion(newRef)) {
-							element.setNativeUpgrade(true);
-							element.setChecked(true);
-						}
-					}
-				} else
-					element.setChecked(true);
-				list.add(element);
-				element.computeChildren(update, patch, config);
-				if (element.isOptional() || element.hasOptionalChildren())
-					optionalChildren = true;
-			}
-		} catch (CoreException e) {
-		}
-		return optionalChildren;
-	}
-	public static boolean hasOlderVersion(IFeatureReference newRef) {
-		try {
-			VersionedIdentifier vid = newRef.getVersionedIdentifier();
-			PluginVersionIdentifier version = vid.getVersion();
-			String mode = getUpdateVersionsMode();
-
-			IFeature[] allInstalled =
-				UpdateUtils.getInstalledFeatures(vid, false);
-			for (int i = 0; i < allInstalled.length; i++) {
-				IFeature candidate = allInstalled[i];
-				PluginVersionIdentifier cversion =
-					candidate.getVersionedIdentifier().getVersion();
-				// Verify that the difference qualifies as
-				// an update.
-				if (mode.equals(UpdateCore.EQUIVALENT_VALUE)) {
-					if (version.isEquivalentTo(cversion))
-						return true;
-				} else if (mode.equals(UpdateCore.COMPATIBLE_VALUE)) {
-					if (version.isCompatibleWith(cversion))
-						return true;
-				}
-			}
-		} catch (CoreException e) {
-		}
-		return false;
-	}
-
-	private static IFeatureReference findPatchedReference(
-		IFeatureReference newRef,
-		IInstallConfiguration config)
-		throws CoreException {
-		VersionedIdentifier vid = newRef.getVersionedIdentifier();
-		IConfiguredSite[] csites = config.getConfiguredSites();
-		for (int i = 0; i < csites.length; i++) {
-			IConfiguredSite csite = csites[i];
-			IFeatureReference[] refs = csite.getConfiguredFeatures();
-			for (int j = 0; j < refs.length; j++) {
-				IFeatureReference ref = refs[j];
-				VersionedIdentifier refVid = ref.getVersionedIdentifier();
-				if (vid.getIdentifier().equals(refVid.getIdentifier()))
-					return ref;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns included feature references for the given reference.
-	 */
-	public static Object[] getIncludedFeatures(IFeatureReference ref) {
-		try {
-			IFeature feature = ref.getFeature(null);
-			return getIncludedFeatures(feature);
-		} catch (CoreException e) {
-		}
-		return new Object[0];
-	}
-
-	/**
-	 * Returns included feature references for the given feature.
-	 */
-
-	public static Object[] getIncludedFeatures(IFeature feature) {
-		try {
-			return feature.getIncludedFeatureReferences();
-		} catch (CoreException e) {
-		}
-		return new Object[0];
-	}
-
-	private static String getUpdateVersionsMode() {
-		Preferences store = UpdateCore.getPlugin().getPluginPreferences();
-		return store.getString(UpdateCore.P_UPDATE_VERSIONS);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureOperation.java
deleted file mode 100644
index be16c32..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureOperation.java
+++ /dev/null
@@ -1,69 +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 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.update.internal.operations;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.operations.*;
-
-
-public abstract class FeatureOperation extends Operation implements IFeatureOperation {
-	
-	protected IFeature feature;
-	protected IFeature oldFeature;
-	protected IConfiguredSite targetSite;
-
-//	private boolean optionalDelta;
-	
-	
-	public FeatureOperation(IConfiguredSite targetSite, IFeature feature) {
-		super();
-		this.feature = feature;
-		this.targetSite = targetSite;
-	}
-
-	public IFeature getFeature() {
-		return feature;
-	}
-	
-	public IFeature getOldFeature() {
-		return oldFeature;
-	}
-	
-//	public boolean isOptionalDelta() {
-//		return optionalDelta;
-//	}
-	
-	public IConfiguredSite getTargetSite() {
-		return targetSite;
-	}
-
-	public void setTargetSite(IConfiguredSite targetSite) {
-		this.targetSite = targetSite;
-	}
-	
-
-	static boolean unconfigure(IFeature feature, IConfiguredSite site)
-		throws CoreException {
-		IInstallConfiguration config = SiteManager.getLocalSite().getCurrentConfiguration();
-		if (site == null)
-			site = UpdateUtils.getConfigSite(feature, config);
-		
-		if (site != null) {
-			PatchCleaner cleaner = new PatchCleaner(site, feature);
-			boolean result = site.unconfigure(feature);
-			cleaner.dispose();
-			return result;
-		}
-		return false;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureStatus.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureStatus.java
deleted file mode 100644
index 4d642dc..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureStatus.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the 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.update.internal.operations;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-
-
-/**
- * The feature status provide info about the broken features and what is
- * wrong.
- */
-public class FeatureStatus extends Status {
-	public final static int CODE_OTHER = IStatus.OK;//0
-	public final static int CODE_PREREQ_FEATURE = 1;
-	public final static int CODE_PREREQ_PLUGIN = 2;
-	public final static int CODE_EXCLUSIVE = 4;
-	public final static int CODE_CYCLE = 8;
-	public final static int CODE_OPTIONAL_CHILD = 16;
-	public final static int CODE_ENVIRONMENT = 32;
-	IFeature feature;
-
-	public FeatureStatus(IFeature feature, int severity, String pluginId, int code, String message, Throwable exception) {
-		super(severity, pluginId, code, message, exception);
-		this.feature = feature;
-	}
-	public IFeature getFeature() {
-		return feature;
-	}
-	public boolean equals(Object obj) {
-		if (!(obj instanceof FeatureStatus))
-			return false;
-		FeatureStatus fs = (FeatureStatus) obj;
-		// only check for feature, regardless of status type
-		if (fs.getFeature() == feature)
-			return true;
-		else if (fs.getFeature() == null && feature == null)
-			return fs.getMessage().equals(getMessage());
-		else if (fs.getFeature() == null && feature != null)
-			return false;
-		else if (fs.getFeature() != null && feature == null)
-			return false;
-		else if (fs.getFeature().equals(feature))
-			return true;
-		else
-			return false;
-	}
-
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/InstallOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/InstallOperation.java
deleted file mode 100644
index b01472f..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/InstallOperation.java
+++ /dev/null
@@ -1,151 +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 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.update.internal.operations;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Configure a feature.
- * ConfigOperation
- */
-public class InstallOperation
-	extends FeatureOperation
-	implements IInstallFeatureOperation {
-	private static final String KEY_OLD = "OperationsManager.error.old"; //$NON-NLS-1$
-
-	private IFeatureReference[] optionalFeatures;
-	private IFeature[] unconfiguredOptionalFeatures;
-	private IVerificationListener verifier;
-
-	/**
-	 * Constructor
-	 * @param site
-	 * @param feature
-	 * @param optionalFeatures optional features to install. If null, the operation will install them all (if any)
-	 * @param unconfiguredOptionalElements optional features unconfigured before the operation. They should remain unconfigured after the install.
-	 * @param verifier
-	 */
-	public InstallOperation(
-		IConfiguredSite site,
-		IFeature feature,
-		IFeatureReference[] optionalFeatures,
-		IFeature[] unconfiguredOptionalElements,
-		IVerificationListener verifier) {
-		super(site, feature);
-		IFeature[] installed = UpdateUtils.getInstalledFeatures(feature);
-		if (installed.length > 0)
-			this.oldFeature = installed[0];
-		this.unconfiguredOptionalFeatures = unconfiguredOptionalElements;
-		this.optionalFeatures = optionalFeatures;
-		this.verifier = verifier;
-	}
-
-	public IFeatureReference[] getOptionalFeatures() {
-		return optionalFeatures;
-	}
-
-	public boolean execute(IProgressMonitor pm, IOperationListener listener)
-		throws CoreException {
-
-		boolean reinstall = false;
-		if (oldFeature != null
-			&& feature.getVersionedIdentifier().equals(
-				oldFeature.getVersionedIdentifier()))
-			reinstall = true;
-
-		setOptionalFeatures();
-
-		if (optionalFeatures == null)
-			targetSite.install(feature, verifier, pm);
-		else
-			targetSite.install(feature, optionalFeatures, verifier, pm);
-
-		if (!reinstall) {
-
-			if (oldFeature != null) { //&& isOptionalDelta()) {
-				preserveOptionalState();
-
-				boolean oldSuccess = unconfigure(oldFeature, null); // pick any site containing old feature
-				if (!oldSuccess) {
-					IInstallConfiguration config = SiteManager.getLocalSite().getCurrentConfiguration();
-					if (!UpdateUtils.isNestedChild(config, oldFeature)) {
-						// "eat" the error if nested child
-						String message =
-							Policy.bind(
-								KEY_OLD,
-								oldFeature.getLabel());
-						IStatus status =
-							new Status(
-								IStatus.ERROR,
-								UpdateUtils.getPluginId(),
-								IStatus.OK,
-								message,
-								null);
-						throw new CoreException(status);
-					}
-				}
-			}
-
-//			if (oldFeature == null) {
-//				ensureUnique();
-//			}
-		}
-		return true;
-	}
-
-	private void preserveOptionalState() {
-		if (unconfiguredOptionalFeatures == null)
-			return;
-
-		for (int i = 0; i < unconfiguredOptionalFeatures.length; i++) {
-			try {
-				// Get the feature that matches the original unconfigured ones.
-				IFeature localFeature =
-					UpdateUtils.getLocalFeature(
-						targetSite,
-						unconfiguredOptionalFeatures[i]);
-				if (localFeature != null)
-					targetSite.unconfigure(localFeature);
-
-			} catch (CoreException e) {
-				// Ignore this - we will leave with it
-			}
-		}
-	}
-	
-	private void setOptionalFeatures() {
-		try {
-			// Ensure optional features are correctly set
-			if (optionalFeatures == null && UpdateUtils.hasOptionalFeatures(feature) ) {
-				JobRoot jobRoot = new JobRoot(this);
-				IInstallConfiguration config = SiteManager.getLocalSite().getCurrentConfiguration();
-				HashSet set = new HashSet();
-				boolean update = oldFeature != null;
-				boolean patch = UpdateUtils.isPatch(feature);
-				FeatureHierarchyElement[] elements = jobRoot.getElements();
-				for (int i = 0; i < elements.length; i++) {
-					elements[i].addCheckedOptionalFeatures(update, patch, config, set);
-				}
-				optionalFeatures = new IFeatureReference[set.size()];
-				set.toArray(optionalFeatures);
-				unconfiguredOptionalFeatures = jobRoot.getUnconfiguredOptionalFeatures(config, targetSite);
-			}
-		} catch (CoreException e) {
-			UpdateUtils.logException(e);
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/JobRoot.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/JobRoot.java
deleted file mode 100644
index e60f6c9..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/JobRoot.java
+++ /dev/null
@@ -1,101 +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 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.update.internal.operations;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.operations.*;
-
-public class JobRoot {
-	private IInstallFeatureOperation job;
-	private FeatureHierarchyElement[] elements;
-
-	public JobRoot(IInstallFeatureOperation job) {
-		this.job = job;
-	}
-
-	public IInstallFeatureOperation getJob() {
-		return job;
-	}
-
-	public FeatureHierarchyElement[] getElements() {
-		if (elements == null)
-			computeElements();
-		return elements;
-	}
-
-	/**
-	 * Returns unconfigured features before an install.
-	 * After installing the features, the caller must get the local features that match
-	 * these unconfigured features and unconfigure them.
-	 * @param config
-	 * @param targetSite
-	 * @return
-	 */
-	public IFeature[] getUnconfiguredOptionalFeatures(
-		IInstallConfiguration config,
-		IConfiguredSite targetSite) {
-
-		ArrayList unconfiguredOptionalFeatures = new ArrayList();
-		getUnconfiguredOptionalFeatures(unconfiguredOptionalFeatures, config, targetSite, getElements(), UpdateUtils.isPatch(job.getFeature()));
-		IFeature[] unconfiguredOptionalFeaturesArray =
-			new IFeature[unconfiguredOptionalFeatures.size()];
-		unconfiguredOptionalFeatures.toArray(unconfiguredOptionalFeaturesArray);
-		return unconfiguredOptionalFeaturesArray;
-	}
-
-	private void getUnconfiguredOptionalFeatures(
-		ArrayList unconfiguredOptionalFeatures,
-		IInstallConfiguration config,
-		IConfiguredSite targetSite,
-		FeatureHierarchyElement[] optionalElements,
-		boolean isPatch) {
-		for (int i = 0; i < optionalElements.length; i++) {
-			FeatureHierarchyElement[] children =
-				optionalElements[i].getChildren(true, isPatch, config);
-			getUnconfiguredOptionalFeatures(
-				unconfiguredOptionalFeatures,
-				config,
-				targetSite,
-				children,
-				isPatch);
-			if (!optionalElements[i].isEnabled(config)) {
-				unconfiguredOptionalFeatures.add(optionalElements[i].getFeature());
-			}
-		}
-	}
-
-	private void computeElements() {
-		try {
-			IFeature oldFeature = job.getOldFeature();
-			IFeature newFeature = job.getFeature();
-			ArrayList list = new ArrayList();
-			boolean patch = UpdateUtils.isPatch(newFeature);
-			FeatureHierarchyElement.computeElements(
-				oldFeature,
-				newFeature,
-				oldFeature != null,
-				patch,
-				SiteManager.getLocalSite().getCurrentConfiguration(),
-				list);
-			elements = new FeatureHierarchyElement[list.size()];
-			list.toArray(elements);
-			for (int i = 0; i < elements.length; i++) {
-				elements[i].setRoot(this);
-			}
-		} catch (CoreException e) {
-			UpdateUtils.logException(e);
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/Operation.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/Operation.java
deleted file mode 100644
index ff891a8..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/Operation.java
+++ /dev/null
@@ -1,31 +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 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.update.internal.operations;
-
-import org.eclipse.update.operations.*;
-
-
-public abstract class Operation implements IOperation {
-	
-	private boolean processed;
-	
-	
-	public Operation() {
-	}
-	
-	public boolean isProcessed() {
-		return processed;
-	}
-	
-	public void markProcessed() {
-		processed = true;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/OperationFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/OperationFactory.java
deleted file mode 100644
index 8f6d776..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/OperationFactory.java
+++ /dev/null
@@ -1,77 +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 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.update.internal.operations;
-
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.operations.*;
-
-public class OperationFactory implements IOperationFactory {
-
-	public OperationFactory() {
-	}
-
-	public IConfigFeatureOperation createConfigOperation(
-		IConfiguredSite targetSite,
-		IFeature feature) {
-		return new ConfigOperation(targetSite, feature);
-	}
-
-	public IBatchOperation createBatchInstallOperation(IInstallFeatureOperation[] operations) {
-		return new BatchInstallOperation(operations);
-	}
-
-	public IInstallFeatureOperation createInstallOperation(
-		IConfiguredSite targetSite,
-		IFeature feature,
-		IFeatureReference[] optionalFeatures,
-		IFeature[] unconfiguredOptionalFeatures,
-		IVerificationListener verifier) {
-		return new InstallOperation(
-			targetSite,
-			feature,
-			optionalFeatures,
-			unconfiguredOptionalFeatures,
-			verifier);
-	}
-
-	public IUnconfigFeatureOperation createUnconfigOperation(
-		IConfiguredSite targetSite,
-		IFeature feature) {
-		return new UnconfigOperation(targetSite, feature);
-	}
-
-	public IConfigFeatureOperation createReplaceFeatureVersionOperation(
-		IFeature feature,
-		IFeature anotherFeature) {
-	
-		return new ReplaceFeatureVersionOperation(feature, anotherFeature);		
-	}
-		
-	public IUninstallFeatureOperation createUninstallOperation(
-		IConfiguredSite targetSite,
-		IFeature feature) {
-		return new UninstallOperation(targetSite, feature);
-	}
-
-	public IRevertConfigurationOperation createRevertConfigurationOperation(
-		IInstallConfiguration config,
-		IProblemHandler problemHandler) {
-		return new RevertConfigurationOperation(
-			config,
-			problemHandler);
-	}
-
-	public IToggleSiteOperation createToggleSiteOperation(
-		IConfiguredSite site) {
-		return new ToggleSiteOperation(site);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/OperationValidator.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/OperationValidator.java
deleted file mode 100644
index 5fe1f35..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/OperationValidator.java
+++ /dev/null
@@ -1,1301 +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 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.update.internal.operations;
-
-//import java.io.*;
-//import java.net.*;
-//import java.nio.channels.*;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.configurator.PlatformConfiguration;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.operations.*;
-import org.osgi.framework.*;
-
-/**
- *  
- */
-public class OperationValidator implements IOperationValidator {
-	private static final String KEY_ROOT_MESSAGE =
-		"ActivityConstraints.rootMessage"; //$NON-NLS-1$
-	private static final String KEY_ROOT_MESSAGE_INIT =
-		"ActivityConstraints.rootMessageInitial"; //$NON-NLS-1$
-	private static final String KEY_CHILD_MESSAGE =
-		"ActivityConstraints.childMessage"; //$NON-NLS-1$
-	private static final String KEY_PLATFORM = "ActivityConstraints.platform"; //$NON-NLS-1$
-	private static final String KEY_PRIMARY = "ActivityConstraints.primary"; //$NON-NLS-1$
-	private static final String KEY_OS = "ActivityConstraints.os"; //$NON-NLS-1$
-	private static final String KEY_WS = "ActivityConstraints.ws"; //$NON-NLS-1$
-	private static final String KEY_ARCH = "ActivityConstraints.arch"; //$NON-NLS-1$
-	private static final String KEY_PREREQ = "ActivityConstraints.prereq"; //$NON-NLS-1$
-	private static final String KEY_PREREQ_PLUGIN =
-		"ActivityConstaints.prereq.plugin"; //$NON-NLS-1$
-	private static final String KEY_PREREQ_FEATURE =
-		"ActivityConstaints.prereq.feature"; //$NON-NLS-1$
-	private static final String KEY_PREREQ_PERFECT =
-		"ActivityConstraints.prereqPerfect"; //$NON-NLS-1$
-	private static final String KEY_PREREQ_EQUIVALENT =
-		"ActivityConstraints.prereqEquivalent"; //$NON-NLS-1$
-	private static final String KEY_PREREQ_COMPATIBLE =
-		"ActivityConstraints.prereqCompatible"; //$NON-NLS-1$
-	private static final String KEY_PREREQ_GREATER =
-		"ActivityConstraints.prereqGreaterOrEqual"; //$NON-NLS-1$
-	private static final String KEY_OPTIONAL_CHILD =
-		"ActivityConstraints.optionalChild"; //$NON-NLS-1$
-	private static final String KEY_CYCLE = "ActivityConstraints.cycle"; //$NON-NLS-1$
-	private static final String KEY_CONFLICT = "ActivityConstraints.conflict"; //$NON-NLS-1$
-	private static final String KEY_EXCLUSIVE = "ActivityConstraints.exclusive"; //$NON-NLS-1$
-	private static final String KEY_NO_LICENSE =
-		"ActivityConstraints.noLicense"; //$NON-NLS-1$
-
-	/**
-	 * Checks if the platform configuration has been modified outside this program.
-	 * @return the error status, or null if no errors
-	 */
-	public IStatus validatePlatformConfigValid() {
-		ArrayList status = new ArrayList(1);
-		checkPlatformWasModified(status);
-		
-		// report status
-		if (status.size() > 0)
-			return createMultiStatus(KEY_ROOT_MESSAGE, status, IStatus.ERROR);
-		return null;
-	}
-	
-	/*
-	 * Called by UI before performing operation. Returns null if no errors, a
-	 * status with IStatus.WARNING code when the initial configuration is
-	 * broken, or a status with IStatus.ERROR when there the operation
-	 * introduces new errors
-	 */
-	public IStatus validatePendingInstall(
-		IFeature oldFeature,
-		IFeature newFeature) {
-		// check initial state
-		ArrayList beforeStatus = new ArrayList();
-		validateInitialState(beforeStatus);
-
-		// check proposed change
-		ArrayList status = new ArrayList();
-		checkPlatformWasModified(status);
-		validateInstall(oldFeature, newFeature, status);
-
-		// report status
-		return createCombinedReportStatus(beforeStatus, status);
-	}
-
-	/*
-	 * Called by UI before performing operation
-	 */
-	public IStatus validatePendingUnconfig(IFeature feature) {
-		// check initial state
-		ArrayList beforeStatus = new ArrayList();
-		validateInitialState(beforeStatus);
-
-		// check proposed change
-		ArrayList status = new ArrayList();
-		checkPlatformWasModified(status);
-		validateUnconfigure(feature, status);
-
-		// report status
-		return createCombinedReportStatus(beforeStatus, status);
-	}
-
-	/*
-	 * Called by UI before performing operation
-	 */
-	public IStatus validatePendingConfig(IFeature feature) {
-		// check initial state
-		ArrayList beforeStatus = new ArrayList();
-		validateInitialState(beforeStatus);
-
-		// check proposed change
-		ArrayList status = new ArrayList();
-		checkPlatformWasModified(status);
-		validateConfigure(feature, status);
-
-		// report status
-		return createCombinedReportStatus(beforeStatus, status);
-	}
-
-	/**
-	 * Called before performing operation.
-	 */
-	public IStatus validatePendingReplaceVersion(
-		IFeature feature,
-		IFeature anotherFeature) {
-		// check initial state
-		ArrayList beforeStatus = new ArrayList();
-		validateInitialState(beforeStatus);
-
-		// check proposed change
-		ArrayList status = new ArrayList();
-		checkPlatformWasModified(status);
-		validateReplaceVersion(feature, anotherFeature, status);
-
-		// report status
-		return createCombinedReportStatus(beforeStatus, status);
-	}
-
-
-	/*
-	 * Called by the UI before doing a revert/ restore operation
-	 */
-	public IStatus validatePendingRevert(IInstallConfiguration config) {
-		// check initial state
-		ArrayList beforeStatus = new ArrayList();
-		validateInitialState(beforeStatus);
-
-		// check proposed change
-		ArrayList status = new ArrayList();
-		checkPlatformWasModified(status);
-		validateRevert(config, status);
-
-		// report status
-		return createCombinedReportStatus(beforeStatus, status);
-	}
-
-	/*
-	 * Called by the UI before doing a batched processing of several pending
-	 * changes.
-	 */
-	public IStatus validatePendingChanges(IInstallFeatureOperation[] jobs) {
-		// check initial state
-		ArrayList beforeStatus = new ArrayList();
-		validateInitialState(beforeStatus);
-		checkPlatformWasModified(beforeStatus);
-
-		// check proposed change
-		ArrayList status = new ArrayList();
-		validatePendingChanges(jobs, status, beforeStatus);
-
-		// report status
-		return createCombinedReportStatus(beforeStatus, status);
-	}
-
-	/*
-	 * Check the current state.
-	 */
-	public IStatus validateCurrentState() {
-		// check the state
-		ArrayList status = new ArrayList();
-		checkPlatformWasModified(status);
-		validateInitialState(status);
-
-		// report status
-		if (status.size() > 0)
-			return createMultiStatus(KEY_ROOT_MESSAGE, status, IStatus.ERROR);
-		return null;
-	}
-
-	/*
-	 * Check to see if we are not broken even before we start
-	 */
-	private static void validateInitialState(ArrayList status) {
-		try {
-			ArrayList features = computeFeatures();
-			// uncomment this when patch released in boot
-			//checkConfigurationLock(status);
-			checkConstraints(features, status);
-		} catch (CoreException e) {
-			status.add(e.getStatus());
-		}
-	}
-
-	/*
-	 * handle unconfigure
-	 */
-	private static void validateUnconfigure(
-		IFeature feature,
-		ArrayList status) {
-		try {
-			checkSiteReadOnly(feature,status);
-			ArrayList features = computeFeatures();
-			features = computeFeaturesAfterOperation(features, null, feature);
-			checkConstraints(features, status);
-		} catch (CoreException e) {
-			status.add(e.getStatus());
-		}
-	}
-
-
-	/*
-	 * handle configure
-	 */
-	private static void validateConfigure(IFeature feature, ArrayList status) {
-		try {
-			checkSiteReadOnly(feature,status);
-			ArrayList features = computeFeatures();
-			checkOptionalChildConfiguring(feature, status);
-			checkForCycles(feature, null, features);
-			features = computeFeaturesAfterOperation(features, feature, null);
-			checkConstraints(features, status);
-
-		} catch (CoreException e) {
-			status.add(e.getStatus());
-		}
-	}
-
-	/*
-	 * handle replace version
-	 */
-	private static void validateReplaceVersion(
-		IFeature feature,
-		IFeature anotherFeature,
-		ArrayList status) {
-		try {
-			checkSiteReadOnly(feature,status);
-			ArrayList features = computeFeatures();
-			checkForCycles(feature, null, features);
-			features =
-				computeFeaturesAfterOperation(
-					features,
-					anotherFeature,
-					feature);
-			checkConstraints(features, status);
-		} catch (CoreException e) {
-			status.add(e.getStatus());
-		}
-	}
-
-	/*
-	 * handle install and update
-	 */
-	private static void validateInstall(
-		IFeature oldFeature,
-		IFeature newFeature,
-		ArrayList status) {
-		try {
-			checkSiteReadOnly(oldFeature,status);
-			ArrayList features = computeFeatures();
-			checkForCycles(newFeature, null, features);
-			features =
-				computeFeaturesAfterOperation(features, newFeature, oldFeature);
-			checkConstraints(features, status);
-			checkLicense(newFeature, status);
-		} catch (CoreException e) {
-			status.add(e.getStatus());
-		}
-	}
-
-	/*
-	 * handle revert and restore
-	 */
-	private static void validateRevert(
-		IInstallConfiguration config,
-		ArrayList status) {
-		try {
-//			// check the timeline and don't bother
-//			// to check anything else if negative
-//			if (!checkTimeline(config, status))
-//				return;
-			ArrayList features = computeFeaturesAfterRevert(config);
-			checkConstraints(features, status);
-			checkRevertConstraints(features, status);
-
-		} catch (CoreException e) {
-			status.add(e.getStatus());
-		}
-	}
-
-
-	/*
-	 * Handle one-click changes as a batch
-	 */
-	private static void validatePendingChanges(
-		IInstallFeatureOperation[] jobs,
-		ArrayList status,
-		ArrayList beforeStatus) {
-		try {
-			ArrayList features = computeFeatures();
-			ArrayList savedFeatures = features;
-			int nexclusives = 0;
-
-			// pass 1: see if we can process the entire "batch"
-			ArrayList tmpStatus = new ArrayList();
-			for (int i = 0; i < jobs.length; i++) {
-				IInstallFeatureOperation job = jobs[i];
-
-				IFeature newFeature = job.getFeature();
-				IFeature oldFeature = job.getOldFeature();
-				checkLicense(newFeature, status);
-				if (jobs.length > 1 && newFeature.isExclusive()) {
-					nexclusives++;
-					status.add(
-						createStatus(
-							newFeature,
-							FeatureStatus.CODE_EXCLUSIVE,
-							Policy.bind(KEY_EXCLUSIVE)));
-					continue;
-				}
-				checkForCycles(newFeature, null, features);
-				features =
-					computeFeaturesAfterOperation(
-						features,
-						newFeature,
-						oldFeature);
-			}
-			if (nexclusives > 0)
-				return;
-			checkConstraints(features, tmpStatus);
-			if (tmpStatus.size() == 0) // the whole "batch" is OK
-				return;
-
-			// pass 2: we have conflicts
-			features = savedFeatures;
-			for (int i = 0; i < jobs.length; i++) {
-				IInstallFeatureOperation job = jobs[i];
-				IFeature newFeature = job.getFeature();
-				IFeature oldFeature = job.getOldFeature();
-
-				features =
-					computeFeaturesAfterOperation(
-						features,
-						newFeature,
-						oldFeature);
-
-				checkConstraints(features, status);
-				if (status.size() > 0
-					&& !isBetterStatus(beforeStatus, status)) {
-// bug 75613
-//					IStatus conflict =
-//						createStatus(
-//							newFeature,
-//							FeatureStatus.CODE_OTHER,
-//							Policy.bind(KEY_CONFLICT));
-//					status.add(0, conflict);
-					return;
-				}
-			}
-		} catch (CoreException e) {
-			status.add(e.getStatus());
-		}
-	}
-	
-	private static void checkPlatformWasModified(ArrayList status) {
-		try {
-			// checks if the platform has been modified outside this eclipse instance
-			IPlatformConfiguration platformConfig = ConfiguratorUtils.getCurrentPlatformConfiguration();
-			
-			long currentTimeStamp = platformConfig.getChangeStamp();
-			// get the last modified value for this config, from this process point of view
-			if (platformConfig instanceof PlatformConfiguration) 
-				currentTimeStamp = ((PlatformConfiguration)platformConfig).getConfiguration().lastModified();
-				
-			// get the real last modified value
-			URL platformXML = platformConfig.getConfigurationLocation();
-			long actualTimeStamp = currentTimeStamp;
-			if ("file".equals(platformXML.getProtocol())) //$NON-NLS-1$
-				actualTimeStamp = new File(platformXML.getFile()).lastModified();
-			else {
-				URLConnection connection = platformXML.openConnection();
-				actualTimeStamp = connection.getLastModified();
-			}
-			if (currentTimeStamp != actualTimeStamp)
-				status.add(createStatus(
-								null,
-								FeatureStatus.CODE_OTHER,
-								Policy.bind("ActivityConstraints.platformModified"))); //$NON-NLS-1$
-		} catch (IOException e) {
-			// ignore
-		}
-	}
-	
-	private static void checkSiteReadOnly(IFeature feature, ArrayList status) {
-		if(feature == null){
-			return;
-		}
-		IConfiguredSite csite = feature.getSite().getCurrentConfiguredSite();
-		if (csite != null && !csite.isUpdatable())
-			status.add(createStatus(feature, FeatureStatus.CODE_OTHER,
-					Policy
-					.bind("ActivityConstraints.readOnly", //$NON-NLS-1$
-							csite.getSite().getURL().toExternalForm())));
-	}
-
-	/*
-	 * Compute a list of configured features
-	 */
-	private static ArrayList computeFeatures() throws CoreException {
-		return computeFeatures(true);
-	}
-	/*
-	 * Compute a list of configured features
-	 */
-	private static ArrayList computeFeatures(boolean configuredOnly)
-		throws CoreException {
-		ArrayList features = new ArrayList();
-		ILocalSite localSite = SiteManager.getLocalSite();
-		IInstallConfiguration config = localSite.getCurrentConfiguration();
-		IConfiguredSite[] csites = config.getConfiguredSites();
-
-		for (int i = 0; i < csites.length; i++) {
-			IConfiguredSite csite = csites[i];
-
-			IFeatureReference[] crefs;
-
-			if (configuredOnly)
-				crefs = csite.getConfiguredFeatures();
-			else
-				crefs = csite.getSite().getFeatureReferences();
-			for (int j = 0; j < crefs.length; j++) {
-				IFeatureReference cref = crefs[j];
-				IFeature cfeature = cref.getFeature(null);
-				features.add(cfeature);
-			}
-		}
-
-		return features;
-	}
-
-	/*
-	 * Compute the nested feature subtree starting at the specified base
-	 * feature
-	 */
-	private static ArrayList computeFeatureSubtree(
-			IFeature top,
-			IFeature feature,
-			ArrayList features,
-			boolean tolerateMissingChildren,
-			ArrayList configuredFeatures,
-			ArrayList visitedFeatures)
-	throws CoreException {
-
-		// check arguments
-		if (top == null)
-			return features;
-		if (feature == null)
-			feature = top;
-		if (features == null)
-			features = new ArrayList();
-		if (visitedFeatures == null)
-			visitedFeatures = new ArrayList();
-
-		// check for <includes> cycle
-		if (visitedFeatures.contains(feature)) {
-			IStatus status =
-			createStatus(top, FeatureStatus.CODE_CYCLE, Policy.bind(KEY_CYCLE));
-			throw new CoreException(status);
-		} else {
-			// keep track of visited features so we can detect cycles
-			visitedFeatures.add(feature);
-		}
-
-		// return specified base feature and all its children
-		if (!features.contains(feature))
-			features.add(feature);
-		IIncludedFeatureReference[] children =
-		feature.getIncludedFeatureReferences();
-		for (int i = 0; i < children.length; i++) {
-			try {
-				IFeature child = children[i].getFeature(null);
-				features =
-				computeFeatureSubtree(
-						top,
-						child,
-						features,
-						tolerateMissingChildren,
-						null,
-						visitedFeatures);
-			} catch (CoreException e) {
-				if (!children[i].isOptional() && !tolerateMissingChildren)
-					throw e;
-			}
-		}
-		// no cycles for this feature during DFS
-		visitedFeatures.remove(feature);
-		return features;
-	}
-
-	private static void checkLicense(IFeature feature, ArrayList status) {
-		IURLEntry licenseEntry = feature.getLicense();
-		if (licenseEntry != null) {
-			String license = licenseEntry.getAnnotation();
-			if (license != null && license.trim().length() > 0)
-				return;
-		}
-		status.add(
-			createStatus(feature, FeatureStatus.CODE_OTHER, Policy.bind(KEY_NO_LICENSE)));
-	}
-
-	/*
-	 * Compute a list of features that will be configured after the operation
-	 */
-	private static ArrayList computeFeaturesAfterOperation(
-		ArrayList features,
-		IFeature add,
-		IFeature remove)
-		throws CoreException {
-
-		ArrayList addTree = computeFeatureSubtree(add, null, null, false,
-		/* do not tolerate missing children */
-		features, null);
-		ArrayList removeTree =
-			computeFeatureSubtree(
-				remove,
-				null,
-				null,
-				true /* tolerate missing children */,
-				null,
-				null
-		);
-		if (remove != null) {
-			// Patches to features are removed together with
-			// those features. Include them in the list.
-			contributePatchesFor(removeTree, features, removeTree);
-		}
-
-		if (remove != null)
-			features.removeAll(removeTree);
-
-		if (add != null)
-			features.addAll(addTree);
-
-		return features;
-	}
-
-	private static void contributePatchesFor(
-		ArrayList removeTree,
-		ArrayList features,
-		ArrayList result)
-		throws CoreException {
-
-		for (int i = 0; i < removeTree.size(); i++) {
-			IFeature feature = (IFeature) removeTree.get(i);
-			contributePatchesFor(feature, features, result);
-		}
-	}
-
-	private static void contributePatchesFor(
-		IFeature feature,
-		ArrayList features,
-		ArrayList result)
-		throws CoreException {
-		for (int i = 0; i < features.size(); i++) {
-			IFeature candidate = (IFeature) features.get(i);
-			if (UpdateUtils.isPatch(feature, candidate)) {
-				ArrayList removeTree =
-					computeFeatureSubtree(candidate, null, null, true,null,null);
-				result.addAll(removeTree);
-			}
-		}
-	}
-
-	/*
-	 * Compute a list of features that will be configured after performing the
-	 * revert
-	 */
-	private static ArrayList computeFeaturesAfterRevert(IInstallConfiguration config)
-		throws CoreException {
-
-		ArrayList list = new ArrayList();
-		IConfiguredSite[] csites = config.getConfiguredSites();
-		for (int i = 0; i < csites.length; i++) {
-			IConfiguredSite csite = csites[i];
-			IFeatureReference[] features = csite.getConfiguredFeatures();
-			for (int j = 0; j < features.length; j++) {
-				list.add(features[j].getFeature(null));
-			}
-		}
-		return list;
-	}
-
-
-
-	/*
-	 * Compute a list of plugin entries for the specified features.
-	 */
-	private static ArrayList computePluginsForFeatures(ArrayList features)
-		throws CoreException {
-		if (features == null)
-			return new ArrayList();
-
-		HashMap plugins = new HashMap();
-		for (int i = 0; i < features.size(); i++) {
-			IFeature feature = (IFeature) features.get(i);
-			IPluginEntry[] entries = feature.getPluginEntries();
-			for (int j = 0; j < entries.length; j++) {
-				IPluginEntry entry = entries[j];
-				plugins.put(entry.getVersionedIdentifier(), entry);
-			}
-		}
-		ArrayList result = new ArrayList();
-		result.addAll(plugins.values());
-		return result;
-	}
-
-
-	/**
-	 * Check for feature cycles:
-	 * - visit feature
-	 * - if feature is in the cycle candidates list, then cycle found, else add it to candidates list
-	 * - DFS children 
-	 * - when return from DFS remove the feature from the candidates list
-	 */
-	private static void checkForCycles(
-			IFeature feature,
-			ArrayList candidates,
-			ArrayList configuredFeatures)
-	throws CoreException {
-
-		// check arguments
-		if (feature == null)
-			return;
-		if (configuredFeatures == null)
-			configuredFeatures = new ArrayList();
-		if (candidates == null)
-			candidates = new ArrayList();
-		
-		// check for <includes> cycle
-		if (candidates.contains(feature)) {
-			String msg = Policy.bind(
-					KEY_CYCLE, 
-					new String[] {feature.getLabel(), 
-							feature.getVersionedIdentifier().toString()});
-			IStatus status = createStatus(feature, FeatureStatus.CODE_CYCLE, msg);
-			throw new CoreException(status);
-		}
-
-		// potential candidate
-		candidates.add(feature);
-		
-		// recursively, check cycles with children
-		IIncludedFeatureReference[] children =
-		feature.getIncludedFeatureReferences();
-		for (int i = 0; i < children.length; i++) {
-			try {
-				IFeature child = children[i].getFeature(null);
-				checkForCycles(child, candidates, configuredFeatures);
-			} catch (CoreException e) {
-				if (!children[i].isOptional())
-					throw e;
-			}
-		}
-		// no longer a candidate, because no cycles with children
-		candidates.remove(feature);
-	}
-	
-	/*
-	 * validate constraints
-	 */
-	private static void checkConstraints(ArrayList features, ArrayList status)
-		throws CoreException {
-		if (features == null)
-			return;
-
-		ArrayList plugins = computePluginsForFeatures(features);
-
-		checkEnvironment(features, status);
-		checkPlatformFeature(features, plugins, status);
-		checkPrimaryFeature(features, plugins, status);
-		checkPrereqs(features, plugins, status);
-	}
-
-	/*
-	 * Verify all features are either portable, or match the current
-	 * environment
-	 */
-	private static void checkEnvironment(
-		ArrayList features,
-		ArrayList status) {
-
-		String os = Platform.getOS();
-		String ws = Platform.getWS();
-		String arch = Platform.getOSArch();
-
-		for (int i = 0; i < features.size(); i++) {
-			IFeature feature = (IFeature) features.get(i);
-			ArrayList fos = createList(feature.getOS());
-			ArrayList fws = createList(feature.getWS());
-			ArrayList farch = createList(feature.getOSArch());
-
-			if (fos.size() > 0) {
-				if (!fos.contains(os)) {
-					IStatus s =
-						createStatus(feature, FeatureStatus.CODE_ENVIRONMENT, Policy.bind(KEY_OS));
-					if (!status.contains(s))
-						status.add(s);
-					continue;
-				}
-			}
-
-			if (fws.size() > 0) {
-				if (!fws.contains(ws)) {
-					IStatus s =
-						createStatus(feature, FeatureStatus.CODE_ENVIRONMENT, Policy.bind(KEY_WS));
-					if (!status.contains(s))
-						status.add(s);
-					continue;
-				}
-			}
-
-			if (farch.size() > 0) {
-				if (!farch.contains(arch)) {
-					IStatus s =
-						createStatus(feature, FeatureStatus.CODE_ENVIRONMENT, Policy.bind(KEY_ARCH));
-					if (!status.contains(s))
-						status.add(s);
-					continue;
-				}
-			}
-		}
-	}
-
-	/*
-	 * Verify we end up with a version of platform configured
-	 */
-	private static void checkPlatformFeature(
-		ArrayList features,
-		ArrayList plugins,
-		ArrayList status) {
-
-		// find the plugin that defines the product
-		IProduct product = Platform.getProduct();
-		if (product == null)
-			return; // normally this shouldn't happen
-		Bundle primaryBundle = product.getDefiningBundle();
-		// check if that plugin is among the resulting plugins
-		boolean found = false;
-		for (int j = 0; j < plugins.size(); j++) {
-			IPluginEntry plugin = (IPluginEntry) plugins.get(j);
-			if (primaryBundle.getSymbolicName().equals(plugin.getVersionedIdentifier().getIdentifier())) {
-				found = true;
-				break;
-			}
-		}
-		
-		if (!found) {
-			IStatus s =
-				createStatus(null, FeatureStatus.CODE_OTHER, Policy.bind(KEY_PLATFORM));
-			if (!status.contains(s))
-				status.add(s);
-		}
-	}
-
-	/*
-	 * Verify we end up with a version of primary feature configured
-	 */
-	private static void checkPrimaryFeature(
-		ArrayList features,
-		ArrayList plugins,
-		ArrayList status) {
-
-		String featureId =
-			ConfiguratorUtils
-				.getCurrentPlatformConfiguration()
-				.getPrimaryFeatureIdentifier();
-		
-		if (featureId != null) {
-			// primary feature is defined
-			for (int i = 0; i < features.size(); i++) {
-				IFeature feature = (IFeature) features.get(i);
-				if (featureId
-					.equals(feature.getVersionedIdentifier().getIdentifier()))
-					return;
-			}
-	
-			IStatus s = createStatus(null, FeatureStatus.CODE_OTHER, Policy.bind(KEY_PRIMARY));
-			if (!status.contains(s))
-				status.add(s);
-		} else {
-			// check if the product still ends up contributed
-			// find the plugin that defines the product
-			IProduct product = Platform.getProduct();
-			if (product == null)
-				return; // normally this shouldn't happen
-			Bundle primaryBundle = product.getDefiningBundle();
-			// check if that plugin is among the resulting plugins
-
-			for (int j = 0; j < plugins.size(); j++) {
-				IPluginEntry plugin = (IPluginEntry) plugins.get(j);
-				if (primaryBundle.getSymbolicName().equals(plugin.getVersionedIdentifier().getIdentifier())) {
-					return; // product found
-				}
-			}
-			IStatus s =
-				createStatus(null, FeatureStatus.CODE_OTHER, Policy.bind(KEY_PRIMARY));
-			if (!status.contains(s))
-				status.add(s);
-		}
-	}
-
-	/*
-	 * Verify we do not break prereqs
-	 */
-	private static void checkPrereqs(
-		ArrayList features,
-		ArrayList plugins,
-		ArrayList status) {
-
-		for (int i = 0; i < features.size(); i++) {
-			IFeature feature = (IFeature) features.get(i);
-			IImport[] imports = feature.getImports();
-
-			for (int j = 0; j < imports.length; j++) {
-				IImport iimport = imports[j];
-				// for each import determine plugin or feature, version, match
-				// we need
-				VersionedIdentifier iid = iimport.getVersionedIdentifier();
-				String id = iid.getIdentifier();
-				PluginVersionIdentifier version = iid.getVersion();
-				boolean featurePrereq =
-					iimport.getKind() == IImport.KIND_FEATURE;
-				boolean ignoreVersion =
-					version.getMajorComponent() == 0
-						&& version.getMinorComponent() == 0
-						&& version.getServiceComponent() == 0;
-				int rule = iimport.getRule();
-				if (rule == IImport.RULE_NONE)
-					rule = IImport.RULE_COMPATIBLE;
-
-				boolean found = false;
-
-				ArrayList candidates;
-
-				if (featurePrereq)
-					candidates = features;
-				else
-					candidates = plugins;
-				for (int k = 0; k < candidates.size(); k++) {
-					VersionedIdentifier cid;
-					if (featurePrereq) {
-						// the candidate is a feature
-						IFeature candidate = (IFeature) candidates.get(k);
-						// skip self
-						if (feature.equals(candidate))
-							continue;
-						cid = candidate.getVersionedIdentifier();
-					} else {
-						// the candidate is a plug-in
-						IPluginEntry plugin = (IPluginEntry) candidates.get(k);
-						cid = plugin.getVersionedIdentifier();
-					}
-					PluginVersionIdentifier cversion = cid.getVersion();
-					if (id.equals(cid.getIdentifier())) {
-						// have a candidate
-						if (ignoreVersion)
-							found = true;
-						else if (
-							rule == IImport.RULE_PERFECT
-								&& cversion.isPerfect(version))
-							found = true;
-						else if (
-							rule == IImport.RULE_EQUIVALENT
-								&& cversion.isEquivalentTo(version))
-							found = true;
-						else if (
-							rule == IImport.RULE_COMPATIBLE
-								&& cversion.isCompatibleWith(version))
-							found = true;
-						else if (
-							rule == IImport.RULE_GREATER_OR_EQUAL
-								&& cversion.isGreaterOrEqualTo(version))
-							found = true;
-					}
-					if (found)
-						break;
-				}
-
-				if (!found) {
-					// report status
-					String target =
-						featurePrereq
-							? Policy.bind(KEY_PREREQ_FEATURE)
-							: Policy.bind(KEY_PREREQ_PLUGIN);
-					int errorCode = featurePrereq
-							? FeatureStatus.CODE_PREREQ_FEATURE
-							: FeatureStatus.CODE_PREREQ_PLUGIN;
-					String msg =
-						Policy.bind(
-							KEY_PREREQ,
-							new String[] { target, id });
-
-					if (!ignoreVersion) {
-						if (rule == IImport.RULE_PERFECT)
-							msg =
-								Policy.bind(
-									KEY_PREREQ_PERFECT,
-									new String[] {
-										target,
-										id,
-										version.toString()});
-						else if (rule == IImport.RULE_EQUIVALENT)
-							msg =
-								Policy.bind(
-									KEY_PREREQ_EQUIVALENT,
-									new String[] {
-										target,
-										id,
-										version.toString()});
-						else if (rule == IImport.RULE_COMPATIBLE)
-							msg =
-								Policy.bind(
-									KEY_PREREQ_COMPATIBLE,
-									new String[] {
-										target,
-										id,
-										version.toString()});
-						else if (rule == IImport.RULE_GREATER_OR_EQUAL)
-							msg =
-								Policy.bind(
-									KEY_PREREQ_GREATER,
-									new String[] {
-										target,
-										id,
-										version.toString()});
-					}
-					IStatus s = createStatus(feature, errorCode, msg);
-					if (!status.contains(s))
-						status.add(s);
-				}
-			}
-		}
-	}
-
-	/*
-	 * Verify we end up with valid nested features after revert
-	 */
-	private static void checkRevertConstraints(
-		ArrayList features,
-		ArrayList status) {
-
-		for (int i = 0; i < features.size(); i++) {
-			IFeature feature = (IFeature) features.get(i);
-			try {
-				computeFeatureSubtree(
-					feature,
-					null,
-					null,
-					false /* do not tolerate missing children */,
-					null,
-					null
-				);
-			} catch (CoreException e) {
-				status.add(e.getStatus());
-			}
-		}
-	}
-
-	/*
-	 * Verify that a parent of an optional child is configured before we allow
-	 * the child to be configured as well
-	 */
-
-	private static void checkOptionalChildConfiguring(
-		IFeature feature,
-		ArrayList status)
-		throws CoreException {
-		ILocalSite localSite = SiteManager.getLocalSite();
-		IInstallConfiguration config = localSite.getCurrentConfiguration();
-		IConfiguredSite[] csites = config.getConfiguredSites();
-
-		boolean included = false;
-		for (int i = 0; i < csites.length; i++) {
-			IConfiguredSite csite = csites[i];
-			ISiteFeatureReference[] crefs =
-				csite.getSite().getFeatureReferences();
-			for (int j = 0; j < crefs.length; j++) {
-				IFeatureReference cref = crefs[j];
-				IFeature cfeature = null;
-				try {
-					cfeature = cref.getFeature(null);
-				} catch (CoreException e) {
-					//FIXME: cannot ask 'isOptional' here
-					// Ignore missing optional feature.
-					/*
-					 * if (cref.isOptional()) continue;
-					 */
-					throw e;
-				}
-				if (isParent(cfeature, feature, true)) {
-					// Included in at least one feature as optional
-					included = true;
-					if (csite.isConfigured(cfeature)) {
-						// At least one feature parent
-						// is enabled - it is OK to
-						// configure optional child.
-						return;
-					}
-				}
-			}
-		}
-		if (included) {
-			// feature is included as optional but
-			// no parent is currently configured.
-			String msg = Policy.bind(KEY_OPTIONAL_CHILD);
-			status.add(createStatus(feature, FeatureStatus.CODE_OPTIONAL_CHILD, msg));
-		} else {
-			//feature is root - can be configured
-		}
-	}
-//
-//	/**
-//	 * Checks if the configuration is locked by other instances
-//	 * 
-//	 * @param status
-//	 */
-//	private static void checkConfigurationLock(ArrayList status) {
-//		IPlatformConfiguration config =
-//			BootLoader.getCurrentPlatformConfiguration();
-//		URL configURL = config.getConfigurationLocation();
-//		if (!"file".equals(configURL.getProtocol())) {
-//			status.add(
-//				createStatus(
-//					null,
-//					"Configuration location is not writable:" + configURL));
-//			return;
-//		}
-//		String locationString = configURL.getFile();
-//		File configDir = new File(locationString);
-//		if (!configDir.isDirectory())
-//			configDir = configDir.getParentFile();
-//		if (!configDir.exists()) {
-//			status.add(
-//				createStatus(null, "Configuration location does not exist"));
-//			return;
-//		}
-//		File locksDir = new File(configDir, "locks");
-//		// check all the possible lock files
-//		File[] lockFiles = locksDir.listFiles();
-//		File configLock = BootLoader.getCurrentPlatformConfiguration().getLockFile();
-//		for (int i = 0; i < lockFiles.length; i++) {
-//			if (lockFiles[i].equals(configLock))
-//				continue;
-//			try {
-//				RandomAccessFile raf = new RandomAccessFile(lockFiles[i], "rw");
-//				FileChannel channel = raf.getChannel();
-//				System.out.println(channel.isOpen());
-//				FileLock lock = channel.tryLock();
-//				if (lock == null){
-//					// there is another eclipse instance running
-//					raf.close();
-//					status.add(
-//						createStatus(
-//							null,
-//							"Another instance is running, please close it before performing any configuration operations"));
-//					return;
-//				}
-//
-//			} catch (Exception e) {
-//				status.add(createStatus(null, "Failed to create lock:"+lockFiles[i]));
-//				return;
-//			} 
-//		}
-//	}
-
-	private static boolean isParent(
-		IFeature candidate,
-		IFeature feature,
-		boolean optionalOnly)
-		throws CoreException {
-		IIncludedFeatureReference[] refs =
-			candidate.getIncludedFeatureReferences();
-		for (int i = 0; i < refs.length; i++) {
-			IIncludedFeatureReference child = refs[i];
-			VersionedIdentifier fvid = feature.getVersionedIdentifier();
-			VersionedIdentifier cvid = child.getVersionedIdentifier();
-
-			if (fvid.getIdentifier().equals(cvid.getIdentifier()) == false)
-				continue;
-			// same ID
-			PluginVersionIdentifier fversion = fvid.getVersion();
-			PluginVersionIdentifier cversion = cvid.getVersion();
-
-			if (fversion.equals(cversion)) {
-				// included and matched; return true if optionality is not
-				// important or it is and the inclusion is optional
-				return optionalOnly == false || child.isOptional();
-			}
-		}
-		return false;
-	}
-
-//	private static boolean checkTimeline(
-//		IInstallConfiguration config,
-//		ArrayList status) {
-//		try {
-//			ILocalSite lsite = SiteManager.getLocalSite();
-//			IInstallConfiguration cconfig = lsite.getCurrentConfiguration();
-//			if (cconfig.getTimeline() != config.getTimeline()) {
-//				// Not the same timeline - cannot revert
-//				String msg =
-//					UpdateUtils.getFormattedMessage(
-//						KEY_WRONG_TIMELINE,
-//						config.getLabel());
-//				status.add(createStatus(null, FeatureStatus.CODE_OTHER, msg));
-//				return false;
-//			}
-//		} catch (CoreException e) {
-//			status.add(e.getStatus());
-//		}
-//		return true;
-//	}
-
-	private static IStatus createMultiStatus(
-		String rootKey,
-		ArrayList children,
-		int code) {
-		IStatus[] carray =
-			(IStatus[]) children.toArray(new IStatus[children.size()]);
-		String message = Policy.bind(rootKey);
-		return new MultiStatus(
-			UpdateCore.getPlugin().getBundle().getSymbolicName(),
-			code,
-			carray,
-			message,
-			null);
-	}
-
-	private static IStatus createStatus(IFeature feature, int errorCode, String message) {
-
-		String fullMessage;
-		if (feature == null)
-			fullMessage = message;
-		else {
-			PluginVersionIdentifier version =
-				feature.getVersionedIdentifier().getVersion();
-			fullMessage =
-				Policy.bind(
-					KEY_CHILD_MESSAGE,
-					new String[] {
-						feature.getLabel(),
-						version.toString(),
-						message });
-		}
-
-		return new FeatureStatus(
-			feature,
-			IStatus.ERROR,
-			UpdateCore.getPlugin().getBundle().getSymbolicName(),
-			errorCode,
-			fullMessage,
-			null);
-	}
-
-	//	private static IStatus createReportStatus(ArrayList beforeStatus,
-	// ArrayList status) {
-	//		// report status
-	//		if (status.size() > 0) {
-	//			if (beforeStatus.size() > 0)
-	//				return createMultiStatus(KEY_ROOT_MESSAGE_INIT,
-	// beforeStatus,IStatus.ERROR);
-	//			else
-	//				return createMultiStatus(KEY_ROOT_MESSAGE, status,IStatus.ERROR);
-	//		}
-	//		return null;
-	//	}
-
-	private static IStatus createCombinedReportStatus(
-		ArrayList beforeStatus,
-		ArrayList status) {
-		if (beforeStatus.size() == 0) { // good initial config
-			if (status.size() == 0) {
-				return null; // all fine
-			} else {
-				return createMultiStatus(
-					KEY_ROOT_MESSAGE,
-					status,
-					IStatus.ERROR);
-				// error after operation
-			}
-		} else { // beforeStatus.size() > 0 : initial config errors
-			if (status.size() == 0) {
-				return null; // errors will be fixed
-			} else {
-				if (isBetterStatus(beforeStatus, status)) {
-					return createMultiStatus(
-						"ActivityConstraints.warning", //$NON-NLS-1$
-						beforeStatus,
-						IStatus.WARNING);
-					// errors may be fixed
-				} else {
-					ArrayList combined = new ArrayList();
-					combined.add(
-						createMultiStatus(
-							"ActivityConstraints.beforeMessage", //$NON-NLS-1$
-							beforeStatus,
-							IStatus.ERROR));
-					combined.add(
-						createMultiStatus(
-							"ActivityConstraints.afterMessage", //$NON-NLS-1$
-							status,
-							IStatus.ERROR));
-					return createMultiStatus(
-						KEY_ROOT_MESSAGE_INIT,
-						combined,
-						IStatus.ERROR);
-				}
-			}
-		}
-	}
-
-	private static ArrayList createList(String commaSeparatedList) {
-		ArrayList list = new ArrayList();
-		if (commaSeparatedList != null) {
-			StringTokenizer t =
-				new StringTokenizer(commaSeparatedList.trim(), ","); //$NON-NLS-1$
-			while (t.hasMoreTokens()) {
-				String token = t.nextToken().trim();
-				if (!token.equals("")) //$NON-NLS-1$
-					list.add(token);
-			}
-		}
-		return list;
-	}
-
-	/**
-	 * Returns true if status is a subset of beforeStatus
-	 * 
-	 * @param beforeStatus
-	 * @param status
-	 * @return
-	 */
-	private static boolean isBetterStatus(
-		ArrayList beforeStatus,
-		ArrayList status) {
-		// if no status at all, then it's a subset
-		if (status == null || status.size() == 0)
-			return true;
-		// there is some status, so if there is no initial status, then it's
-		// not a subset
-		if (beforeStatus == null || beforeStatus.size() == 0)
-			return false;
-		// quick check
-		if (beforeStatus.size() < status.size())
-			return false;
-
-		// check if all the status elements appear in the original status
-		for (int i = 0; i < status.size(); i++) {
-			IStatus s = (IStatus) status.get(i);
-			// if this is not a feature status, something is wrong, so return
-			// false
-			if (!(s instanceof FeatureStatus))
-				return false;
-			FeatureStatus fs = (FeatureStatus) s;
-			// check against all status elements
-			boolean found = false;
-			for (int j = 0; !found && j < beforeStatus.size(); j++) {
-				if (fs.equals(beforeStatus.get(j)))
-					found = true;
-			}
-			if (!found)
-				return false;
-		}
-		return true;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/PatchCleaner.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/PatchCleaner.java
deleted file mode 100644
index c9c7b8e..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/PatchCleaner.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.operations;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-
-/**
- * This utility class attaches as a listened to the provided
- * configured site, and for every unconfigured feature 
- * it tests if it is a patch and cleans up its backup configuration.
- */
-
-public class PatchCleaner {
-	private IConfiguredSite csite;
-	private SiteListener listener;
-	class SiteListener implements IConfiguredSiteChangedListener {
-		public void featureInstalled(IFeature feature) {
-		}
-		public void featureRemoved(IFeature feature) {
-			cleanSavedConfigs(feature);
-		}
-		public void featureConfigured(IFeature feature) {
-		}
-		public void featureUnconfigured(IFeature feature) {
-			cleanSavedConfigs(feature);
-		}
-	}
-	public PatchCleaner(IConfiguredSite csite, IFeature root) {
-		this.csite = csite;
-		listener = new SiteListener();
-		csite.addConfiguredSiteChangedListener(listener);
-	}
-
-	public void dispose() {
-		csite.removeConfiguredSiteChangedListener(listener);
-	}
-	private void cleanSavedConfigs(IFeature feature) {
-		if (feature.isPatch()) {
-			IInstallConfiguration backupConfig = UpdateUtils.getBackupConfigurationFor(feature);
-			if (backupConfig!=null) {
-				// clean it
-				remove(backupConfig);
-			}
-		}
-	}
-	private void remove(IInstallConfiguration config) {
-		try {
-			ILocalSite localSite = SiteManager.getLocalSite();
-			localSite.removeFromPreservedConfigurations(config);
-		}
-		catch (CoreException e) {
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ReplaceFeatureVersionOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ReplaceFeatureVersionOperation.java
deleted file mode 100644
index 6b2e5d8..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ReplaceFeatureVersionOperation.java
+++ /dev/null
@@ -1,100 +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 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.update.internal.operations;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Swaps a feature.
- * ReplaceFeatureVersionOperation
- */
-public class ReplaceFeatureVersionOperation
-	extends FeatureOperation
-	implements IConfigFeatureOperation {
-
-	private IFeature anotherFeature;
-	
-	public ReplaceFeatureVersionOperation(
-		IFeature feature,
-		IFeature anotherFeature) {
-		super(feature.getSite().getCurrentConfiguredSite(), feature);
-		this.anotherFeature = anotherFeature;
-	}
-
-	public boolean execute(IProgressMonitor pm, IOperationListener listener)
-		throws CoreException {
-
-		IStatus status =
-			OperationsManager.getValidator().validatePendingReplaceVersion(feature, anotherFeature);
-		if (status != null) {
-			throw new CoreException(status);
-		}
-
-		// unconfigure current feature first, then configure the other one
-		
-		PatchCleaner cleaner = new PatchCleaner(targetSite, feature);
-		targetSite.unconfigure(feature);
-		cleaner.dispose();
-		
-		targetSite.configure(anotherFeature);
-//		ensureUnique();
-
-		try {
-			// Restart not needed
-			boolean restartNeeded = false;
-
-			// Check if this operation is cancelling one that's already pending
-			IOperation pendingOperation =
-				OperationsManager.findPendingOperation(feature);
-
-			if (pendingOperation instanceof IConfigFeatureOperation) {
-				// no need to do either pending change
-				OperationsManager.removePendingOperation(pendingOperation);
-			} else {
-				OperationsManager.addPendingOperation(this);
-				restartNeeded = true;
-			}
-			
-			pendingOperation =
-				OperationsManager.findPendingOperation(anotherFeature);
-				
-			if (pendingOperation instanceof IUnconfigFeatureOperation) {
-				// no need to do either pending change
-				OperationsManager.removePendingOperation(pendingOperation);
-			} else {
-				OperationsManager.addPendingOperation(this);
-				restartNeeded = true;
-			}
-			
-			markProcessed();
-			if (listener != null)
-				listener.afterExecute(this, null);
-
-			restartNeeded = SiteManager.getLocalSite().save() && restartNeeded;
-
-			// notify the model
-			OperationsManager.fireObjectChanged(feature, null);
-
-			return restartNeeded;
-		} catch (CoreException e) {
-			undo();
-			UpdateUtils.logException(e);
-			throw e;
-		}
-	}
-
-	public void undo() throws CoreException {
-		targetSite.unconfigure(anotherFeature);
-		targetSite.configure(feature);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/RevertConfigurationOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/RevertConfigurationOperation.java
deleted file mode 100644
index dd94e89..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/RevertConfigurationOperation.java
+++ /dev/null
@@ -1,54 +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 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.update.internal.operations;
-
-import java.lang.reflect.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.operations.*;
-
-public class RevertConfigurationOperation extends Operation implements IRevertConfigurationOperation {
-
-	private IInstallConfiguration config;
-	private IProblemHandler problemHandler;
-
-	public RevertConfigurationOperation(
-		IInstallConfiguration config,
-		IProblemHandler problemHandler) {
-		super();
-		this.config = config;
-		this.problemHandler = problemHandler;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.operations.IOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public boolean execute(IProgressMonitor monitor, IOperationListener listener)
-		throws CoreException, InvocationTargetException {
-		IStatus status =
-			OperationsManager.getValidator().validatePendingRevert(config);
-		if (status != null && status.getCode() == IStatus.ERROR) {
-			throw new CoreException(status);
-		}
-
-		try {
-			ILocalSite localSite = SiteManager.getLocalSite();
-			localSite.revertTo(config, monitor, problemHandler);
-			localSite.save();
-			return true;
-		} catch (CoreException e) {
-			UpdateUtils.logException(e);
-			throw e;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ToggleSiteOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ToggleSiteOperation.java
deleted file mode 100644
index 27a5d73..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ToggleSiteOperation.java
+++ /dev/null
@@ -1,58 +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 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.update.internal.operations;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.operations.*;
-
-public class ToggleSiteOperation
-	extends Operation
-	implements IToggleSiteOperation {
-
-	private IConfiguredSite site;
-
-	public ToggleSiteOperation(IConfiguredSite site) {
-		super();
-		this.site = site;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.operations.IOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public boolean execute(
-		IProgressMonitor monitor,
-		IOperationListener listener)
-		throws CoreException {
-		if (site == null)
-			return false;
-		boolean oldValue = site.isEnabled();
-		site.setEnabled(!oldValue);
-		IStatus status = OperationsManager.getValidator().validateCurrentState();
-		if (status != null) {
-			// revert
-			site.setEnabled(oldValue);
-			throw new CoreException(status);
-		} else {
-			try {
-				boolean restartNeeded = SiteManager.getLocalSite().save();
-				OperationsManager.fireObjectChanged(site, ""); //$NON-NLS-1$
-				return restartNeeded; // will restart only if changes could not be applied to current config
-			} catch (CoreException e) {
-				//revert
-				site.setEnabled(oldValue);
-				UpdateUtils.logException(e);
-				throw e;
-			}
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UnconfigOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UnconfigOperation.java
deleted file mode 100644
index 88dcf4e..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UnconfigOperation.java
+++ /dev/null
@@ -1,82 +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 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.update.internal.operations;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Unconfigure a feature.
- * UnconfigOperation
- */
-public class UnconfigOperation
-	extends FeatureOperation
-	implements IUnconfigFeatureOperation {
-
-	public UnconfigOperation(
-		IConfiguredSite site,
-		IFeature feature) {
-		super(site, feature);
-	}
-
-	public boolean execute(IProgressMonitor pm, IOperationListener listener)
-		throws CoreException {
-
-		IStatus status =
-			OperationsManager.getValidator().validatePendingUnconfig(feature);
-		if (status != null && status.getCode() == IStatus.ERROR) {
-			throw new CoreException(status);
-		}
-
-		PatchCleaner cleaner = new PatchCleaner(targetSite, feature);
-		targetSite.unconfigure(feature);
-		cleaner.dispose();
-
-		try {
-			// Restart not needed
-			boolean restartNeeded = false;
-
-			// Check if this operation is cancelling one that's already pending
-			IOperation pendingOperation =
-				OperationsManager.findPendingOperation(feature);
-
-			if (pendingOperation instanceof IConfigFeatureOperation) {
-				// no need to do either pending change
-				OperationsManager.removePendingOperation(pendingOperation);
-			} else {
-				OperationsManager.addPendingOperation(this);
-				restartNeeded = true;
-			}
-
-			markProcessed();
-			if (listener != null)
-				listener.afterExecute(this, null);
-
-			restartNeeded = SiteManager.getLocalSite().save() && restartNeeded;
-
-			// notify the model
-			OperationsManager.fireObjectChanged(feature, null);
-
-			return restartNeeded;
-		} catch (CoreException e) {
-			undo();
-			UpdateUtils.logException(e);
-			throw e;
-		}
-	}
-
-	public void undo() throws CoreException {
-		targetSite.configure(feature);
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UninstallOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UninstallOperation.java
deleted file mode 100644
index 902534b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UninstallOperation.java
+++ /dev/null
@@ -1,80 +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 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.update.internal.operations;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Configure a feature.
- * ConfigOperation
- */
-public class UninstallOperation extends FeatureOperation implements IUninstallFeatureOperation{
-
-	public UninstallOperation(IConfiguredSite site, IFeature feature) {
-		super(site, feature);
-	}
-
-	public void setTargetSite(IConfiguredSite targetSite) {
-		this.targetSite = targetSite;
-	}
-
-	public boolean execute(IProgressMonitor pm, IOperationListener listener) throws CoreException {
-		if (targetSite == null)
-			targetSite = UpdateUtils.getConfigSite(feature, SiteManager.getLocalSite().getCurrentConfiguration());
-
-		// Restart not needed
-		boolean restartNeeded = false;
-
-		if (targetSite != null) {
-			// if needed, unconfigure the feature first
-			if (targetSite.isConfigured(feature)) {
-				IStatus status = OperationsManager.getValidator().validatePendingUnconfig(feature);
-				if (status != null && status.getCode() == IStatus.ERROR)
-					throw new CoreException(status);
-				if (unconfigure(feature, targetSite))
-					restartNeeded = true;
-				else
-					throw Utilities.newCoreException(Policy.bind("OperationsManager.error.uninstall", feature.getVersionedIdentifier().toString()), null); //$NON-NLS-1$
-			}
-			targetSite.remove(feature, pm);
-		} else {
-			// we should do something here
-			String message =
-				Policy.bind(
-					"OperationsManager.error.uninstall", //$NON-NLS-1$
-					feature.getLabel());
-			IStatus status =
-				new Status(
-					IStatus.ERROR,
-					UpdateUtils.getPluginId(),
-					IStatus.OK,
-					message,
-					null);
-			throw new CoreException(status);
-		}
-
-		markProcessed();
-		if (listener != null)
-			listener.afterExecute(this, null);
-
-		restartNeeded = SiteManager.getLocalSite().save() && restartNeeded;
-
-		// notify the model
-		OperationsManager.fireObjectChanged(feature, UNINSTALL);
-		
-		return restartNeeded;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UpdateUtils.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UpdateUtils.java
deleted file mode 100644
index bbef4c0..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UpdateUtils.java
+++ /dev/null
@@ -1,672 +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 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.update.internal.operations;
-
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.configurator.UpdateURLDecoder;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.search.*;
-import org.eclipse.update.operations.*;
-import org.eclipse.update.search.*;
-
-
-/**
- * Helper class for performing update related tasks, queries, etc.
- * All the methods are static and this class should be a singleton.
- */
-public class UpdateUtils {
-	public static final String P_UPDATE_POLICY_URL = "updatePolicyURL"; //$NON-NLS-1$
-
-	/**
-	 * Private constructor
-	 */
-	private UpdateUtils() {
-	}
-	
-
-	public static String getPluginId() {
-		return UpdateCore.getPlugin().getBundle().getSymbolicName();
-	}
-
-
-	public static void logException(Throwable e) {
-		
-		if (e instanceof InvocationTargetException) {
-			e = ((InvocationTargetException) e).getTargetException();
-		}
-
-		IStatus status = null;
-		if (e instanceof CoreException) {
-			status = ((CoreException) e).getStatus();
-		} else {
-			String message = e.getMessage();
-			if (message == null)
-				message = e.toString();
-			status = new Status(IStatus.ERROR, getPluginId(), IStatus.OK, message, e);
-		}
-		log(status);
-	}
-
-	public static void log(IStatus status) {
-		if (status.getSeverity() != IStatus.INFO) {
-			UpdateCore.getPlugin().getLog().log(status);
-		} 
-	}
-
-	public static IFeature[] searchSite(String featureId, IConfiguredSite site, boolean onlyConfigured) throws CoreException {
-		IFeatureReference[] references = null;
-
-		if (onlyConfigured)
-			references = site.getConfiguredFeatures();
-		else
-			references = site.getSite().getFeatureReferences();
-		Vector result = new Vector();
-
-		for (int i = 0; i < references.length; i++) {
-			IFeature feature = references[i].getFeature(null);
-			String id = feature.getVersionedIdentifier().getIdentifier();
-			if (featureId.equals(id)) {
-				result.add(feature);
-			}
-		}
-		return (IFeature[]) result.toArray(new IFeature[result.size()]);
-	}
-
-	public static IFeature[] getInstalledFeatures(IFeature feature) {
-		return getInstalledFeatures(feature, true);
-	}
-
-	/**
-	 * 
-	 * @param feature
-	 * @param onlyConfigured
-	 * @return IFeature[] with features matching feature ID
-	 */
-	public static IFeature[] getInstalledFeatures(IFeature feature, boolean onlyConfigured) {
-		return getInstalledFeatures(feature.getVersionedIdentifier(), onlyConfigured);
-	}
-	/**
-	 * @param vid
-	 * @param onlyConfigured
-	 * @return IFeature[] with features matching feature ID
-	 */
-	public static IFeature[] getInstalledFeatures(VersionedIdentifier vid, boolean onlyConfigured) {
-		Vector features = new Vector();
-		try {
-			ILocalSite localSite = SiteManager.getLocalSite();
-			IInstallConfiguration config = localSite.getCurrentConfiguration();
-			IConfiguredSite[] isites = config.getConfiguredSites();
-			String id = vid.getIdentifier();
-
-			for (int i = 0; i < isites.length; i++) {
-				IConfiguredSite isite = isites[i];
-				IFeature[] result = UpdateUtils.searchSite(id, isite, onlyConfigured);
-				for (int j = 0; j < result.length; j++) {
-					IFeature installedFeature = result[j];
-					features.add(installedFeature);
-				}
-			}
-		} catch (CoreException e) {
-			UpdateUtils.logException(e);
-		}
-		return (IFeature[]) features.toArray(new IFeature[features.size()]);
-	}
-	
-	/**
-	 * @param patch
-	 * @return IFeature or null
-	 */
-	public static IFeature getPatchedFeature(IFeature patch) {
-		IImport[] imports = patch.getImports();
-		for (int i = 0; i < imports.length; i++) {
-			IImport iimport = imports[i];
-			if (iimport.isPatch()) {
-				VersionedIdentifier patchedVid = iimport
-						.getVersionedIdentifier();
-				// features with matching id
-				IFeature[] features = getInstalledFeatures(patchedVid, false);
-				for (int f = 0; f < features.length; f++) {
-					// check if version match
-					if (patchedVid.equals(features[f].getVersionedIdentifier())) {
-						return features[f];
-					}
-				}
-			}
-		}
-		return null;
-	}
-
-	public static boolean isPatch(IFeature candidate) {
-		IImport[] imports = candidate.getImports();
-
-		for (int i = 0; i < imports.length; i++) {
-			IImport iimport = imports[i];
-			if (iimport.isPatch()) return true;
-		}
-		return false;
-	}
-
-	public static boolean isPatch(IFeature target, IFeature candidate) {
-		VersionedIdentifier vid = target.getVersionedIdentifier();
-		IImport[] imports = candidate.getImports();
-
-		for (int i = 0; i < imports.length; i++) {
-			IImport iimport = imports[i];
-			if (iimport.isPatch()) {
-				VersionedIdentifier ivid = iimport.getVersionedIdentifier();
-				if (vid.equals(ivid)) {
-					// Bingo.
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static IInstallConfiguration getBackupConfigurationFor(IFeature feature) {
-		VersionedIdentifier vid = feature.getVersionedIdentifier();
-		String key = "@" + vid.getIdentifier() + "_" + vid.getVersion(); //$NON-NLS-1$ //$NON-NLS-2$
-		try {
-			ILocalSite lsite = SiteManager.getLocalSite();
-			IInstallConfiguration[] configs = lsite.getPreservedConfigurations();
-			for (int i = 0; i < configs.length; i++) {
-				IInstallConfiguration config = configs[i];
-				if (config.getLabel().startsWith(key))
-					return config;
-			}
-		} catch (CoreException e) {
-		}
-		return null;
-	}
-	
-	
-	public static boolean hasLicense(IFeature feature) {
-		IURLEntry info = feature.getLicense();
-		if (info == null)
-			return false;
-		String licenseTxt = info.getAnnotation();
-		if (licenseTxt == null)
-			return false;
-		return licenseTxt.trim().length() > 0;
-	}
-	public static boolean hasOptionalFeatures(IFeatureReference fref) {
-		try {
-			return hasOptionalFeatures(fref.getFeature(null));
-		} catch (CoreException e) {
-			return false;
-		}
-	}
-	public static boolean hasOptionalFeatures(IFeature feature) {
-		try {
-			IIncludedFeatureReference[] irefs = feature.getIncludedFeatureReferences();
-			for (int i = 0; i < irefs.length; i++) {
-				IIncludedFeatureReference iref = irefs[i];
-				if (iref.isOptional())
-					return true;
-				// see if it has optional children
-				IFeature child = iref.getFeature(null);
-				if (hasOptionalFeatures(child))
-					return true;
-			}
-		} catch (CoreException e) {
-		}
-		return false;
-	}
-
-	public static IFeature getLocalFeature(
-		IConfiguredSite csite,
-		IFeature feature)
-		throws CoreException {
-		IFeatureReference[] refs = csite.getConfiguredFeatures();
-		for (int i = 0; i < refs.length; i++) {
-			IFeatureReference ref = refs[i];
-			VersionedIdentifier refVid = ref.getVersionedIdentifier();
-			if (feature.getVersionedIdentifier().equals(refVid))
-				return ref.getFeature(null);
-		}
-		return null;
-	}
-	
-	public static IConfiguredSite getConfigSite(
-		IFeature feature,
-		IInstallConfiguration config)
-		throws CoreException {
-		IConfiguredSite[] configSites = config.getConfiguredSites();
-		for (int i = 0; i < configSites.length; i++) {
-			IConfiguredSite site = configSites[i];
-			if (site.getSite().equals(feature.getSite())) {
-				return site;
-			}
-		}
-		return null;
-	}
-	
-	public static IConfiguredSite getDefaultTargetSite(
-		IInstallConfiguration config,
-		IInstallFeatureOperation pendingChange) {
-		return getDefaultTargetSite(config, pendingChange, true);
-	}
-
-	public  static IConfiguredSite getDefaultTargetSite(
-		IInstallConfiguration config,
-		IInstallFeatureOperation pendingChange,
-		boolean checkAffinityFeature) {
-		IFeature oldFeature = pendingChange.getOldFeature();
-		IFeature newFeature = pendingChange.getFeature();
-		if (oldFeature != null) {
-			// We should install into the same site as
-			// the old feature
-			try {
-				return getConfigSite(oldFeature, config);
-			} catch (CoreException e) {
-				logException(e);
-				return null;
-			}
-		}
-
-		// This is a new install. Check if there is 
-		// a disabled feature with the same ID
-		String newFeatureID =
-			newFeature.getVersionedIdentifier().getIdentifier();
-		IConfiguredSite sameSite = getSiteWithFeature(config, newFeatureID);
-		if (sameSite != null) {
-			return sameSite;
-		}
-
-		if (checkAffinityFeature) {
-			return getAffinitySite(config, newFeature);
-		}
-		return null;
-	}
-	
-	public static IConfiguredSite getAffinitySite(
-		IInstallConfiguration config,
-		IFeature newFeature) {
-		// check if the affinity feature is installed
-		String affinityID = newFeature.getAffinityFeature();
-		if (affinityID != null) {
-			IConfiguredSite affinitySite =
-				getSiteWithFeature(config, affinityID);
-			if (affinitySite != null)
-				return affinitySite;
-		} else {
-			// if this is a patch, collocate with the feature
-			IFeature patchedFeature = getPatchedFeature(newFeature);
-			if (patchedFeature != null)
-				return getSiteWithFeature(config, patchedFeature.getVersionedIdentifier().getIdentifier());
-		}
-		return null;
-	}
-
-	public static IConfiguredSite getSiteWithFeature(
-		IInstallConfiguration config,
-		String featureID) {
-		if (featureID == null)
-			return null;
-		IConfiguredSite[] sites = config.getConfiguredSites();
-		for (int i = 0; i < sites.length; i++) {
-			IConfiguredSite site = sites[i];
-			IFeatureReference[] refs = site.getFeatureReferences();
-			for (int j = 0; j < refs.length; j++) {
-				IFeatureReference ref = refs[j];
-				try {
-					IFeature feature = ref.getFeature(null);
-					if (featureID
-						.equals(
-							feature
-								.getVersionedIdentifier()
-								.getIdentifier())) {
-						// found it
-						return site;
-					}
-				} catch (CoreException e) {
-					logException(e);
-				}
-			}
-		}
-		return null;
-	}
-	
-	public static void collectOldFeatures(
-		IFeature feature,
-		IConfiguredSite targetSite,
-		ArrayList result)
-		throws CoreException {
-		IIncludedFeatureReference[] included =
-			feature.getIncludedFeatureReferences();
-		for (int i = 0; i < included.length; i++) {
-			IIncludedFeatureReference iref = included[i];
-
-			IFeature ifeature;
-
-			try {
-				ifeature = iref.getFeature(null);
-			} catch (CoreException e) {
-				if (iref.isOptional())
-					continue;
-				throw e;
-			}
-			// find other features and unconfigure
-			String id = iref.getVersionedIdentifier().getIdentifier();
-			IFeature[] sameIds = UpdateUtils.searchSite(id, targetSite, true);
-			for (int j = 0; j < sameIds.length; j++) {
-				IFeature sameId = sameIds[j];
-				// Ignore self.
-				if (sameId.equals(ifeature))
-					continue;
-				result.add(sameId);
-			}
-			collectOldFeatures(ifeature, targetSite, result);
-		}
-	}
-
-//
-//	public static IInstallConfiguration createInstallConfiguration() throws CoreException{
-//		try {
-//			ILocalSite localSite = SiteManager.getLocalSite();
-//			IInstallConfiguration config =
-//				localSite.cloneCurrentConfiguration();
-//			config.setLabel(Utilities.format(config.getCreationDate()));
-//			return config;
-//		} catch (CoreException e) {
-//			// Let callers handle logging
-//			//logException(e);
-//			throw e;
-//		}
-//	}
-	
-	public static UpdateSearchRequest createNewUpdatesRequest(IFeature [] features) {
-		UpdateSearchScope scope = new UpdateSearchScope();
-		scope.setUpdateMapURL(UpdateUtils.getUpdateMapURL());
-		UpdatesSearchCategory category = new UpdatesSearchCategory();
-		if (features!=null)
-			category.setFeatures(features);
-		UpdateSearchRequest searchRequest = new UpdateSearchRequest(category, scope);
-		searchRequest.addFilter(new EnvironmentFilter());
-		return searchRequest;
-	}
-
-	public static boolean isNestedChild(IInstallConfiguration config, IFeature feature) {
-		IConfiguredSite[] csites = config.getConfiguredSites();
-		try {
-			for (int i = 0; csites != null && i < csites.length; i++) {
-				IFeatureReference[] refs = csites[i].getConfiguredFeatures();
-				for (int j = 0; refs != null && j < refs.length; j++) {
-					IFeature parent = refs[j].getFeature(null);
-					IFeatureReference[] children =
-						parent.getIncludedFeatureReferences();
-					for (int k = 0;
-						children != null && k < children.length;
-						k++) {
-						IFeature child = children[k].getFeature(null);
-						if (feature.equals(child))
-							return true;
-					}
-				}
-			}
-		} catch (CoreException e) {
-			// will return false
-		}
-		return false;
-	}
-	
-	
-	public static boolean hasObsoletePatches(IFeature feature) {
-		// Check all the included features that
-		// are unconfigured, and see if their patch 
-		// references are better than the original.
-		try {
-			IFeatureReference[] irefs = feature.getIncludedFeatureReferences();
-			for (int i = 0; i < irefs.length; i++) {
-				IFeatureReference iref = irefs[i];
-				IFeature ifeature = iref.getFeature(null);
-				IConfiguredSite csite = ifeature.getSite().getCurrentConfiguredSite();
-				if (!csite.isConfigured(ifeature)) {
-					if (!isPatchHappy(ifeature))
-						return false;
-				}
-			}
-		} catch (CoreException e) {
-			return false;
-		}
-		// All checks went well
-		return true;
-	}
-	
-	public static boolean isPatchHappy(IFeature feature) throws CoreException {
-		// If this is a patch and it includes 
-		// another patch and the included patch
-		// is disabled but the feature it was declared
-		// to patch is now newer (and is presumed to
-		// contain the now disabled patch), and
-		// the newer patched feature is enabled,
-		// a 'leap of faith' assumption can be
-		// made:
-
-		// Although the included patch is disabled,
-		// the feature it was designed to patch
-		// is now newer and most likely contains
-		// the equivalent fix and more. Consequently,
-		// we can claim that the status and the error
-		// icon overlay are misleading because
-		// all the right plug-ins are configured.
-		IImport[] imports = feature.getImports();
-		IImport patchReference = null;
-		for (int i = 0; i < imports.length; i++) {
-			IImport iimport = imports[i];
-			if (iimport.isPatch()) {
-				patchReference = iimport;
-				break;
-			}
-		}
-		if (patchReference == null)
-			return false;
-		VersionedIdentifier refVid = patchReference.getVersionedIdentifier();
-
-		// Find the patched feature and 
-		IConfiguredSite csite = feature.getSite().getCurrentConfiguredSite();
-		if (csite == null)
-			return false;
-
-		IFeatureReference[] crefs = csite.getConfiguredFeatures();
-		for (int i = 0; i < crefs.length; i++) {
-			IFeatureReference cref = crefs[i];
-			VersionedIdentifier cvid = cref.getVersionedIdentifier();
-			if (cvid.getIdentifier().equals(refVid.getIdentifier())) {
-				// This is the one.
-				if (cvid.getVersion().isGreaterThan(refVid.getVersion())) {
-					// Bingo: we found the referenced feature
-					// and its version is greater - 
-					// we can assume that it contains better code
-					// than the patch that referenced the
-					// older version.
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static URL getUpdateMapURL() {
-		Preferences pref = UpdateCore.getPlugin().getPluginPreferences();
-		String mapFile = pref.getString(UpdateUtils.P_UPDATE_POLICY_URL);
-		if (mapFile!=null && mapFile.length()>0) {
-			try {
-				//PAL foundation
-				String decodedFile = UpdateURLDecoder.decode(mapFile, "UTF-8"); //$NON-NLS-1$
-				return new URL(decodedFile);
-			}
-			catch (MalformedURLException e) {
-			}
-			catch(UnsupportedEncodingException e) {
-			}
-		}
-		return null;
-	}
-	
-	/*
-	 * Load the update map using the map URL found in the scope.
-	 */	
-	public static IStatus loadUpdatePolicy(UpdatePolicy map, URL url, IProgressMonitor monitor) throws CoreException {
-		monitor.subTask(Policy.bind("UpdateSearchRequest.loadingPolicy")); //$NON-NLS-1$
-		try {
-			map.load(url, monitor);
-			monitor.worked(1);
-		}
-		catch (CoreException e) {
-			IStatus status = e.getStatus();
-			if (status == null
-				|| status.getCode() != ISite.SITE_ACCESS_EXCEPTION)
-				throw e;
-			monitor.worked(1);
-			return status;
-		}
-		return null;
-	}
-
-	public static void downloadFeatureContent(
-        IConfiguredSite targetSite,
-		IFeature feature,
-		IFeatureReference[] optionalChildren, // null when feature has no optional features
-		IProgressMonitor progress)
-		throws InstallAbortedException, CoreException {
-		
-		//DEBUG
-		if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_INSTALL) {
-			UpdateCore.debug(
-				"Downloading...:" + feature.getURL().toExternalForm()); //$NON-NLS-1$
-		}
-
-		// Get source feature provider and verifier.
-		// Initialize target variables.
-		final IFeatureContentProvider provider =
-			feature.getFeatureContentProvider();
-		IPluginEntry[] targetSitePluginEntries = null;
-
-		// determine list of plugins to install
-		// find the intersection between the plugin entries already contained
-		// on the target site, and plugin entries packaged in source feature
-		IPluginEntry[] sourceFeaturePluginEntries = feature.getPluginEntries();
-
-        boolean featureAlreadyInstalled = false;
-        if (targetSite == null)
-            targetSite = getSiteWithFeature(SiteManager.getLocalSite()
-                    .getCurrentConfiguration(), ((Feature) feature)
-                    .getFeatureIdentifier());
-		if (targetSite == null) {
-			if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_INSTALL) {
-				UpdateCore.debug("The site to install in is null"); //$NON-NLS-1$
-			}
-
-			targetSitePluginEntries = new IPluginEntry[0];
-		} else {
-			targetSitePluginEntries = targetSite.getSite().getPluginEntries();
-            featureAlreadyInstalled = UpdateUtils.getLocalFeature(targetSite,feature) != null;
-		}
-		IPluginEntry[] pluginsToInstall =
-			UpdateManagerUtils.diff(
-				sourceFeaturePluginEntries,
-				targetSitePluginEntries);
-		INonPluginEntry[] nonPluginsToInstall = feature.getNonPluginEntries();
-		
-		IFeatureReference[] children = feature.getIncludedFeatureReferences();
-		if (optionalChildren != null) {
-			children =
-				UpdateManagerUtils.optionalChildrenToInstall(
-					children,
-					optionalChildren);
-		}
-
-		// make sure we have an InstallMonitor		
-		InstallMonitor monitor;
-		if (progress == null)
-			monitor = new InstallMonitor(new NullProgressMonitor());
-		else if (progress instanceof InstallMonitor)
-			monitor = (InstallMonitor) progress;
-		else
-			monitor = new InstallMonitor(progress);
-
-		try {
-			// determine number of monitor tasks
-			//   1 task1 for the feature jar (download)
-			// + n tasks for plugin entries (download for each)
-			// + m tasks per non-plugin data entry (download for each)
-			// TODO custom install handler  + 1 task for custom non-plugin entry handling (1 for all combined)
-			// + 3*x tasks for children features (3 subtasks per install)
-			int taskCount =
-					1
-					+ pluginsToInstall.length
-					+ nonPluginsToInstall.length
-//				+ 1
-					+ 3 * children.length;
-			monitor.beginTask("", taskCount); //$NON-NLS-1$
-			
-			// Download feature archive(s)
-			provider.getFeatureEntryArchiveReferences(monitor);
-			monitorWork(monitor,1);
-			
-			// Download plugin archives
-			for (int i = 0; i < pluginsToInstall.length; i++) {
-				provider.getPluginEntryArchiveReferences(pluginsToInstall[i], monitor);
-				monitorWork(monitor,1);
-			}
-
-			// Download non-plugin archives. Verification handled by optional install handler
-            // Note: do not download non-plugin archives for installed features
-            if (nonPluginsToInstall.length > 0)
-                if (!featureAlreadyInstalled)
-                    for (int i = 0; i < nonPluginsToInstall.length; i++) {
-                        provider.getNonPluginEntryArchiveReferences(
-                                nonPluginsToInstall[i], monitor);
-                        monitorWork(monitor, 1);
-                    }
-                else
-                    monitorWork(monitor, nonPluginsToInstall.length);
-           
-			// Download child features
-			for (int i = 0; i < children.length; i++) {
-				IFeature childFeature = null;
-				try {
-					childFeature = children[i].getFeature(null);
-				} catch (CoreException e) {
-					UpdateCore.warn(null, e);
-				}
-				if (childFeature != null) {
-					SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 3);
-					downloadFeatureContent(targetSite, childFeature, optionalChildren, subMonitor);
-				}
-			}
-		} finally {
-			if (monitor != null)
-				monitor.done();
-		}
-	}
-	
-	private static void monitorWork(IProgressMonitor monitor, int tick)
-	throws CoreException {
-	if (monitor != null) {
-		monitor.worked(tick);
-		if (monitor.isCanceled()) {
-			String msg = "download cancelled";//Policy.bind("Feature.InstallationCancelled"); //$NON-NLS-1$
-			throw new InstallAbortedException(msg, null);
-		}
-	}
-}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/BaseSearchCategory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/BaseSearchCategory.java
deleted file mode 100644
index a06368c..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/BaseSearchCategory.java
+++ /dev/null
@@ -1,30 +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 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.update.internal.search;
-
-import org.eclipse.update.search.*;
-
-public abstract class BaseSearchCategory implements IUpdateSearchCategory {
-	private String id;
-	
-	protected BaseSearchCategory(String id) {
-		setId(id);
-	}
-	
-	public String getId() {
-		return id;
-	}
-	
-	public void setId(String id) {
-		if (this.id==null)
-			this.id = id;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/OptionalFeatureSearchCategory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/OptionalFeatureSearchCategory.java
deleted file mode 100644
index b89d16f..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/OptionalFeatureSearchCategory.java
+++ /dev/null
@@ -1,98 +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 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.update.internal.search;
-
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.search.*;
-
-/**
- * Searches for optional features
- */
-public class OptionalFeatureSearchCategory extends BaseSearchCategory {
-	private IUpdateSearchQuery[] queries;
-	private ArrayList vids;
-	private static final String CATEGORY_ID =
-		"org.eclipse.update.core.unified-search"; //$NON-NLS-1$
-
-	private class OptionalQuery implements IUpdateSearchQuery {
-		public void run(
-			ISite site,
-			String[] categoriesToSkip,
-			IUpdateSearchFilter filter,
-			IUpdateSearchResultCollector collector,
-			IProgressMonitor monitor) {
-
-			monitor.beginTask("", vids.size()); //$NON-NLS-1$
-			for (int i = 0; i < vids.size(); i++) {
-				VersionedIdentifier vid = (VersionedIdentifier) vids.get(i);
-				monitor.subTask(vid.toString());
-				IFeature feature =
-					createFeature(
-						site,
-						vid,
-						new SubProgressMonitor(monitor, 1));
-				if (feature!=null && filter.accept(feature))
-					collector.accept(feature);
-			}
-		}
-
-		private IFeature createFeature(
-			ISite site,
-			VersionedIdentifier vid,
-			IProgressMonitor monitor) {
-			try {
-				URL siteURL = site.getURL();
-				//TODO This assumption stands only in the default case
-				// In general, feature archive URL may be mapped on site.
-				// Also, feature type may be something else (not packaged).
-				// We may need additional information (not only id and version)
-				// in order to create a feature on a site.
-				String relative = vid.toString();
-				URL featureURL = new URL(siteURL, "features/" + relative+".jar"); //$NON-NLS-1$ //$NON-NLS-2$
-				return site.createFeature(
-					"org.eclipse.update.core.packaged", //$NON-NLS-1$
-					featureURL,
-					monitor);
-			} catch (Exception e) {
-				return null;
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.update.internal.ui.search.ISearchQuery#getSearchSite()
-		 */
-		public IQueryUpdateSiteAdapter getQuerySearchSite() {
-			return null;
-		}
-	}
-
-	public void addVersionedIdentifier(VersionedIdentifier vid) {
-		vids.add(vid);
-	}
-
-	public void clear() {
-		vids.clear();
-	}
-
-	public OptionalFeatureSearchCategory() {
-		super(CATEGORY_ID);
-		vids = new ArrayList();
-		queries = new IUpdateSearchQuery[] { new OptionalQuery()};
-	}
-
-	public IUpdateSearchQuery[] getQueries() {
-		return queries;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/QueryUpdateSiteAdapter.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/QueryUpdateSiteAdapter.java
deleted file mode 100644
index 34b8545..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/QueryUpdateSiteAdapter.java
+++ /dev/null
@@ -1,28 +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 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.update.internal.search;
-
-import java.net.*;
-
-import org.eclipse.update.search.*;
-
-public class QueryUpdateSiteAdapter extends UpdateSiteAdapter implements IQueryUpdateSiteAdapter {
-	private String mappingId;
-
-	public QueryUpdateSiteAdapter(String label, URL url, String mappingId) {
-		super(label, url);
-		this.mappingId = mappingId;
-	}
-	
-	public String getMappingId() {
-		return mappingId;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/SiteSearchCategory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/SiteSearchCategory.java
deleted file mode 100644
index c4f254f..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/SiteSearchCategory.java
+++ /dev/null
@@ -1,93 +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 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.update.internal.search;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.search.*;
-
-/**
- * Searches an update site
- */
-public class SiteSearchCategory extends BaseSearchCategory {
-	private IUpdateSearchQuery[] queries;
-	private static final String CATEGORY_ID =
-		"org.eclipse.update.core.unified-search"; //$NON-NLS-1$
-
-	private static class Query implements IUpdateSearchQuery {
-		public void run(
-			ISite site,
-			String[] categoriesToSkip,
-			IUpdateSearchFilter filter,
-			IUpdateSearchResultCollector collector,
-			IProgressMonitor monitor) {
-			ISiteFeatureReference[] refs = site.getFeatureReferences();
-			HashSet ignores = new HashSet();
-			if (categoriesToSkip != null) {
-				for (int i = 0; i < categoriesToSkip.length; i++) {
-					ignores.add(categoriesToSkip[i]);
-				}
-			}
-
-			monitor.beginTask("", refs.length); //$NON-NLS-1$
-
-			for (int i = 0; i < refs.length; i++) {
-				ISiteFeatureReference ref = refs[i];
-				boolean skipFeature = false;
-				if (monitor.isCanceled())
-					break;
-				if (ignores.size() > 0) {
-					ICategory[] categories = ref.getCategories();
-
-					for (int j = 0; j < categories.length; j++) {
-						ICategory category = categories[j];
-						if (ignores.contains(category.getName())) {
-							skipFeature = true;
-							break;
-						}
-					}
-				}
-				try {
-					if (!skipFeature) {
-						if (filter.accept(ref)) {
-							IFeature feature = ref.getFeature(null);
-							if (filter.accept(feature))
-								collector.accept(feature);
-							monitor.subTask(feature.getLabel());
-						}
-					}
-				} catch (CoreException e) {
-					System.out.println(e);
-				} finally {
-					monitor.worked(1);
-				}
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.update.internal.ui.search.ISearchQuery#getSearchSite()
-		 */
-		public IQueryUpdateSiteAdapter getQuerySearchSite() {
-			return null;
-		}
-	}
-
-	public SiteSearchCategory() {
-		super(CATEGORY_ID);
-		queries = new IUpdateSearchQuery[] { new Query()};
-	}
-
-	public IUpdateSearchQuery[] getQueries() {
-		return queries;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatePolicy.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatePolicy.java
deleted file mode 100644
index 3cb4236..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatePolicy.java
+++ /dev/null
@@ -1,302 +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 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.update.internal.search;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import javax.xml.parsers.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.configurator.UpdateURLDecoder;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.search.*;
-import org.w3c.dom.*;
-import org.xml.sax.*;
-
-/**
- * 
- * This class opens connection to the update map resource
- * and parses the file to load update URL mappings.
- * These mappings are used to redirect new updates search
- * when the redirection pattern matches.
- */
-
-public class UpdatePolicy {
-	private static final String TAG_POLICY = "update-policy"; //$NON-NLS-1$
-	private static final String TAG_URL_MAP = "url-map"; //$NON-NLS-1$
-	private static final String ATT_URL = "url"; //$NON-NLS-1$
-	private static final String ATT_PATTERN = "pattern"; //$NON-NLS-1$
-	private static final String ATT_TYPE = "url-type"; //$NON-NLS-1$
-	private static final String ATT_TYPE_VALUE_UPDATE = "update"; //$NON-NLS-1$
-	private static final String ATT_TYPE_VALUE_BOTH = "both"; //$NON-NLS-1$
-	private static final String ATT_TYPE_VALUE_DISCOVERY = "discovery"; //$NON-NLS-1$
-
-	private static final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-
-	private static class MapSite implements IUpdateSiteAdapter {
-		private URL url;
-		public MapSite(URL url) {
-			this.url = url;
-		}
-		public String getLabel() {
-			return url.toString();
-		}
-		public URL getURL() {
-			return url;
-		}
-	}
-
-	private static class UpdateMapEntry {
-		private IUpdateSiteAdapter site;
-		private String pattern;
-
-		public UpdateMapEntry(String pattern, URL url) {
-			this.pattern = pattern;
-			this.site = new MapSite(url);
-		}
-		public IUpdateSiteAdapter getSite() {
-			return site;
-		}
-		public boolean matches(String id) {
-			return id.startsWith(pattern);
-		}
-		public String getPattern() {
-			return pattern;
-		}
-	}
-
-	private ArrayList entries;
-	private ArrayList discoveryEntries;
-	private IUpdateSiteAdapter defaultSite;
-	private IUpdateSiteAdapter defaultDiscoverySite;
-	private boolean loaded = false;
-	private boolean fallbackAllowed = true;
-
-	public UpdatePolicy() {
-		entries = new ArrayList();
-		discoveryEntries = new ArrayList();
-	}
-
-	public void load(URL mapFile, IProgressMonitor monitor)
-		throws CoreException {
-		InputStream policyStream = null;
-		try {
-			Response response = UpdateCore.getPlugin().get(mapFile);
-			UpdateManagerUtils.checkConnectionResult(response, mapFile);
-			policyStream = response.getInputStream(monitor);
-			// the stream can be null if the user cancels the connection
-			if (policyStream == null)
-				return;
-			
-			documentBuilderFactory.setNamespaceAware(true);
-			DocumentBuilder parser = documentBuilderFactory.newDocumentBuilder();
-			Document doc = parser.parse(new InputSource(policyStream));
-
-			processUpdatePolicy(doc);
-			loaded = true;
-		} catch (IOException e) {
-			throw Utilities.newCoreException(
-				Policy.bind(
-					"SiteURLFactory.UnableToAccessSiteStream", //$NON-NLS-1$
-					mapFile == null ? "" : mapFile.toExternalForm()), //$NON-NLS-1$
-				ISite.SITE_ACCESS_EXCEPTION,
-				e);
-		} catch (SAXException e) {
-			throw Utilities.newCoreException(
-				Policy.bind("UpdatePolicy.parsePolicy"), //$NON-NLS-1$
-				0,
-				e);
-
-		} catch(ParserConfigurationException e) {
-			throw Utilities.newCoreException(
-				Policy.bind("UpdatePolicy.parsePolicy"), //$NON-NLS-1$
-				0,
-				e);
-		} finally {
-			if (policyStream != null) {
-				try {
-					policyStream.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-
-	public boolean isLoaded() {
-		return loaded;
-	}
-	
-	/*
-	 * Given the feature ID, returns the mapped update URL if
-	 * found in the mappings. This URL will be used INSTEAD of
-	 * the update URL encoded in the feature itself during the
-	 * new update search.
-	 * <p>In case of multiple matches (e.g. org.eclipse and org.eclipse.platform)
-	 * the URL for the longer pattern will be picked (i.e. org.eclipse.platform).
-	 */
-	public IUpdateSiteAdapter getMappedSite(String id) {
-		UpdateMapEntry lastEntry = null;
-		for (int i = 0; i < entries.size(); i++) {
-			UpdateMapEntry entry = (UpdateMapEntry) entries.get(i);
-			if (entry.matches(id)) {
-				if (lastEntry == null)
-					lastEntry = entry;
-				else {
-					// Choose the match with longer pattern.
-					// For example, if two matches are found:
-					// 'org.eclipse' and 'org.eclipse.platform',
-					// pick 'org.eclipse.platform'.
-					String pattern = entry.getPattern();
-					String lastPattern = lastEntry.getPattern();
-					if (pattern.length() > lastPattern.length())
-						lastEntry = entry;
-				}
-			}
-		}
-		if (lastEntry != null)
-			return lastEntry.getSite();
-		else
-			return defaultSite;
-	}
-	
-	/*
-	 * Given the feature ID, returns the mapped discovery URL if
-	 * found in the mappings. This URL will be used INSTEAD of
-	 * the discovery URL encoded in the feature itself during the
-	 * new search.
-	 * <p>In case of multiple matches (e.g. org.eclipse and org.eclipse.platform)
-	 * the URL for the longer pattern will be picked (i.e. org.eclipse.platform).
-	 */
-	public IUpdateSiteAdapter getMappedDiscoverySite(String id) {
-		UpdateMapEntry lastEntry = null;
-		for (int i = 0; i < discoveryEntries.size(); i++) {
-			UpdateMapEntry entry = (UpdateMapEntry) discoveryEntries.get(i);
-			if (entry.matches(id)) {
-				if (lastEntry == null)
-					lastEntry = entry;
-				else {
-					// Choose the match with longer pattern.
-					// For example, if two matches are found:
-					// 'org.eclipse' and 'org.eclipse.platform',
-					// pick 'org.eclipse.platform'.
-					String pattern = entry.getPattern();
-					String lastPattern = lastEntry.getPattern();
-					if (pattern.length() > lastPattern.length())
-						lastEntry = entry;
-				}
-			}
-		}
-		if (lastEntry != null)
-			return lastEntry.getSite();
-		else
-			return defaultDiscoverySite;
-	}
-
-	public boolean isFallbackAllowed() {
-		return fallbackAllowed;
-	}
-	
-	private void reset() {
-		if (!entries.isEmpty())
-			entries.clear();
-		if (!discoveryEntries.isEmpty())
-			discoveryEntries.clear();
-	}
-
-	private void processUpdatePolicy(Document document) throws CoreException {
-		Node root = document.getDocumentElement();
-		reset();
-		
-		if (root.getNodeName().equals(TAG_POLICY)==false)
-			throwCoreException("'"+TAG_POLICY+Policy.bind("UpdatePolicy.policyExpected"), null); //$NON-NLS-1$ //$NON-NLS-2$
-				
-		NodeList nodes = root.getChildNodes();
-		
-		for (int i=0; i<nodes.getLength(); i++) {
-			Node child = nodes.item(i);
-			if (child.getNodeType() != Node.ELEMENT_NODE)
-				continue;
-			String tag = child.getNodeName();
-			if (tag.equals(TAG_URL_MAP))
-				processMapNode(child);
-		}
-	}
-	private void processMapNode(Node node) throws CoreException {
-		String pattern = getAttribute(node, ATT_PATTERN);
-		String urlName = getAttribute(node, ATT_URL);
-		String type = getAttribute(node, ATT_TYPE);
-		
-		assertNotNull(ATT_PATTERN, pattern);
-		assertNotNull(ATT_URL, urlName);
-		
-		// empty url means feature is not updateable
-		if (urlName.trim().length() == 0) {
-			addUpdateEntry(pattern, null, type);
-			return;
-		}
-
-		try {
-			//PAL foundation
-			String decodedValue = UpdateURLDecoder.decode(urlName, "UTF-8"); //$NON-NLS-1$
-			URL url = new URL(decodedValue);
-			addUpdateEntry(pattern, url, type);
-		} catch (MalformedURLException e) {
-			throwCoreException(Policy.bind("UpdatePolicy.invalidURL")+urlName, null); //$NON-NLS-1$
-		} catch (UnsupportedEncodingException e) {
-		}
-	}
-	
-	private void assertNotNull(String name, String value) throws CoreException {
-		if (value==null)
-			throwCoreException(name+Policy.bind("UpdatePolicy.nameNoNull"), null); //$NON-NLS-1$
-	}
-	
-	private String getAttribute(Node node, String name) {
-		NamedNodeMap attMap = node.getAttributes();
-		Node att = attMap.getNamedItem(name);
-		if (att==null) return null;
-		return att.getNodeValue();
-	}
-
-	private void addUpdateEntry(String pattern, URL url, String type) {
-		if (pattern.equalsIgnoreCase("*")) {//$NON-NLS-1$
-			if (type == null)
-				defaultSite = new MapSite(url);
-			else if (type.equals(ATT_TYPE_VALUE_UPDATE))
-				defaultSite = new MapSite(url);
-			else if (type.equals(ATT_TYPE_VALUE_DISCOVERY))
-				defaultDiscoverySite = new MapSite(url);
-			else {
-				defaultSite = new MapSite(url);
-				defaultDiscoverySite = new MapSite(url);
-			}
-		} else {
-			if (type == null )
-				entries.add(new UpdateMapEntry(pattern, url));
-			else if (type.equals(ATT_TYPE_VALUE_UPDATE))
-				entries.add(new UpdateMapEntry(pattern, url));
-			else if (type.equals(ATT_TYPE_VALUE_DISCOVERY))
-				discoveryEntries.add(new UpdateMapEntry(pattern, url));
-			else {
-				entries.add(new UpdateMapEntry(pattern, url));
-				discoveryEntries.add(new UpdateMapEntry(pattern, url));
-			}
-		}
-	}
-	
-	private void throwCoreException(String message, Throwable e) throws CoreException {
-		String fullMessage = Policy.bind("UpdatePolicy.UpdatePolicy")+message; //$NON-NLS-1$
-		throw Utilities.newCoreException(fullMessage, 0, e);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdateSiteAdapter.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdateSiteAdapter.java
deleted file mode 100644
index 135bf31..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdateSiteAdapter.java
+++ /dev/null
@@ -1,45 +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 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.update.internal.search;
-
-import java.net.*;
-
-import org.eclipse.update.search.*;
-
-/**
- */
-public class UpdateSiteAdapter implements IUpdateSiteAdapter {
-	private String label;
-	private URL url;
-	
-	public UpdateSiteAdapter(String label, URL url) {
-		this.label = label;
-		this.url = url;
-	}
-	public URL getURL() {
-		return url;
-	}
-	public String getLabel() {
-		return label;
-	}
-/*
-	public ISite getSite(IProgressMonitor monitor) {
-		try {
-			return SiteManager.getSite(getURL(), monitor);
-		} catch (CoreException e) {
-			return null;
-		}
-	}
-*/
-	public String toString(){
-		return "" + getURL(); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatesSearchCategory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatesSearchCategory.java
deleted file mode 100644
index 39972a6..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatesSearchCategory.java
+++ /dev/null
@@ -1,535 +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 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.update.internal.search;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.operations.*;
-import org.eclipse.update.search.*;
-
-public class UpdatesSearchCategory extends BaseSearchCategory {
-	private static final String CATEGORY_ID =
-		"org.eclipse.update.core.new-updates"; //$NON-NLS-1$
-	private IFeature [] features;
-
-	class Candidate {
-		ArrayList children;
-		Candidate parent;
-		IFeatureReference ref;
-		public Candidate(IFeatureReference ref) {
-			this.ref = ref;
-		}
-		public Candidate(IFeatureReference ref, Candidate parent) {
-			this(ref);
-			this.parent = parent;
-		}
-		public void add(Candidate child) {
-			if (children == null)
-				children = new ArrayList();
-			child.setParent(this);
-			children.add(child);
-		}
-		void setParent(Candidate parent) {
-			this.parent = parent;
-		}
-		public IFeatureReference getReference() {
-			return ref;
-		}
-		void setReference(IFeatureReference ref) {
-			this.ref = ref;
-		}
-		public IFeature getFeature(IProgressMonitor monitor) {
-			try {
-				return ref.getFeature(monitor);
-			} catch (CoreException e) {
-				return null;
-			}
-		}
-		public Candidate getParent() {
-			return parent;
-		}
-		public Candidate getRoot() {
-			Candidate root = this;
-
-			while (root.getParent() != null) {
-				root = root.getParent();
-			}
-			return root;
-		}
-		public IURLEntry getUpdateEntry() {
-			int location = IUpdateConstants.SEARCH_ROOT;
-
-			if (ref instanceof IIncludedFeatureReference)
-				location =
-					((IIncludedFeatureReference) ref).getSearchLocation();
-			if (parent == null || location == IUpdateConstants.SEARCH_SELF) {
-				return getFeature(null).getUpdateSiteEntry();
-			}
-			return getRoot().getUpdateEntry();
-		}
-		public String toString() {
-			return ref.toString();
-		}
-		public boolean equals(Object source) {
-			if (source instanceof Candidate) {
-				return this.ref.equals(((Candidate) source).getReference());
-			}
-			if (source instanceof IFeatureReference) {
-				return this.ref.equals(source);
-			}
-			return false;
-		}
-		public void addToFlatList(ArrayList list, boolean updatableOnly) {
-			// add itself
-			if (!updatableOnly || isUpdatable())
-				list.add(this);
-			// add children
-			if (children != null) {
-				for (int i = 0; i < children.size(); i++) {
-					Candidate child = (Candidate) children.get(i);
-					child.addToFlatList(list, updatableOnly);
-				}
-			}
-		}
-		public boolean isUpdatable() {
-			return (parent == null);
-		}
-	}
-
-	private static class Hit {
-		IFeature candidate;
-		IFeatureReference ref;
-		IInstallFeatureOperation patchFor;
-		boolean patch;
-		IInstallFeatureOperation job;
-		
-		public Hit(IFeature candidate, IFeatureReference ref) {
-			this.candidate = candidate;
-			this.ref = ref;
-		}
-		public Hit(IFeature candidate, IFeatureReference ref, boolean patch) {
-			this(candidate, ref);
-			this.patch = patch;
-		}
-
-		public Hit(IFeature candidate, IFeatureReference ref, IInstallFeatureOperation patchFor) {
-			this(candidate, ref, true);
-			this.patchFor = patchFor;
-		}
-
-		public IInstallFeatureOperation getJob() {
-			if (job == null) {
-				try {
-					IFeature feature = ref.getFeature(null);
-					job = OperationsManager.getOperationFactory().createInstallOperation(null, feature, null, null, null);
-				} catch (CoreException e) {
-					UpdateCore.log(e);
-				}
-			}
-			return job;
-		}
-
-		public boolean isPatch() {
-			return patch;
-		}
-		public IInstallFeatureOperation getPatchedJob() {
-			return patchFor;
-		}
-	}
-
-	class UpdateQuery implements IUpdateSearchQuery {
-		IFeature candidate;
-		IQueryUpdateSiteAdapter adapter;
-
-		public UpdateQuery(
-			IFeature candidate,
-			IURLEntry updateEntry) {
-			this.candidate = candidate;
-			if (updateEntry != null && updateEntry.getURL() != null)
-				adapter =
-					new QueryUpdateSiteAdapter(
-						getLabelForEntry(updateEntry),
-						updateEntry.getURL(),
-						candidate.getVersionedIdentifier().getIdentifier());
-		}
-		private String getLabelForEntry(IURLEntry entry) {
-			String label = entry.getAnnotation();
-			if (label == null || label.length() == 0)
-				label = entry.getURL().toString();
-			return label;
-		}
-
-		public IQueryUpdateSiteAdapter getQuerySearchSite() {
-			return adapter;
-		}
-		private boolean isBroken() {
-			try {
-				IStatus status =
-					SiteManager.getLocalSite().getFeatureStatus(candidate);
-				return status.getSeverity() == IStatus.ERROR;
-			} catch (CoreException e) {
-				return false;
-			}
-		}
-		private boolean isMissingOptionalChildren(IFeature feature) {
-			try {
-				IIncludedFeatureReference[] children =
-					feature.getIncludedFeatureReferences();
-				for (int i = 0; i < children.length; i++) {
-					IIncludedFeatureReference ref = children[i];
-					try {
-						IFeature child = ref.getFeature(null);
-						// If we are here, the child is not missing.
-						// Check it's children recursively.
-						if (isMissingOptionalChildren(child))
-							return true;
-					} catch (CoreException e) {
-						// Missing child. Return true if optional,
-						// otherwise it is a broken feature that we 
-						// do not care about.
-						if (ref.isOptional()) {
-							return FeatureHierarchyElement.hasOlderVersion(ref);
-						}
-					}
-				}
-			} catch (CoreException e) {
-			}
-			return false;
-		}
-		public void run(
-			ISite site,
-			String[] categoriesToSkip,
-			IUpdateSearchFilter filter,
-			IUpdateSearchResultCollector collector,
-			IProgressMonitor monitor) {
-			ArrayList hits = new ArrayList();
-			boolean broken = isBroken();
-			boolean missingOptionalChildren = false;
-
-			// Don't bother to compute missing optional children
-			// if the feature is broken - all we want is to 
-			// see if we should allow same-version re-install.
-			if (!broken)
-				missingOptionalChildren = isMissingOptionalChildren(candidate);
-			ISiteFeatureReference[] refs = site.getFeatureReferences();
-			monitor.beginTask("", refs.length + 1); //$NON-NLS-1$
-			ArrayList updateJobs = new ArrayList();
-			for (int i = 0; i < refs.length; i++) {
-				ISiteFeatureReference ref = refs[i];
-				try {
-					if (isNewerVersion(candidate.getVersionedIdentifier(),ref.getVersionedIdentifier())) {
-						Hit h = new Hit(candidate, ref);
-						hits.add(h);
-						IInstallFeatureOperation job = h.getJob();
-						if (job != null)
-							updateJobs.add(job);
-					} else {
-						// accept the same feature if the installed
-						// feature is broken
-						if ((broken || missingOptionalChildren)
-							&& candidate.getVersionedIdentifier().equals(
-								ref.getVersionedIdentifier())){
-							hits.add(new Hit(candidate, ref));
-							continue;
-						}
-						else {
-							// check for patches
-							if (isPatch(candidate, ref)){
-								hits.add(new Hit(candidate, ref, true));
-								continue;
-							}
-						}
-					}
-				} catch (CoreException e) {
-				}
-				monitor.worked(1);
-				if (monitor.isCanceled()){
-					return;
-				}
-				
-			}
-			// accept patches for updated features
-			for (int n = 0; n < updateJobs.size(); n++) {
-				IInstallFeatureOperation job = (IInstallFeatureOperation) updateJobs
-						.get(n);
-					IFeature newCandidate = job.getFeature();
-					for (int i = 0; i < refs.length; i++) {
-						ISiteFeatureReference ref = refs[i];
-						if (isPatch(newCandidate, ref)) {
-							Hit h = new Hit(newCandidate, ref, job);
-							hits.add(h);
-							continue;
-						}
-						//monitor.worked(1);
-						if (monitor.isCanceled()) {
-							return;
-						}
-					}
-			}
-			if (hits.size() > 0) {
-				collectValidHits(hits, filter, collector);
-			}
-			monitor.worked(1);
-			monitor.done();
-		}
-	}
-
-	private ArrayList candidates;
-
-	public UpdatesSearchCategory() {
-		super(CATEGORY_ID);
-	}
-
-	private void collectValidHits(
-		ArrayList hits,
-		IUpdateSearchFilter filter,
-		IUpdateSearchResultCollector collector) {
-		Object[] array = hits.toArray();
-		IFeature topHit = null;
-		for (int i = 0; i < hits.size(); i++) {
-			Hit hit = (Hit) hits.get(i);
-			IInstallFeatureOperation job = hit.getJob();
-			if (job == null)
-				continue;
-			// do not accept updates without a license
-			if (!UpdateUtils.hasLicense(job.getFeature())) {
-				UpdateCore.log(job.getFeature().getVersionedIdentifier() + ": " + Policy.bind("DefaultFeatureParser.NoLicenseText"), null); //$NON-NLS-1$ //$NON-NLS-2$
-				continue;
-			}
-			IStatus status;
-			if( hit.getPatchedJob()==null){
-				status = OperationsManager.getValidator().validatePendingInstall(job.getOldFeature(), job.getFeature());
-			}else{
-				status = OperationsManager.getValidator().validatePendingChanges(new IInstallFeatureOperation[]{hit.getPatchedJob(), job});
-						
-			}
-			if (status == null || status.getCode() == IStatus.WARNING) {
-				if (hit.isPatch()) {
-					IFeature patch = job.getFeature();
-					// Do not add the patch if already installed
-					IFeature[] sameId = UpdateUtils.getInstalledFeatures(patch, false);
-					if (sameId.length==0) {
-						if (filter.accept(patch))
-							collector.accept(patch);
-					}
-				}
-				else  {
-					topHit = job.getFeature();
-					if (filter.accept(topHit))
-						collector.accept(topHit);
-				}
-			}
-		}
-	}
-
-	private void initialize() {
-		candidates = new ArrayList();
-		try {
-			ILocalSite localSite = SiteManager.getLocalSite();
-			IInstallConfiguration config = localSite.getCurrentConfiguration();
-			IConfiguredSite[] isites = config.getConfiguredSites();
-			for (int i = 0; i < isites.length; i++) {
-				contributeCandidates(isites[i]);
-			}
-		} catch (CoreException e) {
-			UpdateCore.log(
-				Policy.bind("UpdatesSearchCategory.errorSearchingForUpdates"), //$NON-NLS-1$
-				e);
-		}
-	}
-
-	private void contributeCandidates(IConfiguredSite isite)
-		throws CoreException {
-		IFeatureReference[] refs = isite.getConfiguredFeatures();
-		ArrayList candidatesPerSite = new ArrayList();
-		for (int i = 0; i < refs.length; i++) {
-			IFeatureReference ref = refs[i];
-			// Don't waste time searching for updates to 
-			// patches.
-			try {
-				if (UpdateUtils.isPatch(ref.getFeature(null)))
-					continue;
-			}
-			catch (CoreException e) {
-				continue;
-			}
-			Candidate c = new Candidate(ref);
-			candidatesPerSite.add(c);
-		}
-		// Create a tree from a flat list
-		buildHierarchy(candidatesPerSite);
-		// Add the remaining root candidates to 
-		// the global list of candidates.
-		candidates.addAll(candidatesPerSite);
-	}
-
-	private void buildHierarchy(ArrayList candidates) throws CoreException {
-		Candidate[] array =
-			(Candidate[]) candidates.toArray(new Candidate[candidates.size()]);
-		// filter out included features so that only top-level features remain on the list
-		for (int i = 0; i < array.length; i++) {
-			Candidate parent = array[i];
-			IFeature feature = parent.getFeature(null);
-			IFeatureReference[] included =
-				feature.getIncludedFeatureReferences();
-			for (int j = 0; j < included.length; j++) {
-				IFeatureReference fref = included[j];
-				Candidate child = findCandidate(candidates, fref);
-				if (child != null) {
-					parent.add(child);
-					child.setReference(fref);
-					candidates.remove(child);
-				}
-			}
-		}
-	}
-	private Candidate findCandidate(ArrayList list, IFeatureReference ref) {
-		for (int i = 0; i < list.size(); i++) {
-			Candidate c = (Candidate) list.get(i);
-			if (c.ref.equals(ref))
-				return c;
-		}
-		return null;
-	}
-
-	public IUpdateSearchQuery[] getQueries() {
-		initialize();
-		ArrayList allCandidates = getAllCandidates();
-
-		IUpdateSearchQuery[] queries =
-			new IUpdateSearchQuery[allCandidates.size()];
-		for (int i = 0; i < queries.length; i++) {
-			Candidate candidate = (Candidate) allCandidates.get(i);
-			IFeature feature = candidate.getFeature(null);
-			IURLEntry updateEntry = candidate.getUpdateEntry();
-			if (feature == null) {
-				queries[i] = null;
-			} else {
-				queries[i] = new UpdateQuery(feature, updateEntry);
-			}
-		}
-		return queries;
-	}
-	
-/**
- * Sets the features for which new updates need to be found. If
- * not set, updates will be searched for all the installed
- * and configured features.
- * @param features the features to search updates for
- */	
-	public void setFeatures(IFeature [] features) {
-		this.features = features;
-	}
-	
-/**
- * Returns an array of features for which updates need to
- * be found. 
- * @return an array of features or <samp>null</samp> if not
- * set.
- */	
-	public IFeature [] getFeatures() {
-		return features;
-	}
-	/**
-	 * @param fvi
-	 * @param cvi
-	 * @return fvi < cvi
-	 */
-	private boolean isNewerVersion(
-		VersionedIdentifier fvi,
-		VersionedIdentifier cvi) {
-		if (!fvi.getIdentifier().equals(cvi.getIdentifier()))
-			return false;
-		PluginVersionIdentifier fv = fvi.getVersion();
-		PluginVersionIdentifier cv = cvi.getVersion();
-		String mode = getUpdateVersionsMode();
-		boolean greater = cv.isGreaterThan(fv);
-		if (!greater)
-			return false;
-		if (mode.equals(UpdateCore.EQUIVALENT_VALUE))
-			return cv.isEquivalentTo(fv);
-		else if (mode.equals(UpdateCore.COMPATIBLE_VALUE))
-			return cv.isCompatibleWith(fv);
-		else
-			return false;
-	}
-
-	private boolean isPatch(IFeature candidate, ISiteFeatureReference ref) {
-		if (ref.isPatch() == false)
-			return false;
-		try {
-			IFeature feature = ref.getFeature(null);
-			if( UpdateUtils.isPatch(candidate, feature))
-				return true;
-			// Check if patch is for children
-			try {
-				IIncludedFeatureReference[] children =
-					candidate.getIncludedFeatureReferences();
-				for (int i = 0; i < children.length; i++) {
-					IIncludedFeatureReference cref = children[i];
-					try {
-						IFeature child = cref.getFeature(null);
-						if (isPatch(child, ref))
-							return true;
-					} catch (CoreException e) {
-					}
-				}
-			} catch (CoreException e) {
-			}
-			return false;
-		} catch (CoreException e) {
-			return false;
-		}
-	}
-	
-	private String getUpdateVersionsMode() {
-		Preferences store = UpdateCore.getPlugin().getPluginPreferences();
-		return store.getString(UpdateCore.P_UPDATE_VERSIONS);
-	}
-/*
- * This method recursively walks the list of candidates
- * building the flat that starts with the roots but
- * also includes all the children that are updatable
- * (use 'include' clause with a match that is not 'perfect').
- */
-	private ArrayList getAllCandidates() {
-		ArrayList selected = new ArrayList();
-		for (int i=0; i<candidates.size(); i++) {
-			Candidate c = (Candidate)candidates.get(i);
-			if (isOnTheList(c))
-				c.addToFlatList(selected, true);
-		}
-		return selected;
-	}
-	
-	private boolean isOnTheList(Candidate c) {
-		if (features==null) return true;
-		VersionedIdentifier vid;
-		try {
-			vid = c.getReference().getVersionedIdentifier();
-		}
-		catch (CoreException e) {
-			return false;
-		}
-		for (int i=0; i<features.length; i++) {
-			IFeature feature = features[i];
-			VersionedIdentifier fvid = feature.getVersionedIdentifier();
-			if (fvid.equals(vid))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/CertificatePair.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/CertificatePair.java
deleted file mode 100644
index 05e4e05..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/CertificatePair.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.security;
- 
- import java.security.cert.*;
- 
-/**
- *
- */
-public class CertificatePair {
-	private Certificate root;
-	private Certificate issuer;
-	
-	
-
-	/**
-	 * Gets the root.
-	 * @return Returns a Certificate
-	 */
-	public Certificate getRoot() {
-		return root;
-	}
-
-	/**
-	 * Sets the root.
-	 * @param root The root to set
-	 */
-	public void setRoot(Certificate root) {
-		this.root = root;
-	}
-
-	/**
-	 * Gets the issuer.
-	 * @return Returns a Certificate
-	 */
-	public Certificate getIssuer() {
-		return issuer;
-	}
-
-	/**
-	 * Sets the issuer.
-	 * @param issuer The issuer to set
-	 */
-	public void setIssuer(Certificate issuer) {
-		this.issuer = issuer;
-	}
-
-	/*
-	 * @see Object#equals(Object)
-	 */
-	public boolean equals(Object obj) {
-		
-		if (obj==null) return false;
-		
-		if (!(obj instanceof CertificatePair)) return false;
-		
-		if (root==null || issuer==null) return false;
-		
-		CertificatePair pair = (CertificatePair)obj;
-		
-		return (root.equals(pair.getRoot()) && issuer.equals(pair.getIssuer()));
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerificationResult.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerificationResult.java
deleted file mode 100644
index 8ec3aa2..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerificationResult.java
+++ /dev/null
@@ -1,330 +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 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.update.internal.security;
-
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.Policy;
-
-/**
- * Result of the service
- */
-public class JarVerificationResult implements IVerificationResult {
-
-
-	private int resultCode;
-	private int verificationCode;
-	private Exception resultException;
-	private List /*of Certificates[] */
-	certificates;
-	private CertificatePair[] rootCertificates;
-	private CertificatePair foundCertificate; // certificate found in one keystore
-	
-	private String signerInfo;
-	private String verifierInfo;
-	private ContentReference contentReference;
-	private IFeature feature;
-	private boolean featureVerification;
-	private boolean alreadySeen;
-
-	public JarVerificationResult() {
-	}
-	
-	/*
-	 * 
-	 */
-	public int getResultCode() {
-		return resultCode;
-	}
-	
-	/*
-	 * 
-	 */
-	public Exception getVerificationException() {
-		return resultException;
-	}
-	
-	/*
-	 * 
-	 */
-	public void setResultCode(int newResultCode) {
-		resultCode = newResultCode;
-	}
-	
-	/*
-	 * 
-	 */
-	public void setResultException(Exception newResultException) {
-		resultException = newResultException;
-	}
-	
-	/*
-	 * 
-	 */
-	public int getVerificationCode() {
-		return verificationCode;
-	}
-
-	/*
-	 * 
-	 */
-	public void setVerificationCode(int verificationCode) {
-		this.verificationCode = verificationCode;
-	}
-
-	/*
-	 * adds an array of Certificates to the list
-	 * force recomputation of root cert
-	 */
-	public void addCertificates(Certificate[] certs) {
-		if (certificates == null)
-			certificates = new ArrayList();
-		certificates.add(certs);
-		rootCertificates = null;
-	}
-
-	/*
-	 * Returns the list of root certificates
-	 * The list of certificates we received is an array of certificates
-	 * we have to determine 
-	 * 1) how many chain do we have (a chain stops when verifier of a cert is 
-	 * not the signer of the next cert in the list 
-	 * 2) build a cert with the leaf signer and the root verifier for each chain
-	 */
-	public CertificatePair[] getRootCertificates() {
-		if (rootCertificates == null) {
-			rootCertificates = new CertificatePair[0];			
-			List rootCertificatesList = new ArrayList();
-			if (certificates != null && certificates.size() > 0) {
-				Iterator iter = certificates.iterator();
-				while (iter.hasNext()) {
-
-					Certificate[] certs = (Certificate[]) iter.next();
-					if (certs != null && certs.length > 0) {
-
-						CertificatePair pair = new CertificatePair();
-						pair.setIssuer(certs[0]);
-
-						for (int i = 0; i < certs.length - 1; i++) {
-							X509Certificate x509certRoot = (X509Certificate) certs[i];
-							X509Certificate x509certIssuer = (X509Certificate) certs[i+1];
-							if (!x509certRoot.getIssuerDN().equals(x509certIssuer.getSubjectDN())) {
-								pair.setRoot(x509certRoot);
-								if (!rootCertificatesList.contains(pair)) {
-									rootCertificatesList.add(pair);
-								}
-								pair = new CertificatePair();
-								pair.setIssuer(x509certIssuer);
-							}
-						}
-
-						// add the latest one
-						if (pair != null) {
-							pair.setRoot(certs[certs.length - 1]);
-							if (!rootCertificatesList.contains(pair)) {
-								rootCertificatesList.add(pair);
-							}
-						}
-					}
-				}
-
-			}
-			
-			if (rootCertificatesList.size() > 0) {
-				rootCertificates = new CertificatePair[rootCertificatesList.size()];				
-				rootCertificatesList.toArray(rootCertificates);
-			}
-		}
-		return rootCertificates;
-	}
-
-	/*
-	 * 
-	 */
-	private CertificatePair getFoundCertificate() {
-		return foundCertificate;
-	}
-
-	/*
-	 * 
-	 */
-	public void setFoundCertificate(CertificatePair foundCertificate) {
-		this.foundCertificate = foundCertificate;
-	}
-
-
-	/*
-	 * Initializes the signerInfo and the VerifierInfo from the Certificate Pair
-	 */
-	private void initializeCertificates(){
-		X509Certificate certRoot = null;
-		X509Certificate certIssuer = null;
-		CertificatePair trustedCertificate;
-		if (getFoundCertificate() == null) {
-			CertificatePair[] certs = getRootCertificates();
-			if (certs.length == 0)
-				return;
-			trustedCertificate = certs[0];
-		} else {
-			trustedCertificate = getFoundCertificate();
-		}
-		certRoot = (X509Certificate) trustedCertificate.getRoot();
-		certIssuer = (X509Certificate) trustedCertificate.getIssuer();
-
-		StringBuffer strb = new StringBuffer();
-		strb.append(issuerString(certIssuer.getSubjectDN()));
-		strb.append("\r\n"); //$NON-NLS-1$
-		strb.append(Policy.bind("JarVerificationResult.ValidBetween", dateString(certIssuer.getNotBefore()), dateString(certIssuer.getNotAfter()))); //$NON-NLS-1$
-		strb.append(checkValidity(certIssuer));
-		signerInfo = strb.toString();
-		if (certIssuer != null && !certIssuer.equals(certRoot)) {
-			strb = new StringBuffer();	
-			strb.append(issuerString(certIssuer.getIssuerDN()));
-			strb.append("\r\n"); //$NON-NLS-1$
-			strb.append(Policy.bind("JarVerificationResult.ValidBetween", dateString(certRoot.getNotBefore()), dateString(certRoot.getNotAfter()))); //$NON-NLS-1$ 
-			strb.append(checkValidity(certRoot));
-			verifierInfo = strb.toString();
-		}
-
-	}
-
-	/*
-	 * Returns a String to show if the certificate is valid
-	 */
-	private String checkValidity(X509Certificate cert) {
-
-		try {
-			cert.checkValidity();
-		} catch (CertificateExpiredException e) {
-			return ("\r\n" + Policy.bind("JarVerificationResult.ExpiredCertificate")); //$NON-NLS-1$ //$NON-NLS-2$ 
-		} catch (CertificateNotYetValidException e) {
-			return ("\r\n" + Policy.bind("JarVerificationResult.CertificateNotYetValid")); //$NON-NLS-1$ //$NON-NLS-2$ 
-		}
-		return ("\r\n" + Policy.bind("JarVerificationResult.CertificateValid")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/*
-	 * Returns the label String from a X50name
-	 */
-	private String issuerString(Principal principal) {
-// 19902
-//		try {
-//			if (principal instanceof X500Name) {
-//				StringBuffer buf = new StringBuffer();
-//				X500Name name = (X500Name) principal;
-//				buf.append((name.getDNQualifier() != null) ? name.getDNQualifier() + ", " : "");
-//				buf.append(name.getCommonName());
-//				buf.append((name.getOrganizationalUnit() != null) ? ", " + name.getOrganizationalUnit() : "");
-//				buf.append((name.getOrganization() != null) ? ", " + name.getOrganization() : "");
-//				buf.append((name.getLocality() != null) ? ", " + name.getLocality() : "");
-//				buf.append((name.getCountry() != null) ? ", " + name.getCountry() : "");
-//				return new String(buf);
-//			}
-//		} catch (Exception e) {
-//			UpdateCore.warn("Error parsing X500 Certificate",e);
-//		}
-		return principal.toString();
-	}
-
-	/*
-	 * 
-	 */
-	private String dateString(Date date) {
-		return DateFormat.getDateInstance().format(date);
-	}
-
-	/*
-	 *
-	 */
-	public String getSignerInfo() {
-		if (signerInfo==null) initializeCertificates();
-		return signerInfo;
-	}
-
-	/*
-	 *
-	 */
-	public String getVerifierInfo() {
-		if (signerInfo==null) initializeCertificates();		
-		return verifierInfo;
-	}
-
-	/*
-	 *
-	 */
-	public ContentReference getContentReference() {
-		return contentReference;
-	}
-
-	/*
-	 * 
-	 */
-	public void setContentReference(ContentReference ref) {
-		this.contentReference = ref;
-	}
-
-
-	/*
-	 *
-	 */
-	public IFeature getFeature() {
-		return feature;
-	}
-
-	/*
-	 * 
-	 */
-	public void setFeature(IFeature feature) {
-		this.feature = feature;
-	}
-
-	/*
-	 * 
-	 */
-	public String getText() {
-		return null;
-	}
-
-
-	/*
-	 * 
-	 */
-	public boolean isFeatureVerification() {
-		return featureVerification;
-	}
-	
-	/*
-	 * 
-	 */
-	public void isFeatureVerification(boolean featureVerification) {
-		this.featureVerification = featureVerification;
-	}
-
-	/*
-	 *
-	 */
-	public boolean alreadySeen() {
-		return alreadySeen;
-	}
-
-	/*
-	 * 
-	 */
-	public boolean alreadySeen(boolean seen) {
-		return this.alreadySeen = seen;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerifier.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerifier.java
deleted file mode 100644
index 68fb28c..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerifier.java
+++ /dev/null
@@ -1,439 +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 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.update.internal.security;
-
-import java.io.*;
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-import java.util.*;
-import java.util.jar.*;
-import java.util.zip.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.core.Policy;
-
-/**
- * The JarVerifier will check the integrity of the JAR.
- * If the Jar is signed and the integrity is validated,
- * it will check if one of the certificate of each file
- * is in one of the keystore.
- *
- */
-
-public class JarVerifier extends Verifier {
-
-	private static final String MANIFEST = "META-INF"; //$NON-NLS-1$
-
-	private JarVerificationResult result;
-	private List /*of CertificatePair*/
-	trustedCertificates;
-	private boolean acceptUnsignedFiles;
-	private List /* of KeyStore */
-	listOfKeystores;
-	private IProgressMonitor monitor;
-	private File jarFile;
-
-	private static	byte[] buffer = new byte[8192];
-	
-	/*
-	 * Default Constructor
-	 */
-	public JarVerifier() {
-		initialize();
-	}
-
-	/*
-	 * Returns the list of the keystores.
-	 */
-	private List getKeyStores() throws CoreException {
-		if (listOfKeystores == null) {
-			listOfKeystores = new ArrayList(0);
-			KeyStores listOfKeystoreHandles = new KeyStores();
-			InputStream in = null;
-			KeyStore keystore = null;
-			KeystoreHandle handle = null;
-			while (listOfKeystoreHandles.hasNext()) {
-				try {
-					handle = listOfKeystoreHandles.next();
-					in = UpdateCore.getPlugin().get(handle.getLocation()).getInputStream();
-					try {
-						keystore = KeyStore.getInstance(handle.getType());
-						keystore.load(in, null); // no password
-					} catch (NoSuchAlgorithmException e) {
-						throw Utilities.newCoreException(Policy.bind("JarVerifier.UnableToFindEncryption", handle.getLocation().toExternalForm()), e); //$NON-NLS-1$
-					} catch (CertificateException e) {
-						throw Utilities.newCoreException(Policy.bind("JarVerifier.UnableToLoadCertificate", handle.getLocation().toExternalForm()), e); //$NON-NLS-1$
-					} catch (KeyStoreException e) {
-						throw Utilities.newCoreException(Policy.bind("JarVerifier.UnableToFindProviderForKeystore", handle.getType()), e); //$NON-NLS-1$
-					} finally {
-						if (in != null) {
-							try {
-								in.close();
-							} catch (IOException e) {
-							} // nothing
-						}
-					} // try loading a keyStore
-
-					// keystore was loaded
-					listOfKeystores.add(keystore);
-				} catch (IOException e) {
-					// nothing... if the keystore doesn't exist, continue	
-				}
-
-			} // while all key stores
-
-		}
-
-		return listOfKeystores;
-	}
-
-	/*
-	 * 
-	 */
-	private void initialize() {
-		result = null;
-		trustedCertificates = null;
-		acceptUnsignedFiles = false;
-		listOfKeystores = null;
-	}
-
-	/*
-	 * init
-	 */
-	private void init(IFeature feature, ContentReference contentRef) throws CoreException {
-		jarFile = null;
-		if (contentRef instanceof JarContentReference) {
-			JarContentReference jarReference = (JarContentReference) contentRef;
-			try {
-				jarFile = jarReference.asFile();
-				if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_INSTALL)
-					UpdateCore.debug("Attempting to read JAR file:"+jarFile); //$NON-NLS-1$
-			
-				// # of entries
-				if (!jarFile.exists()) throw new IOException();
-				JarFile jar = new JarFile(jarFile);
-				if (jar !=null){
-					try {
-						jar.close();
-					} catch (IOException ex) {
-						// unchecked
-					}
-				}
-			} catch (ZipException e){
-				throw Utilities.newCoreException(Policy.bind("JarVerifier.InvalidJar", jarReference.toString()), e); //$NON-NLS-1$				
-			} catch (IOException e) {
-				throw Utilities.newCoreException(Policy.bind("JarVerifier.UnableToAccessJar", jarReference.toString()), e); //$NON-NLS-1$
-			}
-		}
-
-		result = new JarVerificationResult();
-		result.setVerificationCode(IVerificationResult.UNKNOWN_ERROR);
-		result.setResultException(null);
-		result.setFeature(feature);
-		result.setContentReference(contentRef);
-	}
-
-	/*
-	 * Returns true if one of the certificate exists in the keystore
-	 */
-	private boolean existsInKeystore(Certificate cert) throws CoreException {
-		try {
-			List keyStores = getKeyStores();
-			if (!keyStores.isEmpty()) {
-				Iterator listOfKeystores = keyStores.iterator();
-				while (listOfKeystores.hasNext()) {
-					KeyStore keystore = (KeyStore) listOfKeystores.next();
-
-					if (keystore.getCertificateAlias(cert) != null) {
-						return true;
-					}
-				}
-			}
-		} catch (KeyStoreException e) {
-			throw Utilities.newCoreException(Policy.bind("JarVerifier.KeyStoreNotLoaded"), e); //$NON-NLS-1$
-		}
-		return false;
-	}
-
-	/*
-	 * 
-	 */
-	private List readJarFile(JarFile jarFile, String identifier)
-		throws IOException, InterruptedException {
-		List list = new ArrayList();
-
-		Enumeration entries = jarFile.entries();
-		JarEntry currentEntry = null;
-		InputStream in = null;
-		if (monitor != null)
-			monitor.setTaskName(Policy.bind("JarVerifier.Verify", identifier == null ? jarFile.getName(): identifier)); //$NON-NLS-1$ 
-
-		try {
-			while (entries.hasMoreElements()) {
-				currentEntry = (JarEntry) entries.nextElement();
-				list.add(currentEntry);
-				in = jarFile.getInputStream(currentEntry);
-				while ((in.read(buffer, 0, buffer.length)) != -1) {
-					// Security error thrown if tempered
-				}
-				if (in!=null)
-					in.close();
-			}
-		} catch (IOException e) {
-			result.setVerificationCode(IVerificationResult.UNKNOWN_ERROR);
-			result.setResultException(e);
-		} finally {
-			try {
-				if (in != null)
-					in.close();
-			} catch (IOException e1) {
-				// ignore
-			}
-		}
-
-		return list;
-	}
-
-	/*
-	 * @param newMonitor org.eclipse.core.runtime.IProgressMonitor
-	 */
-	public void setMonitor(IProgressMonitor newMonitor) {
-		monitor = newMonitor;
-	}
-
-	/*
-	 * @see IVerifier#verify(IFeature,ContentReference,boolean, InstallMonitor)
-	 */
-	public IVerificationResult verify(
-		IFeature feature,
-		ContentReference reference,
-		boolean isFeatureVerification,
-		InstallMonitor monitor)
-		throws CoreException {
-
-		if (reference == null)
-			return result;
-
-		// if parent knows how to verify, ask the parent first
-		if (getParent() != null) {
-			IVerificationResult vr =
-				getParent().verify(feature, reference, isFeatureVerification, monitor);
-			if (vr.getVerificationCode() != IVerificationResult.TYPE_ENTRY_UNRECOGNIZED)
-				return vr;
-		}
-
-		// the parent couldn't verify
-		setMonitor(monitor);
-		init(feature, reference);
-		result.isFeatureVerification(isFeatureVerification);
-
-		if (jarFile!=null) {
-				result = verify(jarFile.getAbsolutePath(), reference.getIdentifier());
-		} else {
-			result.setVerificationCode(IVerificationResult.TYPE_ENTRY_UNRECOGNIZED);
-		}
-
-		return result;
-	}
-
-	/*
-	 * 
-	 */
-	private JarVerificationResult verify(String file, String identifier) {
-
-		try {
-
-			// verify integrity
-			verifyIntegrity(file, identifier);
-
-			// do not close input stream
-			// as verifyIntegrity already did it
-
-			//if user already said yes
-			result.alreadySeen(alreadyValidated());
-
-			// verify source certificate
-			if (result.getVerificationCode()
-				== IVerificationResult.TYPE_ENTRY_SIGNED_UNRECOGNIZED) {
-				verifyAuthentication();
-			}
-
-			// save the fact the file is not signed, so the user will not be prompted again 
-			if (result.getVerificationCode()
-				== IVerificationResult.TYPE_ENTRY_NOT_SIGNED) {
-				acceptUnsignedFiles = true;
-			}
-
-		} catch (Exception e) {
-			result.setVerificationCode(IVerificationResult.UNKNOWN_ERROR);
-			result.setResultException(e);
-		}
-
-		if (monitor != null) {
-			monitor.worked(1);
-			if (monitor.isCanceled()) {
-				result.setVerificationCode(IVerificationResult.VERIFICATION_CANCELLED);
-			}
-		}
-
-		return result;
-	}
-
-	/*
-	 * Verifies that each file has at least one certificate
-	 * valid in the keystore
-	 *
-	 * At least one certificate from each Certificate Array
-	 * of the Jar file must be found in the known Certificates
-	 */
-	private void verifyAuthentication() throws CoreException {
-
-		CertificatePair[] entries = result.getRootCertificates();
-		boolean certificateFound = false;
-
-		// If all the certificate of an entry are
-		// not found in the list of known certifcate
-		// the certificate is not trusted by any keystore.
-		for (int i = 0; i < entries.length; i++) {
-			certificateFound = existsInKeystore(entries[i].getRoot());
-			if (certificateFound) {
-				result.setVerificationCode(IVerificationResult.TYPE_ENTRY_SIGNED_RECOGNIZED);
-				result.setFoundCertificate(entries[i]);
-				return;
-			}
-		}
-	}
-
-	/*
-	 * Verifies the integrity of the JAR
-	 */
-	private void verifyIntegrity(String file, String identifier) {
-
-		JarFile jarFile = null;
-
-		try {
-			// If the JAR is signed and not valid
-			// a security exception will be thrown
-			// while reading it
-			jarFile = new JarFile(file, true);
-			List filesInJar = readJarFile(jarFile, identifier);
-
-			// you have to read all the files once
-			// before getting the certificates 
-			if (jarFile.getManifest() != null) {
-				Iterator iter = filesInJar.iterator();
-				boolean certificateFound = false;
-				while (iter.hasNext()) {
-					JarEntry currentJarEntry = (JarEntry) iter.next();
-					Certificate[] certs = currentJarEntry.getCertificates();
-					if ((certs != null) && (certs.length != 0)) {
-						certificateFound = true;
-						result.addCertificates(certs);
-					} else {
-						String jarEntryName = currentJarEntry.getName();
-						if (!jarEntryName.toUpperCase().startsWith(MANIFEST)
-							&& !currentJarEntry.isDirectory()) {
-							// if the jarEntry is not in MANIFEST, consider the whole file unsigned							
-							break;
-						}
-
-					}
-				}
-
-				if (certificateFound)
-					result.setVerificationCode(IVerificationResult.TYPE_ENTRY_SIGNED_UNRECOGNIZED);
-				else
-					result.setVerificationCode(IVerificationResult.TYPE_ENTRY_NOT_SIGNED);
-			} else {
-				Exception e = new Exception(Policy.bind("JarVerifier.InvalidFile", file)); //$NON-NLS-1$
-				result.setResultException(e);
-				result.setVerificationCode(IVerificationResult.TYPE_ENTRY_NOT_SIGNED);
-				UpdateCore.warn(null,e);
-			}
-		} catch (SecurityException e) {
-			// Jar file is signed
-			// but content has changed since signed
-			result.setVerificationCode(IVerificationResult.TYPE_ENTRY_CORRUPTED);
-		} catch (InterruptedException e) {
-			result.setVerificationCode(IVerificationResult.VERIFICATION_CANCELLED);
-		} catch (Exception e) {
-			result.setVerificationCode(IVerificationResult.UNKNOWN_ERROR);
-			result.setResultException(e);
-		} finally {
-			if (jarFile!=null){
-				try {jarFile.close();} catch (IOException e){}
-			}
-		}
-
-	}
-
-	/*
-	 * 
-	 */
-	private boolean alreadyValidated() {
-
-		if (result.getVerificationCode() == IVerificationResult.TYPE_ENTRY_NOT_SIGNED)
-			return (acceptUnsignedFiles);
-
-		if (getTrustedCertificates() != null) {
-			Iterator iter = getTrustedCertificates().iterator();
-			CertificatePair[] jarPairs = result.getRootCertificates();
-
-			// check if this is not a user accepted certificate for this feature	
-			while (iter.hasNext()) {
-				CertificatePair trustedCertificate = (CertificatePair) iter.next();
-				for (int i = 0; i < jarPairs.length; i++) {
-					if (trustedCertificate.equals(jarPairs[i])) {
-						return true;
-					}
-				}
-			}
-
-			// if certificate pair not found in trusted add it for next time
-			for (int i = 0; i < jarPairs.length; i++) {
-				addTrustedCertificate(jarPairs[i]);
-			}
-		}
-
-		return false;
-	}
-
-	/*
-	 * 
-	 */
-	private void addTrustedCertificate(CertificatePair pair) {
-		if (trustedCertificates == null)
-			trustedCertificates = new ArrayList();
-		if (pair != null)
-			trustedCertificates.add(pair);
-	}
-
-	/*
-	 * 
-	 */
-	private List getTrustedCertificates() {
-		if (trustedCertificates == null)
-			trustedCertificates = new ArrayList();
-		return trustedCertificates;
-	}
-
-	/**
-	 * @see IVerifier#setParent(IVerifier)
-	 */
-	public void setParent(IVerifier parentVerifier) {
-		super.setParent(parentVerifier);
-		initialize();
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/KeyStores.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/KeyStores.java
deleted file mode 100644
index ad63366..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/KeyStores.java
+++ /dev/null
@@ -1,211 +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 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.update.internal.security;
-
-import java.io.*;
-import java.net.*;
-import java.security.*;
-import java.util.*;
-
-import org.eclipse.update.internal.core.*;
-/**
- * Class to manage the different KeyStores we should
- * check for certificates of Signed JAR
- */
-public class KeyStores {
-
-
-	/**
-	 * java.policy files properties of the java.security file
-	 */
-	private static final String JAVA_POLICY_URL = "policy.url."; //$NON-NLS-1$
-
-	/**
-	 * Default keystore type in java.security file
-	 */	
-    private static final String DEFAULT_KEYSTORE_TYPE = "keystore.type"; //$NON-NLS-1$
-
-	/**
-	 * List of KeystoreHandle pointing of valid KeyStores
-	 * the URL of the KeystoreHandle is not tested yet...
-	 */
-	private List /* of KeystoreHandle */ listOfKeyStores;
-
-	/**
-	 * Iterator
-	 */
-	private Iterator iterator;
-	/**
-	 * KeyStores constructor comment.
-	 */
-	public KeyStores() {
-		super();
-		initializeDefaultKeyStores();
-	}
-	/**
-	 * 
-	 */
-	private Iterator getIterator() {
-		if (iterator == null)
-			iterator = listOfKeyStores.iterator();
-		return iterator;
-	}
-	/**
-	 * returns trus if there is more Keystores in the list
-	 */
-	public boolean hasNext() {
-		return getIterator().hasNext();
-	}
-	/**
-	 * populate the list of Keystores
-	 * should be done with Dialog with Cancel/Skip button if
-	 * the connection to the URL is down...
-	 */
-	private void initializeDefaultKeyStores() {
-
-		listOfKeyStores = new ArrayList(5);
-
-		// get JRE cacerts
-		try {
-			URL url = new URL("file", null, 0, System.getProperty("java.home") + File.separator + "lib" + File.separator + "security" + File.separator + "cacerts");  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-			listOfKeyStores.add(new KeystoreHandle(url,Security.getProperty(DEFAULT_KEYSTORE_TYPE)));
-		}
-		catch (MalformedURLException e) {
-			// should not happen, hardcoded...
-		}
-
-		// get java.home .keystore
-		try {
-			URL url = new URL("file", null, 0, System.getProperty("user.home") + File.separator + ".keystore"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			listOfKeyStores.add(new KeystoreHandle(url,Security.getProperty(DEFAULT_KEYSTORE_TYPE)));
-		}
-		catch (MalformedURLException e) {
-			// should not happen, hardcoded...
-		}
-
-		// get KeyStores from policy files...
-		int index = 1;
-		String java_policy = Security.getProperty(JAVA_POLICY_URL+index);
-		while (java_policy!=null){
-			// retrieve keystore url from java.policy
-			// also retrieve keystore type
-			KeystoreHandle keystore = getKeystoreFromLocation(java_policy);
-			if (keystore!=null){
-				listOfKeyStores.add(keystore);
-			}
-			index++;	
-			java_policy = Security.getProperty(JAVA_POLICY_URL+index);			
-		}
-
-	}
-	/**
-	 * returns the URL for the Next KeystoreHandle
-	 */
-	public KeystoreHandle next() {
-		return (KeystoreHandle) getIterator().next();
-	}
-	
-	/**
-	 * retrieve the keystore from java.policy file
-	 */
-	private KeystoreHandle getKeystoreFromLocation(String location){
-		
-		InputStream in = null;
-		char[] buff = new char[4096];
-		
-		
-		int indexOf$ = location.indexOf("${"); //$NON-NLS-1$
-		int indexOfCurly = location.indexOf('}',indexOf$);
-		if (indexOf$!=-1 && indexOfCurly!=-1){
-			String prop = System.getProperty(location.substring(indexOf$+2,indexOfCurly));
-			String location2 = location.substring(0,indexOf$);
-			location2 += prop;
-			location2 += location.substring(indexOfCurly+1);
-			location = location2;
-		}
-		
-		
-		try {
-			URL url = new URL(location);
-			in = UpdateCore.getPlugin().get(url).getInputStream();
-			Reader reader = new InputStreamReader(in);
-			int result = reader.read(buff);
-			StringBuffer contentBuff = new StringBuffer();
-			while (result!=-1){
-				contentBuff.append(buff,0,result);
-				result = reader.read(buff);				
-			}
-
-			if (contentBuff.length()>0){			
-				String content = new String(contentBuff);
-				int indexOfKeystore = content.indexOf("keystore"); //$NON-NLS-1$
-				if (indexOfKeystore != -1){
-					int indexOfSemiColumn = content.indexOf(';',indexOfKeystore);
-					return getKeystoreFromString(content.substring(indexOfKeystore,indexOfSemiColumn),url);
-				}
-			}
-		} catch (MalformedURLException e){
-			log(e);
-		} catch (IOException e){
-			// url.openStream, reader.read (x2)
-			// only log, the keystore may not exist
-			log(e);	
-		} finally {
-			if (in!=null){
-				try {
-					in.close();
-				} catch (IOException e){}
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * retrieve the keystore from java.policy file
-	 */
-	private KeystoreHandle getKeystoreFromString(String content,URL rootURL){
-		KeystoreHandle handle = null;
-		String keyStoreType = Security.getProperty(DEFAULT_KEYSTORE_TYPE);
-		
-		
-		int indexOfSpace = content.indexOf(' ');
-		if (indexOfSpace==-1) return null;
-		
-		int secondSpace = content.lastIndexOf(',');
-		if (secondSpace==-1) {
-			secondSpace = content.length();
-		} else {
-			keyStoreType = content.substring(secondSpace+1,content.length()).trim();
-		}
-		
-		URL url = null;
-		try {
-			url = new URL(content.substring(indexOfSpace,secondSpace));
-		} catch (MalformedURLException e){
-			log(e);
-			// the url maybe relative
-			try {
-			url = new URL(rootURL,content.substring(indexOfSpace,secondSpace));				
-			} catch (MalformedURLException e1){
-				log(e1);			
-			}
-		}
-
-		if (url!=null)
-			handle = new KeystoreHandle(url,keyStoreType);				
-			
-		return handle;
-	}	
-	
-	private void log(Exception e){
-		UpdateCore.warn("Cannot retrieve a KeyStore",e); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/KeystoreHandle.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/KeystoreHandle.java
deleted file mode 100644
index 45605ed..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/security/KeystoreHandle.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.security;
-
-import java.net.*;
-
-
- 
-/**
- * Manages a handle to a keystore
- */
-public class KeystoreHandle {
-	
-	private URL location;
-	private String type;
-	
-	public KeystoreHandle(URL url, String type){
-		this.location = url;
-		this.type = type;
-	}
-
-	/**
-	 * Gets the location.
-	 * @return Returns a URL
-	 */
-	public URL getLocation() {
-		return location;
-	}
-
-	/**
-	 * Sets the location.
-	 * @param location The location to set
-	 */
-	public void setLocation(URL location) {
-		this.location = location;
-	}
-
-	/**
-	 * Gets the type.
-	 * @return Returns a String
-	 */
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * Sets the type.
-	 * @param type The type to set
-	 */
-	public void setType(String type) {
-		this.type = type;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IBatchOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IBatchOperation.java
deleted file mode 100644
index 506c236..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IBatchOperation.java
+++ /dev/null
@@ -1,32 +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 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.update.operations;
-
-/**
- * A batch operation is needed to execute a group of feature operations, such as installing a set of features.
- * In fact, for installing features, it is recommended to wrap individual feature install operations as a 
- * batch operation, to ensure proper validation and configuration saving.
- * <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>
- * @since 3.0
- */
-public interface IBatchOperation  extends IOperation {
-	/**
-	 * Returns the batched operations.
-	 * @return the batched operations
-	 */
-	public abstract IFeatureOperation[] getOperations();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IConfigFeatureOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IConfigFeatureOperation.java
deleted file mode 100644
index 0fb3ea3..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IConfigFeatureOperation.java
+++ /dev/null
@@ -1,25 +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 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.update.operations;
-
-/**
- * Operation that enables a feature in a configuration.
- * <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>
- * @since 3.0
- */
-public interface IConfigFeatureOperation extends IFeatureOperation {
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IFeatureOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IFeatureOperation.java
deleted file mode 100644
index 6bf988a..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IFeatureOperation.java
+++ /dev/null
@@ -1,48 +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 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.update.operations;
-
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-
-/**
- * An operation that applies to a feature, such as install, uninstall, etc.
- * <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>
- * @since 3.0
- */
-public interface IFeatureOperation extends IOperation {
-	/**
-	 * Returns the feature to operate on.
-	 * @return the feature to operate on.
-	 */
-	public abstract IFeature getFeature();
-	/**
-	 * Returns the site in which the operation is applied.
-	 * @return the site that owns or will own the feature.
-	 */
-	public abstract IConfiguredSite getTargetSite();
-	/**
-	 * Returns the previous version of the feature (if any).
-	 * @return the previous installed version of a feature (if any).
-	 */
-	public abstract IFeature getOldFeature();
-	/**
-	 * Sets the site in which the feature is being operated on.
-	 * @param targetSite the site in which the featre is being operated on.
-	 */
-	public abstract void setTargetSite(IConfiguredSite targetSite);
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IInstallFeatureOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IInstallFeatureOperation.java
deleted file mode 100644
index 39db7b6..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IInstallFeatureOperation.java
+++ /dev/null
@@ -1,35 +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 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.update.operations;
-
-import org.eclipse.update.core.*;
-
-/**
- * An installation operation. This operation should not be executed by itself, it should be 
- * aggregated into a IBatchOperation, together with other IInstallOperations, so that the
- * validation checks are done on the group, not per installation job.
- * <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>
- * @since 3.0
- */
-public interface IInstallFeatureOperation extends IFeatureOperation {
-	/**
-	 * If the feature includes optional features, thi method returns the list 
-	 * of optional features to be installed.
-	 * @return the list of optional features to be installed.
-	 */
-	public IFeatureReference[] getOptionalFeatures();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperation.java
deleted file mode 100644
index 8d65e2e..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperation.java
+++ /dev/null
@@ -1,47 +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 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.update.operations;
-
-import java.lang.reflect.*;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * Base update manager operation.
- * <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>
- * @since 3.0
- */
-public interface IOperation {
-	/**
-	 * Returns true when the operation has been processed.
-	 * @return true when the operation completed.
-	 */
-	public abstract boolean isProcessed();
-	/**
-	 * Marks the operation as processed.
-	 */
-	public abstract void markProcessed();
-	/**
-	 * Executes operation.
-	 * @param pm Progress monitor for the operation
-	 * @param listener Operation listener
-	 * @return true if operation was successful and a restart is needed.
-	 * @throws CoreException
-	 * @throws InvocationTargetException
-	 */
-	public abstract boolean execute(IProgressMonitor pm, IOperationListener listener) throws CoreException, InvocationTargetException;
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationFactory.java
deleted file mode 100644
index 690f3a8..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationFactory.java
+++ /dev/null
@@ -1,109 +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 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.update.operations;
-
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-
-/**
- * A factory interface for creating operations.
- * <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>
- * @since 3.0
- */
-public interface IOperationFactory {
-	/**
-	 * Creates an operation for configuring an installed feature in the specified site.
-	 * @param targetSite site containing the feature to configure
-	 * @param feature feature to be configured
-	 * @return the configure operation
-	 */
-	public IConfigFeatureOperation createConfigOperation(
-		IConfiguredSite targetSite,
-		IFeature feature);
-		
-	/**
-	 * Creates an operation for unconfiguring a feature
-	 * @param targetSite site containing the feature to unconfigure
-	 * @param feature feature to be unconfigured
-	 * @return the unconfigure operation
-	 */
-	public IUnconfigFeatureOperation createUnconfigOperation(
-		IConfiguredSite targetSite,
-		IFeature feature);
-	
-	/**
-	 * Creates an operation for installing a feature.
-	 * @param targetSite site in which the feature is to be installed
-	 * @param feature feature to be installed
-	 * @param optionalFeatures optionally included features to be installed (if any)
-	 * @param unconfiguredOptionalFeatures when installing optional features, some can be left unconfigured
-	 * @param verifier operation verification listener
-	 * @return the install operation
-	 */
-	public IInstallFeatureOperation createInstallOperation(
-		IConfiguredSite targetSite,
-		IFeature feature,
-		IFeatureReference[] optionalFeatures,
-		IFeature[] unconfiguredOptionalFeatures,
-		IVerificationListener verifier);
-		
-	/**
-	 * Creates an operation to uninstall a feature
-	 * @param targetSite site containing the feature to uninstall
-	 * @param feature feature to be uninstalled
-	 * @return the uninstall operation
-	 */
-	public IUninstallFeatureOperation createUninstallOperation(
-		IConfiguredSite targetSite,
-		IFeature feature);
-		
-	/**
-	 * Creates an operation for replacing this feature by a previous version
-	 * @param feature current feature
-	 * @param anotherFeature the new feature to be swapped in
-	 * @return the revert feature version operation
-	 */
-	public IConfigFeatureOperation createReplaceFeatureVersionOperation(
-		IFeature feature,
-		IFeature anotherFeature);
-		
-	/**
-	 * Creates an operation for executing a set of feature operation in batch mode
-	 * @param operations operation to execute in batch mode	
-	 * @return the batch operation
-	 */
-	public IBatchOperation createBatchInstallOperation(IInstallFeatureOperation[] operations);
-	
-	/**
-	 * Creates ann operation to configure/unconfigure an installation site (also known as enable/disable site)
-	 * @param site site to configure/unconfigure
-	 * @return the toggle site operation
-	 */
-	public IToggleSiteOperation createToggleSiteOperation(
-		IConfiguredSite site);
-		
-
-	/**
-	 * Creates an operation to revert to a previous installation configuration.
-	 * @param config configuration to revert to
-	 * @param problemHandler error handler
-	 * @return the revert operation
-	 */
-	public IRevertConfigurationOperation createRevertConfigurationOperation(
-		IInstallConfiguration config,
-		IProblemHandler problemHandler);
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationListener.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationListener.java
deleted file mode 100644
index 90f2dd4..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationListener.java
+++ /dev/null
@@ -1,40 +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 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.update.operations;
-
-/**
- * Listener for the operation lifecycle. This allows listeners to execute certain code before an operation
- * starts, or after it completes.
- * <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>
- * @since 3.0
- */
-public interface IOperationListener {
-	/**
-	 * May be called before an operation starts executing.
-	 * @param operation operation to listen to
-	 * @param data info specific to the operation
-	 * @return not used
-	 */
-	public boolean beforeExecute(IOperation operation, Object data);
-	/**
-	 * May be called after an operation finishes executing.
-	 * @param operation operation to listen to 
-	 * @param data info specific to the operation
-	 * @return not used
-	 */
-	public boolean afterExecute(IOperation operation, Object data);
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationValidator.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationValidator.java
deleted file mode 100644
index 9079a16..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IOperationValidator.java
+++ /dev/null
@@ -1,78 +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 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.update.operations;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-
-/**
- * This class contains various validation methods to be invoked before or during executing update manager
- * operations.
- * <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>
- * @since 3.0
- */
-public interface IOperationValidator {
-
-	/**
-	 * Called before performing install.
-	 * @return the error status, or null if no errors
-	 */
-	public IStatus validatePendingInstall(IFeature oldFeature, IFeature newFeature);
-
-	/**
-	 * Called before performing operation.
-	 * @return the error status, or null if no errors
-	 */
-	public IStatus validatePendingConfig(IFeature feature);
-	
-	/**
-	 * Called before performing operation.
-	 * @return the error status, or null if no errors
-	 */
-	public IStatus validatePendingUnconfig(IFeature feature);
-	
-	/**
-	 * Called before performing operation.
-	 * @return the error status, or null if no errors
-	 */
-	public IStatus validatePendingReplaceVersion(IFeature feature, IFeature anotherFeature);
-	
-	/**
-	 * Called before doing a revert/ restore operation
-	 * @return the error status, or null if no errors
-	 */
-	public IStatus validatePendingRevert(IInstallConfiguration config);
-
-	/**
-	 * Called by the UI before doing a batched processing of
-	 * several pending changes.
-	 * @return the error status, or null if no errors
-	 */
-	public IStatus validatePendingChanges(IInstallFeatureOperation[] jobs);
-
-	/**
-	 * Check the current state.
-	 * @return the error status, or null if no errors
-	 */
-	public IStatus validateCurrentState();
-	
-	/**
-	 * Checks if the platform configuration has been modified outside this program.
-	 * @return the error status, or null if no errors
-	 */
-	public IStatus validatePlatformConfigValid();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IReplaceFeatureVersionOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IReplaceFeatureVersionOperation.java
deleted file mode 100644
index 865234b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IReplaceFeatureVersionOperation.java
+++ /dev/null
@@ -1,25 +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 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.update.operations;
-
-/**
- * Operation that replaces a current feature by another version.
- * <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>
- * @since 3.0
- */
-public interface IReplaceFeatureVersionOperation extends IFeatureOperation {
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IRevertConfigurationOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IRevertConfigurationOperation.java
deleted file mode 100644
index 866adf3..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IRevertConfigurationOperation.java
+++ /dev/null
@@ -1,24 +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 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.update.operations;
-
-/**
- * An operation in which the current configuration is replaced by a previous one.
- * <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>
- * @since 3.0
- */
-public interface IRevertConfigurationOperation extends IOperation {
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IToggleSiteOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IToggleSiteOperation.java
deleted file mode 100644
index 3f1640a..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IToggleSiteOperation.java
+++ /dev/null
@@ -1,24 +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 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.update.operations;
-
-/**
- * An operation in which the unconfigured/configured state of a site is toggled.
- * <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>
- * @since 3.0
- */
-public interface IToggleSiteOperation extends IOperation {
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IUnconfigFeatureOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IUnconfigFeatureOperation.java
deleted file mode 100644
index 4805a04..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IUnconfigFeatureOperation.java
+++ /dev/null
@@ -1,26 +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 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.update.operations;
-
-/**
- * An operation that disables (unconfigure) a feature in a site.
- * <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>
- * @since 3.0
- */
-public interface IUnconfigFeatureOperation  extends IFeatureOperation {
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IUninstallFeatureOperation.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IUninstallFeatureOperation.java
deleted file mode 100644
index 7953b6c..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IUninstallFeatureOperation.java
+++ /dev/null
@@ -1,27 +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 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.update.operations;
-
-
-/**
- * A feature uninstall operation. The feature is removed from the disk when uninstalled.
- * <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>
- * @since 3.0
- */
-public interface IUninstallFeatureOperation extends IFeatureOperation {
-	public final static String UNINSTALL = "uninstall"; //$NON-NLS-1$
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IUpdateModelChangedListener.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/IUpdateModelChangedListener.java
deleted file mode 100644
index b16b727..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/IUpdateModelChangedListener.java
+++ /dev/null
@@ -1,45 +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 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.update.operations;
-
-/**
- * Listener for update model changes. 
- * Usually, when features are installed, configured, etc.
- * a GUI may need to update its state, so it will have to register
- * with the OperationsManager for update events.
- * <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>
- * @since 3.0
- */
-public interface IUpdateModelChangedListener {
-	/**
-	 * Called after a feature/site/etc. is added
-	 * @param parent parent object
-	 * @param children added children
-	 */
-	public void objectsAdded(Object parent, Object [] children);
-	/**
-	 * Called after a feature/site/etc. is removed.
-	 * @param parent parent object
-	 * @param children removed children
-	 */
-	public void objectsRemoved(Object parent, Object [] children);
-	/**
-	 * Called when there are changes to a site/feature/etc.
-	 * @param object object that changed
-	 * @param property object property that changed
-	 */
-	public void objectChanged(Object object, String property);
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/OperationsManager.java b/update/org.eclipse.update.core/src/org/eclipse/update/operations/OperationsManager.java
deleted file mode 100644
index 81ce315..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/OperationsManager.java
+++ /dev/null
@@ -1,244 +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 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.update.operations;
-
-import java.util.*;
-
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.configurator.*;
-import org.eclipse.update.internal.operations.*;
-
-/**
- * Entry point for update manager operations. Use this class to obtain the factory that creates
- * update manager operations, or to get the operation validator.
- * <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>
- * @since 3.0
- */
-public class OperationsManager {
-	private static IOperationValidator validator;
-	private static IOperationFactory operationFactory;
-	private static Vector listeners = new Vector();
-	private static Vector pendingOperations = new Vector();
-	
-	private static boolean inProgress;
-
-	private OperationsManager() {
-	}
-	
-	/**
-	 * Each update operations must be created by the operation factory. 
-	 * Use this method to obtain the factory.
-	 * @return returns the operation factory
-	 */
-	public static IOperationFactory getOperationFactory() {
-		if (operationFactory == null)
-			operationFactory = new OperationFactory();
-		return operationFactory;
-	}
-
-	/**
-	 * Check if the feature is the subject of an update operation such as install,
-	 * configure, etc. and return it. Currently there can only be one pending
-	 * operation on a feature.
-	 * @param feature feature to check for pending operations
-	 * @return pending operation if any, otherwise null.
-	 */
-	public static IFeatureOperation findPendingOperation(IFeature feature) {
-		for (int i = 0; i < pendingOperations.size(); i++) {
-			IFeatureOperation operation =
-				(IFeatureOperation) pendingOperations.elementAt(i);
-			if (operation.getFeature().equals(feature))
-				return operation;
-		}
-		return null;
-	}
-	
-	/**
-	 * Register a pending operation.
-	 * @param operation pending operation
-	 */
-	public static void addPendingOperation(IOperation operation) {
-		pendingOperations.add(operation);
-		//fireObjectsAdded(this, new Object[] { change });
-	}
-
-	/**
-	 * Unregister a pending operation.
-	 * @param operation pending operation
-	 */
-	public static void removePendingOperation(IOperation operation) {
-		pendingOperations.remove(operation);
-		//fireObjectsRemoved(this, new Object[] { change });
-	}
-
-	/**
-	 * Adds a model changed listener.
-	 * @param listener update model change listener
-	 */
-	public static void addUpdateModelChangedListener(IUpdateModelChangedListener listener) {
-		if (!listeners.contains(listener))
-			listeners.add(listener);
-	}
-
-	/**
-	 * Removes an model changed listener.
-	 * @param listener update model change listener
-	 */
-	public static void removeUpdateModelChangedListener(IUpdateModelChangedListener listener) {
-		if (listeners.contains(listener))
-			listeners.remove(listener);
-	}
-
-	/**
-	 * Notifies model changed listeners when features/sites/etc. are added.
-	 * @param parent parent object
-	 * @param children children added
-	 */
-	public static void fireObjectsAdded(Object parent, Object[] children) {
-		for (Iterator iter = listeners.iterator(); iter.hasNext();) {
-			IUpdateModelChangedListener listener =
-				(IUpdateModelChangedListener) iter.next();
-			listener.objectsAdded(parent, children);
-		}
-	}
-
-	/**
-	 * Notifies model changed listeners when features/sites/etc are removed.
-	 * @param parent parent object
-	 * @param children children removed
-	 */
-	public static void fireObjectsRemoved(Object parent, Object[] children) {
-		for (Iterator iter = listeners.iterator(); iter.hasNext();) {
-			IUpdateModelChangedListener listener =
-				(IUpdateModelChangedListener) iter.next();
-			listener.objectsRemoved(parent, children);
-		}
-	}
-
-	/**
-	 * Notifies model changed listeners when features/sites/etc. have changed.
-	 * @param object changed object
-	 * @param property changed object property
-	 */
-	public static void fireObjectChanged(Object object, String property) {
-		for (Iterator iter = listeners.iterator(); iter.hasNext();) {
-			IUpdateModelChangedListener listener =
-				(IUpdateModelChangedListener) iter.next();
-			listener.objectChanged(object, property);
-		}
-	}
-
-	/**
-	 * Returns true when any of the install operations requires a license agreement.
-	 * @param jobs features to install
-	 * @return true when any of the features to install have a license
-	 */
-	public static boolean hasSelectedJobsWithLicenses(IInstallFeatureOperation[] jobs) {
-		for (int i = 0; i < jobs.length; i++) {
-			if (UpdateUtils.hasLicense(jobs[i].getFeature()))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Returns true when any of the features to install has optional features.
-	 * @param jobs features to install
-	 * @return true when any of the features has optional features
-	 */
-	public static boolean hasSelectedJobsWithOptionalFeatures(IInstallFeatureOperation[] jobs) {
-		for (int i = 0; i < jobs.length; i++) {
-			if (UpdateUtils.hasOptionalFeatures(jobs[i].getFeature()))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the list of operations that need a license agreement.
-	 * @param jobs features to install
-	 * @return the list of operation that need a license agreement
-	 */
-	public static IInstallFeatureOperation[] getSelectedJobsWithLicenses(IInstallFeatureOperation[] jobs) {
-		ArrayList list = new ArrayList();
-		for (int i = 0; i < jobs.length; i++) {
-			if (UpdateUtils.hasLicense(jobs[i].getFeature()))
-				list.add(jobs[i]);
-		}
-		return (IInstallFeatureOperation[]) list.toArray(
-			new IInstallFeatureOperation[list.size()]);
-	}
-
-	/**
-	 * Returns the list of operations that have optional features to install.
-	 * @param jobs features to install
-	 * @return list of operations that have optional features to install
-	 */
-	public static IInstallFeatureOperation[] getSelectedJobsWithOptionalFeatures(IInstallFeatureOperation[] jobs) {
-		ArrayList list = new ArrayList();
-		for (int i = 0; i < jobs.length; i++) {
-			if (UpdateUtils.hasOptionalFeatures(jobs[i].getFeature()))
-				list.add(jobs[i]);
-		}
-		return (IInstallFeatureOperation[]) list.toArray(
-			new IInstallFeatureOperation[list.size()]);
-	}
-	
-	/**
-	 * Sets whether any operations is in progress.
-	 * @param inProgress true when operation is in progress
-	 */
-	public static synchronized void setInProgress(boolean inProgress) {
-		OperationsManager.inProgress = inProgress;
-	}
-	
-	/**
-	 * Returns true when some operation is being executed, false otherwise.
-	 * @return true when some operation execution is in progress, false otherwise
-	 */
-	public static synchronized boolean isInProgress() {
-		return inProgress;
-	}
-
-	/**
-	 * Returns the operations validator.
-	 * @return the operation validator
-	 */
-	public static IOperationValidator getValidator() {
-		if (validator == null)
-			validator = new OperationValidator();
-		return validator;
-	}
-	
-	/**
-	 * Sets a custom operation validator
-	 * @param validator the custom validator
-	 */
-	public static void setValidator(IOperationValidator validator) {
-		OperationsManager.validator = validator;
-	}
-	
-	/**
-	 * Applies the changes made to the current configuration. 
-	 * Care must be taken when using this method. Normally, if you install a new
-	 * plugin it is safe to do it.
-	 */
-	public static void applyChangesNow() {
-		ConfigurationActivator configurator = ConfigurationActivator.getConfigurator();
-		configurator.installBundles();
-		pendingOperations.clear();
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/operations/package.html b/update/org.eclipse.update.core/src/org/eclipse/update/operations/package.html
deleted file mode 100644
index 277f616..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/operations/package.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.72 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for performing various install/update operations.
-<h2>
-Package Specification</h2>
-This package contains interfaces for performing update/install operations 
-without using the Update Manager user interface. 
-<p>
-<b>Note:</b> This package 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>
-</body>
-</html>
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/BackLevelFilter.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/BackLevelFilter.java
deleted file mode 100644
index 57ebffb..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/BackLevelFilter.java
+++ /dev/null
@@ -1,52 +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 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.update.search;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.operations.*;
-
-/**
- * This class can be added to the update search request
- * to filter out features that are back-level (are
- * older or the same as the features already installed).
- * 
- * <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>
- * @see UpdateSearchRequest
- * @see IUpdateSearchFilter
- * @since 3.0
- */
-public class BackLevelFilter extends BaseFilter {
-	public boolean accept(IFeatureReference match) {
-		try {
-			PluginVersionIdentifier matchVid = match.getVersionedIdentifier().getVersion();
-			IFeature [] installed = UpdateUtils.getInstalledFeatures(match.getVersionedIdentifier(), false);
-			if (installed.length==0) return true;
-			
-			for (int i=0; i<installed.length; i++) {
-				PluginVersionIdentifier ivid = installed[i].getVersionedIdentifier().getVersion();
-				if (matchVid.isGreaterThan(ivid))
-					continue;
-				// installed version is the same or newer than
-				// the match - filter out
-				return false;
-			}
-			return true;
-		} catch (CoreException e) {
-			return false;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/BaseFilter.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/BaseFilter.java
deleted file mode 100644
index 916f494..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/BaseFilter.java
+++ /dev/null
@@ -1,38 +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 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.update.search;
-
-import org.eclipse.update.core.*;
-
-/**
- * Base filter class
- * 
- * <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>
- * @see UpdateSearchRequest
- * @see IUpdateSearchFilter
- * @since 3.0
- */
-public class BaseFilter implements IUpdateSearchFilter {
-    /**
-     * @deprecated In 3.1 only the accept (IFeatureReference) will be used
-     */
-	public boolean accept(IFeature match) {
-		return true;
-	}
-	public boolean accept(IFeatureReference match) {
-		return true;
-	}	
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/EnvironmentFilter.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/EnvironmentFilter.java
deleted file mode 100644
index 6881e64..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/EnvironmentFilter.java
+++ /dev/null
@@ -1,35 +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 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.update.search;
-
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * This class can be added to the update search request
- * to filter out features that do not match the current
- * environment settings.
- * 
- * <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>
- * @see UpdateSearchRequest
- * @see IUpdateSearchFilter
- * @since 3.0
- */
-public class EnvironmentFilter extends BaseFilter {
-	public boolean accept(IFeatureReference match) {
-		return UpdateManagerUtils.isValidEnvironment(match);
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/IQueryUpdateSiteAdapter.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/IQueryUpdateSiteAdapter.java
deleted file mode 100644
index 17a753b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/IQueryUpdateSiteAdapter.java
+++ /dev/null
@@ -1,35 +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 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.update.search;
-
-/**
- * This interface is used for update site adapter used 
- * for specific query serches. It adds a mapping ID 
- * that can be used when mapping file is specified.
- * If a matching mapping is found for this ID, 
- * the replacement URL found in the mapping file will be
- * used instead of this adapter.
- * <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>
- * @since 3.0
- */
-public interface IQueryUpdateSiteAdapter extends IUpdateSiteAdapter {
-/**
- * Returns an ID that can be used for matching against the information in the address mapping file.
- * @return a mapping Id to compare against the address mapping file.
- */
-	public String getMappingId();
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchCategory.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchCategory.java
deleted file mode 100644
index b9c4ad4..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchCategory.java
+++ /dev/null
@@ -1,46 +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 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.update.search;
-
-/**
- * This interface is used to encapsulate a particular Update
- * search pattern. Each search category is free to scan
- * sites using a specific algorithm. Search category must
- * have a unique ID. The actual search is performed in
- * search queries. A category can provide one or more
- * queries to run during the search.
- * <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>
- * @since 3.0
- */
-
-public interface IUpdateSearchCategory {
-/**
- * Returns the unique identifier of this search category.
- */
-	public String getId();
-/**
- * Accepts the identifier assigned to this category during
- * the registry reading.
- */
-	public void setId(String id);
-
-/**
- * Returns an array of update search queries that need to 
- * be run during the search.
- * @return an arry of update search queries
- */	
-	IUpdateSearchQuery [] getQueries();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchFilter.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchFilter.java
deleted file mode 100644
index 1e706dc..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchFilter.java
+++ /dev/null
@@ -1,42 +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 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.update.search;
-
-import org.eclipse.update.core.*;
-
-/**
- * Classes that implement this interface can be used to filter the
- * results of the update search.
- * <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>
- * @since 3.0
- */
-public interface IUpdateSearchFilter {
-	/**
-	 * Tests a feature according to this filter's criteria.
-	 * @param match the feature to test
-	 * @return <samp>true</samp> if the feature has been accepted, <samp>false</samp> otherwise.
-     * @deprecated In 3.1 only the accept (IFeatureReference) will be used
-	 */
-	boolean accept(IFeature match);
-
-	/**
-	 * Tests a feature reference according to this filter's criteria. 
-	 * This is a prefilter that allows rejecting a feature before a potentially lengthy download.
-	 * @param match the feature reference to test
-	 * @return <samp>true</samp> if the feature reference has been accepted, <samp>false</samp> otherwise.
-	 */
-	boolean accept(IFeatureReference match);
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchQuery.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchQuery.java
deleted file mode 100644
index eb1c2e8..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchQuery.java
+++ /dev/null
@@ -1,53 +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 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.update.search;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-
-/**
- * A search query.
- * <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>
- * @since 3.0
- */
-
-public interface IUpdateSearchQuery {
-/**
- * Returns an update site adapter that should be added to the scope
- * while running this query. Some search category may need to 
- * scan specific site adapter in addition to those specified in 
- * the search scope.
- * 
- * @return the query-specific site adapter or <samp>null</samp> if
- * not specified.
- * 
- */
-	public IQueryUpdateSiteAdapter getQuerySearchSite();
-
-/**
- * Executes the query. The implementors should scan the provided
- * update site (skipping certain categories if provided) and
- * pass the matches to the result collector. The query is also
- * responsible for scoping and moving the provided progress monitor.
- * 
- * @param site the update site to scan
- * @param categoriesToSkip an array of category names that need to be skipped or <samp>null</samp> if categories should not be taken into account.
- * @param filter a filter to apply before passing the match to collector
- * @param collector an object that is used for reporting search results
- * @param monitor a progress monitor to report search progress within the provided site
- */
-	public void run(ISite site, String [] categoriesToSkip, IUpdateSearchFilter filter, IUpdateSearchResultCollector collector, IProgressMonitor monitor);
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchResultCollector.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchResultCollector.java
deleted file mode 100644
index 429bb8b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchResultCollector.java
+++ /dev/null
@@ -1,36 +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 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.update.search;
-
-import org.eclipse.update.core.*;
-
-/**
- * Search results are collected by implementing this interface
- * and passing it to the search request. If the implementation is
- * visual, it is recommended that the match is shown as soon
- * as it is collected (rather than kept in a list and presented
- * at the end of the search).
-  * <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>
- * @since 3.0
- */
-public interface IUpdateSearchResultCollector {
-/**
- * Called when a matching feature has been found during
- * the search.
- * @param match the matching feature
- */
-   void accept(IFeature match);
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchResultCollectorFromMirror.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchResultCollectorFromMirror.java
deleted file mode 100644
index f717035..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchResultCollectorFromMirror.java
+++ /dev/null
@@ -1,43 +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 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.update.search;
-
-import org.eclipse.update.core.*;
-
-/**
- * Search results are collected by implementing this interface
- * and passing it to the search request. If the implementation is
- * visual, it is recommended that the match is shown as soon
- * as it is collected (rather than kept in a list and presented
- * at the end of the search). This interface should be implemented 
- * when you want to support collection of results from a mirror site,
- * otherwise you can just implement the IUpdateSearchResultsCollector.
-  * <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>
- * @since 3.1
- */
-public interface IUpdateSearchResultCollectorFromMirror extends
-		IUpdateSearchResultCollector {
-
-	/**
-	 * Returns a mirror of the specified site. Normally, if the site defines some mirrors,
-	 * this method can be implement so that it prompts the user to pick one of the mirrors.
-	 * @param site the site to get the mirror for
-	 * @param siteName the name of the site
-	 * @return a mirror (url+label) for the specified site, or null if no mirror is needed
-	 */
-	public IURLEntry getMirror(ISiteWithMirrors site, String siteName); 
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchSite.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchSite.java
deleted file mode 100644
index e315825..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchSite.java
+++ /dev/null
@@ -1,37 +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 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.update.search;
-
-/**
- * This interface is used to represent sites that need to be
- * searched within the search scope. In addition to being an
- * update site adapter, it also returns an array of categories
- * within the site that need not be searched (skipping categories
- * makes the search faster because fewer features need to
- * be checked and potentially downloaded from the server).
- * <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>
- * @since 3.0
- */
-public interface IUpdateSearchSite extends IUpdateSiteAdapter {
-/**
- * Returns an array of categories that need not be searched
- * when scanning this site or <samp>null</samp> if all the
- * features must be tested.
- * @return an array of category names or <samp>null</samp> if
- * all the features must be tested.
- */
-	String[] getCategoriesToSkip();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSiteAdapter.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSiteAdapter.java
deleted file mode 100644
index bbff91b..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSiteAdapter.java
+++ /dev/null
@@ -1,40 +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 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.update.search;
-
-import java.net.*;
-
-/**
- * This interface wraps an update site URL and adds 
- * a presentation label. It is used to encapsulate sites that need
- * to be visited during the update search.
- * <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>
- * @since 3.0
- */
-
-public interface IUpdateSiteAdapter {
-	/**
-	 * Returns the presentation string that can be used
-	 * for this site.
-	 * @return the update site label
-	 */
-	public String getLabel();
-	/**
-	 * Returns the URL of the update site.
-	 * @return the URL of the update site.
-	 */
-	public URL getURL();
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/UpdateSearchRequest.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/UpdateSearchRequest.java
deleted file mode 100644
index 0599e84..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/UpdateSearchRequest.java
+++ /dev/null
@@ -1,354 +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 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.update.search;
-
-import java.net.URL;
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.search.*;
-import org.eclipse.update.internal.search.UpdatePolicy;
-
-/**
- * This class is central to update search. The search pattern
- * is encapsulated in update search category, while the search
- * scope is defined in the scope object. When these two objects
- * are defined and set, search can be performed using the 
- * provided method. Search results are reported to the
- * result collector, while search progress is tracked using
- * the progress monitor.
- * <p>Classes that implement <samp>IUpdateSearchResultCollector</samp>
- * should call 'accept' to test if the match should be
- * accepted according to the filters added to the request.
- * 
- * <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>
- * @see UpdateSearchScope
- * @see IUpdateSearchCategory
- * @since 3.0
- */
-public class UpdateSearchRequest {
-	private IUpdateSearchCategory category;
-	private UpdateSearchScope scope;
-	private boolean searchInProgress = false;
-	private AggregateFilter aggregateFilter = new AggregateFilter();
-
-	class MirroredUpdateSiteAdapter extends UpdateSiteAdapter {
-		public MirroredUpdateSiteAdapter(IURLEntry mirror) {
-			super(mirror.getAnnotation(), mirror.getURL());
-		}
-	}
-	
-	class AggregateFilter implements IUpdateSearchFilter {
-		private ArrayList filters;
-		public void addFilter(IUpdateSearchFilter filter) {
-			if (filters == null)
-				filters = new ArrayList();
-			if (filters.contains(filter) == false)
-				filters.add(filter);
-		}
-		
-		public void removeFilter(IUpdateSearchFilter filter) {
-			if (filters == null)
-				return;
-			filters.remove(filter);
-		}
-	
-        /**
-         * @deprecated In 3.1 only the accept (IFeatureReference) will be used
-         */
-		public boolean accept(IFeature match) {
-			if (filters == null)
-				return true;
-			for (int i = 0; i < filters.size(); i++) {
-				IUpdateSearchFilter filter = (IUpdateSearchFilter) filters.get(i);
-				if (filter.accept(match) == false)
-					return false;
-			}
-			return true;
-		}
-		
-		public boolean accept(IFeatureReference match) {
-			if (filters == null)
-				return true;
-			for (int i = 0; i < filters.size(); i++) {
-				IUpdateSearchFilter filter = (IUpdateSearchFilter) filters.get(i);
-				if (filter.accept(match) == false)
-					return false;
-			}
-			return true;
-		}
-	}
-
-	/**
-	 * The constructor that accepts the search category and 
-	 * scope objects.
-	 * @param category the actual search pattern that should be applied
-	 * @param scope a list of sites that need to be scanned during the search
-	 */
-	public UpdateSearchRequest(
-		IUpdateSearchCategory category,
-		UpdateSearchScope scope) {
-		this.category = category;
-		this.scope = scope;
-	}
-	/**
-	 * Returns the search catagory used in this request.
-	 * @return the search category
-	 */
-	
-	public IUpdateSearchCategory getCategory() {
-		return category;
-	}
-	
-	/**
-	 * Returns the scope of this search request.
-	 * @return search scope
-	 */
-	
-	public UpdateSearchScope getScope() {
-		return scope;
-	}
-	/**
-	 * Adds a filter to this request. This method does nothing
-	 * if search is alrady in progress. 
-	 * @param filter the filter 
-	 * @see UpdateSearchRequest#removeFilter
-	 */
-	public void addFilter(IUpdateSearchFilter filter) {
-		if (searchInProgress)
-			return;
-		aggregateFilter.addFilter(filter);
-	}
-	/**
-	 * Removes the filter from this request. This method does
-	 * nothing if search is alrady in progress.
-	 * @param filter the filter to remove
-	 * @see UpdateSearchRequest#addFilter
-	 */
-
-	public void removeFilter(IUpdateSearchFilter filter) {
-		if (searchInProgress)
-			return;
-		aggregateFilter.removeFilter(filter);
-	}
-
-	/**
-	 * Sets the scope object. It is possible to reuse the search request
-	 * object by modifying the scope and re-running the search.
-	 * @param scope the new search scope
-	 */
-	public void setScope(UpdateSearchScope scope) {
-		this.scope = scope;
-	}
-	/**
-	 * Tests whether this search request is current running.
-	 * @return <samp>true</samp> if the search is currently running, <samp>false</samp> otherwise.
-	 */
-	public boolean isSearchInProgress() {
-		return searchInProgress;
-	}
-
-	/**
-	 * Runs the search using the category and scope configured into
-	 * this request. As results arrive, they are passed to the
-	 * search result collector object.
-	 * @param collector matched features are passed to this object
-	 * @param monitor used to track the search progress
-	 * @throws CoreException
-	 */
-	public void performSearch(
-		IUpdateSearchResultCollector collector,
-		IProgressMonitor monitor)
-		throws CoreException {
-		ArrayList statusList = new ArrayList();
-
-		searchInProgress = true;
-		IUpdateSearchQuery[] queries = category.getQueries();
-		IUpdateSearchSite[] candidates = scope.getSearchSites();
-		URL updateMapURL = scope.getUpdateMapURL();
-		boolean searchFeatureProvidedSites = scope.isFeatureProvidedSitesEnabled();
-
-		if (!monitor.isCanceled()) {
-			int nsearchsites = 0;
-			for (int i = 0; i < queries.length; i++) {
-				if (queries[i].getQuerySearchSite() != null)
-					nsearchsites++;
-			}
-			int ntasks = nsearchsites + queries.length * candidates.length;
-			if (updateMapURL!=null) ntasks++;
-
-			monitor.beginTask(Policy.bind("UpdateSearchRequest.searching"), ntasks); //$NON-NLS-1$
-
-			try {
-				UpdatePolicy updatePolicy=null;
-				if (updateMapURL!=null) {
-					updatePolicy = new UpdatePolicy();
-					IStatus status =UpdateUtils.loadUpdatePolicy(updatePolicy, updateMapURL, new SubProgressMonitor(monitor, 1));
-					if (status != null)
-						statusList.add(status);
-				}
-				for (int i = 0; i < queries.length; i++) {
-					IUpdateSearchQuery query = queries[i];
-					IQueryUpdateSiteAdapter qsite = query.getQuerySearchSite();
-					// currently, the next conditional is only executed (qsite!=null) when
-					// running an update search. 
-					if (qsite != null && searchFeatureProvidedSites) {
-						// check for mapping
-						IUpdateSiteAdapter mappedSite = getMappedSite(updatePolicy, qsite);
-						// when there is no mapped site the feature is not updatable
-						if (mappedSite == null || mappedSite.getURL() == null)
-							continue;
-						SubProgressMonitor subMonitor =
-							new SubProgressMonitor(monitor, 1);
-						IStatus status =
-							searchOneSite(
-								mappedSite,
-								null,
-								query,
-								collector,
-								subMonitor,
-								true);
-						if (status != null)
-							statusList.add(status);
-						if (monitor.isCanceled())
-							break;
-					}
-					for (int j = 0; j < candidates.length; j++) {
-						if (monitor.isCanceled()) {
-							break;
-						}
-						IUpdateSearchSite source = candidates[j];
-						SubProgressMonitor subMonitor =
-							new SubProgressMonitor(monitor, 1);
-						IStatus status =
-							searchOneSite(
-								source,
-								source.getCategoriesToSkip(),
-								query,
-								collector,
-								subMonitor,
-								true);
-						if (status != null)
-							statusList.add(status);
-					}
-					if (monitor.isCanceled())
-						break;
-				}
-			} catch (CoreException e) {
-				searchInProgress = false;
-				monitor.done();
-				throw e;
-			}
-		}
-		searchInProgress = false;
-		monitor.done();
-
-		if (statusList.size() > 0) {
-			IStatus[] children =
-				(IStatus[]) statusList.toArray(new IStatus[statusList.size()]);
-			MultiStatus multiStatus =
-				new MultiStatus(
-					"org.eclipse.update.core", //$NON-NLS-1$
-					ISite.SITE_ACCESS_EXCEPTION,
-					children,
-					Policy.bind("Search.networkProblems"), //$NON-NLS-1$
-					null);
-			throw new CoreException(multiStatus);
-		}
-	}
-
-
-/*
- * See if this query site adapter is mapped in the map file
- * to a different URL.
- */
-	private IUpdateSiteAdapter getMappedSite(UpdatePolicy policy, IQueryUpdateSiteAdapter qsite) {
-		if (policy!=null && policy.isLoaded()) {
-			IUpdateSiteAdapter mappedSite = policy.getMappedSite(qsite.getMappingId());
-			if (mappedSite!=null) 
-				return mappedSite;
-			else // no match - use original site if fallback allowed, or nothing.
-				return policy.isFallbackAllowed()? qsite : null;
-		}
-		return qsite;
-	}
-
-/*
- * Search one site using the provided query.
- */
-	private IStatus searchOneSite(
-		IUpdateSiteAdapter siteAdapter,
-		String[] categoriesToSkip,
-		IUpdateSearchQuery query,
-		IUpdateSearchResultCollector collector,
-		SubProgressMonitor monitor,
-		boolean checkMirrors)
-		throws CoreException {
-		String text = Policy.bind("UpdateSearchRequest.contacting") + siteAdapter.getLabel() + "..."; //$NON-NLS-1$ //$NON-NLS-2$
-		monitor.subTask(text);
-		monitor.beginTask("", 10); //$NON-NLS-1$
-		URL siteURL = siteAdapter.getURL();
-
-		ISite site;
-		try {
-			site =
-				SiteManager.getSite(
-					siteURL,
-					new SubProgressMonitor(monitor, 1));
-			
-			// If frozen connection was canceled, there will be no site.
-			if (site == null) {
-				monitor.worked(9);
-				return null;
-			}
-			
-			// prompt the user to pick up a site
-			if ((collector instanceof IUpdateSearchResultCollectorFromMirror)
-				&& (site instanceof ISiteWithMirrors)) {
-				IURLEntry mirror = ((IUpdateSearchResultCollectorFromMirror)collector).getMirror((ISiteWithMirrors)site, siteAdapter.getLabel());
-				if (mirror != null) 
-					return searchOneSite(new MirroredUpdateSiteAdapter(mirror), categoriesToSkip, query, collector, new SubProgressMonitor(monitor,1), false);
-			}
-		} catch (CoreException e) {
-			// Test the exception. If the exception is
-			// due to the site connection problems,
-			// allow the search to move on to 
-			// the next site. Otherwise,
-			// rethrow the exception, causing the search
-			// to terminate.
-			IStatus status = e.getStatus();
-			if (status == null)
-//				|| status.getCode() != ISite.SITE_ACCESS_EXCEPTION)
-				throw e;
-			monitor.worked(10);
-			return status;
-		}
-
-		text = Policy.bind("UpdateSearchRequest.checking") + siteAdapter.getLabel() + "..."; //$NON-NLS-1$ //$NON-NLS-2$
-		monitor.getWrappedProgressMonitor().subTask(text);
-
-		query.run(
-			site,
-			categoriesToSkip,
-			aggregateFilter,
-			collector,
-			new SubProgressMonitor(monitor, 9));
-		return null;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/UpdateSearchScope.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/UpdateSearchScope.java
deleted file mode 100644
index 274c0e8..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/UpdateSearchScope.java
+++ /dev/null
@@ -1,127 +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 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.update.search;
-
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.update.internal.search.*;
-
-/**
- * This class encapsulates update scope of the update search.
- * Sites that need to be visited should be added to the scope.
- * If some categories should be skipped, their names must be
- * passed as array of strings to the method.
- *
- * <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>
- * @see UpdateSearchRequest
- * @since 3.0
- */
-
-public class UpdateSearchScope {
-	private Vector sites;
-	private URL updateMapURL;
-	private boolean isFeatureProvidedSitesEnabled = true;
-	
-	private static class UpdateSearchSite
-		extends UpdateSiteAdapter
-		implements IUpdateSearchSite {
-		private String[] categoriesToSkip;
-
-		public UpdateSearchSite(
-			String label,
-			URL siteURL,
-			String[] categoriesToSkip) {
-			super(label, siteURL);
-			this.categoriesToSkip = categoriesToSkip;
-		}
-		public String[] getCategoriesToSkip() {
-			return categoriesToSkip;
-		}
-	}
-
-	/**
-	 * The default constructor.
-	 */
-	public UpdateSearchScope() {
-		sites = new Vector();
-	}
-
-	/**
-	 * Sets the optional URL of the update map file. This file
-	 * is used to redirect search for new updates to other
-	 * servers and is typically used when a local
-	 * update site proxy (possibly behind the firewall) is
-	 * set up.
-	 * @param url the url of the Java properties file that
-	 * contains the redirection information.
-	 */
-	
-	public void setUpdateMapURL(URL url) {
-		this.updateMapURL = url;
-	}
-	
-	/**
-	 * Returns the optional URL of the update map file. By 
-	 * default, no map file is set.
-	 * @return the URL of the map file or <samp>null</samp>
-	 * if not set.
-	 */
-	
-	public URL getUpdateMapURL() {
-		return updateMapURL;
-	}
-
-	/**
-	 * Adds the site to scan to the search scope.
-	 * @param label the presentation name of the site to visit.
-	 * @param siteURL the URL of the site to visit.
-	 * @param categoriesToSkip an array of category names that should be skipped or <samp>null</samp> if all features should be considered.
-	 */
-	public void addSearchSite(
-		String label,
-		URL siteURL,
-		String[] categoriesToSkip) {
-		sites.add(new UpdateSearchSite(label, siteURL, categoriesToSkip));
-	}
-
-	/**
-	 * Returns the sites that should be visited during the search.
-	 * @return an array of site adapters
-	 */
-	public IUpdateSearchSite[] getSearchSites() {
-		return (UpdateSearchSite[]) sites.toArray(
-			new UpdateSearchSite[sites.size()]);
-	}
-	
-	/**
-	 * In addition to the sites added by addSearchSite(), features contribute their own update url's.
-	 * This method returns true if those sites are also searched.
-	 * @return true if update site provided by features are also searched. Default is true.
-	 */
-	public boolean isFeatureProvidedSitesEnabled(){
-		return isFeatureProvidedSitesEnabled;
-	}
-
-	/**
-	 * Enable or disable searching of feature provided update sites. 
-	 * If disabled, only sites added by addSearchSite() are searched.
-	 * @param enable false to disable searching of feature provided sites. By default, these sites are searched.
-	 */
-	public void setFeatureProvidedSitesEnabled(boolean enable){
-		this.isFeatureProvidedSitesEnabled = enable;
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/VersionedIdentifiersFilter.java b/update/org.eclipse.update.core/src/org/eclipse/update/search/VersionedIdentifiersFilter.java
deleted file mode 100644
index d97b747..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/VersionedIdentifiersFilter.java
+++ /dev/null
@@ -1,63 +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 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.update.search;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-
-
-/**
- * This class can be added to the update search request
- * to filter out features that are not part of the specified set.
- * 
- * <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>
- * @see UpdateSearchRequest
- * @see IUpdateSearchFilter
- * @since 3.0
- */
-public class VersionedIdentifiersFilter extends BaseFilter {
-	private ArrayList vids;
-	
-	public VersionedIdentifiersFilter() {
-		this(new VersionedIdentifier[0]);
-	}
-	
-	public VersionedIdentifiersFilter(VersionedIdentifier[] vids) {
-		this.vids = new ArrayList(vids.length);
-		for (int i=0; i<vids.length; i++)
-			this.vids.add(vids[i]);
-	}
-	
-	public void add(VersionedIdentifier vid) {
-		vids.add(vid);
-	}
-	
-	public boolean accept(IFeatureReference match) {
-		try {
-			for (int i=0; i<vids.size(); i++) {
-				VersionedIdentifier vid = (VersionedIdentifier)vids.get(i);
-				// installed version is the same as the match - accept
-				if (vid.equals(match.getVersionedIdentifier()))
-					return true;
-			}
-			return false;
-		} catch (CoreException e) {
-			return false;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/search/package.html b/update/org.eclipse.update.core/src/org/eclipse/update/search/package.html
deleted file mode 100644
index 62e8f20..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/search/package.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for performing searches and filtering of features.
-<h2>
-Package Specification</h2>
-This package contains interfaces and helper classes for creating and executing search operations. 
-
-<p>
-<b>Note:</b> This package 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>
-</body>
-</html>
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/AddSiteCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/AddSiteCommand.java
deleted file mode 100644
index c746bd6..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/AddSiteCommand.java
+++ /dev/null
@@ -1,86 +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 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.update.standalone;
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Command to add a new product extension site.
- * <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>
- * @since 3.0
- */
-public class AddSiteCommand extends ScriptedCommand {
-	private ISite site;
-	private File sitePath;
-	
-	/**
-	 * @param fromSite if specified, list only the features from the specified local install site
-	 */
-	public AddSiteCommand(String fromSite) throws Exception {
-		try {
-			if (fromSite != null) {
-				sitePath = new File(fromSite);
-				if (!sitePath.exists())
-					throw new Exception(Policy.bind("Standalone.noSite") + fromSite); //$NON-NLS-1$
-					
-				URL fromSiteURL = sitePath.toURL();
-				site = SiteManager.getSite(fromSiteURL, null);
-				if (site == null) {
-					throw new Exception(Policy.bind("Standalone.noSite") + fromSite); //$NON-NLS-1$
-				}
-				IConfiguredSite csite = site.getCurrentConfiguredSite();
-				if (csite != null)
-					throw new Exception(Policy.bind("Standalone.siteConfigured") + fromSite); //$NON-NLS-1$
-			} else {
-				throw new Exception(Policy.bind("Standalone.noSite3") ); //$NON-NLS-1$
-			}		
-		} catch (Exception e) {
-			throw e;
-		} 
-	}
-
-	/**
-	 */
-	public boolean run(IProgressMonitor monitor) {
-		// check if the config file has been modifed while we were running
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			UpdateCore.log(status);
-			return false;
-		}
-		
-		if (site == null)
-			return false;
-			
-		try {
-			IConfiguredSite csite = getConfiguration().createConfiguredSite(sitePath);
-			getConfiguration().addConfiguredSite(csite);
-			// update the sites array to pick up new site
-			getConfiguration().getConfiguredSites();
-			SiteManager.getLocalSite().save();
-			return true;
-		} catch (CoreException e) {
-			UpdateCore.log(e);
-			return false;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/CmdLineArgs.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/CmdLineArgs.java
deleted file mode 100644
index a1fa7e7..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/CmdLineArgs.java
+++ /dev/null
@@ -1,151 +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 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.update.standalone;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.mirror.*;
-
-/**
- * This class parses the command line arguments for update standalone commands
- * <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>
- * @since 3.0
- */
-public class CmdLineArgs {
-	private HashMap options = new HashMap();
-	public CmdLineArgs(String[] args) {
-//		// default command
-//		options.put("-command", "install");
-
-		for (int i = 0; i < args.length - 1; i++) {
-			if ("-command".equals(args[i])) { //$NON-NLS-1$
-				if (isValidCommand(args[i + 1])) {
-					options.put("-command", args[i + 1]); //$NON-NLS-1$
-					i++;
-				} else {
-					StandaloneUpdateApplication.exceptionLogged();
-					UpdateCore.log(
-						Utilities.newCoreException(
-							Policy.bind("Standalone.invalidCmd") + args[i + 1], //$NON-NLS-1$
-							null));
-					return;
-				}
-			}
-			if (isValidParam(args[i])) {
-				options.put(args[i], args[i + 1]);
-				i++;
-			}
-			// -to should specify a directory
-			// if -to specifies file URL, change it to a directory
-			String to = (String) options.get("-to"); //$NON-NLS-1$
-			if (to != null && to.startsWith("file:")) { //$NON-NLS-1$
-				try {
-					URL url = new URL(to);
-					options.put("-to", url.getFile()); //$NON-NLS-1$
-				} catch (MalformedURLException mue) {
-				}
-			}
-		}
-	}
-
-	private boolean isValidParam(String param) {
-		return param.equals("-command") //$NON-NLS-1$
-			|| param.equals("-version") //$NON-NLS-1$
-			|| param.equals("-to") //$NON-NLS-1$
-			|| param.equals("-from") //$NON-NLS-1$
-			|| param.equals("-featureId") //$NON-NLS-1$
-			|| param.equals("-verifyOnly") //$NON-NLS-1$
-			|| param.equals("-mirrorURL"); //$NON-NLS-1$
-	}
-
-	private boolean isValidCommand(String cmd) {
-		if (cmd == null)
-			return false;
-		else
-			return cmd.equals("install") //$NON-NLS-1$
-			|| cmd.equals("enable") //$NON-NLS-1$
-			|| cmd.equals("disable") //$NON-NLS-1$
-			|| cmd.equals("search") //$NON-NLS-1$
-			|| cmd.equals("update") //$NON-NLS-1$
-			|| cmd.equals("mirror") //$NON-NLS-1$
-			|| cmd.equals("uninstall") //$NON-NLS-1$
-			|| cmd.equals("listFeatures") //$NON-NLS-1$
-			|| cmd.equals("addSite") //$NON-NLS-1$
-			|| cmd.equals("removeSite"); //$NON-NLS-1$
-	}
-
-	public ScriptedCommand getCommand() {
-		try {
-			String cmd = (String) options.get("-command"); //$NON-NLS-1$
-			if (cmd == null)
-				return null;
-			if (cmd.equals("install")) //$NON-NLS-1$
-				return new InstallCommand(
-					(String) options.get("-featureId"), //$NON-NLS-1$
-					(String) options.get("-version"), //$NON-NLS-1$
-					(String) options.get("-from"), //$NON-NLS-1$
-					(String) options.get("-to"), //$NON-NLS-1$
-					(String) options.get("-verifyOnly")); //$NON-NLS-1$
-			else if (cmd.equals("enable")) //$NON-NLS-1$
-				return new EnableCommand(
-					(String) options.get("-featureId"), //$NON-NLS-1$
-					(String) options.get("-version"), //$NON-NLS-1$
-					(String) options.get("-to"), //$NON-NLS-1$
-					(String) options.get("-verifyOnly")); //$NON-NLS-1$
-			else if (cmd.equals("disable")) //$NON-NLS-1$
-				return new DisableCommand(
-					(String) options.get("-featureId"), //$NON-NLS-1$
-					(String) options.get("-version"), //$NON-NLS-1$
-					(String) options.get("-to"), //$NON-NLS-1$
-					(String) options.get("-verifyOnly")); //$NON-NLS-1$
-			else if (cmd.equals("search")) //$NON-NLS-1$
-				return new SearchCommand((String) options.get("-from")); //$NON-NLS-1$
-			else if (cmd.equals("update")) //$NON-NLS-1$
-				return new UpdateCommand(
-					(String) options.get("-featureId"), //$NON-NLS-1$
-					(String) options.get("-version"), //$NON-NLS-1$
-					(String) options.get("-verifyOnly")); //$NON-NLS-1$
-			else if (cmd.equals("mirror")) //$NON-NLS-1$
-				return new MirrorCommand(
-					(String) options.get("-featureId"), //$NON-NLS-1$
-					(String) options.get("-version"), //$NON-NLS-1$
-					(String) options.get("-from"), //$NON-NLS-1$
-					(String) options.get("-to"), //$NON-NLS-1$
-					(String) options.get("-mirrorURL")); //$NON-NLS-1$
-			else if (cmd.equals("uninstall")) //$NON-NLS-1$
-				return new UninstallCommand(
-					(String) options.get("-featureId"), //$NON-NLS-1$
-					(String) options.get("-version"), //$NON-NLS-1$
-					(String) options.get("-to"), //$NON-NLS-1$
-					(String) options.get("-verifyOnly")); //$NON-NLS-1$
-			else if (cmd.equals("listFeatures")) //$NON-NLS-1$
-				return new ListFeaturesCommand((String) options.get("-from")); //$NON-NLS-1$
-			else if (cmd.equals("addSite")) //$NON-NLS-1$
-				return new AddSiteCommand((String) options.get("-from")); //$NON-NLS-1$
-			else if (cmd.equals("removeSite")) //$NON-NLS-1$
-				return new RemoveSiteCommand((String) options.get("-to")); //$NON-NLS-1$
-			else
-				return null;
-		} catch (Exception e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-			return null;
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/DisableCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/DisableCommand.java
deleted file mode 100644
index 8026192..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/DisableCommand.java
+++ /dev/null
@@ -1,136 +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 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.update.standalone;
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Command to disable (unconfigure) a feature
- * <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>
- * @since 3.0
- */
-public class DisableCommand extends ScriptedCommand {
-
-	private IConfiguredSite targetSite;
-	private IFeature feature;
-
-	public DisableCommand(
-		String featureId,
-		String version,
-		String toSite,
-		String verifyOnly)
-		throws Exception {
-
-		super(verifyOnly);
-
-		try {
-			IConfiguredSite[] sites = getConfiguration().getConfiguredSites();
-
-			// Get site containing the feature to disable
-			if (toSite != null) {
-				URL toSiteURL = new File(toSite).toURL();
-				if (SiteManager.getSite(toSiteURL, null) == null) {
-					throw new Exception(Policy.bind("Standalone.noSite") + toSite); //$NON-NLS-1$
-				}
-				targetSite =
-					SiteManager
-						.getSite(toSiteURL, null)
-						.getCurrentConfiguredSite();
-			}
-			if (targetSite == null) {
-				for (int i = 0; i < sites.length; i++) {
-					if (sites[i].isProductSite()) {
-						targetSite = sites[i];
-						break;
-					}
-				}
-			}
-
-			IFeature[] features =
-				UpdateUtils.searchSite(featureId, targetSite, true);
-			if (features == null || features.length == 0) {
-				throw new Exception(Policy.bind("Standalone.noFeatures3", featureId)); //$NON-NLS-1$
-			}
-			if (version == null || version.trim().length() == 0)
-				feature = features[0]; // pick the first feature
-			else
-				for (int i = 0; features != null && i < features.length; i++) {
-					if (features[i]
-						.getVersionedIdentifier()
-						.getVersion()
-						.toString()
-						.equals(version)) {
-						feature = features[i];
-						break;
-					}
-				}
-			if (feature == null) {
-				throw new Exception(Policy.bind("Standalone.noFeatures4", featureId, version)); //$NON-NLS-1$
-			}
-
-		} catch (MalformedURLException e) {
-			throw e;
-		} catch (CoreException e) {
-			throw e;
-		}
-	}
-
-	/**
-	 */
-	public boolean run(IProgressMonitor monitor) {
-		// check if the config file has been modifed while we were running
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			UpdateCore.log(status);
-			return false;
-		}
-		if (isVerifyOnly()) {
-			status =
-				OperationsManager.getValidator().validatePendingUnconfig(
-					feature);
-			if (status != null && status.getCode() == IStatus.WARNING)
-				UpdateCore.log(status);
-			return status == null || status.getCode() == IStatus.WARNING;
-		}
-
-		final IUnconfigFeatureOperation configOperation =
-			OperationsManager.getOperationFactory().createUnconfigOperation(
-				targetSite,
-				feature);
-
-		try {
-			configOperation.execute(monitor, this);
-			return true;
-		} catch (CoreException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-			return false;
-		} catch (InvocationTargetException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-			return false;
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/EnableCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/EnableCommand.java
deleted file mode 100644
index 2ac9c4d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/EnableCommand.java
+++ /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 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.update.standalone;
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Command to enable (configure) a feature.
- * <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>
- * @since 3.0
- */
-public class EnableCommand extends ScriptedCommand {
-
-	private IConfiguredSite targetSite;
-	private IFeature feature;
-
-	public EnableCommand(
-		String featureId,
-		String version,
-		String toSite,
-		String verifyOnly)
-		throws Exception {
-
-		super(verifyOnly);
-
-		try {
-			IConfiguredSite[] sites = getConfiguration().getConfiguredSites();
-
-			// Get site to enable to
-			if (toSite != null) {
-				URL toSiteURL = new File(toSite).toURL();
-				if (SiteManager.getSite(toSiteURL, null) == null) {
-					throw new Exception(Policy.bind("Standalone.noSite") + toSite); //$NON-NLS-1$
-				}
-				targetSite =
-					SiteManager
-						.getSite(toSiteURL, null)
-						.getCurrentConfiguredSite();
-			}
-			if (targetSite == null) {
-				for (int i = 0; i < sites.length; i++) {
-					if (sites[i].isProductSite()) {
-						targetSite = sites[i];
-						break;
-					}
-				}
-			}
-
-			IFeature[] features =
-				UpdateUtils.searchSite(featureId, targetSite, false);
-			if (features == null || features.length == 0) {
-				throw new Exception(Policy.bind("Standalone.noFeatures1", featureId)); //$NON-NLS-1$
-			}
-			if (version == null || version.trim().length() == 0)
-				feature = features[0]; // pick the first feature
-			else
-				for (int i = 0; features != null && i < features.length; i++) {
-					if (features[i]
-						.getVersionedIdentifier()
-						.getVersion()
-						.toString()
-						.equals(version)
-						&& !targetSite.isConfigured(features[i])) {
-						feature = features[i];
-						break;
-					}
-				}
-			if (feature == null) {
-				throw new Exception(Policy.bind("Standalone.noFeatures2", featureId, version)); //$NON-NLS-1$
-			}
-
-		} catch (MalformedURLException e) {
-			throw e;
-		} catch (CoreException e) {
-			throw e;
-		}
-	}
-
-	/**
-	 */
-	public boolean run(IProgressMonitor monitor) {
-		// check if the config file has been modifed while we were running
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			UpdateCore.log(status);
-			return false;
-		}
-		
-		if (isVerifyOnly()) {
-			status =
-				OperationsManager.getValidator().validatePendingConfig(feature);
-			if (status != null && status.getCode() == IStatus.WARNING)
-				UpdateCore.log(status);
-			return status == null || status.getCode() == IStatus.WARNING;
-		}
-
-		final IConfigFeatureOperation configOperation =
-			OperationsManager.getOperationFactory().createConfigOperation(
-				targetSite,
-				feature);
-
-		try {
-			configOperation.execute(monitor, this);
-			return true;
-		} catch (CoreException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-			return false;
-		} catch (InvocationTargetException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-			return false;
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/InstallCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/InstallCommand.java
deleted file mode 100644
index d3c1b6a..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/InstallCommand.java
+++ /dev/null
@@ -1,254 +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 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.update.standalone;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.configurator.UpdateURLDecoder;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.search.*;
-import org.eclipse.update.operations.*;
-import org.eclipse.update.search.*;
-
-/**
- * Command to install a feature.
- * <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>
- * @since 3.0
- */
-public class InstallCommand extends ScriptedCommand {
-
-	private IConfiguredSite targetSite;
-	private UpdateSearchRequest searchRequest;
-	private UpdateSearchResultCollector collector;
-	private URL remoteSiteURL;
-	private String featureId;
-	private String version;
-
-	public InstallCommand(
-		String featureId,
-		String version,
-		String fromSite,
-		String toSite,
-		String verifyOnly)
-		throws Exception {
-
-		super(verifyOnly);
-
-		try {
-			this.featureId = featureId;
-			this.version = version;
-
-			//PAL foundation
-			this.remoteSiteURL = new URL(UpdateURLDecoder.decode(fromSite, "UTF-8")); //$NON-NLS-1$
-
-			// Get site to install to
-			targetSite = getTargetSite(toSite);
-			// if no site, try selecting the site that already has the old feature
-			if (targetSite == null)
-				targetSite = UpdateUtils.getSiteWithFeature(getConfiguration(), featureId);
-			// if still no site, pick the product site, if writeable
-			if (targetSite == null) {
-				IConfiguredSite[] sites = getConfiguration().getConfiguredSites();
-				for (int i = 0; i < sites.length; i++) {
-					if (sites[i].isProductSite() && sites[i].isUpdatable()) {
-						targetSite = sites[i];
-						break;
-					}
-				}
-			}
-			// if all else fails, pick the first updateable site
-			if (targetSite == null) {
-				IConfiguredSite[] sites = getConfiguration().getConfiguredSites();
-				for (int i = 0; i < sites.length; i++) {
-					if (sites[i].isUpdatable()) {
-						targetSite = sites[i];
-						break;
-					}
-				}
-			}
-			// are we still checking for sites? forget about it
-			if (targetSite == null)
-				throw Utilities.newCoreException(
-						Policy.bind("Standalone.cannotInstall") + featureId + " " + version, //$NON-NLS-1$ //$NON-NLS-2$
-						null);
-			
-			UpdateSearchScope searchScope = new UpdateSearchScope();
-			searchScope.addSearchSite(
-				"remoteSite", //$NON-NLS-1$
-				remoteSiteURL,
-				new String[0]);
-
-			searchRequest =
-				new UpdateSearchRequest(new SiteSearchCategory(), searchScope);
-			VersionedIdentifier vid =
-				new VersionedIdentifier(featureId, version);
-			searchRequest.addFilter(
-				new VersionedIdentifiersFilter(
-					new VersionedIdentifier[] { vid }));
-			searchRequest.addFilter(new EnvironmentFilter());
-			searchRequest.addFilter(new BackLevelFilter());
-
-			collector = new UpdateSearchResultCollector();
-
-		} catch (MalformedURLException e) {
-			throw e;
-		} catch (CoreException e) {
-			throw e;
-		}
-	}
-
-	/**
-	 */
-	public boolean run(IProgressMonitor monitor) {
-		try {
-			monitor.beginTask(Policy.bind("Standalone.installing"), 4); //$NON-NLS-1$
-			searchRequest.performSearch(collector, new SubProgressMonitor(monitor,1));
-			IInstallFeatureOperation[] operations = collector.getOperations();
-			if (operations == null || operations.length == 0) {
-				throw Utilities.newCoreException(
-					Policy.bind("Standalone.feature") //$NON-NLS-1$
-						+ featureId
-						+ " " //$NON-NLS-1$
-						+ version
-						+ Policy.bind("Standalone.notFound") //$NON-NLS-1$
-						+ remoteSiteURL
-						+ Policy.bind("Standalone.newerInstalled"), //$NON-NLS-1$
-					null);
-			}
-
-			// Check for duplication conflicts
-			ArrayList conflicts =
-				DuplicateConflictsValidator.computeDuplicateConflicts(
-					operations,
-					getConfiguration());
-			if (conflicts != null) {
-				throw Utilities.newCoreException(Policy.bind("Standalone.duplicate"), null); //$NON-NLS-1$
-			}
-
-			if (isVerifyOnly()) {
-				if (operations == null || operations.length == 0)
-					return false;
-				IStatus status = OperationsManager.getValidator().validatePendingChanges(operations);
-				if (status != null && status.getCode() == IStatus.ERROR)
-					throw new CoreException(status);
-				else
-					return true;
-			}
-
-			IBatchOperation installOperation =
-				OperationsManager
-					.getOperationFactory()
-					.createBatchInstallOperation(
-					operations);
-			try {
-				installOperation.execute(new SubProgressMonitor(monitor,3), this);
-				System.out.println(
-					Policy.bind("Standalone.feature") //$NON-NLS-1$
-						+ featureId
-						+ " " //$NON-NLS-1$
-						+ version
-						+ Policy.bind("Standalone.installed")); //$NON-NLS-1$
-				return true;
-			} catch (Exception e) {
-				throw Utilities.newCoreException(
-					Policy.bind("Standalone.cannotInstall") + featureId + " " + version, //$NON-NLS-1$ //$NON-NLS-2$
-					e);
-			}
-		} catch (CoreException ce) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(ce);
-			return false;
-		} finally {
-			monitor.done();
-		}
-	}
-
-	private IConfiguredSite getTargetSite(String toSite) throws Exception {
-		if (toSite == null) 
-			return null;
-			
-		IConfiguredSite[] configuredSites = getConfiguration().getConfiguredSites();
-		File sitePath = new File(toSite);
-		File secondaryPath = sitePath.getName().equals("eclipse") ? // $NON-NLS-1$
-							null : new File(sitePath, "eclipse"); // $NON-NLS-1$
-
-		for (int i = 0; i < configuredSites.length; i++) {
-			IConfiguredSite csite = configuredSites[i];
-			if (csite.getSite().getURL().sameFile(sitePath.toURL())) 
-				return csite;
-			else if (secondaryPath != null && csite.getSite().getURL().sameFile(secondaryPath.toURL())) 
-				return csite;
-		}
-
-		// extension site not found, need to create one
-		if (!sitePath.exists())
-			sitePath.mkdirs();
-		URL toSiteURL = sitePath.toURL();
-		ISite site = SiteManager.getSite(toSiteURL, null);
-		if (site == null) {
-			throw new Exception(Policy.bind("Standalone.noSite") + toSite); //$NON-NLS-1$
-		}
-		IConfiguredSite csite = site.getCurrentConfiguredSite();
-		if (csite == null) {
-			csite = getConfiguration().createConfiguredSite(sitePath);
-			IStatus status = csite.verifyUpdatableStatus();
-			if (status.isOK())
-				getConfiguration().addConfiguredSite(csite);
-			else 
-				throw new CoreException(status);
-
-			return csite;
-		}
-		return csite;
-	}
-	class UpdateSearchResultCollector implements IUpdateSearchResultCollector {
-		private ArrayList operations = new ArrayList();
-
-		public void accept(IFeature feature) {
-			if (feature
-				.getVersionedIdentifier()
-				.getIdentifier()
-				.equals(featureId)
-				&& feature
-					.getVersionedIdentifier()
-					.getVersion()
-					.toString()
-					.equals(
-					version)) {
-				operations.add(
-					OperationsManager
-						.getOperationFactory()
-						.createInstallOperation(
-						targetSite,
-						feature,
-						null,
-						null,
-						null));
-			}
-		}
-		public IInstallFeatureOperation[] getOperations() {
-			IInstallFeatureOperation[] opsArray =
-				new IInstallFeatureOperation[operations.size()];
-			operations.toArray(opsArray);
-			return opsArray;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/ListFeaturesCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/ListFeaturesCommand.java
deleted file mode 100644
index 35819a5..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/ListFeaturesCommand.java
+++ /dev/null
@@ -1,89 +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 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.update.standalone;
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-
-
-/**
- * Command to list all installed features.
- * <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>
- * @since 3.0
- */
-public class ListFeaturesCommand extends ScriptedCommand {
-	private IConfiguredSite[] sites = getConfiguration().getConfiguredSites();
-	
-	/**
-	 * @param fromSite if specified, list only the features from the specified local install site
-	 */
-	public ListFeaturesCommand(String fromSite) throws Exception {
-		try {
-			if (fromSite != null) {
-				File sitePath = new File(fromSite);
-				if (!sitePath.exists())
-					throw new Exception(Policy.bind("Standalone.noSite") + fromSite); //$NON-NLS-1$
-					
-				URL fromSiteURL = sitePath.toURL();
-				ISite site = SiteManager.getSite(fromSiteURL, null);
-				if (site == null) {
-					throw new Exception(Policy.bind("Standalone.noSite") + fromSite); //$NON-NLS-1$
-				}
-				IConfiguredSite csite = site.getCurrentConfiguredSite();
-				if (csite == null)
-					throw new Exception(Policy.bind("Standalone.noConfiguredSite") + fromSite); //$NON-NLS-1$
-				sites = new IConfiguredSite[] { csite };
-			} 
-		
-		} catch (Exception e) {
-			throw e;
-		} 
-	}
-
-	/**
-	 */
-	public boolean run(IProgressMonitor monitor) {
-		try {
-			if (sites != null) {
-				for (int i = 0; i < sites.length; i++) {
-					System.out.println("Site: " + sites[i].getSite().getURL()); //$NON-NLS-1$
-					IFeatureReference[] features = sites[i]
-							.getFeatureReferences();
-					for (int f = 0; f < features.length; f++) {
-						boolean configured = sites[i].isConfigured(features[f]
-								.getFeature(null));
-						System.out.println("  Feature: " //$NON-NLS-1$
-								+ features[f].getVersionedIdentifier()
-										.getIdentifier()
-								+ " " //$NON-NLS-1$
-								+ features[f].getVersionedIdentifier()
-										.getVersion() + "  " //$NON-NLS-1$
-								+ (configured ? "enabled" : "disabled")); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-				}
-			}
-			return true;
-		} catch (CoreException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-			return false;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/RemoveSiteCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/RemoveSiteCommand.java
deleted file mode 100644
index 31f4024..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/RemoveSiteCommand.java
+++ /dev/null
@@ -1,87 +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 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.update.standalone;
-import java.io.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.operations.*;
-
-
-/**
- * Command to remove a product extension site.
- * <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>
- * @since 3.0
- */
-public class RemoveSiteCommand extends ScriptedCommand {
-	private IConfiguredSite csite;
-	private File sitePath;
-	
-	/**
-	 * @param toSite if specified, list only the features from the specified local install site
-	 */
-	public RemoveSiteCommand(String toSite) throws Exception {
-		try {
-			if (toSite != null) {
-				sitePath = new File(toSite);
-				if (!sitePath.getName().equals("eclipse")) //$NON-NLS-1$
-					sitePath = new File(sitePath, "eclipse"); //$NON-NLS-1$
-				if (!sitePath.exists())
-					throw new Exception(Policy.bind("Standalone.noSite") + toSite); //$NON-NLS-1$
-					
-				IConfiguredSite[] csites = SiteManager.getLocalSite().getCurrentConfiguration().getConfiguredSites();
-				for (int i=0; i<csites.length; i++) {
-					File f = new File(csites[i].getSite().getURL().getFile());
-					if (f.equals(sitePath)) {
-						csite = csites[i];
-						break;
-					}
-				}
-				
-				if (csite == null)
-					throw new Exception(Policy.bind("Standalone.noConfiguredSite") + toSite); //$NON-NLS-1$
-			} else {
-				throw new Exception(Policy.bind("Standalone.noSite3")); //$NON-NLS-1$
-			}
-		
-		} catch (Exception e) {
-			throw e;
-		} 
-	}
-
-	/**
-	 */
-	public boolean run(IProgressMonitor monitor) {
-		// check if the config file has been modifed while we were running
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			UpdateCore.log(status);
-			return false;
-		}	
-		try {
-			getConfiguration().removeConfiguredSite(csite);
-			// update the sites array
-			getConfiguration().getConfiguredSites();
-			SiteManager.getLocalSite().save();
-			return true;
-		} catch (CoreException e) {
-			UpdateCore.log(e);
-			return false;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/ScriptedCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/ScriptedCommand.java
deleted file mode 100644
index 4bf5438..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/ScriptedCommand.java
+++ /dev/null
@@ -1,109 +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 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.update.standalone;
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Parent class for all the update manager standalone commands.
- * Subclasses will provide specific operations and the implementation of the run() method.
- * <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>
- * @since 3.0
- */
-public abstract class ScriptedCommand implements IOperationListener {
-
-	private IInstallConfiguration config;
-	protected boolean verifyOnly;
-
-	/**
-	 * Constructor
-	 *
-	 */
-	public ScriptedCommand() {
-		this(null);
-	}
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param verifyOnly if true, the command is not executed, but will only attempt to run the command. 
-	 * This is mostly used when wanted to know if the command would fail.
-	 */
-	public ScriptedCommand(String verifyOnly) {
-		this.verifyOnly = "true".equals(verifyOnly); //$NON-NLS-1$
-	}
-
-	/**
-	 * @return  true if the command should only be run in simulation mode,
-	 * to verify if it can execute.
-	 */
-	protected final boolean isVerifyOnly() {
-		return verifyOnly;
-	}
-
-	/**
-	 * Convenience method that executes the command with a null progress monitor.
-	 */
-	public final boolean run() {
-		return run(new NullProgressMonitor());
-	}
-	
-	/**
-	 * Executes the command. Subclasses are responsible for implementing this method.
-	 * If the command was constructed with verifyOnly=true, the command should not execute, but only verify it can execute.
-	 * @param monitor progress monitor during command execution.
-	 */
-	public abstract boolean run(IProgressMonitor monitor);
-
-	/**
-	 * Applies the changes made to the current configuration.
-	 */
-	public void applyChangesNow() {
-		OperationsManager.applyChangesNow();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.operations.IOperationListener#afterExecute(org.eclipse.update.operations.IOperation)
-	 */
-	public boolean afterExecute(IOperation operation, Object data) {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.operations.IOperationListener#beforeExecute(org.eclipse.update.operations.IOperation)
-	 */
-	public boolean beforeExecute(IOperation operation, Object data) {
-		return true;
-	}
-
-	/**
-	 * @return the installation configuration affected by the command
-	 */
-	public final IInstallConfiguration getConfiguration() {
-		try {
-			ILocalSite localSite = SiteManager.getLocalSite();
-			config = localSite.getCurrentConfiguration();
-		} catch (CoreException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-		}
-		return config;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/SearchCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/SearchCommand.java
deleted file mode 100644
index 3a86a74..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/SearchCommand.java
+++ /dev/null
@@ -1,93 +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 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.update.standalone;
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.configurator.UpdateURLDecoder;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.search.*;
-import org.eclipse.update.search.*;
-
-/**
- * Command to search an update site and list its features.
- * <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>
- * @since 3.0
- */
-public class SearchCommand extends ScriptedCommand {
-
-	private URL remoteSiteURL;
-	private UpdateSearchRequest searchRequest;
-	private IUpdateSearchResultCollector collector;
-
-	public SearchCommand(String fromSite) {
-		try {
-			//PAL foundation
-			this.remoteSiteURL = new URL(UpdateURLDecoder.decode(fromSite, "UTF-8")); //$NON-NLS-1$
-			UpdateSearchScope searchScope = new UpdateSearchScope();
-			searchScope.addSearchSite(
-				"remoteSite", //$NON-NLS-1$
-				remoteSiteURL,
-				new String[0]);
-			searchRequest =
-				new UpdateSearchRequest(new SiteSearchCategory(), searchScope);
-			collector = new UpdateSearchResultCollector();
-		} catch (MalformedURLException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-		} catch (UnsupportedEncodingException e) {
-		}
-	}
-
-	/**
-	 */
-	public boolean run(IProgressMonitor monitor) {
-		try {
-			monitor.beginTask(Policy.bind("Standalone.searching") + remoteSiteURL.toExternalForm(), 4); //$NON-NLS-1$
-			searchRequest.performSearch(collector, monitor);
-			return true;
-		} catch (CoreException ce) {
-			IStatus status = ce.getStatus();
-			if (status != null
-				&& status.getCode() == ISite.SITE_ACCESS_EXCEPTION) {
-				// Just show this but do not throw exception
-				// because there may be results anyway.
-				System.out.println(Policy.bind("Standalone.connection")); //$NON-NLS-1$
-			} else {
-				StandaloneUpdateApplication.exceptionLogged();
-				UpdateCore.log(ce);
-			}
-			return false;
-		} finally {
-			monitor.done();
-		}
-	}
-
-
-	class UpdateSearchResultCollector implements IUpdateSearchResultCollector {
-		public void accept(IFeature feature) {
-			System.out.println(
-				"\"" //$NON-NLS-1$
-					+ feature.getLabel()
-					+ "\" " //$NON-NLS-1$
-					+ feature.getVersionedIdentifier().getIdentifier()
-					+ " " //$NON-NLS-1$
-					+ feature.getVersionedIdentifier().getVersion());
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/StandaloneUpdateApplication.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/StandaloneUpdateApplication.java
deleted file mode 100644
index e70b1d2..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/StandaloneUpdateApplication.java
+++ /dev/null
@@ -1,69 +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 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.update.standalone;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.internal.core.*;
-
-/**
- * The application class used to launch standalone update commands.
- * <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>
- * @since 3.0
- */
-public class StandaloneUpdateApplication implements IPlatformRunnable {
-
-	public final static Integer EXIT_ERROR = new Integer(1);
-	private static boolean loggedException = false;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.boot.IPlatformRunnable#run(java.lang.Object)
-	 */
-	public Object run(Object args) throws Exception {
-		if (args == null)
-			return EXIT_ERROR;
-		if (args instanceof String[]) {
-			String[] params = (String[]) args;
-			CmdLineArgs cmdLineArgs = new CmdLineArgs(params);
-			ScriptedCommand cmd = cmdLineArgs.getCommand();
-			if (cmd == null) {
-				System.out.println(Policy.bind("Standalone.cmdFailed", Platform.getLogFileLocation().toOSString())); //$NON-NLS-1$
-				return EXIT_ERROR;
-			}
-			loggedException = false;
-			boolean result = cmd.run();
-			if (result) {
-				if (loggedException) {
-					System.out.println(Policy.bind("Standalone.cmdCompleteWithErrors", Platform.getLogFileLocation().toOSString()));//$NON-NLS-1$
-				} else {
-					System.out.println(Policy.bind("Standalone.cmdOK")); //$NON-NLS-1$
-				}
-				return IPlatformRunnable.EXIT_OK;
-			} else {
-				if (loggedException) {
-					System.out.println(Policy.bind("Standalone.cmdFailed", Platform.getLogFileLocation().toOSString())); //$NON-NLS-1$
-				} else {
-					System.out.println(Policy.bind("Standalone.cmdFailedNoLog"));//$NON-NLS-1$
-				}
-				return EXIT_ERROR;
-			}
-		}
-		return EXIT_ERROR;
-	}
-	public static void exceptionLogged() {
-		loggedException = true;
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/UninstallCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/UninstallCommand.java
deleted file mode 100644
index 7b2673d..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/UninstallCommand.java
+++ /dev/null
@@ -1,139 +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 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.update.standalone;
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Command to uninstall a feature. The feature must be disabled before uninstalling it.
- * <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>
- * @since 3.0
- */
-public class UninstallCommand extends ScriptedCommand {
-
-	private IConfiguredSite targetSite;
-	private IFeature feature;
-
-	public UninstallCommand(
-		String featureId,
-		String version,
-		String toSite,
-		String verifyOnly)
-		throws Exception {
-
-		super(verifyOnly);
-
-		try {
-			IConfiguredSite[] sites = getConfiguration().getConfiguredSites();
-
-			// Get site that contains the feature to uninstall
-			if (toSite != null) {
-				URL toSiteURL = new File(toSite).toURL();
-				if (SiteManager.getSite(toSiteURL, null) == null) {
-					throw new Exception(Policy.bind("Standalone.noSite") + toSite); //$NON-NLS-1$
-				}
-				targetSite =
-					SiteManager
-						.getSite(toSiteURL, null)
-						.getCurrentConfiguredSite();
-			}
-			if (targetSite == null) {
-				for (int i = 0; i < sites.length; i++) {
-					if (sites[i].isProductSite()) {
-						targetSite = sites[i];
-						break;
-					}
-				}
-			}
-
-			IFeature[] features =
-				UpdateUtils.searchSite(featureId, targetSite, false);
-			if (features == null || features.length == 0) {
-				throw new Exception(Policy.bind("Standalone.noFeatures1", featureId)); //$NON-NLS-1$
-			}
-			if (version == null || version.trim().length() == 0)
-				feature = features[0]; // pick the first feature
-			else
-				for (int i = 0; features != null && i < features.length; i++) {
-					if (features[i]
-						.getVersionedIdentifier()
-						.getVersion()
-						.toString()
-						.equals(version)
-						&& !targetSite.isConfigured(features[i])) {
-						feature = features[i];
-						break;
-					}
-				}
-			if (feature == null) {
-				throw new Exception(Policy.bind("Standalone.noFeatures2", featureId, version)); //$NON-NLS-1$
-			}
-
-		} catch (MalformedURLException e) {
-			throw e;
-		} catch (CoreException e) {
-			throw e;
-		}
-	}
-
-	/**
-	 */
-	public boolean run(IProgressMonitor monitor) {
-		// check if the config file has been modifed while we were running
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			UpdateCore.log(status);
-			return false;
-		}
-		if (InstallRegistry.getInstance().get("feature_"+ feature.getVersionedIdentifier()) == null) { //$NON-NLS-1$
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(Utilities.newCoreException(Policy.bind("UninstallCommand.featureNotInstalledByUM", feature.toString()),null)); //$NON-NLS-1$ //$NON-NLS-2$
-			return false;
-		}
-							
-		if (isVerifyOnly()) {
-			// if reached this point, it is safe to uninstall
-			return true;
-		}
-
-		final IUninstallFeatureOperation uninstallOperation =
-			OperationsManager.getOperationFactory().createUninstallOperation(
-				targetSite,
-				feature);
-
-		try {
-			uninstallOperation.execute(monitor, this);
-			return true;
-		} catch (CoreException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-			return false;
-		} catch (InvocationTargetException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-			return false;
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/UpdateCommand.java b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/UpdateCommand.java
deleted file mode 100644
index 3b0dbc1..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/UpdateCommand.java
+++ /dev/null
@@ -1,223 +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 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.update.standalone;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.operations.*;
-import org.eclipse.update.search.*;
-
-/**
- * Command to update and existing feature.
- * <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>
- * @since 3.0
- */
-public class UpdateCommand extends ScriptedCommand {
-
-	private IConfiguredSite targetSite;
-	private UpdateSearchRequest searchRequest;
-	private UpdateSearchResultCollector collector;
-	private String featureId;
-	private String version;
-	private IFeature currentFeature;
-
-	/**
-	 * Update command for updating a feature to a newer version.
-	 * @param featureId
-	 * @param verifyOnly
-	 * @throws Exception
-	 */
-	public UpdateCommand(String featureId, String verifyOnly)
-	throws Exception {
-		this(featureId, null, verifyOnly);
-	}
-	
-	/**
-	 * Update command for updating a feature to a specified newer version.
-	 * @param featureId
-	 * @param version
-	 * @param verifyOnly
-	 * @throws Exception
-	 */
-	public UpdateCommand(String featureId, String version, String verifyOnly)
-		throws Exception {
-
-		super(verifyOnly);
-
-		try {
-			this.featureId = featureId;
-			this.version = version;
-			if (featureId != null) {
-				this.targetSite =
-					UpdateUtils.getSiteWithFeature(
-						getConfiguration(),
-						featureId);
-				if (targetSite == null) {
-					throw new Exception(Policy.bind("Standalone.noConfigSiteForFeature", featureId)); //$NON-NLS-1$
-				}
-				IFeature[] currentFeatures =
-					UpdateUtils.searchSite(featureId, targetSite, true);
-				if (currentFeatures == null || currentFeatures.length == 0) {
-					throw new Exception(Policy.bind("Standalone.noFeatures3", featureId)); //$NON-NLS-1$
-				}
-				this.currentFeature = currentFeatures[0];
-			} else {
-				// Get site to install to
-				IConfiguredSite[] sites =
-					getConfiguration().getConfiguredSites();
-				for (int i = 0; i < sites.length; i++) {
-					if (sites[i].isProductSite()) {
-						targetSite = sites[i];
-						break;
-					}
-				}
-			}
-			if (currentFeature == null)
-				searchRequest = UpdateUtils.createNewUpdatesRequest(null);
-			else {
-				searchRequest =
-					UpdateUtils.createNewUpdatesRequest(
-						new IFeature[] { currentFeature });
-				if (version != null)
-					searchRequest.addFilter(
-						new VersionedIdentifiersFilter(
-							new VersionedIdentifier[] { new VersionedIdentifier(featureId, version) }));
-			}
-
-			collector = new UpdateSearchResultCollector();
-
-		} catch (MalformedURLException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-		} catch (CoreException e) {
-			StandaloneUpdateApplication.exceptionLogged();
-			UpdateCore.log(e);
-		}
-	}
-
-	/**
-	 */
-	public boolean run(IProgressMonitor monitor) {
-		// check if the config file has been modifed while we were running
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			UpdateCore.log(status);
-			return false;
-		}
-		try {
-			monitor.beginTask(Policy.bind("Standalone.updating"), 4);  //$NON-NLS-1$
-			searchRequest.performSearch(collector, new SubProgressMonitor(monitor,1));
-			IInstallFeatureOperation[] operations = collector.getOperations();
-			if (operations == null || operations.length == 0) {
-				StandaloneUpdateApplication.exceptionLogged();
-				UpdateCore.log(Utilities.newCoreException(Policy.bind("Standalone.noUpdate", featureId),	null));  //$NON-NLS-1$
-				return false;
-			}
-
-			// Check for duplication conflicts
-			ArrayList conflicts =
-				DuplicateConflictsValidator.computeDuplicateConflicts(
-					operations,
-					getConfiguration());
-			if (conflicts != null) {
-				StandaloneUpdateApplication.exceptionLogged();
-				UpdateCore.log(Utilities.newCoreException(Policy.bind("Standalone.duplicate"), null)); //$NON-NLS-1$
-				return false;
-			}
-			
-			if (isVerifyOnly()) {
-				status = OperationsManager.getValidator().validatePendingChanges(operations);
-				if (status != null && status.getCode() == IStatus.ERROR)
-					throw new CoreException(status);
-				else
-					return true;
-			}
-
-			IBatchOperation installOperation =
-				OperationsManager
-					.getOperationFactory()
-					.createBatchInstallOperation(
-					operations);
-			try {
-				installOperation.execute(new SubProgressMonitor(monitor,3), this);
-				System.out.println(
-						Policy.bind("Standalone.feature") //$NON-NLS-1$
-						+ featureId
-						+ " " //$NON-NLS-1$
-						+ Policy.bind("Standalone.updated")); //$NON-NLS-1$
-				return true;
-			} catch (Exception e) {
-				StandaloneUpdateApplication.exceptionLogged();
-				UpdateCore.log(
-					Utilities.newCoreException(
-							Policy.bind("Standalone.noUpdate", featureId),  //$NON-NLS-1$
-						e));
-				return false;
-			}
-		} catch (CoreException ce) {
-			status = ce.getStatus();
-			if (status != null
-				&& status.getCode() == ISite.SITE_ACCESS_EXCEPTION) {
-				// Just show this but do not throw exception
-				// because there may be results anyway.
-				System.out.println(Policy.bind("Standalone.connection")); //$NON-NLS-1$
-			} else {
-				StandaloneUpdateApplication.exceptionLogged();
-				UpdateCore.log(ce);
-			}
-			return false;
-		} finally {
-			monitor.done();
-		}
-	}
-
-
-	class UpdateSearchResultCollector implements IUpdateSearchResultCollector {
-		private ArrayList operations = new ArrayList();
-
-		public void accept(IFeature feature) {
-
-			IInstallFeatureOperation op =
-				OperationsManager.getOperationFactory().createInstallOperation(
-					null,
-					feature,
-					null,
-					null,
-					null);
-
-			IConfiguredSite site =
-				UpdateUtils.getDefaultTargetSite(getConfiguration(), op);
-			if (site == null)
-				site = UpdateUtils.getAffinitySite(getConfiguration(), feature);
-			if (site == null)
-				site = targetSite;
-
-			op.setTargetSite(site);
-			operations.add(op);
-		}
-		public IInstallFeatureOperation[] getOperations() {
-			IInstallFeatureOperation[] opsArray =
-				new IInstallFeatureOperation[operations.size()];
-			operations.toArray(opsArray);
-			return opsArray;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/package.html b/update/org.eclipse.update.core/src/org/eclipse/update/standalone/package.html
deleted file mode 100644
index 7aa8db2..0000000
--- a/update/org.eclipse.update.core/src/org/eclipse/update/standalone/package.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.72 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for performing various install/update operations from the command line.
-<h2>
-Package Specification</h2>
-This package contains interfaces for performing update/install operations 
-without using the Update Manager user interface. In general, it is best to use these
-classes for command line invocation, but it is possible to also use them programmatically.
-<p>
-<b>Note:</b> This package 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>
-</body>
-</html>
diff --git a/update/org.eclipse.update.examples/.classpath b/update/org.eclipse.update.examples/.classpath
deleted file mode 100644
index b48fe2a..0000000
--- a/update/org.eclipse.update.examples/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src/"/>
-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-    <classpathentry kind="src" path="/org.apache.xerces"/>
-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>
-    <classpathentry kind="src" path="/org.eclipse.update.core"/>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/update/org.eclipse.update.examples/.cvsignore b/update/org.eclipse.update.examples/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/update/org.eclipse.update.examples/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/update/org.eclipse.update.examples/.project b/update/org.eclipse.update.examples/.project
deleted file mode 100644
index 39cb54a..0000000
--- a/update/org.eclipse.update.examples/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.update.examples</name>

-	<comment></comment>

-	<projects>

-		<project>org.apache.xerces</project>

-		<project>org.eclipse.core.boot</project>

-		<project>org.eclipse.core.runtime</project>

-		<project>org.eclipse.update.core</project>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ui.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ui.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.ui.PluginNature</nature>

-		<nature>org.eclipse.team.cvs.core.cvsnature</nature>

-	</natures>

-</projectDescription>

diff --git a/update/org.eclipse.update.examples/Scrapbook2.jpage b/update/org.eclipse.update.examples/Scrapbook2.jpage
deleted file mode 100644
index b5da99a..0000000
--- a/update/org.eclipse.update.examples/Scrapbook2.jpage
+++ /dev/null
@@ -1,111 +0,0 @@
-SiteManager.getSite(URL)throws CoreException

-  String type = getTypeForprotocol(URL.getprotocol);

-  try {

-    if (type != null){

-	attemptCreationSite(type,URL);

-    } else {

-	attemptCreationSite("http",URL);

-    }

-  } catch (CoreException e){

-    throw new CoreException("Cannot create site",e.getMessage());

-  }

-

-SiteManager.attemptCreationSite(type,URL)throws CoreException

-  try {

-    createSite(type,URL);

-  } catch (InvalidTypeException e){

-    try {

-      createSite(e.getRealType(),URL);

-    } catch (InvalidSiteExeption e){

-      throw new CoreException("Wrong site type");

-    }

-  }

-

-SiteManager.createSite(type,URL) throws CoreExeption, InvalidSiteTypeException

-

-

-try {

-			

-	factory.createSite(url, forceCreation);

-	

-} catch (IOException e) {

-	// if the URL is pointing to either a file 

-// or a directory, without reference			

-if (url.getRef() != null) {

-	// 4 nothing we can do

-	throw newCoreException("Error accessing url:"+url.toExternalForm()+"\r\n"+e.getMessage(),e);

-} else if (url.getFile().endsWith("/")) {

-	// 1 try to add site.xml

-	try {

-		url = new URL(url,Site.SITE_XML);

-	} catch (MalformedURLException e1){

-		throw newCoreException("Cannot create URL:"+url.toExternalForm()+"+"+Site.SITE_XML,e1);

-	}

-	try {

-		site = factory.createSite(url, forceCreation);

-	} catch (ParsingException e1){

-		throw newCoreException("Error parsing URL:"+url.toExternalForm()+"\r\n"+e1.getMessage(),e1);					

-	} catch (IOException e1){

-		throw newCoreException("Error accessing url:"+url.toExternalForm()+"\r\n"+e1.getMessage(),e1);					

-	}

-} else if (url.getFile().endsWith(Site.SITE_XML)) {

-	// 3 nothing we can do

-	throw newCoreException("Error accessing url:"+url.toExternalForm()+"\r\n"+e.getMessage(),e);

-} else {

-	// 2 try to add /site.xml

-	try {

-		url = new URL(url.getProtocol(),url.getHost(), url.getPort(), url.getFile()+"/"+Site.SITE_XML);

-	} catch (MalformedURLException e1){

-		throw newCoreException("Cannot create URL:"+url.toExternalForm()+"+"+Site.SITE_XML,e1);

-	}

-	

-	try {

-		site = factory.createSite(url, forceCreation);

-	} catch (ParsingException e1){

-		throw newCoreException("Error parsing URL:"+url.toExternalForm()+"\r\n"+e1.getMessage()+"\r\nPrevious Input/Output Error:"+e.getMessage(),e1);					

-	} catch (IOException e1){

-		throw newCoreException("Error accessing url:"+url.toExternalForm()+"\r\n"+e1.getMessage()+"\r\nPrevious Input/Output Error:"+e.getMessage(),e1);					

-				}				

-			}

-

-		} catch (ParsingException e) {

-			

-			// if the URL is pointing to either a file 

-// or a directory, without reference			

-if (url.getRef() != null) {

-	// 4 nothing we can do

-	throw newCoreException("Error parsing URL:"+url.toExternalForm()+"\r\n"+e.getMessage(),e);

-} else if (url.getFile().endsWith("/")) {

-	// 1 try to add site.xml

-	try {

-		url = new URL(url,Site.SITE_XML);

-	} catch (MalformedURLException e1){

-		throw newCoreException("Cannot create URL:"+url.toExternalForm()+"+"+Site.SITE_XML,e1);

-	}

-	try {

-		site = factory.createSite(url, forceCreation);

-	} catch (ParsingException e1){

-		throw newCoreException("Error parsing URL:"+url.toExternalForm()+"\r\n"+e1.getMessage(),e1);					

-	} catch (IOException e1){

-		throw newCoreException("Error accessing url:"+url.toExternalForm()+"\r\n"+e1.getMessage(),e1);

-				}				

-

-			} else if (url.getFile().endsWith(Site.SITE_XML)) {

-				// 3 nothing we can do

-	throw newCoreException("Error parsing URL:"+url.toExternalForm()+"\r\n"+e.getMessage(),e);					

-} else {

-	// 2 try to add /site.xml

-	

-	try {

-		url = new URL(url.getProtocol(),url.getHost(), url.getPort(), url.getFile()+"/"+Site.SITE_XML);

-	} catch (MalformedURLException e1){

-		throw newCoreException("Cannot create URL:"+url.toExternalForm()+"+"+Site.SITE_XML,e1);

-	}

-	try {

-		site = factory.createSite(url, forceCreation);

-	} catch (ParsingException e1){

-		throw newCoreException("Error parsing URL:"+url.toExternalForm()+"\r\n"+e1.getMessage()+"\r\nPrevious Parsing error:"+e.getMessage(),e1);					

-	} catch (IOException e1){

-		throw newCoreException("Error accessing url:"+url.toExternalForm()+"\r\n"+e1.getMessage()+"\r\nPrevious Parsing error:"+e.getMessage(),e1);

-	

-

diff --git a/update/org.eclipse.update.examples/about.html b/update/org.eclipse.update.examples/about.html
deleted file mode 100644
index 768324e..0000000
--- a/update/org.eclipse.update.examples/about.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<html>

-<head>

-<title>About</title>

-<style type="text/css">

-p, table, td, th { font-family: arial, helvetica, geneva; font-size: 10pt}

-pre { font-family: "Courier New", Courier, mono; font-size: 10pt}

-h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}

-code { font-family: "Courier New", Courier, mono; font-size: 10pt}

-sup { font-family: arial,helvetica,geneva; font-size: 10px}

-h3 { font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}

-li { font-family: arial, helvetica, geneva; font-size: 10pt}

-h1 { font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}

-body { font-family: arial, helvetica, geneva; font-size: 10pt; clip: rect(   ); margin-top: 5mm; margin-left: 3mm}

-</style>

-</head>

-<body lang="EN-US" link="blue" vlink="purple">

-<table border="0" cellspacing="5" cellpadding="2" width="100%" >

-  <tr> 

-    <td align="LEFT" valign="TOP" colspan="2" bgcolor="#0080C0"><b><font color="#FFFFFF">About This Content</font></b></td>

-  </tr>

-  <tr> 

-    <td> 

-<p>11th December, 2001</p>	

-<h3>License</h3>

-<p>Eclipse.org makes available all content in this plug-in &quot;Content&quot;.  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the

-<a href="http://www.eclipse.org/legal/cpl-v05.html">Common Public License Version 0.5</a> &quot;CPL&quot;.  For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>

-

-<h3>Contributions</h3>

-

-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise

-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such

-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>

-

-<p>If this Content is licensed to you under license terms and conditions other than the CPL &quot;Other License&quot;, any modifications, enhancements and/or

-other code and/or documentation &quot;Modifications&quot; uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the

-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available

-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also

-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of

-the CPL.</p>

-</td></tr></table>

-</body>

-</html>
\ No newline at end of file
diff --git a/update/org.eclipse.update.examples/build.properties b/update/org.eclipse.update.examples/build.properties
deleted file mode 100644
index fda21a6..0000000
--- a/update/org.eclipse.update.examples/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-source.updateexamplescore.jar = src/

-src.includes=about.html

-bin.includes=plugin.xml,plugin.properties,*.jar,about.html

diff --git a/update/org.eclipse.update.examples/plugin.properties b/update/org.eclipse.update.examples/plugin.properties
deleted file mode 100644
index 9a31f8c..0000000
--- a/update/org.eclipse.update.examples/plugin.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-

-name = Install/Update BuildZip Example

-provider-name = Eclipse.org
\ No newline at end of file
diff --git a/update/org.eclipse.update.examples/plugin.xml b/update/org.eclipse.update.examples/plugin.xml
deleted file mode 100644
index e8b4092..0000000
--- a/update/org.eclipse.update.examples/plugin.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<plugin

-   id="org.eclipse.update.examples"

-   name="%name"

-   version="2.0.0"

-   provider-name="%provider-name">

-

-   <runtime>

-      <library name="updateexamples.jar">

-         <export name="*"/>

-      </library>

-   </runtime>

-   <requires>

-      <import plugin="org.eclipse.core.runtime"/>

-      <import plugin="org.apache.xerces"/>

-      <import plugin="org.eclipse.core.boot"/>

-      <import plugin="org.eclipse.update.core"/>

-   </requires>

-

-

-   <extension

-         id="zip"

-         point="org.eclipse.update.core.featureTypes">

-      <feature-factory

-            class="org.eclipse.update.examples.buildzip.BuildZipFeatureFactory">

-      </feature-factory>

-   </extension>

-   <extension

-         id="site.zip"

-         point="org.eclipse.update.core.siteTypes">

-      <site-factory

-            class="org.eclipse.update.examples.buildzip.BuildZipSiteFactory">

-      </site-factory>

-   </extension>

-   <extension

-         id="site.freeform"

-         point="org.eclipse.update.core.siteTypes">

-      <site-factory

-            class="org.eclipse.update.examples.freeform.FreeFormSiteFactory">

-      </site-factory>

-   </extension>

-

-</plugin>

diff --git a/update/org.eclipse.update.examples/site/features/com.reddot.reddot_1.0.0.jar b/update/org.eclipse.update.examples/site/features/com.reddot.reddot_1.0.0.jar
deleted file mode 100644
index 06507a7..0000000
--- a/update/org.eclipse.update.examples/site/features/com.reddot.reddot_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.examples/site/features/com.reddot.reddot_2.0.0.jar b/update/org.eclipse.update.examples/site/features/com.reddot.reddot_2.0.0.jar
deleted file mode 100644
index 7236815..0000000
--- a/update/org.eclipse.update.examples/site/features/com.reddot.reddot_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.examples/site/info/images/redDot.jpg b/update/org.eclipse.update.examples/site/info/images/redDot.jpg
deleted file mode 100644
index f0fb5c3..0000000
--- a/update/org.eclipse.update.examples/site/info/images/redDot.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.examples/site/info/siteInfo.html b/update/org.eclipse.update.examples/site/info/siteInfo.html
deleted file mode 100644
index ceca97d..0000000
--- a/update/org.eclipse.update.examples/site/info/siteInfo.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0040)http://dejan/testSite/info/siteInfo.html -->
-<HTML><HEAD>
-<META http-equiv=Content-Type content="text/html; charset=windows-1252">
-<META content="MSHTML 5.50.4807.2300" name=GENERATOR></HEAD>
-<BODY>
-<H1 align=left><IMG height=55 src="images/redDot.jpg" width=56 
-align=center border=0> <FONT color=#c0c0c0>Follow the Red Dot&nbsp;</FONT></H1>
-<P>Welcome to the <B><FONT color=#800000>Red Dot</FONT> </B>update site. Use 
-your Eclipse <B>Update Sites</B> view to locate the feature version you want to 
-install or update to.</P>
-<H2>About Red Dot Feature</H2>
-<P>Our revolutionary Red Dot Eclipse feature changed all preconceptions about 
-what Eclipse features can and cannot do. Using our strikingly simple concept of 
-adding buttons to the Eclipse tool bar, we allow you to open dialogs that show 
-you the version of the Red Dot feature. The beauty of the concept stems from its 
-simplicity, ease of use, high performance and small footprint. Never before was 
-it so easy to press a button on the tool bar to get some text shown in the 
-dialog.</P>
-<H2>News</H2>
-<UL>
-  <LI><B>November 2001</B> - version 2.0.0 of the Red Dot feature is available 
-  for download. This version brings improvements across the board, further 
-  strengthening an already established Eclipse feature classic. Improvements 
-  will be visible the moment you update your feature - our famous red dot tool 
-  bar button is now <B>25% more red</B>, making it even easier to spot among 
-  other buttons. 
-  <LI><B>October 2001</B> - version 1.0.0 of the Red Dot feature is available 
-  for download. Select it in the 'Sites' view of the Update Manager and press 
-  'Install' button. </LI></UL>
-<HR>
-<I>Copyright 2001 Red Dot Corporation Ltd. All rights reserved.</I> 
-</BODY></HTML>
diff --git a/update/org.eclipse.update.examples/site/plugins/com.reddot.reddot_1.0.0.jar b/update/org.eclipse.update.examples/site/plugins/com.reddot.reddot_1.0.0.jar
deleted file mode 100644
index c88b793..0000000
--- a/update/org.eclipse.update.examples/site/plugins/com.reddot.reddot_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.examples/site/plugins/com.reddot.reddot_2.0.0.jar b/update/org.eclipse.update.examples/site/plugins/com.reddot.reddot_2.0.0.jar
deleted file mode 100644
index da31ad3..0000000
--- a/update/org.eclipse.update.examples/site/plugins/com.reddot.reddot_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.examples/site/site.xml b/update/org.eclipse.update.examples/site/site.xml
deleted file mode 100644
index b091324..0000000
--- a/update/org.eclipse.update.examples/site/site.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<site>
-   <description url="info/siteInfo.html"/>
-
-   <feature url="features/com.reddot.reddot_1.0.0.jar">
-      <category name="reddot"/>
-   </feature>
-
-   <feature url="features/com.reddot.reddot_2.0.0.jar">
-      <category name="reddot"/>
-   </feature>
-
-   <category-def label="Red Dot Versions" name="reddot">
-      <description url="info/RedDotVersions.html">
-         This category contains all of the currently available versions of Red Dot feature.
-      </description>
-   </category-def>
-
-</site>   
\ No newline at end of file
diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipConverter.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipConverter.java
deleted file mode 100644
index e81ec2a..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipConverter.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package org.eclipse.update.examples.buildzip;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2002.

- * All Rights Reserved.

- */ 

- 

-import java.io.File;

-import java.io.FileOutputStream;

-import java.io.IOException;

-import java.io.InputStream;

-import java.io.StringBufferInputStream;

-import java.net.URL;

-import java.util.Properties;

-import java.util.jar.JarEntry;

-import java.util.jar.JarOutputStream;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.ContentReference;

-import org.eclipse.update.core.IFeature;

-import org.eclipse.update.core.IFeatureContentProvider;

-import org.eclipse.update.core.IPluginEntry;

-import org.eclipse.update.core.JarContentReference;

-import org.eclipse.update.core.model.InstallAbortedException;

-

-/**

- * Converts eclipse build .zip files into packaged feature

- */

-public class BuildZipConverter {

-

-	public static void main(String[] args) {

-		if (args.length <=0) {

-			System.out.println("Usage:     BuildZipConverter <path to the zip file>.\r\nExample: BuildZipConverter d:/download/integration-eclipse-SDK-20020109-win32.zip");

-			return;

-		}

-		try {

-			URL buildzip = new URL(("file:"+args[0]).replace(File.separatorChar, '/'));

-			BuildZipFeatureFactory factory = new BuildZipFeatureFactory();

-			IFeature feature = factory.createFeature(buildzip, null);

-			IFeatureContentProvider provider = feature.getFeatureContentProvider();

-			

-			ContentReference[] refs = provider.getFeatureEntryContentReferences(null);

-			

-			File site = new File((args[0]+".packaged/").replace('/',File.separatorChar));

-			site.mkdirs();

-			File featuresDir = new File(site,"features");

-			featuresDir.mkdirs();

-			File pluginsDir = new File(site, "plugins");

-			pluginsDir.mkdirs();

-			

-			File jarFile = new File(featuresDir,feature.getVersionedIdentifier()+".jar");

-			System.out.println("writing feature archive: "+feature.getVersionedIdentifier()+".jar");

-			writeJar(jarFile, refs, feature, null, null);

-			JarContentReference jar = new JarContentReference("build.zip",buildzip);

-			Properties manifest = getBuildManifest(jar);

-			

-			IPluginEntry[] plugins = feature.getPluginEntries();

-			for (int i=0; i<plugins.length; i++) {

-				refs = provider.getPluginEntryContentReferences(plugins[i], null);

-				jarFile = new File(pluginsDir,plugins[i].getVersionedIdentifier()+".jar");

-				System.out.println("writing plugin archive: "+plugins[i].getVersionedIdentifier()+".jar");

-				writeJar(jarFile, refs, feature, plugins[i].getVersionedIdentifier().getIdentifier(), manifest);

-			}

-			

-			writeSiteManifest(site, feature);

-		} catch(Exception e) {

-			e.printStackTrace();

-		}

-	}

-	

-	public static void writeJar(File jarFile,ContentReference[] refs, IFeature feature, String pluginId, Properties manifest) {

-			

-		JarOutputStream jos = null;

-		FileOutputStream os = null;

-		InputStream is = null;

-		

-		try {

-			os = new FileOutputStream(jarFile);

-			jos = new JarOutputStream(os);

-			JarEntry entry = null;

-			String buf = null;

-			StringBufferInputStream sbis = null;

-			

-			// write jar manifest (first entry in output stream)

-			buf = "Manifest-Version: 1.0\nCreated-By: 2.0.0 (www.eclipse.org Feature Packager)\n";

-			sbis = new StringBufferInputStream(buf);

-			entry = new JarEntry("META-INF/MANIFEST.MF");

-			jos.putNextEntry(entry);

-			Utilities.copy(sbis,jos,null);

-			sbis.close();

-			

-			// jar up the references

-			for (int i=0; i<refs.length; i++) {

-				String id = refs[i].getIdentifier();

-				entry = new JarEntry(id);

-				jos.putNextEntry(entry);

-				is = refs[i].getInputStream();

-				Utilities.copy(is,jos,null);

-				is.close(); is = null;

-			}

-			

-			// for plugin jars, write build manifest

-			if (pluginId != null && manifest != null) {

-				String key = "plugin@"+pluginId;

-				String value = manifest.getProperty(key);

-				if (value != null) {

-					if (value.equals("HEAD")) {

-						value += "-" + feature.getVersionedIdentifier().getVersion().getMajorComponent();

-					}

-					buf = key + "=" + value;

-					sbis = new StringBufferInputStream(buf);

-					entry = new JarEntry("buildmanifest.properties");

-					jos.putNextEntry(entry);

-					Utilities.copy(sbis,jos,null);

-					sbis.close();

-				}

-			}

-			

-			// close jar

-			jos.close(); jos = null; os = null;

-		} catch(Exception e) {

-			e.printStackTrace();

-		} finally {

-			if (is != null) 

-				try {is.close();} catch(IOException e) {}

-				

-			if (jos != null) 

-				try {jos.close();} catch(IOException e) {}

-			else if (os != null)

-				try {os.close();} catch(IOException e) {}

-		}		

-	}

-	

-	public static void writeSiteManifest(File site, IFeature feature) throws IOException, InstallAbortedException {

-		File manifest = new File(site, "site.xml");

-		FileOutputStream os = new FileOutputStream(manifest);

-		String siteXML = "<site>\n   <feature url=\"features/"+feature.getVersionedIdentifier().toString()+".jar\"/>\n</site>";

-		StringBufferInputStream sbis = new StringBufferInputStream(siteXML);

-		Utilities.copy(sbis,os,null);

-		os.close();

-		sbis.close();

-	}

-	

-	public static Properties getBuildManifest(JarContentReference jar) throws IOException {

-		ContentReference manifestEntry = jar.peek("eclipse/buildmanifest.properties",null/*ContentSelector*/, null/*ProgressMonitor*/);

-		InputStream is = null;

-		Properties props = null;

-		try {

-			props = new Properties();

-			is = manifestEntry.getInputStream();

-			props.load(is);

-		} finally {

-			if (is != null) try{ is.close(); } catch(IOException e) {}

-		}

-		return props;

-	}

-}

diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureContentProvider.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureContentProvider.java
deleted file mode 100644
index a0f1c0e..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureContentProvider.java
+++ /dev/null
@@ -1,256 +0,0 @@
-package org.eclipse.update.examples.buildzip;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2002.

- * All Rights Reserved.

- */ 

-

-import java.io.File;

-import java.io.FileOutputStream;

-import java.io.IOException;

-import java.net.URL;

-import java.util.jar.JarEntry;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.ContentReference;

-import org.eclipse.update.core.FeatureContentProvider;

-import org.eclipse.update.core.IFeatureContentProvider;

-import org.eclipse.update.core.INonPluginEntry;

-import org.eclipse.update.core.IPluginEntry;

-import org.eclipse.update.core.IVerifier;

-import org.eclipse.update.core.InstallMonitor;

-import org.eclipse.update.core.JarContentReference;

-import org.eclipse.update.core.JarContentReference.ContentSelector;

-import org.eclipse.update.core.model.FeatureModel;

-import org.eclipse.update.core.model.InstallAbortedException;

-

-/**

- * An example feature content provider. It handles features packaged as

- * build zip's using the format used for integration and stable builds

- * posted on the downloads pages at www.eclipse.org

- * </p>

- * @since 2.0

- */

-

-public class BuildZipFeatureContentProvider extends FeatureContentProvider implements IFeatureContentProvider {

-

-	private JarContentReference baseReference;

-	private ContentReference generatedFeatureManifest;	

-	private ContentReference[] featureEntryContentReferences;

-	private IPluginEntry currentPluginEntry;

-	private INonPluginEntry currentNonPluginEntry;

-	

-	public BuildZipFeatureContentProvider(URL base) {

-		super(base);

-		this.baseReference = new JarContentReference("build.zip",base);

-	}

-	

-	/*

-	 * @see IFeatureContentProvider#getFeatureManifest()

-	 */

-	public ContentReference getFeatureManifestReference(InstallMonitor monitor) throws CoreException {

-		if (generatedFeatureManifest == null) {

-			throw newCoreException("Feature manifest is not available",null);

-		}

-		else

-			return generatedFeatureManifest;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getArchiveReferences()

-	 */

-	public ContentReference[] getArchiveReferences(InstallMonitor monitor) {

-		// the feature and all its plugins files are packaged in a single archive

-		return new ContentReference[] { baseReference };

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getFeatureEntryArchiveReferences()

-	 */

-	public ContentReference[] getFeatureEntryArchiveReferences(InstallMonitor monitor) {

-		// the feature and all its plugins files are packaged in a single archive

-		return new ContentReference[] { baseReference };

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getPluginEntryArchiveReferences(IPluginEntry)

-	 */

-	public ContentReference[] getPluginEntryArchiveReferences(IPluginEntry pluginEntry, InstallMonitor monitor) {

-		// the feature and all its plugins files are packaged in a single archive

-		return new ContentReference[] { baseReference };

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getNonPluginEntryArchiveReferences(INonPluginEntry)

-	 */

-	public ContentReference[] getNonPluginEntryArchiveReferences(INonPluginEntry nonPluginEntry, InstallMonitor monitor) 

-		throws CoreException {

-		try {

-			return peekNonPluginEntryContent(nonPluginEntry,monitor);

-		} catch(IOException e) {

-			throw newCoreException("Unable to return content for non plugin entry "+nonPluginEntry.getIdentifier(),e);

-		}

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getFeatureEntryContentReferences()

-	 */

-	public ContentReference[] getFeatureEntryContentReferences(InstallMonitor monitor) {

-		if (featureEntryContentReferences == null)

-			return new ContentReference[0];

-		else

-			return  featureEntryContentReferences;

-	}

-

-	/*

-	 * @see IFeatureContentProvider#getPluginEntryContentReferences(IPluginEntry)

-	 */

-	public ContentReference[] getPluginEntryContentReferences(IPluginEntry pluginEntry, InstallMonitor monitor)

-		throws CoreException {

-		try {

-			return peekPluginEntryContent(pluginEntry, monitor);

-		} catch(IOException e) {

-			throw newCoreException("Unable to return content for plugin entry "+pluginEntry.getVersionedIdentifier(),e);

-		}

-	}

-	

-	public URL getFeatureBaseURL() throws IOException {

-		return getWorkingDirectory().toURL();

-			

-	}

-

-	ContentReference getFeatureBuildManifest() throws Exception {

-		return baseReference.peek("eclipse/buildmanifest.properties",null/*ContentSelector*/, null/*ProgressMonitor*/);

-	}

-

-	ContentReference getPluginManifest(String pluginId, boolean isFragment) throws Exception {			

-		String manifestName = "eclipse/plugins/" + pluginId + "/" + (isFragment ? "fragment.xml" : "plugin.xml");

-		return baseReference.peek(manifestName, null/*ContentSelector*/, null/*ProgressMonitor*/);

-	}

-	

-	void unpackFeatureEntryContent(FeatureModel feature, InstallMonitor monitor) throws IOException, InstallAbortedException {

-			

-		// define selector for feature entry files

-		ContentSelector selector = new ContentSelector() {

-			public boolean include(JarEntry jarEntry) {

-				if (jarEntry.isDirectory())

-					return false;					

-				String entry = jarEntry.getName();

-				if (entry.startsWith("eclipse/readme/"))

-					return true;

-				else if (entry.startsWith("eclipse/splash/"))

-					return true;

-				else if (entry.startsWith("eclipse/") && entry.indexOf("/",8)==-1 && entry.endsWith(".html"))

-					return true;

-				else

-					return false;	

-			}

-			public String defineIdentifier(JarEntry jarEntry) {

-				String entry = jarEntry.getName();

-				if (entry.startsWith("eclipse/"))

-					return entry.substring(8);

-				else

-					return entry;

-			}

-		};

-		

-		// unpack feature entry files

-		File tmpDir = getWorkingDirectory();

-		ContentReference[] refs = baseReference.unpack(tmpDir, selector, monitor);

-		

-		// write out feature manifest (feature.xml);

-		File manifest = Utilities.createLocalFile(tmpDir,"feature.xml");

-		ContentReference manifestReference = new ContentReference("feature.xml", manifest);

-		DefaultModelWriter w = new DefaultModelWriter(feature);

-		FileOutputStream os = null;

-		try {

-			os = new FileOutputStream(manifest);

-			w.writeFeatureManifest(os);

-		} finally {

-			if (os != null) try { os.close(); } catch(IOException e) {}

-		}

-		this.generatedFeatureManifest = manifestReference;

-		

-		// save references (newly-written feature.xml plus rest of selected feature files)

-		ContentReference[] allRefs = new ContentReference[refs.length+1];

-		allRefs[0] = manifestReference;

-		System.arraycopy(refs,0,allRefs,1,refs.length);

-		featureEntryContentReferences = allRefs;

-	}

-		

-	ContentReference[] peekPluginEntryContent(IPluginEntry plugin, InstallMonitor monitor) throws IOException {

-		

-		// define selector for plugin entry files

-		ContentSelector selector = new ContentSelector() {

-			public boolean include(JarEntry jarEntry) {

-				if (jarEntry.isDirectory())

-					return false;

-				String entry = jarEntry.getName();

-				String id = currentPluginEntry.getVersionedIdentifier().getIdentifier();

-				if (id==null)

-					return false;

-				else if (entry.startsWith("eclipse/plugins/"+id+"/"))

-					return true;

-				else

-					return false;	

-			}

-			public String defineIdentifier(JarEntry jarEntry) {

-				String entry = jarEntry.getName();

-				int ix = entry.indexOf("/",16);

-				if (ix != -1) {

-					return entry.substring(ix+1);

-				} else {

-					return entry;

-				}

-			}

-		};

-		

-		// unpack plugin entry files

-		currentPluginEntry = plugin;

-		return baseReference.peek(selector, monitor);

-	}

-		

-	ContentReference[] peekNonPluginEntryContent(INonPluginEntry data, InstallMonitor monitor) throws IOException {

-		

-		// define selector for non plugin entry files

-		ContentSelector selector = new ContentSelector() {

-			public boolean include(JarEntry jarEntry) {

-				if (jarEntry.isDirectory())

-					return false;

-				String entry = jarEntry.getName();

-				String id = currentNonPluginEntry.getIdentifier();

-				if (!id.equals("root"))

-					return false;

-				else if (!entry.startsWith("eclipse/plugins/"))

-					return true;

-				else

-					return false;	

-			}

-			public String defineIdentifier(JarEntry jarEntry) {

-				String entry = jarEntry.getName();

-				if (entry.startsWith("eclipse/"))

-					return entry.substring(8);

-				else

-					return entry;

-			}

-		};

-		

-		// unpack non plugin entry files

-		currentNonPluginEntry = data;

-		return baseReference.peek(selector, monitor);

-	}

-	

-	private CoreException newCoreException(String s, Throwable e) throws CoreException {

-		return new CoreException(new Status(IStatus.ERROR,"org.eclipse.update.examples",0,s,e));

-	}

-	/*

-	 * @see IFeatureContentProvider#getVerifier()

-	 */

-	public IVerifier getVerifier() throws CoreException {

-		return null;

-	}

-

-}

diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureFactory.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureFactory.java
deleted file mode 100644
index d6150b7..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureFactory.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.eclipse.update.examples.buildzip;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2002.

- * All Rights Reserved.

- */ 

-

-import java.net.URL;

-

-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.update.core.BaseFeatureFactory;

-import org.eclipse.update.core.Feature;

-import org.eclipse.update.core.IFeature;

-import org.eclipse.update.core.IFeatureFactory;

-import org.eclipse.update.core.ISite;

-import org.eclipse.update.core.model.FeatureModel;

-

-/**

- * An example feature factory based on the packaging 

- * format used for integration and stable builds

- * posted on the downloads pages at www.eclipse.org

- * </p>

- * @since 2.0

- */

-

-public class BuildZipFeatureFactory

-	extends BaseFeatureFactory

-	implements IFeatureFactory {

-

-	/*

-	 * @see IFeatureFactory#createFeature(URL, ISite, IProgressMonitor)

-	 */

-	public IFeature createFeature(URL url, ISite site, IProgressMonitor monitor) throws CoreException {

-		try {

-			// create content provider for feature

-			BuildZipFeatureContentProvider cp = new BuildZipFeatureContentProvider(url);

-			Feature feature = null;

-			

-			// parse the feature

-			feature = (Feature) parseFeature(cp);

-			

-			// initialize feature

-			feature.setFeatureContentProvider(cp);

-			feature.setSite(site);

-			feature.resolve(cp.getFeatureBaseURL(), null); 

-			feature.markReadOnly();

-			return feature;

-		} catch (Exception e) {

-			throw new CoreException(new Status(IStatus.ERROR,"org.eclipse.update.examples.buildzip",0,"Unable to create feature",e));

-		}

-	}

-

-	/*

-	 * parse the build zip to reconstruct a feature model

-	 */

-	public FeatureModel parseFeature(BuildZipFeatureContentProvider cp) throws Exception {

-		return (new BuildZipFeatureParser(this)).parse(cp);

-	}

-

-}

diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureParser.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureParser.java
deleted file mode 100644
index 6748ded..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureParser.java
+++ /dev/null
@@ -1,203 +0,0 @@
-package org.eclipse.update.examples.buildzip;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2002.

- * All Rights Reserved.

- */ 

- 

-import java.io.IOException;

-import java.io.InputStream;

-import java.net.URLDecoder;

-import java.util.Enumeration;

-import java.util.Properties;

-import java.util.StringTokenizer;

-

-import org.eclipse.core.runtime.PluginVersionIdentifier;

-import org.eclipse.update.core.ContentReference;

-import org.eclipse.update.core.model.FeatureModel;

-import org.eclipse.update.core.model.PluginEntryModel;

-import org.eclipse.update.core.model.URLEntryModel;

-

-/**

- * An example feature parser. It handles features packaged as

- * build zip's using the format used for integration and stable builds

- * posted on the downloads pages at www.eclipse.org

- * </p>

- * @since 2.0

- */

-

-public class BuildZipFeatureParser {	

-	

-	private BuildZipFeatureFactory factory;

-	private BuildZipPluginParser pluginParser;

-	

-	public BuildZipFeatureParser(BuildZipFeatureFactory factory) {

-		this.factory = factory;

-	}

-	

-	public FeatureModel parse(BuildZipFeatureContentProvider cp) throws Exception {				

-		return parseFeature(cp);

-	}

-	

-	private FeatureModel parseFeature(BuildZipFeatureContentProvider cp) throws Exception {		

-		

-		// get reference to the build manifest

-		ContentReference manifestRef = cp.getFeatureBuildManifest();

-		InputStream is = manifestRef.getInputStream();		

-		

-		// load buildmanifest.properties

-		Properties manifest = new Properties();

-		try {

-			manifest.load(is);

-		} finally {

-			if (is!=null) try { is.close(); } catch(IOException e) {}

-		}

-		

-		// populate feature model

-		FeatureModel feature = factory.createFeatureModel();

-		parseFeatureEntry(cp, feature, manifest);

-		

-		// parse plugin entries

-		parsePluginEntries(cp, feature, manifest); 

-		

-		// parse non-plugin entries

-		parseNonPluginEntries(cp, feature, manifest);

-		

-		// unpack feature entry content

-		cp.unpackFeatureEntryContent(feature, null/*IProgressMonitor*/);

-		

-		return feature;

-	}

-	

-	private void parseFeatureEntry(BuildZipFeatureContentProvider cp, FeatureModel feature, Properties manifest) throws Exception {

-		

-		// parse out build zip file name. It is assumed to be in the

-		// form <package identifier>-<build date>-<target platform>.zip,

-		// where

-		//		<package identifier> is hyphen (-) separaterd token list

-		//		<build date> is single all-numeric token

-		//		<target platform> is hyphen (-) separaterd token list

-		

-		String pkgId = "";

-		String target = "";

-		String build = "";

-		String state = "ID";

-		boolean firstToken = true;

-		String zipName = URLDecoder.decode(cp.getURL().getFile());

-		int ix = zipName.lastIndexOf("/");

-		if (ix != -1)

-			zipName = zipName.substring(ix+1);

-		if (zipName.endsWith(".zip")) {

-			zipName = zipName.substring(0,zipName.length()-4);

-		}

-		StringTokenizer tokenizer = new StringTokenizer(zipName,"-",false);

-		String token;

-		while(tokenizer.hasMoreTokens()) {

-			token = tokenizer.nextToken();

-			try {

-				Long.parseLong(token);

-				state = "TARGET";

-				target = "";

-				firstToken = true;

-				build = token+".0.0";

-			} catch (NumberFormatException e) {

-				if (state.equals("ID")) {

-					pkgId += (firstToken ? "" : " ") + token;

-				} else {

-					target += (firstToken ? "" : " ") + token;

-				}

-				firstToken = false;

-			}

-		}

-		

-		// generate base feature attributes

-		feature.setFeatureIdentifier(pkgId.replace(' ','.'));

-		feature.setFeatureVersion(build);

-		feature.setLabel(pkgId.substring(0,1).toUpperCase() + pkgId.substring(1) + " for " + target);

-		feature.setProvider("www.eclipse.org");

-		feature.setImageURLString("splash/splash_full.bmp");

-		feature.setOS(target.replace(' ','-'));	

-		

-		// add description

-		URLEntryModel description = factory.createURLEntryModel();

-		description.setURLString("readme/readme.html");

-		description.setAnnotation("x");

-		feature.setDescriptionModel(description);

-		

-		// add license

-		URLEntryModel license = factory.createURLEntryModel();

-		license.setURLString("about.html");

-		license.setAnnotation("You must view the full license by following the \"License\" link in the feature preview.\nSelecting \"Accept\" indicates that you have viewed and accepted the feature license.");

-		feature.setLicenseModel(license);

-		

-		// add copyright

-		URLEntryModel copyright = factory.createURLEntryModel();

-		copyright.setURLString("notice.html");

-		copyright.setAnnotation("x");

-		feature.setCopyrightModel(copyright);

-	}	

-	

-	private void parsePluginEntries(BuildZipFeatureContentProvider cp, FeatureModel feature, Properties manifest) throws Exception {

-		

-		Enumeration entries = manifest.keys();

-		String plugin;

-		String pluginId;

-		String pluginVersion;

-		String pluginBuildVersion;

-		PluginEntryModel pluginEntry;

-		while(entries.hasMoreElements()) {

-			plugin = (String) entries.nextElement();

-			if (plugin.startsWith("plugin@")) {

-				pluginId = plugin.substring(7);

-				pluginBuildVersion = manifest.getProperty(plugin);

-				if (pluginBuildVersion.equals("HEAD")) {

-					String featureVersion = feature.getFeatureVersion();

-					int ix = featureVersion.indexOf(".");

-					String featureMajor = ix==-1 ? featureVersion : featureVersion.substring(0,ix);

-					pluginBuildVersion += "-" + featureMajor;

-				}

-				pluginEntry = factory.createPluginEntryModel();

-				pluginVersion = parsePluginVersionInManifest(cp, pluginId, pluginEntry);

-				if (pluginVersion != null) {

-					pluginEntry.setPluginIdentifier(pluginId);

-					pluginEntry.setPluginVersion((new PluginVersionIdentifier(pluginVersion)).toString()+"."+pluginBuildVersion);

-					feature.addPluginEntryModel(pluginEntry);

-				}

-			}

-		}		

-	}

-	

-	private void parseNonPluginEntries(BuildZipFeatureContentProvider cp, FeatureModel feature, Properties manifest) throws Exception {

-	//	NonPluginEntryModel nonPluginEntry = factory.createNonPluginEntryModel();

-	//	nonPluginEntry.setIdentifier("root");

-	//	feature.addNonPluginEntryModel(nonPluginEntry);

-	}

-	

-	private String parsePluginVersionInManifest(BuildZipFeatureContentProvider cp, String pluginId, PluginEntryModel pluginEntry) {

-

-		if (pluginParser == null)

-			pluginParser = new BuildZipPluginParser();

-				

-		InputStream is = null;				

-		ContentReference pluginManifest;

-		try {

-			// try plugin.xml

-			pluginManifest  = cp.getPluginManifest(pluginId, false);

-			is = pluginManifest.getInputStream();

-			return pluginParser.parse(is);

-		} catch (Exception e) {

-			try {

-				// retry with feature.xml

-				pluginManifest  = cp.getPluginManifest(pluginId, true);

-				is = pluginManifest.getInputStream();

-				String result = pluginParser.parse(is);

-				pluginEntry.isFragment(true);

-				return result;

-			} catch (Exception e2) {

-				return null;

-			}

-		} finally {

-			if (is != null) try { is.close(); } catch (IOException e) {}

-		}

-	}

-}

diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipPluginParser.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipPluginParser.java
deleted file mode 100644
index 90e1d1f..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipPluginParser.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package org.eclipse.update.examples.buildzip;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2002.

- * All Rights Reserved.

- */

-

-import java.io.IOException;

-import java.io.InputStream;

-

-import org.apache.xerces.parsers.SAXParser;

-import org.xml.sax.Attributes;

-import org.xml.sax.InputSource;

-import org.xml.sax.SAXException;

-import org.xml.sax.helpers.DefaultHandler;

-

-/**

- * Parse default feature.xml

- */

-

-public class BuildZipPluginParser extends DefaultHandler {

-

-	private SAXParser parser;

-	private String version;

-	

-	private static final String PLUGIN = "plugin";

-	private static final String FRAGMENT = "fragment";

-	private static final String ID = "id";

-	private static final String VERSION = "version";	

-	

-	private class ParseCompleteException extends SAXException {

-		public ParseCompleteException(String arg0) {

-			super(arg0);

-		}

-	}

-

-	/**

-	 * Constructor for DefaultFeatureParser

-	 */

-	public BuildZipPluginParser() {

-		super();

-		this.parser = new SAXParser();

-		this.parser.setContentHandler(this);

-	}

-	

-	/**

-	 * @since 2.0

-	 */

-	public synchronized String parse(InputStream in) throws SAXException, IOException {

-		try {

-			version = null;

-			parser.parse(new InputSource(in));

-		} catch(ParseCompleteException e) {

-		}

-		return version;

-	}

-	

-	/**

-	 * @see DefaultHandler#startElement(String, String, String, Attributes)

-	 */

-	public void startElement(String uri, String localName,String qName, Attributes attributes) throws SAXException {

-		

-		String tag = localName.trim();

-	

-		if (tag.equalsIgnoreCase(PLUGIN)) {

-			processPlugin(attributes);

-			return;

-		}

-	

-		if (tag.equalsIgnoreCase(FRAGMENT)) {

-			processPlugin(attributes);

-			return;

-		}

-	}

-	

-	/** 

-	 * process plugin entry info

-	 */

-	private void processPlugin(Attributes attributes) throws ParseCompleteException {

-		version = attributes.getValue("version");

-		throw new ParseCompleteException("");

-	}

-}

-

-

diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipSiteContentProvider.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipSiteContentProvider.java
deleted file mode 100644
index 05ec032..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipSiteContentProvider.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.eclipse.update.examples.buildzip;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2002.

- * All Rights Reserved.

- */

-

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.SiteContentProvider;

-

-public class BuildZipSiteContentProvider extends SiteContentProvider {

-

-	/**

-	 * Constructor for SiteContentProvider.

-	 */

-	public BuildZipSiteContentProvider(URL url) {

-		super(url);

-	}

-	

-	/*

-	 * @see ISiteContentProvider#getArchiveReference(String)

-	 */

-	public URL getArchiveReference(String id) throws CoreException {

-		// build zip features do not have associated archives

-		// the zip file also contains the archives files

-		return null;

-	}

-

-}

diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipSiteFactory.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipSiteFactory.java
deleted file mode 100644
index df9196b..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipSiteFactory.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package org.eclipse.update.examples.buildzip;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2002.

- * All Rights Reserved.

- */

-

-import java.io.File;

-import java.io.FileFilter;

-import java.io.IOException;

-import java.net.MalformedURLException;

-import java.net.URL;

-import java.net.URLDecoder;

-import java.util.zip.ZipEntry;

-import java.util.zip.ZipFile;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.BaseSiteFactory;

-import org.eclipse.update.core.ISite;

-import org.eclipse.update.core.Site;

-import org.eclipse.update.core.model.InvalidSiteTypeException;

-import org.eclipse.update.core.model.CategoryModel;

-

-public class BuildZipSiteFactory extends BaseSiteFactory {

-

-	/*

-	 * @see ISiteFactory#createSite(URL)

-	 */

-	public ISite createSite(URL url) throws CoreException,InvalidSiteTypeException {

-

-		Site site = null;

-

-		// create site and add category

-		site = (Site) createSiteMapModel();

-		CategoryModel category = createSiteCategoryModel();

-		category.setName("eclipse-builds");

-		category.setLabel("Eclipse Builds");

-		site.addCategoryModel(category);

-

-		// set content provider

-		BuildZipSiteContentProvider contentProvider = new BuildZipSiteContentProvider(url);

-		site.setSiteContentProvider(contentProvider);

-

-		// get all matching zip files on the site

-		FileFilter filter = new FileFilter() {

-			public boolean accept(File file) {

-				if (file.getName().endsWith(".zip")) {

-					try {

-						ZipFile zip = new ZipFile(file);

-						ZipEntry entry = zip.getEntry("eclipse/buildmanifest.properties");

-						if (entry == null)

-							return false;

-						else

-							return true;

-					} catch (IOException e) {

-						return false;

-					}

-				} else

-					return false;

-			}

-		};

-		File file = new File(URLDecoder.decode(url.getFile()));

-		File[] zips = file.listFiles(filter);

-

-		// create a reference for each matching zip

-		SiteFeatureReferenceModel ref = null;

-		for (int i = 0; zips != null && i < zips.length; i++) {

-			ref = createFeatureReferenceModel();

-			ref.setType("org.eclipse.update.examples.zip");

-			ref.setSiteModel(site);

-			ref.setURLString("file:" + zips[i].getAbsolutePath());

-			ref.setCategoryNames(new String[] { "eclipse-builds" });

-			site.addFeatureReferenceModel(ref);

-		}

-		try {

-			site.resolve(url, null); // resolve any URLs relative to the site

-		} catch (MalformedURLException e){

-			throw Utilities.newCoreException("",e);

-		}

-

-		return site;

-	}

-

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/DefaultModelWriter.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/DefaultModelWriter.java
deleted file mode 100644
index 9ca8bc4..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/DefaultModelWriter.java
+++ /dev/null
@@ -1,228 +0,0 @@
-package org.eclipse.update.examples.buildzip;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002.
- * All Rights Reserved.
- */ 
- 
-import java.io.OutputStream;
-import java.io.PrintWriter;
-
-import org.eclipse.update.core.model.*;
-
-/**
- * Write standard feature manifest (feature.xml) from model.
- * </p>
- * @since 2.0
- */
-
-public class DefaultModelWriter {
-	
-	private FeatureModel feature;
-	
-	/**
-	 * @since 2.0
-	 */
-	public DefaultModelWriter(FeatureModel feature) {
-		this.feature = feature;
-	}
-	
-	/**
-	 * @since 2.0
-	 */
-	public void writeFeatureManifest(OutputStream os) {
-		PrintWriter w = new PrintWriter(os);
-		writeFeature(w,0,feature);
-		w.flush();
-	}
-	
-	private void writeFeature(PrintWriter w, int level, FeatureModel feature) {
-		if (feature == null) return;
-		
-		String in = getIndent(level);
-		w.println(in+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
-		
-		w.println(in+"<feature");
-		if (feature.getFeatureIdentifier()!=null)
-			w.println(in+"   "+"id=\""+feature.getFeatureIdentifier()+"\"");
-		if (feature.getFeatureVersion()!=null)
-			w.println(in+"   "+"version=\""+feature.getFeatureVersion()+"\"");
-		if (feature.getLabelNonLocalized()!=null)
-			w.println(in+"   "+"label=\""+feature.getLabelNonLocalized()+"\"");
-		if (feature.getProviderNonLocalized()!=null)
-			w.println(in+"   "+"provider-name=\""+feature.getProviderNonLocalized()+"\"");
-		if (feature.getImageURLString()!=null)
-			w.println(in+"   "+"image=\""+feature.getImageURLString()+"\"");
-		if (feature.getOS()!=null)
-			w.println(in+"   "+"os=\""+feature.getOS()+"\"");
-		if (feature.getWS()!=null)
-			w.println(in+"   "+"ws=\""+feature.getWS()+"\"");
-		if (feature.getNL()!=null)
-			w.println(in+"   "+"nl=\""+feature.getNL()+"\"");
-		if (feature.getApplication()!=null)
-			w.println(in+"   "+"application=\""+feature.getApplication()+"\"");
-		w.println(in+"   "+">");
-		
-		writeDescription(w, level+1, feature.getDescriptionModel());
-		writeCopyright(w, level+1, feature.getCopyrightModel());
-		writeLicense(w, level+1, feature.getLicenseModel());
-		writeURLs(w, level+1, feature);
-		writePrereqs(w, level+1, feature);
-		writePluginEntries(w, level+1, feature);
-		writeNonPluginEntries(w, level+1, feature);
-         
-        w.println("");
-        w.println(in+"</feature>");
-	}
-	
-	private void writeDescription(PrintWriter w, int level, URLEntryModel ue) {
-		writeDescriptionEntry(w,level, ue, "description");
-	}
-	
-	private void writeCopyright(PrintWriter w, int level, URLEntryModel ue) {
-		writeDescriptionEntry(w,level, ue, "copyright");
-	}
-	
-	private void writeLicense(PrintWriter w, int level, URLEntryModel ue) {
-		writeDescriptionEntry(w,level, ue, "license");
-	}
-	
-	private void writeDescriptionEntry(PrintWriter w, int level, URLEntryModel ue, String tag) {
-		if (ue == null) return;
-		String url = ue.getURLString();
-		String txt = ue.getAnnotationNonLocalized();
-		if (url==null && txt==null) return;
-		
-		String in = getIndent(level);
-		w.println("");
-		if (url==null)
-			w.println(in+"<"+tag+">");
-		else {
-			w.print(in+"<"+tag+" url=\""+ue.getURLString()+"\"");
-			if (txt==null)
-				w.println("/>");
-			else
-				w.println(">");
-		}
-		if (txt!=null) {
-			w.println(in + txt);
-			w.println(in+"</"+tag+">");
-		}
-	}
-	
-	private void writeURLs(PrintWriter w, int level, FeatureModel feature) {	
-		URLEntryModel update = feature.getUpdateSiteEntryModel();
-		URLEntryModel[] discovery = feature.getDiscoverySiteEntryModels();		
-		if (update == null && (discovery == null || discovery.length==0)) return;
-		
-		String in = getIndent(level);
-		String in2 = getIndent(level+1);		
-		w.println("");
-		w.println(in+"<url>");
-		
-		if (update != null) {
-			w.println(in2+"<update");
-			if (update.getURLString()!=null)
-				w.println(in2+"   "+"url=\""+update.getURLString()+"\"");
-			if (update.getAnnotationNonLocalized()!=null)
-				w.println(in2+"   "+"label=\""+update.getAnnotationNonLocalized()+"\"");
-			w.println(in2+"   "+"/>");
-		}
-		
-		for (int i=0; discovery!=null && i<discovery.length; i++) {
-			w.println(in2+"<discovery");
-			if (discovery[i].getURLString()!=null)	
-				w.println(in2+"   "+"url=\""+discovery[i].getURLString()+"\"");
-			if (discovery[i].getAnnotationNonLocalized()!=null)
-				w.println(in2+"   "+"label=\""+discovery[i].getAnnotationNonLocalized()+"\"");
-			w.println(in2+"   "+"/>");
-		}
-		
-		w.println(in+"</url>");
-	}
-	
-	private void writePrereqs(PrintWriter w, int level, FeatureModel feature) {	
-		ImportModel[] imp = feature.getImportModels();	
-		if (imp == null || imp.length == 0) return;
-		
-		String in = getIndent(level);
-		String in2 = getIndent(level+1);
-		w.println("");
-		w.println(in+"<requires>");
-		
-		for (int i=0; imp!=null && i<imp.length; i++) {
-			w.println(in2+"<import");
-			if (imp[i].getIdentifier()!=null)
-				w.println(in2+"   "+"plugin=\""+imp[i].getIdentifier()+"\"");
-			if (imp[i].getVersion()!=null)
-				w.println(in2+"   "+"version=\""+imp[i].getVersion()+"\"");
-			if (imp[i].getMatchingRuleName()!=null)
-				w.println(in2+"   "+"match=\""+imp[i].getMatchingRuleName()+"\"");
-			w.println(in2+"   "+"/>");
-		}
-		
-		w.println(in+"</requires>");
-	}
-	
-	private void writePluginEntries(PrintWriter w, int level, FeatureModel feature) {
-		PluginEntryModel[] plugin = feature.getPluginEntryModels();
-		if (plugin == null || plugin.length == 0) return;
-		
-		String in = getIndent(level);
-		w.println("");
-		
-		for (int i=0; i<plugin.length; i++) {
-			w.println(in+"<plugin");
-			if (plugin[i].getPluginIdentifier()!=null)
-				w.println(in+"   "+"id=\""+plugin[i].getPluginIdentifier()+"\"");
-			if (plugin[i].getPluginVersion()!=null)
-				w.println(in+"   "+"version=\""+plugin[i].getPluginVersion()+"\"");
-			if (plugin[i].isFragment())
-				w.println(in+"   "+"fragment=\""+plugin[i].isFragment()+"\"");
-			if (plugin[i].getOS()!=null)
-				w.println(in+"   "+"os=\""+plugin[i].getOS()+"\"");
-			if (plugin[i].getWS()!=null)
-				w.println(in+"   "+"ws=\""+plugin[i].getWS()+"\"");
-			if (plugin[i].getNL()!=null)
-				w.println(in+"   "+"nl=\""+plugin[i].getNL()+"\"");
-			if (plugin[i].getDownloadSize()!=ContentEntryModel.UNKNOWN_SIZE)
-				w.println(in+"   "+"download-size=\""+plugin[i].getDownloadSize()+"\"");
-			if (plugin[i].getInstallSize()!=ContentEntryModel.UNKNOWN_SIZE)
-				w.println(in+"   "+"install-size=\""+plugin[i].getInstallSize()+"\"");
-			w.println(in+"   "+"/>");
-		}
-	}
-	
-	private void writeNonPluginEntries(PrintWriter w, int level, FeatureModel feature) {
-		NonPluginEntryModel[] data = feature.getNonPluginEntryModels();
-		if (data == null || data.length == 0) return;
-		
-		String in = getIndent(level);
-		w.println("");
-		
-		for (int i=0; i<data.length; i++) {
-			w.println(in+"<data");
-			if (data[i].getIdentifier()!=null)
-				w.println(in+"   "+"id=\""+data[i].getIdentifier()+"\"");
-			if (data[i].getOS()!=null)
-				w.println(in+"   "+"os=\""+data[i].getOS()+"\"");
-			if (data[i].getWS()!=null)
-				w.println(in+"   "+"ws=\""+data[i].getWS()+"\"");
-			if (data[i].getNL()!=null)
-				w.println(in+"   "+"nl=\""+data[i].getNL()+"\"");
-			if (data[i].getDownloadSize()!=ContentEntryModel.UNKNOWN_SIZE)
-				w.println(in+"   "+"download-size=\""+data[i].getDownloadSize()+"\"");
-			if (data[i].getInstallSize()!=ContentEntryModel.UNKNOWN_SIZE)
-				w.println(in+"   "+"install-size=\""+data[i].getInstallSize()+"\"");
-			w.println(in+"   "+"/>");
-		}
-	}
-	
-	
-	private String getIndent(int level) {
-		String indent = "";
-		for (int i=0; i<level; i++) 
-			indent += "   ";
-		return indent;
-	}
-}
diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/Test.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/Test.java
deleted file mode 100644
index 1e189df..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/Test.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.eclipse.update.examples.buildzip;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2002.

- * All Rights Reserved.

- */ 

-

-import java.net.URL;

-

-import org.eclipse.update.core.*;

- 

-/**

- * unit test harness

- */

-

-public class Test {

-

-	public static void main(String[] args) {

-		

-		try {

-			URL url = new URL("file:d:/downloads/eclipse 2.0/integration-eclipse-SDK-20020109-win32.zip");

-			BuildZipFeatureFactory factory = new BuildZipFeatureFactory();

-			Feature feature = (Feature) factory.createFeature(url,null/*ISite*/);

-			DefaultModelWriter w = new DefaultModelWriter(feature);

-			w.writeFeatureManifest(System.out);

-			

-			System.out.println("");

-			System.out.println("Feature entry references");

-			ContentReference[] refs = feature.getFeatureContentProvider().getFeatureEntryContentReferences(null);

-			for (int i=0; i< refs.length; i++) {

-				System.out.println("   "+refs[i].getIdentifier());

-			}

-			

-			System.out.println("");

-			System.out.println("Plug-in entry references");

-			IPluginEntry[] entry = feature.getPluginEntries();

-			refs = feature.getFeatureContentProvider().getPluginEntryContentReferences(entry[0], null);

-			for (int i=0; i< refs.length; i++) {

-				System.out.println("   "+refs[i].getIdentifier());

-			}			

-			

-			System.out.println("");

-			System.out.println("Non-plug-in entry references");

-			INonPluginEntry[] data = feature.getNonPluginEntries();

-			refs = feature.getFeatureContentProvider().getNonPluginEntryArchiveReferences(data[0], null);

-			for (int i=0; i< refs.length; i++) {

-				System.out.println("   "+refs[i].getIdentifier());

-			}			

-			

-			System.out.println("Done ...");

-		} catch (Exception e) {

-			e.printStackTrace();

-		}		

-	}

-}

diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/java.page.jpage b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/java.page.jpage
deleted file mode 100644
index 6cb24bd..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/java.page.jpage
+++ /dev/null
@@ -1,45 +0,0 @@
-

-

-java.util.Properties p = System.getProperties();

-java.util.Enumeration keys = p.keys();

-while (keys.hasMoreElements()) {

-	String key = (String)keys.nextElement();

-	System.out.println(key + " = " + (String)p.get(key));

-}

-

-

-

-

-

-String fileName = "d:\\downloads\\eclipse 2.0\\integration-eclipse-SDK-20020109-win32.zip";

-java.io.File archiveFile = new java.io.File(fileName);

-java.util.jar.JarFile jarArchive = new java.util.jar.JarFile(archiveFile);

-java.util.jar.JarEntry entry;

-java.util.Enumeration entries = jarArchive.entries();

-while(entries.hasMoreElements()) {

-	entry = (java.util.jar.JarEntry) entries.nextElement();

-	System.out.println(entry.getName());

-}

-

-

-String a = "223";

-String b = "123";

-a.compareTo(b);

-

-

-org.eclipse.update.core.Version v1 = 

-	new org.eclipse.update.core.Version(1,2,3,"build 127J");

-org.eclipse.update.core.Version v2 = 

-	new org.eclipse.update.core.Version(1,2,3,"build 127J");

-v1.compare(v2);

-

-

-java.io.File f = new java.io.File("d:\\downloads\\eclipse 2.0\\x\\");

-f.isDirectory();

-

-

-String s = "hello";

-Object a = java.lang.reflect.Array.newInstance(s.getClass(),0);

-System.out.println(a.getClass().getName());

-

-

diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/freeform/FreeFormSiteContentProvider.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/freeform/FreeFormSiteContentProvider.java
deleted file mode 100644
index 2cbeab4..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/freeform/FreeFormSiteContentProvider.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.eclipse.update.examples.freeform;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.update.core.SiteContentProvider;

-

-public class FreeFormSiteContentProvider extends SiteContentProvider {

-

-	/**

-	 * Constructor for SiteContentProvider.

-	 */

-	public FreeFormSiteContentProvider(URL url) {

-		super(url);

-	}

-	

-	/*

-	 * @see ISiteContentProvider#getArchiveReference(String)

-	 */

-	public URL getArchiveReference(String id) throws CoreException {

-		try {

-			return new URL(getURL(),id);

-		} catch(MalformedURLException e) {

-			throw newCoreException("Unable to return archive URL",e);

-		}

-	}

-	

-	private CoreException newCoreException(String s, Throwable e) throws CoreException {

-		return new CoreException(new Status(IStatus.ERROR,"org.eclipse.update.examples",0,s,e));

-	}

-

-}

diff --git a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/freeform/FreeFormSiteFactory.java b/update/org.eclipse.update.examples/src/org/eclipse/update/examples/freeform/FreeFormSiteFactory.java
deleted file mode 100644
index cb3c7fc..0000000
--- a/update/org.eclipse.update.examples/src/org/eclipse/update/examples/freeform/FreeFormSiteFactory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.eclipse.update.examples.freeform;

-import java.io.IOException;

-import java.io.InputStream;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.BaseSiteFactory;

-import org.eclipse.update.core.ISite;

-import org.eclipse.update.core.Site;

-import org.eclipse.update.core.model.InvalidSiteTypeException;

-import org.eclipse.update.core.model.URLEntryModel;

-

-public class FreeFormSiteFactory extends BaseSiteFactory {

-

-	/*

-	 * @see ISiteFactory#createSite(URL)

-	 */

-	public ISite createSite(URL url)

-		throws CoreException, InvalidSiteTypeException {

-

-		// Create site

-		Site site = null;

-		InputStream is = null;

-		try {

-			is = url.openStream();

-			site = (Site) parseSite(is);

-

-			URLEntryModel realSiteRef = site.getDescriptionModel();

-			if (realSiteRef == null)

-				throw Utilities.newCoreException(

-					"Unable to obtain update site reference",

-					null);

-			String siteURLString = realSiteRef.getURLString();

-			if (siteURLString == null)

-				throw Utilities.newCoreException(

-					"Unable to obtain update site reference",

-					null);

-			URL siteURL = new URL(siteURLString);

-			FreeFormSiteContentProvider contentProvider =

-				new FreeFormSiteContentProvider(siteURL);

-			site.setSiteContentProvider(contentProvider);

-			site.resolve(siteURL, null); // resolve any URLs relative to the site

-

-		} catch (MalformedURLException e){

-			throw Utilities.newCoreException("Unable to create URL",e);

-		} catch (IOException e){

-			throw Utilities.newCoreException("Unable to access URL",e);

-		} finally {

-			if (is != null)

-				try {

-					is.close();

-				} catch (IOException e) {

-				}

-		}

-

-		return site;

-	}

-

-	/*

-	 * @see SiteModelFactory#canParseSiteType(String)

-	 */

-	public boolean canParseSiteType(String type) {

-		return type != null

-			&& type.equals("org.eclipse.update.examples.site.freeform");

-	}

-

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/SchedulerStartup.java b/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/SchedulerStartup.java
index b516eed..468baba 100644
--- a/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/SchedulerStartup.java
+++ b/update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/SchedulerStartup.java
@@ -106,7 +106,7 @@
 			if (event.getJob() == SchedulerStartup.this.job) {
                 
                 // prompt the user
-                if (!InstallWizard.isRunning()) {
+                if (SchedulerStartup.this.job.getUpdates().size() > 0 && !InstallWizard.isRunning()) {
                     if (UpdateScheduler.getDefault().getPluginPreferences().getBoolean(UpdateScheduler.P_DOWNLOAD)) {
                         UpdateUI.getStandardDisplay().asyncExec(new Runnable() {
                             public void run() {
@@ -140,7 +140,7 @@
                 });
             }
             // notify the manager that the job is done
-            job.done(Status.OK_STATUS);
+//            job.done(Status.OK_STATUS);
         }
         
         private void asyncNotifyDownloadUser() {
@@ -163,7 +163,7 @@
                 //Utilities.flushLocalFile();
             }
             // notify the manager that the job is done
-            job.done(Status.OK_STATUS);
+//            job.done(Status.OK_STATUS);
         }
 
         private void openInstallWizard2() {
diff --git a/update/org.eclipse.update.tests.core/.classpath b/update/org.eclipse.update.tests.core/.classpath
deleted file mode 100644
index 4848249..0000000
--- a/update/org.eclipse.update.tests.core/.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/update/org.eclipse.update.tests.core/.cvsignore b/update/org.eclipse.update.tests.core/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/update/org.eclipse.update.tests.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/.project b/update/org.eclipse.update.tests.core/.project
deleted file mode 100644
index fc1ca7f..0000000
--- a/update/org.eclipse.update.tests.core/.project
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.update.tests.core</name>

-	<comment></comment>

-	<projects>

-		<project>org.eclipse.core.boot</project>

-		<project>org.eclipse.core.resources</project>

-		<project>org.eclipse.core.runtime</project>

-		<project>org.eclipse.core.runtime.compatibility</project>

-		<project>org.eclipse.help.appserver</project>

-		<project>org.eclipse.tomcat</project>

-		<project>org.eclipse.update.configurator</project>

-		<project>org.eclipse.update.core</project>

-		<project>org.eclipse.update.core.linux</project>

-		<project>org.junit</project>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ui.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ui.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.ui.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/update/org.eclipse.update.tests.core/about.html b/update/org.eclipse.update.tests.core/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/update/org.eclipse.update.tests.core/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/build.properties b/update/org.eclipse.update.tests.core/build.properties
deleted file mode 100644
index 2861d65..0000000
--- a/update/org.eclipse.update.tests.core/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2003 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

-###############################################################################

-source.updatetests.jar=src/

-bin.includes=*.jar,about.html,test.xml,plugin.xml,data/,webserver/
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/features/feature3/feature.xml b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/features/feature3/feature.xml
deleted file mode 100644
index 361c287..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/features/feature3/feature.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature id="org.eclipse.update.core.tests.feature3" image="feature1.gif" label="Third Feature" provider-name="Smart Company" version="1.0.0" >
-  <description>Description</description>
-  <copyright>copyright</copyright>
-  <license>license</license>
-  <url>
-    <update label="URL to update the feature" url="http://www.eclipse.org/path/feature1/"/>
-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>
-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>
-  </url>
-  <plugin download-size="1500" id="org.eclipse.update.core.tests.feature1.plugin1" install-size="1000" fragment="false" nl="en" os="WIN32,LINUX,HPUX" version="3.5.6" ws="WIN32,MOTIF,GTK"/>
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/Pde_core.jar b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/Pde_core.jar
deleted file mode 100644
index f107217..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/Pde_core.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/help.jar b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/help.jar
deleted file mode 100644
index 7584f66..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/help.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/junit_3.7.jar b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/junit_3.7.jar
deleted file mode 100644
index 67587b2..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/junit_3.7.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
deleted file mode 100644
index 7f05d82..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<plugin name="JUnit Test Framework" id="org.eclipse.update.core.tests.feature1.plugin1" version="3.5.6" vendor-name="junit.org">

-  <runtime>

-    <library name="junit.jar">

-      <export name="*"/>

-    </library>

-  </runtime>

-</plugin>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/org.eclipse.update.plugin1_1.1.1/src.jar b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
deleted file mode 100644
index 2d4d609..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/feature3/feature.xml b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/feature3/feature.xml
deleted file mode 100644
index c0634a4..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/feature3/feature.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature id="org.eclipse.update.core.tests.feature3" image="feature1.gif" label="Third Feature" provider-name="Smart Company" version="1.0.0" >
-  <description>Description</description>
-  <copyright>copyright</copyright>
-  <license>license</license>
-  <url>
-    <update label="URL to update the feature" url="http://www.eclipse.org/path/feature1/"/>
-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>
-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>
-  </url>
-  <plugin download-size="1500" id="org.eclipse.update.plugin1" install-size="1000" fragment="false" nl="en,fr" os="WIN32,LINUX,HPUX" version="1.1.1" ws="WIN32,GTK,MOTIF"/>
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/helpFeature.jar b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/helpFeature.jar
deleted file mode 100644
index 0213585..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/helpFeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/org.eclipse.pde.feature_1.0.0.jar b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/org.eclipse.pde.feature_1.0.0.jar
deleted file mode 100644
index 7e23cab..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/org.eclipse.pde.feature_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/img/top_titlsm.gif b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/img/top_titlsm.gif
deleted file mode 100644
index 3917bb6..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/img/top_titlsm.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/img/wel_ml.jpg b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/img/wel_ml.jpg
deleted file mode 100644
index 01e33df..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/img/wel_ml.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/siteInfo.html b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/siteInfo.html
deleted file mode 100644
index b065aa3..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/siteInfo.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

-<html>

-<head>

-</head>

-  <body>

-<img src="img/top_titlsm.gif" alt="" width="460" height="50">

-<br>

-<br>

-     It started with Smalltalk<br>

-    OTI has been building tools for platform-independent OO development since

-  1988. Our ENVY&reg; technology first brought collaborative software development,

-  version management and shared repositories to Smalltalk. IBM is one of

-many   companies to license ENVY, which continues to be the foundation of

-VisualAge&reg;   Smalltalk.<br>

-<br>

-<br>

-<br>

-      Next came Java&#8482;<br>

-    Because of our expertise in OO technology, IBM turned to OTI for a next-generation

-  development environment for Java. The result is VisualAge for Java, which

-  continues to win awards for its innovative IDE and team support. InfoWorld

-  has chosen VisualAge for Java as development tool of the year - year after

-  year after year!<br>

-<br>

-<br>

-<br>

-      Then pervasive computing<br>

-    OTI continues its development of IBM's VisualAge Micro Edition, a state-of-the-art

-  platform for collaborative development of embedded applications and systems

-  that are very lean. As the steady stream of press releases attests, VisualAge

-  Micro Edition is already licensed to the leading microchip manufacturers,

-  microkernel developers, and producers of handheld and consumer devices.<br>

-<br>

-<br>

-<br>

-      Now it's Eclipse<br>

-    OTI has built the next generation IBM application development tools platform.

-  Eclipse is a kind of universal tool platform - an open extensible IDE for

-  anything and nothing in particular. The real value comes from tool plug-ins

-  that "teach" Eclipse how to work with things - java files, web content,

-graphics,  video - almost anything you can imagine. Eclipse allows you to

-independently  develop tools that integrate with other people's tools so

-seamlessly you won't know where one tool ends and another starts. The IBM

-supported version of this technology, WebSphere Studio Workbench, will be

-the core of the next  generation of IBM and IBM Business Partner e-business

-tools optimized for  the WebSphere software platform.<br>

-<br>

-<br>

-<br>

-      So what's next?<br>

-    OTI continues to deliver object-oriented technology that scales across

- platforms,  across teams and across project size. From a mainframe to a

-watch  - we're  closing in on that vision.<br>

-<br>

-<img src="img/wel_ml.jpg" width="460" height="460" alt="">

-<br>

-<br>

-<br>

-<br>

-<br>

-<br>

-</body>

-</html>

diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/Pde_core.jar b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/Pde_core.jar
deleted file mode 100644
index f107217..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/Pde_core.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/help.jar b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/help.jar
deleted file mode 100644
index 7584f66..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/help.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/junit_3.7.jar b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/junit_3.7.jar
deleted file mode 100644
index 67587b2..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/junit_3.7.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
deleted file mode 100644
index 7f05d82..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<plugin name="JUnit Test Framework" id="org.eclipse.update.core.tests.feature1.plugin1" version="3.5.6" vendor-name="junit.org">

-  <runtime>

-    <library name="junit.jar">

-      <export name="*"/>

-    </library>

-  </runtime>

-</plugin>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/org.eclipse.update.plugin1_1.1.1/src.jar b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
deleted file mode 100644
index 2d4d609..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/site.xml b/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/site.xml
deleted file mode 100644
index b6211a8..0000000
--- a/update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/site.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site type="org.eclipse.update.core.file">

-<description url="info/siteInfo.html"/>

-  <feature url="features/helpFeature.jar" type="org.eclipse.update.core.packaged">

-    <category name="eclipse/UML"/>

-  </feature>

-  <feature url="features/org.eclipse.pde.feature_1.0.0.jar" type="org.eclipse.update.core.packaged">

-    <category name="eclipse/J2EE"/>

-  </feature>

-  <feature url="features/feature3/" os="LINUX">

-    <category name="eclipse"/>

-  </feature>

-  <archive path="plugins/org.eclipse.help_1.0.0.jar" url="plugins/help.jar"/>

-  <archive path="plugins/org.eclipse.pde.core_1.0.0.jar" url="plugins/Pde_core.jar"/>

-  <archive path="plugins/org.junit_3.5.0.jar" url="plugins/junit_3.7.jar"/>

-  <archive path="plugins/org.eclipse.update.plugin1_1.1.1.jar" url="plugins/org.eclipse.update.plugin1_1.1.1"/>  

-  <category-def label="IBM WSAD Tools" name="eclipse"/>

-  <category-def label="J2EE tools" name="eclipse/J2EE"/>

-  <category-def label="EJB Tools" name="eclipse/J2EE/EJB"/>

-  <category-def label="UML tools" name="eclipse/UML"/>

-  <category-def label="Messaging Tools" name="B2B"/>  

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/FTPLikeSite/site.xml b/update/org.eclipse.update.tests.core/data/FTPLikeSite/site.xml
deleted file mode 100644
index da62e2e..0000000
--- a/update/org.eclipse.update.tests.core/data/FTPLikeSite/site.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site type="org.eclipse.update.tests.core.ftp">

-  <feature url="features/feature3/features2.jarfile"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site1/features/feature3/feature.xml b/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site1/features/feature3/feature.xml
deleted file mode 100644
index 2c98f42..0000000
--- a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site1/features/feature3/feature.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<feature id="org.eclipse.update.core.tests.feature3" image="feature1.gif" label="Third Feature" provider-name="Smart Company" version="1.0.0">

-  <description>Description</description>

-  <copyright>copyright</copyright>

-  <license>license</license>

-  <url>

-    <update label="URL to update the feature" url="http://www.eclipse.org/path/feature1/"/>

-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>

-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>

-  </url>

-  <plugin download-size="1500" id="org.eclipse.update.plugin1" install-size="1000" fragment="false" os="WIN32,LINUX" version="1.1.1" ws="WIN32,MOTIF,GTK"/>

-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site1/site.xml b/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site1/site.xml
deleted file mode 100644
index 486d119..0000000
--- a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site1/site.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site type="org.eclipse.update.core.file">

-  <feature url="features/feature3" type="org.eclipse.update.tests.core.feature1"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site2/features/feature3/features2.jarfile b/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site2/features/feature3/features2.jarfile
deleted file mode 100644
index 240ab4f..0000000
--- a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site2/features/feature3/features2.jarfile
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site2/site.xml b/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site2/site.xml
deleted file mode 100644
index fb5fe0e..0000000
--- a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site2/site.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site type="org.eclipse.update.core.file">

-  <feature url="features/feature3/features2.jarfile" type="org.eclipse.update.core.packaged"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site3/features/feature3/features2.jarfile b/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site3/features/feature3/features2.jarfile
deleted file mode 100644
index 240ab4f..0000000
--- a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site3/features/feature3/features2.jarfile
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site3/site.xml b/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site3/site.xml
deleted file mode 100644
index daf372d..0000000
--- a/update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site3/site.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site type="org.eclipse.update.core.file">

-  <feature url="features/feature3/features2.jarfile" type="org.eclipse.update.core.unknowntype.jar"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/features space/helpFeature.jar b/update/org.eclipse.update.tests.core/data/Site with space/features space/helpFeature.jar
deleted file mode 100644
index 4b83c7e..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/features space/helpFeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/features space/space feature.jar b/update/org.eclipse.update.tests.core/data/Site with space/features space/space feature.jar
deleted file mode 100644
index 4f1e991..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/features space/space feature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/info/img/top_titlsm.gif b/update/org.eclipse.update.tests.core/data/Site with space/info/img/top_titlsm.gif
deleted file mode 100644
index 3917bb6..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/info/img/top_titlsm.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/info/img/wel_ml.jpg b/update/org.eclipse.update.tests.core/data/Site with space/info/img/wel_ml.jpg
deleted file mode 100644
index 01e33df..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/info/img/wel_ml.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/info/siteInfo.html b/update/org.eclipse.update.tests.core/data/Site with space/info/siteInfo.html
deleted file mode 100644
index b065aa3..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/info/siteInfo.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

-<html>

-<head>

-</head>

-  <body>

-<img src="img/top_titlsm.gif" alt="" width="460" height="50">

-<br>

-<br>

-     It started with Smalltalk<br>

-    OTI has been building tools for platform-independent OO development since

-  1988. Our ENVY&reg; technology first brought collaborative software development,

-  version management and shared repositories to Smalltalk. IBM is one of

-many   companies to license ENVY, which continues to be the foundation of

-VisualAge&reg;   Smalltalk.<br>

-<br>

-<br>

-<br>

-      Next came Java&#8482;<br>

-    Because of our expertise in OO technology, IBM turned to OTI for a next-generation

-  development environment for Java. The result is VisualAge for Java, which

-  continues to win awards for its innovative IDE and team support. InfoWorld

-  has chosen VisualAge for Java as development tool of the year - year after

-  year after year!<br>

-<br>

-<br>

-<br>

-      Then pervasive computing<br>

-    OTI continues its development of IBM's VisualAge Micro Edition, a state-of-the-art

-  platform for collaborative development of embedded applications and systems

-  that are very lean. As the steady stream of press releases attests, VisualAge

-  Micro Edition is already licensed to the leading microchip manufacturers,

-  microkernel developers, and producers of handheld and consumer devices.<br>

-<br>

-<br>

-<br>

-      Now it's Eclipse<br>

-    OTI has built the next generation IBM application development tools platform.

-  Eclipse is a kind of universal tool platform - an open extensible IDE for

-  anything and nothing in particular. The real value comes from tool plug-ins

-  that "teach" Eclipse how to work with things - java files, web content,

-graphics,  video - almost anything you can imagine. Eclipse allows you to

-independently  develop tools that integrate with other people's tools so

-seamlessly you won't know where one tool ends and another starts. The IBM

-supported version of this technology, WebSphere Studio Workbench, will be

-the core of the next  generation of IBM and IBM Business Partner e-business

-tools optimized for  the WebSphere software platform.<br>

-<br>

-<br>

-<br>

-      So what's next?<br>

-    OTI continues to deliver object-oriented technology that scales across

- platforms,  across teams and across project size. From a mainframe to a

-watch  - we're  closing in on that vision.<br>

-<br>

-<img src="img/wel_ml.jpg" width="460" height="460" alt="">

-<br>

-<br>

-<br>

-<br>

-<br>

-<br>

-</body>

-</html>

diff --git a/update/org.eclipse.update.tests.core/data/Site with space/install/features space/feature3/feature.xml b/update/org.eclipse.update.tests.core/data/Site with space/install/features space/feature3/feature.xml
deleted file mode 100644
index 3b7890b..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/install/features space/feature3/feature.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature id="org.eclipse.update.core.tests.feature3" image="feature1.gif" label="Third Feature" provider-name="Smart Company" version="1.0.0" >
-  <description>Description</description>
-  <copyright>copyright</copyright>
-  <license>license</license>
-  <url>
-    <update label="URL to update the feature" url="http://www.eclipse.org/path/feature1/"/>
-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>
-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>
-  </url>
-  <plugin download-size="1500" id="org.eclipse.update.plugin1" install-size="1000" fragment="false" nl="en,fr" os="WIN32,LINUX,HPUX" version="1.1.1" ws="WIN32,MOTIF,GTK"/>
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/plugins space/Pde_core.jar b/update/org.eclipse.update.tests.core/data/Site with space/plugins space/Pde_core.jar
deleted file mode 100644
index f107217..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/plugins space/Pde_core.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/plugins space/help.jar b/update/org.eclipse.update.tests.core/data/Site with space/plugins space/help.jar
deleted file mode 100644
index 7584f66..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/plugins space/help.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/plugins space/junit_3.7.jar b/update/org.eclipse.update.tests.core/data/Site with space/plugins space/junit_3.7.jar
deleted file mode 100644
index 67587b2..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/plugins space/junit_3.7.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/plugins space/org.eclipse.update.plugin1_1.1.1/plugin.xml b/update/org.eclipse.update.tests.core/data/Site with space/plugins space/org.eclipse.update.plugin1_1.1.1/plugin.xml
deleted file mode 100644
index e01846c..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/plugins space/org.eclipse.update.plugin1_1.1.1/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin name="JUnit Test Framework" id="org.eclipse.update.core.tests.feature1.plugin1" version="3.5.6" vendor-name="junit.org">
-  <runtime>
-    <library name="junit.jar">
-      <export name="*"/>
-    </library>
-  </runtime>
-</plugin>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/plugins space/org.eclipse.update.plugin1_1.1.1/src.jar b/update/org.eclipse.update.tests.core/data/Site with space/plugins space/org.eclipse.update.plugin1_1.1.1/src.jar
deleted file mode 100644
index 2d4d609..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/plugins space/org.eclipse.update.plugin1_1.1.1/src.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/Site with space/site.xml b/update/org.eclipse.update.tests.core/data/Site with space/site.xml
deleted file mode 100644
index 54928fb..0000000
--- a/update/org.eclipse.update.tests.core/data/Site with space/site.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site type="org.eclipse.update.core.file">

-<description url="info/siteInfo.html"/>

-  <feature url="features space/helpFeature.jar" type="org.eclipse.update.core.packaged">

-    <category name="eclipse/UML"/>

-  </feature>

-  <feature url="features space/space feature.jar" type="org.eclipse.update.core.packaged">

-    <category name="eclipse/J2EE"/>

-  </feature>

-  <feature url="install/features space/feature3/">

-    <category name="eclipse"/>

-  </feature>

-  <archive path="plugins/org.eclipse.help_1.0.0.jar" url="plugins space/help.jar"/>

-  <archive path="plugins/org.eclipse.pde.core_1.0.0.jar" url="plugins space/Pde_core.jar"/>

-  <archive path="plugins/org.junit_3.5.0.jar" url="plugins space/junit_3.7.jar"/>

-  <archive path="plugins/org.eclipse.update.plugin1_1.1.1.jar" url="plugins space/org.eclipse.update.plugin1_1.1.1"/>  

-  <category-def label="IBM WSAD Tools" name="eclipse"/>

-  <category-def label="J2EE tools" name="eclipse/J2EE"/>

-  <category-def label="EJB Tools" name="eclipse/J2EE/EJB"/>

-  <category-def label="UML tools" name="eclipse/UML"/>

-  <category-def label="Messaging Tools" name="B2B"/>  

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/SiteTypeExamples/site1/features/feature3/features2.jarfile b/update/org.eclipse.update.tests.core/data/SiteTypeExamples/site1/features/feature3/features2.jarfile
deleted file mode 100644
index 240ab4f..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteTypeExamples/site1/features/feature3/features2.jarfile
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/SiteTypeExamples/site1/site.xml b/update/org.eclipse.update.tests.core/data/SiteTypeExamples/site1/site.xml
deleted file mode 100644
index 6f7165a..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteTypeExamples/site1/site.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site type="org.eclipse.update.core.http">

-  <feature url="features/feature3/features2.jarfile"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/features/helpFeature.jar b/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/features/helpFeature.jar
deleted file mode 100644
index 9809713..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/features/helpFeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/features/org.eclipse.pde.feature_1.0.0.jar b/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/features/org.eclipse.pde.feature_1.0.0.jar
deleted file mode 100644
index f592c1d..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/features/org.eclipse.pde.feature_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/Pde_core.jar b/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/Pde_core.jar
deleted file mode 100644
index f107217..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/Pde_core.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/help.jar b/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/help.jar
deleted file mode 100644
index 7584f66..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/help.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/junit_3.7.jar b/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/junit_3.7.jar
deleted file mode 100644
index 67587b2..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/junit_3.7.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/img/top_titlsm.gif b/update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/img/top_titlsm.gif
deleted file mode 100644
index 3917bb6..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/img/top_titlsm.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/img/wel_ml.jpg b/update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/img/wel_ml.jpg
deleted file mode 100644
index 01e33df..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/img/wel_ml.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/siteInfo.html b/update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/siteInfo.html
deleted file mode 100644
index b065aa3..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/siteInfo.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

-<html>

-<head>

-</head>

-  <body>

-<img src="img/top_titlsm.gif" alt="" width="460" height="50">

-<br>

-<br>

-     It started with Smalltalk<br>

-    OTI has been building tools for platform-independent OO development since

-  1988. Our ENVY&reg; technology first brought collaborative software development,

-  version management and shared repositories to Smalltalk. IBM is one of

-many   companies to license ENVY, which continues to be the foundation of

-VisualAge&reg;   Smalltalk.<br>

-<br>

-<br>

-<br>

-      Next came Java&#8482;<br>

-    Because of our expertise in OO technology, IBM turned to OTI for a next-generation

-  development environment for Java. The result is VisualAge for Java, which

-  continues to win awards for its innovative IDE and team support. InfoWorld

-  has chosen VisualAge for Java as development tool of the year - year after

-  year after year!<br>

-<br>

-<br>

-<br>

-      Then pervasive computing<br>

-    OTI continues its development of IBM's VisualAge Micro Edition, a state-of-the-art

-  platform for collaborative development of embedded applications and systems

-  that are very lean. As the steady stream of press releases attests, VisualAge

-  Micro Edition is already licensed to the leading microchip manufacturers,

-  microkernel developers, and producers of handheld and consumer devices.<br>

-<br>

-<br>

-<br>

-      Now it's Eclipse<br>

-    OTI has built the next generation IBM application development tools platform.

-  Eclipse is a kind of universal tool platform - an open extensible IDE for

-  anything and nothing in particular. The real value comes from tool plug-ins

-  that "teach" Eclipse how to work with things - java files, web content,

-graphics,  video - almost anything you can imagine. Eclipse allows you to

-independently  develop tools that integrate with other people's tools so

-seamlessly you won't know where one tool ends and another starts. The IBM

-supported version of this technology, WebSphere Studio Workbench, will be

-the core of the next  generation of IBM and IBM Business Partner e-business

-tools optimized for  the WebSphere software platform.<br>

-<br>

-<br>

-<br>

-      So what's next?<br>

-    OTI continues to deliver object-oriented technology that scales across

- platforms,  across teams and across project size. From a mainframe to a

-watch  - we're  closing in on that vision.<br>

-<br>

-<img src="img/wel_ml.jpg" width="460" height="460" alt="">

-<br>

-<br>

-<br>

-<br>

-<br>

-<br>

-</body>

-</html>

diff --git a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/site.xml b/update/org.eclipse.update.tests.core/data/SiteURLTest/data/site.xml
deleted file mode 100644
index e3ea684..0000000
--- a/update/org.eclipse.update.tests.core/data/SiteURLTest/data/site.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site url = "artifacts/">
-<description url="info/siteInfo.html"/>
-  <feature url="features/helpFeature.jar" type="org.eclipse.update.core.packaged">
-    <category name="eclipse/UML"/>
-  </feature>
-  <feature url="features/org.eclipse.pde.feature_1.0.0.jar" type="org.eclipse.update.core.packaged">
-    <category name="eclipse/J2EE"/>
-  </feature>
-  <archive path="plugins/org.eclipse.help_1.0.0.jar" url="plugins/help.jar"/>
-  <archive path="plugins/org.eclipse.pde.core_1.0.0.jar" url="plugins/Pde_core.jar"/>
-  <archive path="plugins/org.junit_3.5.0.jar" url="plugins/junit_3.7.jar"/>
-  <category-def label="IBM WSAD Tools" name="eclipse"/>
-  <category-def label="J2EE tools" name="eclipse/J2EE"/>
-  <category-def label="EJB Tools" name="eclipse/J2EE/EJB"/>
-  <category-def label="UML tools" name="eclipse/UML"/>
-  <category-def label="Messaging Tools" name="B2B"/>  
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/file1.zip b/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/file1.zip
deleted file mode 100644
index 1a70b7e..0000000
--- a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/file1.zip
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/install/features/feature3/feature.xml b/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/install/features/feature3/feature.xml
deleted file mode 100644
index 6b454ec..0000000
--- a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/install/features/feature3/feature.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<feature id="org.eclipse.update.core.tests.feature3" image="feature1.gif" label="Third Feature" provider-name="Smart Company" version="1.0.0">

-	<install-handler handler="org.eclipse.update.core.DefaultInstallHandler"/>

-  	<data download-size="1500" id="file.zip" install-size="1000"/>

-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/site.xml b/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/site.xml
deleted file mode 100644
index c41f21d..0000000
--- a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/site.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site type="org.eclipse.update.core.file">

-<description url="info/siteInfo.html"/>

-  <feature url="install/features/feature3">

-  </feature>

-  <archive path="features/org.eclipse.update.core.tests.feature3_1.0.0/file.zip" url="file1.zip"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/features/features3.jar b/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/features/features3.jar
deleted file mode 100644
index 74c6eca..0000000
--- a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/features/features3.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/non data/another file.zip b/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/non data/another file.zip
deleted file mode 100644
index 1a70b7e..0000000
--- a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/non data/another file.zip
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/site.xml b/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/site.xml
deleted file mode 100644
index 040943c..0000000
--- a/update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/site.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site type="org.eclipse.update.core.file">

-<description url="info/siteInfo.html"/>

-  <feature url="features/features3.jar" type="org.eclipse.update.core.packaged">

-  </feature>

-  <archive path="features/org.eclipse.update.core.tests.feature3_1.0.0/file.zip" url="non data/another file.zip"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/features/features2.jar b/update/org.eclipse.update.tests.core/data/features/features2.jar
deleted file mode 100644
index e8d004d..0000000
--- a/update/org.eclipse.update.tests.core/data/features/features2.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/features/org.eclipse.test.feature_1.0.0.jar b/update/org.eclipse.update.tests.core/data/features/org.eclipse.test.feature_1.0.0.jar
deleted file mode 100644
index 870a70d..0000000
--- a/update/org.eclipse.update.tests.core/data/features/org.eclipse.test.feature_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/features/org.eclipse.update.core.tests.feature1_1.0.4.jar b/update/org.eclipse.update.tests.core/data/features/org.eclipse.update.core.tests.feature1_1.0.4.jar
deleted file mode 100644
index 9dc9463..0000000
--- a/update/org.eclipse.update.tests.core/data/features/org.eclipse.update.core.tests.feature1_1.0.4.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/features/org.eclipse_test_feature.jar b/update/org.eclipse.update.tests.core/data/features/org.eclipse_test_feature.jar
deleted file mode 100644
index 938ddc4..0000000
--- a/update/org.eclipse.update.tests.core/data/features/org.eclipse_test_feature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/.project b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/.project
deleted file mode 100644
index 5d52069..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>update-site1</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.UpdateSiteBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.UpdateSiteNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/.sitebuild/build.log b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/.sitebuild/build.log
deleted file mode 100644
index 3bce194..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/.sitebuild/build.log
+++ /dev/null
@@ -1,318 +0,0 @@
-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin3.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: javac

-Message logged: Compile failed; see the compiler error output for details.

-Task finished: javac

-Task started: copy

-Task finished: copy

-Task started: mkdir

-Task finished: mkdir

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: plugin3.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin4.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: javac

-Message logged: Compile failed; see the compiler error output for details.

-Task finished: javac

-Task started: copy

-Task finished: copy

-Task started: mkdir

-Task finished: mkdir

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: plugin4.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature3_1.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Build finished.

diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/.sitebuild/sitebuild.xml b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/.sitebuild/sitebuild.xml
deleted file mode 100644
index 1e700b9..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/.sitebuild/sitebuild.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site-build
-      feature-location="features"
-      plugin-location="plugins"
-      autobuild="false"
-      scrub-output="false"
-      use-console="true">
-   <feature id="update.feature1" version="1.0.0"/>
-   <feature id="update.feature2" version="1.0.0"/>
-   <feature id="update.feature3" version="1.0.0"/>
-</site-build>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature1_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature1_1.0.0.jar
deleted file mode 100644
index c812b0b..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature1_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature2_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature2_1.0.0.jar
deleted file mode 100644
index fbf1754..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature2_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature3_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature3_1.0.0.jar
deleted file mode 100644
index 8682a62..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature3_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin1_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin1_1.0.0.jar
deleted file mode 100644
index 8bbc7f3..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin1_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin2_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin2_1.0.0.jar
deleted file mode 100644
index 5d42583..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin2_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin3_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin3_1.0.0.jar
deleted file mode 100644
index aa94e52..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin3_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin4_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin4_1.0.0.jar
deleted file mode 100644
index c8cca28..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin4_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/site.xml b/update/org.eclipse.update.tests.core/data/mirrors/update-site1/site.xml
deleted file mode 100644
index 163f7bb..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site1/site.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/update.feature1_1.0.0.jar" id="update.feature1" version="1.0.0">
-      <category name="Site1-Category1"/>
-   </feature>
-   <feature url="features/update.feature2_1.0.0.jar" id="update.feature2" version="1.0.0">
-      <category name="Site1-Category2"/>
-   </feature>
-   <feature url="features/update.feature3_1.0.0.jar" id="update.feature3" version="1.0.0">
-      <category name="Site1-Category3"/>
-   </feature>
-   <category-def name="Site1-Category1" label="Site1-Category1-Label">
-      <description>
-         ecetera.
-      </description>
-   </category-def>
-   <category-def name="Site1-Category2" label="Site1-Category2-Label">
-      <description>
-         ecetera.
-      </description>
-   </category-def>
-   <category-def name="Site1-Category3" label="Site1-Category3-Label">
-      <description>
-         ecetera.
-      </description>
-   </category-def>
-</site>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/.project b/update/org.eclipse.update.tests.core/data/mirrors/update-site2/.project
deleted file mode 100644
index a4b687e..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>update-site2</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.UpdateSiteBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.UpdateSiteNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/.sitebuild/build.log b/update/org.eclipse.update.tests.core/data/mirrors/update-site2/.sitebuild/build.log
deleted file mode 100644
index e977850..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/.sitebuild/build.log
+++ /dev/null
@@ -1,203 +0,0 @@
-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin2.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: javac

-Message logged: Compile failed; see the compiler error output for details.

-Task finished: javac

-Task started: copy

-Task finished: copy

-Task started: mkdir

-Task finished: mkdir

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: plugin2.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature2_1.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Build finished.

diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/.sitebuild/sitebuild.xml b/update/org.eclipse.update.tests.core/data/mirrors/update-site2/.sitebuild/sitebuild.xml
deleted file mode 100644
index 2258820..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/.sitebuild/sitebuild.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site-build
-      feature-location="features"
-      plugin-location="plugins"
-      autobuild="false"
-      scrub-output="false"
-      use-console="true">
-   <feature id="update.feature1" version="1.0.1"/>
-   <feature id="update.feature2" version="1.0.1"/>
-</site-build>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/features/update.feature1_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site2/features/update.feature1_1.0.0.jar
deleted file mode 100644
index 5175b4a..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/features/update.feature1_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/features/update.feature2_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site2/features/update.feature2_1.0.0.jar
deleted file mode 100644
index d1660b9..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/features/update.feature2_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/plugins/com.plugin1_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site2/plugins/com.plugin1_1.0.0.jar
deleted file mode 100644
index d815f20..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/plugins/com.plugin1_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/plugins/com.plugin2_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site2/plugins/com.plugin2_1.0.0.jar
deleted file mode 100644
index dec5f4c..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/plugins/com.plugin2_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/site.xml b/update/org.eclipse.update.tests.core/data/mirrors/update-site2/site.xml
deleted file mode 100644
index f1d4b71..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site2/site.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/update.feature1_1.0.1.jar" id="update.feature1" version="1.0.1"/>
-   <feature url="features/update.feature2_1.0.1.jar" id="update.feature2" version="1.0.1"/>
-</site>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/.project b/update/org.eclipse.update.tests.core/data/mirrors/update-site3/.project
deleted file mode 100644
index 0ddb6b7..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>update-site3</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.UpdateSiteBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.UpdateSiteNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/.sitebuild/build.log b/update/org.eclipse.update.tests.core/data/mirrors/update-site3/.sitebuild/build.log
deleted file mode 100644
index 4a2ee01..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/.sitebuild/build.log
+++ /dev/null
@@ -1,318 +0,0 @@
-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin2a.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: javac

-Message logged: Compile failed; see the compiler error output for details.

-Task finished: javac

-Task started: copy

-Task finished: copy

-Task started: mkdir

-Task finished: mkdir

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: plugin2a.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin2.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: javac

-Message logged: Compile failed; see the compiler error output for details.

-Task finished: javac

-Task started: copy

-Task finished: copy

-Task started: mkdir

-Task finished: mkdir

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: plugin2.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature2b_2.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Build finished.

diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/.sitebuild/sitebuild.xml b/update/org.eclipse.update.tests.core/data/mirrors/update-site3/.sitebuild/sitebuild.xml
deleted file mode 100644
index e3510b0..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/.sitebuild/sitebuild.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site-build
-      feature-location="features"
-      plugin-location="plugins"
-      autobuild="false"
-      scrub-output="false"
-      use-console="true">
-   <feature id="update.feature1b" version="2.0.0"/>
-   <feature id="update.feature2b" version="2.0.0"/>
-</site-build>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/features/update.feature1b_2.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site3/features/update.feature1b_2.0.0.jar
deleted file mode 100644
index 6b9a876..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/features/update.feature1b_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/features/update.feature2b_2.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site3/features/update.feature2b_2.0.0.jar
deleted file mode 100644
index 97bb70f..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/features/update.feature2b_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin1_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin1_1.0.0.jar
deleted file mode 100644
index ee2d41d..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin1_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin1a_1.0.1.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin1a_1.0.1.jar
deleted file mode 100644
index 97183c7..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin1a_1.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin2_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin2_1.0.0.jar
deleted file mode 100644
index e31b28e..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin2_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin2a_1.0.1.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin2a_1.0.1.jar
deleted file mode 100644
index 557ba5d..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin2a_1.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/site.xml b/update/org.eclipse.update.tests.core/data/mirrors/update-site3/site.xml
deleted file mode 100644
index e28506b..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site3/site.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/update.feature1b_2.0.0.jar" id="update.feature1b" version="2.0.0">
-      <category name="Site3-Category1"/>
-   </feature>
-   <feature url="features/update.feature2b_2.0.0.jar" id="update.feature2b" version="2.0.0">
-      <category name="Site3-Category2"/>
-   </feature>
-   <category-def name="Site3-Category1" label="Site3-Category1-Label">
-      <description>
-         ecetera.
-      </description>
-   </category-def>
-   <category-def name="Site3-Category2" label="Site3-Category2-Label">
-      <description>
-         ecetera.
-      </description>
-   </category-def>
-</site>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/.project b/update/org.eclipse.update.tests.core/data/mirrors/update-site4/.project
deleted file mode 100644
index 8a07aaf..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>update-site4</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.UpdateSiteBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.UpdateSiteNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/.sitebuild/build.log b/update/org.eclipse.update.tests.core/data/mirrors/update-site4/.sitebuild/build.log
deleted file mode 100644
index 1cfe8e3..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/.sitebuild/build.log
+++ /dev/null
@@ -1,791 +0,0 @@
-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin1.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: javac

-Message logged: Compile failed; see the compiler error output for details.

-Task finished: javac

-Task started: copy

-Task finished: copy

-Task started: mkdir

-Task finished: mkdir

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: plugin1.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin1.jar

-Target finished: plugin1.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin1.jar

-Target finished: plugin1.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin1a.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: javac

-Message logged: Compile failed; see the compiler error output for details.

-Task finished: javac

-Task started: copy

-Task finished: copy

-Task started: mkdir

-Task finished: mkdir

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: plugin1a.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.features

-Target started: all.plugins

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature1c_3.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature1_1.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Task finished: ant

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature1_1.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Task finished: ant

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature1b_2.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Task finished: ant

-Target finished: all.features

-Target started: all.plugins

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Build finished.

diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/.sitebuild/sitebuild.xml b/update/org.eclipse.update.tests.core/data/mirrors/update-site4/.sitebuild/sitebuild.xml
deleted file mode 100644
index 47cb017..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/.sitebuild/sitebuild.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site-build
-      feature-location="features"
-      plugin-location="plugins"
-      autobuild="false"
-      scrub-output="false"
-      use-console="true">
-   <feature id="update.feature1c" version="3.0.0"/>
-</site-build>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1_1.0.0.jar
deleted file mode 100644
index 78d2f28..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1_1.0.1.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1_1.0.1.jar
deleted file mode 100644
index eeb0b6f..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1_1.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1b_2.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1b_2.0.0.jar
deleted file mode 100644
index 31b6bcb..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1b_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1c_3.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1c_3.0.0.jar
deleted file mode 100644
index 3753305..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1c_3.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/plugins/com.plugin1_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site4/plugins/com.plugin1_1.0.0.jar
deleted file mode 100644
index 3e0760f..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/plugins/com.plugin1_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/plugins/com.plugin1a_1.0.1.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site4/plugins/com.plugin1a_1.0.1.jar
deleted file mode 100644
index 634eb07..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/plugins/com.plugin1a_1.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/site.xml b/update/org.eclipse.update.tests.core/data/mirrors/update-site4/site.xml
deleted file mode 100644
index 2c73cbe..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site4/site.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/update.feature1c_3.0.0.jar" id="update.feature1c" version="3.0.0">
-      <category name="Site4-Category1"/>
-   </feature>
-   <category-def name="Site4-Category1" label="Site4-Category1-Label">
-      <description>
-         ecetera.
-      </description>
-   </category-def>
-</site>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/.project b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/.project
deleted file mode 100644
index 0a93302..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>update-site5</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.UpdateSiteBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.UpdateSiteNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/.sitebuild/build.log b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/.sitebuild/build.log
deleted file mode 100644
index db44faa..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/.sitebuild/build.log
+++ /dev/null
@@ -1,791 +0,0 @@
-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin2.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: javac

-Message logged: Compile failed; see the compiler error output for details.

-Task finished: javac

-Task started: copy

-Task finished: copy

-Task started: mkdir

-Task finished: mkdir

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: plugin2.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin2.jar

-Target finished: plugin2.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin2a.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: javac

-Message logged: Compile failed; see the compiler error output for details.

-Task finished: javac

-Task started: copy

-Task finished: copy

-Task started: mkdir

-Task finished: mkdir

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: plugin2a.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.update.jar

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: build.jars

-Task started: available

-Task finished: available

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: plugin2.jar

-Target finished: plugin2.jar

-Task finished: antcall

-Target finished: build.jars

-Task finished: antcall

-Task started: antcall

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: copy

-Task finished: copy

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: zip

-Task finished: zip

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Task finished: ant

-Target finished: all.features

-Target started: all.plugins

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Task started: property

-Task finished: property

-Task started: delete

-Task finished: delete

-Task started: mkdir

-Task finished: mkdir

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: gather.bin.parts

-Task started: antcall

-Target started: children

-Target finished: children

-Task finished: antcall

-Task started: mkdir

-Task finished: mkdir

-Task started: copy

-Task finished: copy

-Task started: eclipse.idReplacer

-Task finished: eclipse.idReplacer

-Task started: antcall

-Target started: ROOTFILES*_*_*

-Target finished: ROOTFILES*_*_*

-Task finished: antcall

-Target finished: gather.bin.parts

-Task finished: antcall

-Task started: jar

-Task finished: jar

-Task started: delete

-Task finished: delete

-Target finished: build.update.jar

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature2c_3.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature2_1.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Task finished: ant

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature2_1.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Task finished: ant

-Task started: ant

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Message logged: Project ${update.feature2b_2.0.0} does not exist and cannot be refreshed.

-Task finished: eclipse.refreshLocal

-Task started: antcall

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: all.features

-Target finished: all.features

-Target started: all.plugins

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Task started: ant

-Target started: properties

-Task started: property

-Task finished: property

-Target finished: properties

-Target started: init

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Task started: property

-Task finished: property

-Target finished: init

-Target started: refresh

-Task started: eclipse.convertPath

-Task finished: eclipse.convertPath

-Task started: eclipse.refreshLocal

-Task finished: eclipse.refreshLocal

-Target finished: refresh

-Task finished: ant

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Task finished: ant

-Target finished: all.features

-Target started: all.plugins

-Target finished: all.plugins

-Target started: update.feature

-Target finished: update.feature

-Target started: all.children

-Target finished: all.children

-Task finished: antcall

-Target finished: refresh

-Build finished.

diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/.sitebuild/sitebuild.xml b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/.sitebuild/sitebuild.xml
deleted file mode 100644
index 49243d3..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/.sitebuild/sitebuild.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site-build
-      feature-location="features"
-      plugin-location="plugins"
-      autobuild="false"
-      scrub-output="false"
-      use-console="true">
-   <feature id="update.feature1c" version="3.0.0"/>
-   <feature id="update.feature2c" version="3.0.0"/>
-</site-build>
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1_1.0.0.jar
deleted file mode 100644
index 152d9e2..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1_1.0.1.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1_1.0.1.jar
deleted file mode 100644
index eeb0b6f..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1_1.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1b_2.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1b_2.0.0.jar
deleted file mode 100644
index 49b0764..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1b_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1c_3.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1c_3.0.0.jar
deleted file mode 100644
index d426f86..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1c_3.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2_1.0.0.jar
deleted file mode 100644
index b070ccd..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2b_2.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2b_2.0.0.jar
deleted file mode 100644
index e48ac05..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2b_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2c_3.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2c_3.0.0.jar
deleted file mode 100644
index 00037df..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2c_3.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin1_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin1_1.0.0.jar
deleted file mode 100644
index 3543749..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin1_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin1a_1.0.1.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin1a_1.0.1.jar
deleted file mode 100644
index 632cc3f..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin1a_1.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin2_1.0.0.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin2_1.0.0.jar
deleted file mode 100644
index dbc8a88..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin2_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin2a_1.0.1.jar b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin2a_1.0.1.jar
deleted file mode 100644
index a3cd0fb..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin2a_1.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/site.xml b/update/org.eclipse.update.tests.core/data/mirrors/update-site5/site.xml
deleted file mode 100644
index 6e26db1..0000000
--- a/update/org.eclipse.update.tests.core/data/mirrors/update-site5/site.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/update.feature1c_3.0.0.jar" id="update.feature1c" version="3.0.0">
-      <category name="Site5-Category1"/>
-   </feature>
-   <feature url="features/update.feature2c_3.0.0.jar" id="update.feature2c" version="3.0.0">
-      <category name="Site5-Category2"/>
-   </feature>
-   <category-def name="Site5-Category1" label="Site5-Category1-Label">
-      <description>
-         ecetera.
-      </description>
-   </category-def>
-   <category-def name="Site5-Category2" label="Site5-Category2-Label">
-      <description>
-         ecetera.
-      </description>
-   </category-def>
-</site>
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/features/org.eclipse.update.core.tests.childrenfeature_2.0.0.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/features/org.eclipse.update.core.tests.childrenfeature_2.0.0.jar
deleted file mode 100644
index 6658034..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/features/org.eclipse.update.core.tests.childrenfeature_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/features/rootfeature.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/features/rootfeature.jar
deleted file mode 100644
index b011050..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/features/rootfeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
deleted file mode 100644
index 5d9f5bc..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
deleted file mode 100644
index 8b4b04a..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
deleted file mode 100644
index 52208fe..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/site.xml b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/site.xml
deleted file mode 100644
index 623cb1a..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/site.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-  <feature url="features/rootfeature.jar"/>
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/features/childrenfeature.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/features/childrenfeature.jar
deleted file mode 100644
index 7e057e6..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/features/childrenfeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/features/rootfeature.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/features/rootfeature.jar
deleted file mode 100644
index 38a0a3c..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/features/rootfeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
deleted file mode 100644
index 5d9f5bc..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
deleted file mode 100644
index 8b4b04a..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
deleted file mode 100644
index 52208fe..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/site.xml b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/site.xml
deleted file mode 100644
index 1752da2..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/site.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-  <feature url="features/rootfeature.jar"/>
-  <feature url="features/childrenfeature.jar"/>  
-  
-  <archive path="features/org.eclipse.update.core.tests.childrenfeature_2.1.0.jar" url="features/childrenfeature.jar"/>  
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/features/childrenfeature.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/features/childrenfeature.jar
deleted file mode 100644
index 12ee4ba..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/features/childrenfeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/features/rootfeature.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/features/rootfeature.jar
deleted file mode 100644
index 899bdda..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/features/rootfeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
deleted file mode 100644
index 5d9f5bc..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
deleted file mode 100644
index 8b4b04a..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
deleted file mode 100644
index 52208fe..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/site.xml b/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/site.xml
deleted file mode 100644
index 4f696ba..0000000
--- a/update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/site.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-  <feature url="features/rootfeature.jar"/>
-  
-  <archive path="features/org.eclipse.update.core.tests.childrenfeature_2.1.0.jar" url="features/childrenfeature.jar"/>  
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/feature1.xml b/update/org.eclipse.update.tests.core/data/parsertests/feature1.xml
deleted file mode 100644
index 93d7080..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/feature1.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-   id="org.eclipse.platform"
-   version="2.1.0"
-   label="Eclipse Platform"
-   provider-name="www.eclipse.org"
-   image="splash/splash_full.bmp"
-   >
-
-	<license>
-    	 license
-	</license>
-
-   <copyright url="notice.html"/>
-   x
-	
-   <license url="about.html">
-   x
-   </license>
-
-   <url>
-      <update url="file:/D:/" label="Eclipse Update Site"/>
-   </url>
-
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/feature1bis.xml b/update/org.eclipse.update.tests.core/data/parsertests/feature1bis.xml
deleted file mode 100644
index e855f97..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/feature1bis.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-   id="org.eclipse.platform"
-   version="2.1.0"
-   label="Eclipse Platform"
-   provider-name="www.eclipse.org"
-   image="splash/splash_full.bmp"
-   >
-
-   <description>
-   Eclipse platform feature.
-   </description>
-
-   <copyright url="notice.html"/>
-   <blah />
-	
-   <license url="about.html">
-
-   </license>
-
-   <url>
-      <update url="file:/D:/" label="Eclipse Update Site"/>
-   </url>
-
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/feature2.xml b/update/org.eclipse.update.tests.core/data/parsertests/feature2.xml
deleted file mode 100644
index 9c2df9b..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/feature2.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-   id="org.eclipse.platform"
-   version="2.1.0"
-   label="Eclipse Platform"
-   provider-name="www.eclipse.org"
-   image="splash/splash_full.bmp"
-   blah="blah"
-   >
-
-   <description blah="blah">
-   Eclipse platform feature.
-   </description>
-
-   <copyright url="notice.html" blah="blah"/>
-	
-   <license url="about.html" blah="blah">
-   </license>
-
-   <url blah="blah">
-      <update url="file:/D:/" label="Eclipse Update Site" blah="blah"/>
-   </url>
-
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/feature3.xml b/update/org.eclipse.update.tests.core/data/parsertests/feature3.xml
deleted file mode 100644
index ca660be..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/feature3.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-   id="org.eclipse.platform"
-   version="2.1.0"
-   label="Eclipse Platform"
-   provider-name="www.eclipse.org"
-   image="splash/splash_full.bmp"
-   >
-
-   <description>
-   Eclipse platform feature.
-   </description>
-
-   <copyright url="$os$/$ws$/notice.html"/>
-   x
-	
-   <license url="about.html">
-   x
-   </license>
-
-   <url>
-      <update url="file:/D:/" label="Eclipse Update Site"/>
-   </url>
-
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/feature4.xml b/update/org.eclipse.update.tests.core/data/parsertests/feature4.xml
deleted file mode 100644
index 17187c9..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/feature4.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-   id="org.eclipse.platform"
-   version="2.1.0"
-   label="Eclipse Platform"
-   provider-name="www.eclipse.org"
-   image="splash/splash_full.bmp"
-   >
-
-   <description>
-   Eclipse platform feature.
-   </description>
-
-   <copyright url="$os$/$ws$/notice.html"/>
-   x
-	
-   <license url="about.html">
-   x
-   </license>
-
-   <url>
-      <update url="file:/D:/" label="Eclipse Update Site"/>
-      <discovery url="file:/c:/" label = "Discovery" type="web"/>
-   </url>
-
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/reddot.xml b/update/org.eclipse.update.tests.core/data/parsertests/reddot.xml
deleted file mode 100644
index f3f1701..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/reddot.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>

-<site url="info/siteInfo.html">

-<feature url="features/reddot_1.0.0.jar"> 

-<category name="reddot"/>

-</feature>

-<feature url="features/reddot_2.1.0.jar">

-<category name="reddot"/>

-</feature>

-<archive path="com.reddot.redot_1.0.0" url="plugins/com.reddot.reddot_1.0.0.jar"/>

-<archive path="com.reddot.redot_2.1.0" url="plugins/com.reddot.reddot_2.1.0.jar"/>

-<category-def label="Red Dot Versions" name="reddot">

-<description url="RedDotVersions.html">

-This category contains all of the &lt;currently&gt; available versions of Red Dot feature.

-<![CDATA[<greeting>Hello, world!</greeting>]]>

-</description>

-</category-def>

-</site>

-

-

diff --git a/update/org.eclipse.update.tests.core/data/parsertests/reddot1.xml b/update/org.eclipse.update.tests.core/data/parsertests/reddot1.xml
deleted file mode 100644
index 074490e..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/reddot1.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>

-<site url="info/siteInfo.html">

-<feature url="features/reddot_1.0.0.jar"> 

-<category name="reddot"/>

-</feature>

-<feature url="features/reddot_2.1.0.jar">

-<category name="reddot"/>

-</feature>

-<archive path="com.reddot.redot_1.0.0" url="plugins/com.reddot.reddot_1.0.0.jar"/>

-<archive path="com.reddot.redot_2.1.0" url="plugins/com.reddot.reddot_2.1.0.jar"/>

-<category-def label="Red Dot Versions" name="reddot">

-<description url="RedDotVersions.html">

-This category contains all of the &lt;currently&gt; available versions of Red Dot feature.

-</description>

-</category-def>

-</site>

-

-

diff --git a/update/org.eclipse.update.tests.core/data/parsertests/site.properties b/update/org.eclipse.update.tests.core/data/parsertests/site.properties
deleted file mode 100644
index 8e1ced4..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/site.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2003 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

-###############################################################################

-drivers=Required Drivers

-security=Security Fixes
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/site.xml b/update/org.eclipse.update.tests.core/data/parsertests/site.xml
deleted file mode 100644
index b40d831..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/site.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site id="org.eclipse.update.core.tests" name="Tests" version="0.0.1" type="org.eclipse.update.core.file">

-  <handler>

-  	<boo class ="unknown"/>

-  </handler>

-  

-  <feature url="features/org.eclipse.test.feature_1.0.0.jar">

-    <category name="category1"/>

-  </feature>

-  

-  <feature url="features/features2.jar">

-    <category name="category1/subcat1"/>

-    <category name="category2"/>

-  </feature>

-  

-  <feature url="features/org.eclipse.update.core.tests.feature1_1.0.4.jar">

-    <category name="category1"/>

-    <category name="category2"/>

-    <blah/>

-  </feature>

-  

-  <feature url="features/org.eclipse_test_feature.jar"/>

-  

-  <feature url="org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar">

-    <category name="category1"/>

-  </feature>

-  

-  <feature url="org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar">

-  </feature>

-  

-  <archive path="plugins/hello" >

-  	<default/>

-  </archive>

-

-  <category-def name="category2" label="%security"/>

-  <category-def name="category1/subcat1" label="Special Fix"/>

-  <category-def name="category1" label="%drivers"/>  

-

-

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/site10.xml b/update/org.eclipse.update.tests.core/data/parsertests/site10.xml
deleted file mode 100644
index e42680d..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/site10.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site id="org.eclipse.update.core.tests" name="Tests" version="0.0.1" type="org.eclipse.update.core.file" blah="blah">
-  
-  <feature url="features/org.eclipse.test.feature_1.0.0.jar" blah="blah" id="org.eclipse.test.feature" version="1.0.0"/>
-  
-  <feature url="features/features2.jar" id="unknwon.id" version="bad version"/>
-  
-  <feature url="features/org.eclipse.update.core.tests.feature1_1.0.4.jar" id="only.id"/>
-    
-  <feature url="features/org.eclipse_test_feature.jar" version="1.0.0"/>
-  
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/site2.xml b/update/org.eclipse.update.tests.core/data/parsertests/site2.xml
deleted file mode 100644
index 007550e..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/site2.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-  <feature id="com.ibm.jdt" url="http://www.not-eclipse.org/feature3" version="1.0.0"/>
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/site3.xml b/update/org.eclipse.update.tests.core/data/parsertests/site3.xml
deleted file mode 100644
index dbbb682..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/site3.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-  <feature id="com.ibm.jdt" url="feature3/feature.jar" version="1.0.0">
-        <category name="unknown"/>
-  </feature>
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/site4.xml b/update/org.eclipse.update.tests.core/data/parsertests/site4.xml
deleted file mode 100644
index 41b7d16..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/site4.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<site>
-   <description url="info/siteInfo.html"/>
-
-  <category-def label="Red Dot Versions" name="reddot">
-      <description url="RedDotVersions.html">
-         This category contains all of the currently available versions of Red Dot feature.
-      </description>
-   </category-def>
-   
-   <feature url="features/com.reddot.reddot_1.0.0.jar">
-      <category name="reddot"/>
-   </feature>
-
-   <feature url="features/com.reddot.reddot_2.1.0.jar">
-      <category name="reddot"/>
-   </feature>
-
- 
-</site>   
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/site7.xml b/update/org.eclipse.update.tests.core/data/parsertests/site7.xml
deleted file mode 100644
index 2190d70..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/site7.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site id="org.eclipse.update.core.tests" name="Tests" version="0.0.1" type="org.eclipse.update.core.file">
-  <handler>
-  	<boo class ="unknown"/>
-  </handler>
-  
-  <feature url="features/org.eclipse.test.feature_1.0.0.jar">
-    <category name="category1"/>
-  </feature>
-  
-  <feature url="features/features2.jar">
-    <category name="category1/subcat1"/>
-    <category name="category2"/>
-  </feature>
-  
-  <blah/>
-  
-  <feature url="features/org.eclipse.update.core.tests.feature1_1.0.4.jar">
-    <category name="category1"/>
-    <category name="category2"/>
-    <blah/>
-  </feature>
-  
-  <feature url="features/org.eclipse_test_feature.jar"/>
-  
-  <feature url="org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar">
-    <category name="category1"/>
-  </feature>
-  
-  <feature url="org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar">
-  </feature>
-  
-  <archive path="plugins/hello" >
-  	<default/>
-  </archive>
-
-  <category-def name="category2" label="%security"/>
-  <category-def name="category1/subcat1" label="Special Fix"/>
-  <category-def name="category1" label="%drivers"/>  
-
-
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/site8.xml b/update/org.eclipse.update.tests.core/data/parsertests/site8.xml
deleted file mode 100644
index afcbaa1..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/site8.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site id="org.eclipse.update.core.tests" name="Tests" version="0.0.1" type="org.eclipse.update.core.file">
-  <handler>
-  	<boo class ="unknown"/>
-  </handler>
-  
-  <feature url="features/org.eclipse.test.feature_1.0.0.jar">
-    <category name="category1"/>
-  </feature>
-  
-  <feature url="features/features2.jar">
-    <category name="category1/subcat1"/>
-    <category name="category2"/>
-  </feature>
-  xcxgfsdfgsdsd
-  
-  <feature url="features/org.eclipse.update.core.tests.feature1_1.0.4.jar">
-    <category name="category1"/>
-    <category name="category2"/>
-    <blah/>
-  </feature>
-  
-  <feature url="features/org.eclipse_test_feature.jar"/>
-  
-  <feature url="org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar">
-    <category name="category1"/>
-  </feature>
-  
-  <feature url="org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar">
-  </feature>
-  
-  <archive path="plugins/hello" >
-  	<default/>
-  </archive>
-
-  <category-def name="category2" label="%security"/>
-  <category-def name="category1/subcat1" label="Special Fix"/>
-  <category-def name="category1" label="%drivers"/>  
-
-
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/site9.xml b/update/org.eclipse.update.tests.core/data/parsertests/site9.xml
deleted file mode 100644
index f38c5a4..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/site9.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site id="org.eclipse.update.core.tests" name="Tests" version="0.0.1" type="org.eclipse.update.core.file" blah="blah">
-  <handler blah="blah">
-  	<boo class ="unknown" blah="blah"/>
-  </handler>
-  
-  <feature url="features/org.eclipse.test.feature_1.0.0.jar" blah="blah">
-    <category name="category1" blah="blah" />
-  </feature>
-  
-  <feature url="features/features2.jar">
-    <category name="category1/subcat1"/>
-    <category name="category2"/>
-  </feature>
-  
-  <feature url="features/org.eclipse.update.core.tests.feature1_1.0.4.jar">
-    <category name="category1"/>
-    <category name="category2"/>
-    <blah/>
-  </feature>
-  
-  <feature url="features/org.eclipse_test_feature.jar"/>
-  
-  <feature url="org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar">
-    <category name="category1"/>
-  </feature>
-  
-  <feature url="org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar">
-  </feature>
-  
-  <archive path="plugins/hello" blah="blah">
-  	<default blah="blah"/>
-  </archive>
-
-  <category-def name="category2" label="%security" blah="blah"/>
-  <category-def name="category1/subcat1" label="Special Fix" blah="blah"/>
-  <category-def name="category1" label="%drivers"/>  
-
-
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/parsertests/siteftp.xml b/update/org.eclipse.update.tests.core/data/parsertests/siteftp.xml
deleted file mode 100644
index f883ec0..0000000
--- a/update/org.eclipse.update.tests.core/data/parsertests/siteftp.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site type="org.eclipse.update.tests.core.ftp">
-  <feature url="features/feature3/features2.jarfile"/>
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/.classpath b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/.classpath
deleted file mode 100644
index 88acb39..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="/org.eclipse.update.core"/>
-	<classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-	<classpathentry kind="src" path="/org.eclipse.ui"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/.project b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/.project
deleted file mode 100644
index 1ebc505..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>FeatureWithInstallHandler</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/FeatureWithInstallHandler_1.0.0.jar b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/FeatureWithInstallHandler_1.0.0.jar
deleted file mode 100644
index 695b722..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/FeatureWithInstallHandler_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/bin/HandlerWithUI$1.class b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/bin/HandlerWithUI$1.class
deleted file mode 100644
index 57291b0..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/bin/HandlerWithUI$1.class
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/bin/HandlerWithUI.class b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/bin/HandlerWithUI.class
deleted file mode 100644
index fe8e881..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/bin/HandlerWithUI.class
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/build.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/build.properties
deleted file mode 100644
index f3794db..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.handler.jar = src/,\
-                     bin/
-output.handler.jar = bin/
-bin.includes = feature.xml,\
-               handler.jar
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/feature.xml
deleted file mode 100644
index 8b90ea7..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/feature.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="FeatureWithInstallHandler"
-      label="FeatureWithInstallHandler"
-      version="1.0.0">
-
-   <install-handler library="handler.jar" handler="HandlerWithUI" />
-
-   <description url="[Enter Feature URL here.]">
-      [Enter Feature Description here.]
-   </description>
-
-   <copyright url="[Enter Copyright URL here.]">
-      [Enter Copyright Description here.]
-   </copyright>
-
-   <license url="[Enter License URL here.]">
-      [Enter License Description here.]
-   </license>
-
-   <plugin
-         id="org.apache.lucene"
-         download-size="0"
-         install-size="0"
-         version="1.3.0"/>
-
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/handler.jar b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/handler.jar
deleted file mode 100644
index 87bc244..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/handler.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/src/HandlerWithUI.java b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/src/HandlerWithUI.java
deleted file mode 100644
index 4c80d69..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/src/HandlerWithUI.java
+++ /dev/null
@@ -1,135 +0,0 @@
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.core.*;
-/*
- * Created on Oct 1, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
-
-/**
- * @author birsan
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
-public class HandlerWithUI implements IInstallHandler {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#completeConfigure()
-	 */
-	public void completeConfigure() throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("completeConfigure()");
-
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#completeInstall(org.eclipse.update.core.IFeatureContentConsumer)
-	 */
-	public void completeInstall(IFeatureContentConsumer consumer)
-			throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("completeInstall()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#completeUnconfigure()
-	 */
-	public void completeUnconfigure() throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("completeInstall()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#completeUninstall()
-	 */
-	public void completeUninstall() throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("completeUninstall()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#configureCompleted(boolean)
-	 */
-	public void configureCompleted(boolean success) throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("configureCompleted()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#configureInitiated()
-	 */
-	public void configureInitiated() throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("configureInitiated()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#initialize(int, org.eclipse.update.core.IFeature, org.eclipse.update.core.IInstallHandlerEntry, org.eclipse.update.core.InstallMonitor)
-	 */
-	public void initialize(int type, IFeature feature,
-			IInstallHandlerEntry entry, InstallMonitor monitor)
-			throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("initialize()");
-		Display.getDefault().asyncExec( new Runnable() {
-			public void run() {
-				MessageDialog.openInformation(Display.getDefault().getActiveShell(), "InstallHandler", "This is a dummy message");
-			}
-		});
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#installCompleted(boolean)
-	 */
-	public void installCompleted(boolean success) throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("installCompleted()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#installInitiated()
-	 */
-	public void installInitiated() throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("installInitiated()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#nonPluginDataDownloaded(org.eclipse.update.core.INonPluginEntry[], org.eclipse.update.core.IVerificationListener)
-	 */
-	public void nonPluginDataDownloaded(INonPluginEntry[] nonPluginData,
-			IVerificationListener listener) throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("nonPluginDataDownloaded()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#pluginsDownloaded(org.eclipse.update.core.IPluginEntry[])
-	 */
-	public void pluginsDownloaded(IPluginEntry[] plugins) throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("pluginsDownloaded()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#unconfigureCompleted(boolean)
-	 */
-	public void unconfigureCompleted(boolean success) throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("unconfigureCompleted()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#unconfigureInitiated()
-	 */
-	public void unconfigureInitiated() throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("unconfigureInitiated()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#uninstallCompleted(boolean)
-	 */
-	public void uninstallCompleted(boolean success) throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("uninstallCompleted()");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.core.IInstallHandler#uninstallInitiated()
-	 */
-	public void uninstallInitiated() throws CoreException {
-		// TODO Auto-generated method stub
-		System.out.println("uninstallInitiated()");
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/META-INF/MANIFEST.MF
deleted file mode 100644
index 59499bc..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/cpl-v10.html
deleted file mode 100644
index 95416c1..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/cpl-v10.html
+++ /dev/null
@@ -1,266 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content="HTML Tidy, see www.w3.org" />
-<title>Common Public License - v 1.0</title>
-<meta http-equiv="Content-Type"
-content="text/html; charset=iso-8859-1" />
-</head>
-<body bgcolor="#FFFFFF" vlink="#800000">
-<p style="font-weight: bold; text-align: center">Common Public
-License - v 1.0</p>
-
-<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS
-COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
-DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF
-THIS AGREEMENT.</p>
-
-<p style="font-weight: bold">1. DEFINITIONS</p>
-
-<p>"Contribution" means:</p>
-
-<div style="margin-left: 2em">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:</div>
-
-<div style="margin-left: 2em">i) changes to the Program, and</div>
-
-<div style="margin-left: 2em">ii) additions to the Program;</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p>"Contributor" means any person or entity that distributes the
-Program.</p>
-
-<p>"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.</p>
-
-<p>"Program" means the Contributions distributed in accordance with
-this Agreement.</p>
-
-<p>"Recipient" means anyone who receives the Program under this
-Agreement, including all Contributors.</p>
-
-<p style="font-weight: bold">2. GRANT OF RIGHTS</p>
-
-<div style="margin-left: 2em">a) Subject to the terms of this
-Agreement, each Contributor hereby grants Recipient a
-non-exclusive, worldwide, royalty-free copyright license to
-reproduce, prepare derivative works of, publicly display, publicly
-perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and
-object code form.</div>
-
-<div style="margin-left: 2em">b) Subject to the terms of this
-Agreement, each Contributor hereby grants Recipient a
-non-exclusive, worldwide, royalty-free patent license under
-Licensed Patents to make, use, sell, offer to sell, import and
-otherwise transfer the Contribution of such Contributor, if any, in
-source code and object code form. This patent license shall apply
-to the combination of the Contribution and the Program if, at the
-time the Contribution is added by the Contributor, such addition of
-the Contribution causes such combination to be covered by the
-Licensed Patents. The patent license shall not apply to any other
-combinations which include the Contribution. No hardware per se is
-licensed hereunder.</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p style="font-weight: bold">3. REQUIREMENTS</p>
-
-<p>A Contributor may choose to distribute the Program in object
-code form under its own license agreement, provided that:</p>
-
-<div style="margin-left: 2em">a) it complies with the terms and
-conditions of this Agreement; and</div>
-
-<div style="margin-left: 2em">b) its license agreement:</div>
-
-<div style="margin-left: 2em">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;</div>
-
-<div style="margin-left: 2em">ii) effectively excludes on behalf of
-all Contributors all liability for damages, including direct,
-indirect, special, incidental and consequential damages, such as
-lost profits;</div>
-
-<div style="margin-left: 2em">iii) states that any provisions which
-differ from this Agreement are offered by that Contributor alone
-and not by any other party; and</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p>When the Program is made available in source code form:</p>
-
-<div style="margin-left: 2em">a) it must be made available under
-this Agreement; and</div>
-
-<div style="margin-left: 2em">b) a copy of this Agreement must be
-included with each copy of the Program.</div>
-
-<p>Contributors may not remove or alter any copyright notices
-contained within the Program.</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">4. COMMERCIAL DISTRIBUTION</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">5. NO WARRANTY</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">6. DISCLAIMER OF LIABILITY</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">7. GENERAL</p>
-
-<p>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.</p>
-
-<p>If Recipient institutes patent litigation against a Contributor
-with respect to a patent applicable to software (including a
-cross-claim or counterclaim in a lawsuit), then any patent licenses
-granted by that Contributor to such Recipient under this Agreement
-shall terminate as of the date such litigation is filed. In
-addition, 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.</p>
-
-<p>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.</p>
-
-<p>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. IBM is the initial Agreement Steward. IBM 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.</p>
-
-<p>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.</p>
-</body>
-</html>
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/feature.properties
deleted file mode 100644
index f8cfdf4..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/feature.properties
+++ /dev/null
@@ -1,141 +0,0 @@
-# /**
-#  * <copyright>
-#  *
-#  * Copyright (c) 2002-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 - Initial API and implementation
-#  *
-#  * </copyright>
-#  *
-#  * $Id: feature.properties,v 1.2 2004/05/26 15:16:28 marcelop Exp $
-#  */
-
-# ==============================================================================
-# Do not change the properties between this line and the last line containing:
-# %%% END OF TRANSLATED PROPERTIES %%%
-# Instead, either redefine an existing property, or create a new property,
-# append it to the end of the file, and change the code to use the new name.
-# ==============================================================================
-
-# This file contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse Modeling Framework (EMF) Documentation
-
-# "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 Modeling Framework. (documentation)
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
-
-# ==============================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# The above properties have been shipped for translation.
-# ==============================================================================
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/feature.xml
deleted file mode 100644
index 09363e7..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/feature.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-/**
- * <copyright>
- *
- * Copyright (c) 2002-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 - Initial API and implementation
- *
- * </copyright>
- *
- * $Id: feature.xml,v 1.1 2004/03/06 17:31:31 marcelop Exp $
- */
--->
-
-<feature
-	id="org.eclipse.emf.doc"
-    label="%featureName"
-    version="2.0.0"
-    image= "eclipse_update_120.jpg"
-    provider-name="%providerName">
-
-	<description>
-    	%description
-	</description>
-
-    <license url="%licenseURL">
-		%license
-	</license>
-
-	<url>
-		<update url="http://update.eclipse.org/updates" label="%updateSiteName"/>
-	</url>
-
-	<plugin
-		id="org.eclipse.emf.doc"
-        download-size="0"
-        install-size="0"   		
-		version="2.0.0"/>
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/license.html
deleted file mode 100644
index 07a5e18..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/license.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content="HTML Tidy, see www.w3.org" />
-<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>14th August, 2003</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>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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/META-INF/MANIFEST.MF
deleted file mode 100644
index 59499bc..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/eclipse_update_120.jpg
deleted file mode 100644
index 3a4d639..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/feature.properties
deleted file mode 100644
index 0c94af5..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/feature.properties
+++ /dev/null
@@ -1,141 +0,0 @@
-# /**
-#  * <copyright>
-#  *
-#  * Copyright (c) 2002-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 - Initial API and implementation
-#  *
-#  * </copyright>
-#  *
-#  * $Id: feature.properties,v 1.1 2004/03/26 15:24:15 marcelop Exp $ 
-#  */
-
-# ==============================================================================
-# Do not change the properties between this line and the last line containing:
-# %%% END OF TRANSLATED PROPERTIES %%%
-# Instead, either redefine an existing property, or create a new property,
-# append it to the end of the file, and change the code to use the new name.
-# ==============================================================================
-
-# This file contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=EMF Service Data Objects (SDO) Documentation
-
-# "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=EMF Service Data Objects (SDO) Documentation
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
-
-# ==============================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# The above properties have been shipped for translation.
-# ==============================================================================
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/feature.xml
deleted file mode 100644
index 1dfb44a..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/feature.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-/**
- * <copyright>
- *
- * 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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- *   IBM - Initial API and implementation
- *
- * </copyright>
- *
- * $Id: feature.xml,v 1.2 2004/03/26 15:32:13 marcelop Exp $
- */
--->
-
-<feature
-	id="org.eclipse.emf.ecore.sdo.doc"
-    label="%featureName"
-    version="2.0.0"
-    image= "eclipse_update_120.jpg"
-    provider-name="%providerName">
-
-	<description>
-    	%description
-	</description>
-
-    <license url="%licenseURL">
-		%license
-	</license>
-
-	<url>
-		<update url="http://update.eclipse.org/updates" label="%updateSiteName"/>
-	</url>
-
-	<plugin
-		id="org.eclipse.emf.ecore.sdo.doc"
-        download-size="0"
-        install-size="0"   		
-		version="2.0.0"/>
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/license.html
deleted file mode 100644
index af8c380..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/license.html
+++ /dev/null
@@ -1,71 +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>14th August, 2003</p>
-
-<h3>Usage Of Content</h3>
-
-<p>ECLIPSE.ORG MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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>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>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/META-INF/MANIFEST.MF
deleted file mode 100644
index 59499bc..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/eclipse_update_120.jpg
deleted file mode 100644
index 3a4d639..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/feature.properties
deleted file mode 100644
index faf0eed..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/feature.properties
+++ /dev/null
@@ -1,141 +0,0 @@
-# /**
-#  * <copyright>
-#  *
-#  * Copyright (c) 2002-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 - Initial API and implementation
-#  *
-#  * </copyright>
-#  *
-#  * $Id: feature.properties,v 1.1 2004/03/26 15:24:15 marcelop Exp $ 
-#  */
-
-# ==============================================================================
-# Do not change the properties between this line and the last line containing:
-# %%% END OF TRANSLATED PROPERTIES %%%
-# Instead, either redefine an existing property, or create a new property,
-# append it to the end of the file, and change the code to use the new name.
-# ==============================================================================
-
-# This file contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=EMF Service Data Objects (SDO) Source
-
-# "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=EMF Service Data Objects (SDO) Source
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
-
-# ==============================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# The above properties have been shipped for translation.
-# ==============================================================================
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/feature.xml
deleted file mode 100644
index ba5d87d..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/feature.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature primary="false"  provider-name="%providerName"    label="%featureName"  image="eclipse_update_120.jpg" id="org.eclipse.emf.ecore.sdo.source"  version="2.0.0">
-	<description >
-		%description
-	</description>
-	<copyright url="http://www.eclipse.org/legal/cpl-v10.html">
-		Copyright (c) 2002-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
-	</copyright>
-	<license url="%licenseURL">
-		%license
-	</license>
-	<url>
-		<update label="%updateSiteName" url="http://update.eclipse.org/updates/"/>
-		<discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/tools/emf/updates/"/>
-	</url>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.emf.ecore.sdo.source" version="2.0.0"/>
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/license.html
deleted file mode 100644
index af8c380..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/license.html
+++ /dev/null
@@ -1,71 +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>14th August, 2003</p>
-
-<h3>Usage Of Content</h3>
-
-<p>ECLIPSE.ORG MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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>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>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/META-INF/MANIFEST.MF
deleted file mode 100644
index 59499bc..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/eclipse_update_120.jpg
deleted file mode 100644
index 3a4d639..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/feature.properties
deleted file mode 100644
index 7d4ad3d..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-# /**
-#  * <copyright>
-#  *
-#  * Copyright (c) 2002-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 - Initial API and implementation
-#  *
-#  * </copyright>
-#  *
-#  * $id$
-#  */
-
-# ==============================================================================
-# Do not change the properties between this line and the last line containing:
-# %%% END OF TRANSLATED PROPERTIES %%%
-# Instead, either redefine an existing property, or create a new property,
-# append it to the end of the file, and change the code to use the new name.
-# ==============================================================================
-
-# This file contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=EMF Service Data Objects (SDO)
-
-# "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=EMF Service Data Objects (SDO).
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
-
-# ==============================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# The above properties have been shipped for translation.
-# ==============================================================================
-
-# "secondaryUpdateSiteName" property - label for the secondary update site (on download.eclipse.org)
-secondaryUpdateSiteName=EMF/SDO/XSD Secondary Update Site
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/feature.xml
deleted file mode 100644
index f04662b..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/feature.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.emf.ecore.sdo"
-      label="%featureName"
-      version="2.0.0"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright url="http://www.eclipse.org/legal/cpl-v10.html">
-      Copyright (c) 2002-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
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/"/>
-      <discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/tools/emf/updates/"/>
-   </url>
-
-   <requires>
-      <import plugin="org.eclipse.core.resources" version="3.0.0" match="compatible"/>
-      <import plugin="org.eclipse.emf.ecore" version="2.0.0" match="compatible"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.emf.commonj.sdo"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.ecore.sdo"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.ecore.sdo.edit"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.ecore.sdo.editor"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/license.html
deleted file mode 100644
index af8c380..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/license.html
+++ /dev/null
@@ -1,71 +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>14th August, 2003</p>
-
-<h3>Usage Of Content</h3>
-
-<p>ECLIPSE.ORG MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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>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>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/META-INF/MANIFEST.MF
deleted file mode 100644
index 59499bc..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/cpl-v10.html
deleted file mode 100644
index 95416c1..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/cpl-v10.html
+++ /dev/null
@@ -1,266 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content="HTML Tidy, see www.w3.org" />
-<title>Common Public License - v 1.0</title>
-<meta http-equiv="Content-Type"
-content="text/html; charset=iso-8859-1" />
-</head>
-<body bgcolor="#FFFFFF" vlink="#800000">
-<p style="font-weight: bold; text-align: center">Common Public
-License - v 1.0</p>
-
-<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS
-COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
-DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF
-THIS AGREEMENT.</p>
-
-<p style="font-weight: bold">1. DEFINITIONS</p>
-
-<p>"Contribution" means:</p>
-
-<div style="margin-left: 2em">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:</div>
-
-<div style="margin-left: 2em">i) changes to the Program, and</div>
-
-<div style="margin-left: 2em">ii) additions to the Program;</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p>"Contributor" means any person or entity that distributes the
-Program.</p>
-
-<p>"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.</p>
-
-<p>"Program" means the Contributions distributed in accordance with
-this Agreement.</p>
-
-<p>"Recipient" means anyone who receives the Program under this
-Agreement, including all Contributors.</p>
-
-<p style="font-weight: bold">2. GRANT OF RIGHTS</p>
-
-<div style="margin-left: 2em">a) Subject to the terms of this
-Agreement, each Contributor hereby grants Recipient a
-non-exclusive, worldwide, royalty-free copyright license to
-reproduce, prepare derivative works of, publicly display, publicly
-perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and
-object code form.</div>
-
-<div style="margin-left: 2em">b) Subject to the terms of this
-Agreement, each Contributor hereby grants Recipient a
-non-exclusive, worldwide, royalty-free patent license under
-Licensed Patents to make, use, sell, offer to sell, import and
-otherwise transfer the Contribution of such Contributor, if any, in
-source code and object code form. This patent license shall apply
-to the combination of the Contribution and the Program if, at the
-time the Contribution is added by the Contributor, such addition of
-the Contribution causes such combination to be covered by the
-Licensed Patents. The patent license shall not apply to any other
-combinations which include the Contribution. No hardware per se is
-licensed hereunder.</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p style="font-weight: bold">3. REQUIREMENTS</p>
-
-<p>A Contributor may choose to distribute the Program in object
-code form under its own license agreement, provided that:</p>
-
-<div style="margin-left: 2em">a) it complies with the terms and
-conditions of this Agreement; and</div>
-
-<div style="margin-left: 2em">b) its license agreement:</div>
-
-<div style="margin-left: 2em">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;</div>
-
-<div style="margin-left: 2em">ii) effectively excludes on behalf of
-all Contributors all liability for damages, including direct,
-indirect, special, incidental and consequential damages, such as
-lost profits;</div>
-
-<div style="margin-left: 2em">iii) states that any provisions which
-differ from this Agreement are offered by that Contributor alone
-and not by any other party; and</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p>When the Program is made available in source code form:</p>
-
-<div style="margin-left: 2em">a) it must be made available under
-this Agreement; and</div>
-
-<div style="margin-left: 2em">b) a copy of this Agreement must be
-included with each copy of the Program.</div>
-
-<p>Contributors may not remove or alter any copyright notices
-contained within the Program.</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">4. COMMERCIAL DISTRIBUTION</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">5. NO WARRANTY</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">6. DISCLAIMER OF LIABILITY</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">7. GENERAL</p>
-
-<p>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.</p>
-
-<p>If Recipient institutes patent litigation against a Contributor
-with respect to a patent applicable to software (including a
-cross-claim or counterclaim in a lawsuit), then any patent licenses
-granted by that Contributor to such Recipient under this Agreement
-shall terminate as of the date such litigation is filed. In
-addition, 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.</p>
-
-<p>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.</p>
-
-<p>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. IBM is the initial Agreement Steward. IBM 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.</p>
-
-<p>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.</p>
-</body>
-</html>
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/feature.properties
deleted file mode 100644
index 9e4b7cd..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/feature.properties
+++ /dev/null
@@ -1,130 +0,0 @@
-# /**
-#  * <copyright>
-#  *
-#  * Copyright (c) 2002-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 - Initial API and implementation
-#  *
-#  * </copyright>
-#  *
-#  * $Id: feature.properties,v 1.1 2004/03/06 17:31:31 marcelop Exp $
-#  */
-
-# 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=EMF SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=Eclipse.org update site
-
-# "description" property - description of the feature
-description=Binaries and API documentation and source zips for EMF.
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/feature.xml
deleted file mode 100644
index 6418de2..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/feature.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-/**
- * <copyright>
- *
- * Copyright (c) 2002-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 - Initial API and implementation
- *
- * </copyright>
- *
- * $Id: feature.xml,v 1.2 2004/03/25 14:06:34 marcelop Exp $
- */
--->
-
-<feature
-    id="org.eclipse.emf.sdk"
-    label="%featureName"
-    version="2.0.0"
-    image= "eclipse_update_120.jpg"
-    provider-name="%providerName">
-
-	<description>
-        %description
-    </description>
-   
-	<license url="%licenseURL">
-        %license
-    </license>
-
-    <url>
-      <update url="http://update.eclipse.org/updates" label="%updateSiteName"/>
-    </url>
-
-    <includes
-        id="org.eclipse.emf"
-        version="2.0.0"
-        match="compatible"/> 
-        
-    <includes
-        id="org.eclipse.emf.source"
-        version="2.0.0"
-        match="compatible"/> 
-
-    <includes
-        id="org.eclipse.emf.doc"
-        version="2.0.0"
-        match="compatible"/>   
-
-    <includes
-        id="org.eclipse.xsd"
-        version="2.0.0"
-        match="compatible"/> 
-
-    <includes
-        id="org.eclipse.xsd.source"
-        version="2.0.0"
-        match="compatible"/> 
-
-    <includes
-        id="org.eclipse.xsd.doc"
-        version="2.0.0"
-        match="compatible"/> 
-
-    <includes
-        id="org.eclipse.emf.ecore.sdo"
-        version="2.0.0"
-        match="compatible"/> 
-
-    <includes
-        id="org.eclipse.emf.ecore.sdo.source"
-        version="2.0.0"
-        match="compatible"/> 
-
-    <includes
-        id="org.eclipse.emf.ecore.sdo.doc"
-        version="2.0.0"
-        match="compatible"/> 
-       
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/license.html
deleted file mode 100644
index 07a5e18..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/license.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content="HTML Tidy, see www.w3.org" />
-<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>14th August, 2003</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>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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/META-INF/MANIFEST.MF
deleted file mode 100644
index 59499bc..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/cpl-v10.html
deleted file mode 100644
index 95416c1..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/cpl-v10.html
+++ /dev/null
@@ -1,266 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content="HTML Tidy, see www.w3.org" />
-<title>Common Public License - v 1.0</title>
-<meta http-equiv="Content-Type"
-content="text/html; charset=iso-8859-1" />
-</head>
-<body bgcolor="#FFFFFF" vlink="#800000">
-<p style="font-weight: bold; text-align: center">Common Public
-License - v 1.0</p>
-
-<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS
-COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
-DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF
-THIS AGREEMENT.</p>
-
-<p style="font-weight: bold">1. DEFINITIONS</p>
-
-<p>"Contribution" means:</p>
-
-<div style="margin-left: 2em">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:</div>
-
-<div style="margin-left: 2em">i) changes to the Program, and</div>
-
-<div style="margin-left: 2em">ii) additions to the Program;</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p>"Contributor" means any person or entity that distributes the
-Program.</p>
-
-<p>"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.</p>
-
-<p>"Program" means the Contributions distributed in accordance with
-this Agreement.</p>
-
-<p>"Recipient" means anyone who receives the Program under this
-Agreement, including all Contributors.</p>
-
-<p style="font-weight: bold">2. GRANT OF RIGHTS</p>
-
-<div style="margin-left: 2em">a) Subject to the terms of this
-Agreement, each Contributor hereby grants Recipient a
-non-exclusive, worldwide, royalty-free copyright license to
-reproduce, prepare derivative works of, publicly display, publicly
-perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and
-object code form.</div>
-
-<div style="margin-left: 2em">b) Subject to the terms of this
-Agreement, each Contributor hereby grants Recipient a
-non-exclusive, worldwide, royalty-free patent license under
-Licensed Patents to make, use, sell, offer to sell, import and
-otherwise transfer the Contribution of such Contributor, if any, in
-source code and object code form. This patent license shall apply
-to the combination of the Contribution and the Program if, at the
-time the Contribution is added by the Contributor, such addition of
-the Contribution causes such combination to be covered by the
-Licensed Patents. The patent license shall not apply to any other
-combinations which include the Contribution. No hardware per se is
-licensed hereunder.</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p style="font-weight: bold">3. REQUIREMENTS</p>
-
-<p>A Contributor may choose to distribute the Program in object
-code form under its own license agreement, provided that:</p>
-
-<div style="margin-left: 2em">a) it complies with the terms and
-conditions of this Agreement; and</div>
-
-<div style="margin-left: 2em">b) its license agreement:</div>
-
-<div style="margin-left: 2em">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;</div>
-
-<div style="margin-left: 2em">ii) effectively excludes on behalf of
-all Contributors all liability for damages, including direct,
-indirect, special, incidental and consequential damages, such as
-lost profits;</div>
-
-<div style="margin-left: 2em">iii) states that any provisions which
-differ from this Agreement are offered by that Contributor alone
-and not by any other party; and</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p>When the Program is made available in source code form:</p>
-
-<div style="margin-left: 2em">a) it must be made available under
-this Agreement; and</div>
-
-<div style="margin-left: 2em">b) a copy of this Agreement must be
-included with each copy of the Program.</div>
-
-<p>Contributors may not remove or alter any copyright notices
-contained within the Program.</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">4. COMMERCIAL DISTRIBUTION</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">5. NO WARRANTY</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">6. DISCLAIMER OF LIABILITY</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">7. GENERAL</p>
-
-<p>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.</p>
-
-<p>If Recipient institutes patent litigation against a Contributor
-with respect to a patent applicable to software (including a
-cross-claim or counterclaim in a lawsuit), then any patent licenses
-granted by that Contributor to such Recipient under this Agreement
-shall terminate as of the date such litigation is filed. In
-addition, 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.</p>
-
-<p>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.</p>
-
-<p>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. IBM is the initial Agreement Steward. IBM 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.</p>
-
-<p>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.</p>
-</body>
-</html>
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/feature.properties
deleted file mode 100644
index b51fd10..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/feature.properties
+++ /dev/null
@@ -1,141 +0,0 @@
-# /**
-#  * <copyright>
-#  *
-#  * Copyright (c) 2002-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 - Initial API and implementation
-#  *
-#  * </copyright>
-#  *
-#  * $Id: feature.properties,v 1.2 2004/05/26 15:16:25 marcelop Exp $
-#  */
-
-# ==============================================================================
-# Do not change the properties between this line and the last line containing:
-# %%% END OF TRANSLATED PROPERTIES %%%
-# Instead, either redefine an existing property, or create a new property,
-# append it to the end of the file, and change the code to use the new name.
-# ==============================================================================
-
-# This file contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse Modeling Framework (EMF) Source
-
-# "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 Modeling Framework. (source code)
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
-
-# ==============================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# The above properties have been shipped for translation.
-# ==============================================================================
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/feature.xml
deleted file mode 100644
index 2200214..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/feature.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature primary="false"  provider-name="%providerName"    label="%featureName"  image="eclipse_update_120.jpg" id="org.eclipse.emf.source"  version="2.0.0">
-	<description >
-		%description
-	</description>
-	<copyright url="http://www.eclipse.org/legal/cpl-v10.html">
-		Copyright (c) 2002-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
-	</copyright>
-	<license url="%licenseURL">
-		%license
-	</license>
-	<url>
-		<update label="%updateSiteName" url="http://update.eclipse.org/updates/"/>
-		<discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/tools/emf/updates/"/>
-	</url>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.emf.source" version="2.0.0"/>
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/license.html
deleted file mode 100644
index 07a5e18..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/license.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content="HTML Tidy, see www.w3.org" />
-<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>14th August, 2003</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>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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/META-INF/MANIFEST.MF
deleted file mode 100644
index 59499bc..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/cpl-v10.html
deleted file mode 100644
index 95416c1..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/cpl-v10.html
+++ /dev/null
@@ -1,266 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content="HTML Tidy, see www.w3.org" />
-<title>Common Public License - v 1.0</title>
-<meta http-equiv="Content-Type"
-content="text/html; charset=iso-8859-1" />
-</head>
-<body bgcolor="#FFFFFF" vlink="#800000">
-<p style="font-weight: bold; text-align: center">Common Public
-License - v 1.0</p>
-
-<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS
-COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
-DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF
-THIS AGREEMENT.</p>
-
-<p style="font-weight: bold">1. DEFINITIONS</p>
-
-<p>"Contribution" means:</p>
-
-<div style="margin-left: 2em">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:</div>
-
-<div style="margin-left: 2em">i) changes to the Program, and</div>
-
-<div style="margin-left: 2em">ii) additions to the Program;</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p>"Contributor" means any person or entity that distributes the
-Program.</p>
-
-<p>"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.</p>
-
-<p>"Program" means the Contributions distributed in accordance with
-this Agreement.</p>
-
-<p>"Recipient" means anyone who receives the Program under this
-Agreement, including all Contributors.</p>
-
-<p style="font-weight: bold">2. GRANT OF RIGHTS</p>
-
-<div style="margin-left: 2em">a) Subject to the terms of this
-Agreement, each Contributor hereby grants Recipient a
-non-exclusive, worldwide, royalty-free copyright license to
-reproduce, prepare derivative works of, publicly display, publicly
-perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and
-object code form.</div>
-
-<div style="margin-left: 2em">b) Subject to the terms of this
-Agreement, each Contributor hereby grants Recipient a
-non-exclusive, worldwide, royalty-free patent license under
-Licensed Patents to make, use, sell, offer to sell, import and
-otherwise transfer the Contribution of such Contributor, if any, in
-source code and object code form. This patent license shall apply
-to the combination of the Contribution and the Program if, at the
-time the Contribution is added by the Contributor, such addition of
-the Contribution causes such combination to be covered by the
-Licensed Patents. The patent license shall not apply to any other
-combinations which include the Contribution. No hardware per se is
-licensed hereunder.</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p style="font-weight: bold">3. REQUIREMENTS</p>
-
-<p>A Contributor may choose to distribute the Program in object
-code form under its own license agreement, provided that:</p>
-
-<div style="margin-left: 2em">a) it complies with the terms and
-conditions of this Agreement; and</div>
-
-<div style="margin-left: 2em">b) its license agreement:</div>
-
-<div style="margin-left: 2em">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;</div>
-
-<div style="margin-left: 2em">ii) effectively excludes on behalf of
-all Contributors all liability for damages, including direct,
-indirect, special, incidental and consequential damages, such as
-lost profits;</div>
-
-<div style="margin-left: 2em">iii) states that any provisions which
-differ from this Agreement are offered by that Contributor alone
-and not by any other party; and</div>
-
-<div style="margin-left: 2em">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.</div>
-
-<p>When the Program is made available in source code form:</p>
-
-<div style="margin-left: 2em">a) it must be made available under
-this Agreement; and</div>
-
-<div style="margin-left: 2em">b) a copy of this Agreement must be
-included with each copy of the Program.</div>
-
-<p>Contributors may not remove or alter any copyright notices
-contained within the Program.</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">4. COMMERCIAL DISTRIBUTION</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">5. NO WARRANTY</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">6. DISCLAIMER OF LIABILITY</p>
-
-<p>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.</p>
-
-<p style="font-weight: bold">7. GENERAL</p>
-
-<p>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.</p>
-
-<p>If Recipient institutes patent litigation against a Contributor
-with respect to a patent applicable to software (including a
-cross-claim or counterclaim in a lawsuit), then any patent licenses
-granted by that Contributor to such Recipient under this Agreement
-shall terminate as of the date such litigation is filed. In
-addition, 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.</p>
-
-<p>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.</p>
-
-<p>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. IBM is the initial Agreement Steward. IBM 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.</p>
-
-<p>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.</p>
-</body>
-</html>
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/feature.properties
deleted file mode 100644
index 374b9bf..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-# /**
-#  * <copyright>
-#  *
-#  * Copyright (c) 2002-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 - Initial API and implementation
-#  *
-#  * </copyright>
-#  *
-#  * $Id: feature.properties,v 1.4 2004/05/26 15:16:25 marcelop Exp $
-#  */
-
-# ==============================================================================
-# Do not change the properties between this line and the last line containing:
-# %%% END OF TRANSLATED PROPERTIES %%%
-# Instead, either redefine an existing property, or create a new property,
-# append it to the end of the file, and change the code to use the new name.
-# ==============================================================================
-
-# This file contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse Modeling Framework (EMF)
-
-# "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 Modeling Framework. (Binary runtime)
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
-
-# ==============================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# The above properties have been shipped for translation.
-# ==============================================================================
-
-# "secondaryUpdateSiteName" property - label for the secondary update site (on download.eclipse.org)
-secondaryUpdateSiteName=EMF/SDO/XSD Secondary Update Site
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/feature.xml
deleted file mode 100644
index 6d59f37..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/feature.xml
+++ /dev/null
@@ -1,148 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.emf"
-      label="%featureName"
-      version="2.0.0"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright url="http://www.eclipse.org/legal/cpl-v10.html">
-      Copyright (c) 2002-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
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/"/>
-      <discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/tools/emf/updates/"/>
-   </url>
-
-   <requires>
-      <import plugin="org.eclipse.core.resources" version="3.0.0" match="compatible"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.emf"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.codegen"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.codegen.ui"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.codegen.ecore"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.codegen.ecore.ui"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.common"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.common.ui"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.ecore"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.ecore.edit"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.ecore.editor"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.ecore.change"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.ecore.change.edit"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.ecore.xmi"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.edit"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.edit.ui"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.mapping"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.mapping.ui"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.mapping.ecore2ecore"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.mapping.ecore2ecore.editor"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/license.html
deleted file mode 100644
index 07a5e18..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/license.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content="HTML Tidy, see www.w3.org" />
-<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>14th August, 2003</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>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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/.project b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/.project
deleted file mode 100644
index 472b822..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jdt-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/feature.properties
deleted file mode 100644
index 38ba95a..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/feature.properties
+++ /dev/null
@@ -1,124 +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 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 Java Development Tools
-
-# "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 Java development tools. (Binary runtime and user documentation.)
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-15th June, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Eclipse Public License Version 1.0 (available at http://www.eclipse.org/legal/epl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/feature.xml
deleted file mode 100644
index cb0b530..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/feature.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jdt"
-      label="%featureName"
-      version="3.1.0"
-      image= "eclipse_update_120.jpg"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <license url="%licenseURL">
-     %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-      <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-   </url>
-
-  <requires>
-      <import plugin="org.eclipse.platform" version="3.1.0" match="compatible" />
-  </requires>
-  
-   <plugin
-         id="org.eclipse.jdt"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.eclipse.ant.ui"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.eclipse.ltk.core.refactoring"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.eclipse.ltk.ui.refactoring"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.eclipse.jdt.core"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.eclipse.jdt.debug.ui"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.eclipse.jdt.debug"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.eclipse.jdt.junit"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.eclipse.jdt.junit.runtime"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.eclipse.jdt.launching"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.eclipse.jdt.ui"
-         download-size="0"
-         install-size="0"
-         version="3.1.0">
-   </plugin>
-
-   <plugin
-         id="org.junit"
-         download-size="0"
-         install-size="0"
-         version="3.8.1">
-   </plugin>
-
-   <plugin id="org.eclipse.jdt.doc.user" version="3.1.0"/>
-
-   <plugin id="org.eclipse.jdt.launching.macosx" version="3.1.0"  os="macosx" ws="carbon"/>  
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/license.html
deleted file mode 100644
index e7d8500..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/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 &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/.project b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/.project
deleted file mode 100644
index 35af184..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jdt.source-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/cpl-v10.html
deleted file mode 100644
index 158d99c..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/feature.properties
deleted file mode 100644
index 631ceca..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/feature.properties
+++ /dev/null
@@ -1,124 +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 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 JDT Plug-in Developer Resources
-
-# "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=API documentation and source code zips for Eclipse Java development tools.
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-15th June, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Eclipse Public License Version 1.0 (available at http://www.eclipse.org/legal/epl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/feature.xml
deleted file mode 100644
index 336ac86..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/feature.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature primary="false"  provider-name="%providerName"    label="%featureName"  image="eclipse_update_120.jpg" id="org.eclipse.jdt.source"  version="3.1.0">
-	<description >
-		%description
-	</description>
-	<license url="%licenseURL">
-		%license
-	</license>
-	<url>
-		<update label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-		<discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-	</url>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.jdt.doc.isv" version="3.1.0"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.jdt.source" version="3.1.0"/>
-	<plugin ws="carbon"  os="macosx" fragment="true" arch="ppc" download-size="0" install-size="0" id="org.eclipse.jdt.source.macosx.carbon.ppc" version="3.1.0"/>
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/license.html
deleted file mode 100644
index e7d8500..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/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 &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/.project b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/.project
deleted file mode 100644
index 223a24d..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.pde-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/feature.properties
deleted file mode 100644
index 7b82e46..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/feature.properties
+++ /dev/null
@@ -1,124 +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 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 Plug-in Development Environment
-
-# "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 plug-in development environment.
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-15th June, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Eclipse Public License Version 1.0 (available at http://www.eclipse.org/legal/epl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/feature.xml
deleted file mode 100644
index 5d22266..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/feature.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.pde"
-      label="%featureName"
-      version="3.1.0"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-      <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-   </url>
-
-   <requires>
-      <import plugin="org.eclipse.jdt" version="3.0.0" match="compatible"/>
-      <import plugin="org.eclipse.platform" version="3.0.0" match="compatible"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.pde"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.pde.build"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.pde.core"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.pde.junit.runtime"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-         
-   <plugin
-         id="org.eclipse.pde.runtime"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.pde.ui"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.pde.doc.user"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/license.html
deleted file mode 100644
index e7d8500..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/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 &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/.project b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/.project
deleted file mode 100644
index f4bce7b..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.pde.source-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/feature.properties
deleted file mode 100644
index cd87634..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/feature.properties
+++ /dev/null
@@ -1,124 +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
-###############################################################################
-# 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 PDE Plug-in Developer Resources
-
-# "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 plug-in development environment, including documentation and source code zips.
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-15th June, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Eclipse Public License Version 1.0 (available at http://www.eclipse.org/legal/epl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/feature.xml
deleted file mode 100644
index 5abbbc7..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/feature.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature primary="false"  provider-name="%providerName"    label="%featureName"  image="eclipse_update_120.jpg" id="org.eclipse.pde.source"  version="3.1.0">
-	<description >
-		%description
-	</description>
-	<license url="%licenseURL">
-		%license
-	</license>
-	<url>
-		<update label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-		<discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-	</url>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.pde.source" version="3.1.0"/>
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/license.html
deleted file mode 100644
index e7d8500..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/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 &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/.project b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/.project
deleted file mode 100644
index 9f53c70..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.platform-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/feature.properties
deleted file mode 100644
index 2e3efd1..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/feature.properties
+++ /dev/null
@@ -1,124 +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 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 Platform
-
-# "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=Common OS-independent base of the Eclipse platform. (Binary runtime and user documentation.)
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-15th June, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Eclipse Public License Version 1.0 (available at http://www.eclipse.org/legal/epl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/feature.xml
deleted file mode 100644
index 872f5cb..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/feature.xml
+++ /dev/null
@@ -1,387 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-In the following markup, ignore the "primary" and "application" attributes.
-See https://bugs.eclipse.org/bugs/show_bug.cgi?id=68351 for more details.
--->
-<feature
-      id="org.eclipse.platform"
-      label="%featureName"
-      version="3.1.0"
-      provider-name="%providerName"
-      plugin=""
-      image="eclipse_update_120.jpg"
-      primary="true"
-      application="org.eclipse.ui.ide.workbench">
-
-   <description>
-      %description
-   </description>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-      <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-   </url>
-
-   <plugin
-         id="org.apache.ant"
-         download-size="0"
-         install-size="0"
-         version="1.6.2"/>
-
-   <plugin
-         id="org.apache.lucene"
-         download-size="0"
-         install-size="0"
-         version="1.3.0"/>
-
-   <plugin
-         id="org.eclipse.ant.core"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.compare"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.core.boot"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-         
-   <plugin
-   		 id="org.eclipse.core.filebuffers"
-   		 download-size="0"
-   		 install-size="0"
-   		 version="3.1.0"/>
-   
-   <plugin
-   		 id="org.eclipse.core.expressions"
-   		 download-size="0"
-   		 install-size="0"
-   		 version="3.1.0"/>
-   
-   <plugin
-         id="org.eclipse.core.resources"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.core.runtime"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.core.runtime.compatibility"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.osgi"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.osgi.services"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.osgi.util"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.core.variables"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-         
-   <plugin
-         id="org.eclipse.debug.core"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.debug.ui"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.help"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.help.webapp"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.help.base"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.help.ui"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.help.appserver"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.help.ide"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.platform"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.platform.doc.user"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.search"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.swt"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.team.core"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.team.cvs.core"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.team.cvs.ssh"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.team.cvs.ssh2"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.team.cvs.ui"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.team.ui"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.tomcat"
-         download-size="0"
-         install-size="0"
-         version="4.1.30"/>
-
-   <plugin
-         id="org.eclipse.text"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.jface"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.jface.text"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-	
-   <plugin
-         id="org.eclipse.ui.console"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.ui.presentations.r21"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-            
-   <plugin
-         id="org.eclipse.ui.intro"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.ui.cheatsheets"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-            
-   <plugin
-         id="org.eclipse.ui.workbench"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.ui.workbench.texteditor"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.ui.views"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.ui.editors"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-         
-   <plugin
-         id="org.eclipse.ui.forms"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-         
-   <plugin
-         id="org.eclipse.ui"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.ui.externaltools"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.ui.ide"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"/>
-
-   <plugin
-         id="org.eclipse.update.configurator"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.update.core"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.update.scheduler"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-
-   <plugin
-         id="org.eclipse.update.ui"
-         download-size="0"
-         install-size="0"
-         version="3.0.0"/>
-        
-  <!-- Pre-3.0 binary compatibility -->
-   <plugin
-         id="org.eclipse.ui.workbench.compatibility"
-         download-size="0"
-         install-size="0"
-         version="3.1.0"
-         fragment="true"/>
-
-  <!--Aix platform inclusion -->
-  <plugin id="org.eclipse.swt.motif" download-size="0" install-size="0" version="3.1.0" fragment="true" os="aix" ws="motif"/>
-  
-  <!-- HPUX Platform specifics -->
-  <plugin id="org.eclipse.swt.motif" download-size="0" install-size="0" version="3.1.0" fragment="true" os="hpux" ws="motif"/>
-  <plugin id="org.eclipse.core.resources.hpux" download-size="0" install-size="0" version="3.0.0" fragment="true" os="hpux"/>
-
-  <!-- LINUX GTK-->  
-  <plugin id="org.eclipse.swt.gtk" download-size="0" install-size="0" version="3.1.0"  fragment="true" os="linux" ws="gtk" arch="x86" />
-  <plugin id="org.eclipse.swt.gtk" download-size="0" install-size="0" version="3.1.0"  fragment="true" os="linux" ws="gtk" arch="ppc" />
-  <plugin id="org.eclipse.core.resources.linux" download-size="0" install-size="0" version="3.0.0" fragment="true" os="linux"/>
-  <plugin id="org.eclipse.update.core.linux" download-size="0" install-size="0" version="3.0.0" fragment="true" os="linux" />
-
-  <!-- LINUX GTK AMD64-->
-  <plugin id="org.eclipse.swt.gtk64" download-size="0" install-size="0" version="3.1.0"  fragment="true" os="linux" ws="gtk" arch="amd64" />
-
-  <!-- LINUX Motif-->    
-  <plugin id="org.eclipse.swt.motif" download-size="0" install-size="0" version="3.1.0" fragment="true" os="linux" ws="motif"/>
-  <plugin id="org.eclipse.core.resources.linux" download-size="0" install-size="0" version="3.0.0" fragment="true" os="linux"/>
-  <plugin id="org.eclipse.update.core.linux" download-size="0" install-size="0" version="3.0.0" fragment="true" os="linux" />
-
-  <!-- MacOS X Carbon -->  
-  <plugin id="org.eclipse.swt.carbon" download-size="0" install-size="0" version="3.1.0"  fragment="true" os="macosx" ws="carbon"/> 
-  <plugin id="org.eclipse.core.resources.macosx" download-size="0" install-size="0" version="3.0.0" fragment="true" os="macosx" ws="carbon"/>
-  <plugin id="org.eclipse.ui.carbon" download-size="0" install-size="0" version="3.1.0" fragment="true" os="macosx" ws="carbon"/>
-  
-  <!-- QNX Photon -->
-  <plugin id="org.eclipse.swt.photon" download-size="0" install-size="0" version="3.1.0" fragment="true" os="qnx" ws="photon"/>
-  <plugin id="org.eclipse.core.resources.qnx" download-size="0" install-size="0" version="3.0.0" fragment="true" os="qnx" ws="photon"/>
-  
-  <!-- Solaris Motif -->
-  <plugin id="org.eclipse.swt.motif" download-size="0" install-size="0" version="3.1.0" fragment="true" os="solaris" ws="motif"/>
-  
-  <!-- Win32 -->
-  <plugin id="org.eclipse.swt.win32" download-size="0" install-size="0" version="3.1.0" fragment="true" ws="win32"/>
-  <plugin id="org.eclipse.core.resources.win32" download-size="0" install-size="0" version="3.0.0" fragment="true" os="win32"/>
-  <plugin id="org.eclipse.ui.win32" download-size="0" install-size="0" version="3.1.0" fragment="true" ws="win32"/>
-  <plugin id="org.eclipse.update.core.win32" download-size="0" install-size="0" version="3.0.0" fragment="true" os="win32"/>
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/license.html
deleted file mode 100644
index e7d8500..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/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 &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/.project b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/.project
deleted file mode 100644
index d7ca40c..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.platform.source-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/feature.properties
deleted file mode 100644
index 6ab9956..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/feature.properties
+++ /dev/null
@@ -1,124 +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 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 Platform Plug-in Developer Resources
-
-# "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=Common OS-independent API documentation and source code zips for the Eclipse Platform.
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-15th June, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Eclipse Public License Version 1.0 (available at http://www.eclipse.org/legal/epl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/feature.xml
deleted file mode 100644
index 3bdee40..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/feature.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature primary="false"  provider-name="%providerName"    label="%featureName"  image="eclipse_update_120.jpg" id="org.eclipse.platform.source"  version="3.1.0">
-	<description >
-		%description
-	</description>
-	<license url="%licenseURL">
-		%license
-	</license>
-	<url>
-		<update label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-		<discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-	</url>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.platform.doc.isv" version="3.1.0"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.platform.source" version="3.1.0"/>
-	<plugin ws="gtk"  os="linux" fragment="true" arch="ia64" download-size="0" install-size="0" id="org.eclipse.platform.source.linux.gtk.ia64" version="3.1.0"/>
-	<plugin ws="carbon"  os="macosx" fragment="true" arch="ppc" download-size="0" install-size="0" id="org.eclipse.platform.source.macosx.carbon.ppc" version="3.1.0"/>
-	<plugin ws="photon"  os="qnx" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.platform.source.qnx.photon.x86" version="3.1.0"/>
-	<plugin ws="gtk"  os="linux" fragment="true" arch="ppc" download-size="0" install-size="0" id="org.eclipse.platform.source.linux.gtk.ppc" version="3.1.0"/>
-	<plugin ws="motif"  os="hpux" fragment="true" arch="PA_RISC" download-size="0" install-size="0" id="org.eclipse.platform.source.hpux.motif.PA_RISC" version="3.1.0"/>
-	<plugin ws="motif"  os="aix" fragment="true" arch="ppc" download-size="0" install-size="0" id="org.eclipse.platform.source.aix.motif.ppc" version="3.1.0"/>
-	<plugin ws="gtk"  os="linux" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.platform.source.linux.gtk.x86" version="3.1.0"/>
-	<plugin ws="win32"  os="win32" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.platform.source.win32.win32.x86" version="3.1.0"/>
-	<plugin ws="motif"  os="solaris" fragment="true" arch="sparc" download-size="0" install-size="0" id="org.eclipse.platform.source.solaris.motif.sparc" version="3.1.0"/>
-	<plugin ws="gtk"  os="linux" fragment="true" arch="amd64" download-size="0" install-size="0" id="org.eclipse.platform.source.linux.gtk.amd64" version="3.1.0"/>
-	<plugin ws="motif"  os="linux" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.platform.source.linux.motif.x86" version="3.1.0"/>
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/license.html
deleted file mode 100644
index e7d8500..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/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 &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/.project b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/.project
deleted file mode 100644
index 49f7d79..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.sdk-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/feature.properties
deleted file mode 100644
index b46d29a..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/feature.properties
+++ /dev/null
@@ -1,124 +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 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 Project SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=Eclipse.org update site
-
-# "description" property - description of the feature
-description=SDK for Eclipse.
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-15th June, 2004\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Eclipse Public License Version 1.0 (available at http://www.eclipse.org/legal/epl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/feature.xml
deleted file mode 100644
index f29904c..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/feature.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.sdk"
-      label="%featureName"
-      version="3.1.0"
-      image= "eclipse_update_120.jpg"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-   
-   <license url="%licenseURL">
-     %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-      <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.0"/>
-   </url>
-
-  <includes id="org.eclipse.platform" version="3.1.0" /> 
-  <includes id="org.eclipse.platform.source" version="3.1.0" /> 
-  <includes id="org.eclipse.jdt" version="3.1.0" />
-  <includes id="org.eclipse.jdt.source" version="3.1.0" /> 
-  <includes id="org.eclipse.pde" version="3.1.0" /> 
-  <includes id="org.eclipse.pde.source" version="3.1.0" /> 
-  <plugin id="org.eclipse.sdk" version="3.1.0"/>
-  
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/license.html
deleted file mode 100644
index e7d8500..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/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 &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/META-INF/MANIFEST.MF
deleted file mode 100644
index 59499bc..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/feature.properties
deleted file mode 100644
index d328679..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/feature.properties
+++ /dev/null
@@ -1,141 +0,0 @@
-# /**
-#  * <copyright>
-#  *
-#  * Copyright (c) 2002-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 - Initial API and implementation
-#  *
-#  * </copyright>
-#  *
-#  * $Id: feature.properties,v 1.2 2004/05/26 15:16:26 marcelop Exp $
-#  */
-
-# ==============================================================================
-# Do not change the properties between this line and the last line containing:
-# %%% END OF TRANSLATED PROPERTIES %%%
-# Instead, either redefine an existing property, or create a new property,
-# append it to the end of the file, and change the code to use the new name.
-# ==============================================================================
-
-# This file contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=XML Schema Infoset Model (XSD) Documentation
-
-# "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 Modeling Framework. (documentation)
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
-
-# ==============================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# The above properties have been shipped for translation.
-# ==============================================================================
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/feature.xml
deleted file mode 100644
index fe4f380..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/feature.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-/**
- * <copyright>
- *
- * Copyright (c) 2002-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 - Initial API and implementation
- *
- * </copyright>
- *
- * $Id: feature.xml,v 1.1 2004/03/06 18:00:09 marcelop Exp $
- */
--->
-
-<feature
-      id="org.eclipse.xsd.doc"
-      label="%featureName"
-      version="2.0.0"
-      image= "eclipse_update_120.jpg"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <license url="%licenseURL">
-     %license
-   </license>
-
-   <url>
-      <update url="http://update.eclipse.org/updates" label="%updateSiteName"/>
-   </url>
-
-   <plugin
-         id="org.eclipse.xsd.doc"
-         download-size="0"
-         install-size="0"
-         version="2.0.0">
-   </plugin>
-   		
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/license.html
deleted file mode 100644
index af8c380..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/license.html
+++ /dev/null
@@ -1,71 +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>14th August, 2003</p>
-
-<h3>Usage Of Content</h3>
-
-<p>ECLIPSE.ORG MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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>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>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/META-INF/MANIFEST.MF
deleted file mode 100644
index 59499bc..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/feature.properties
deleted file mode 100644
index 0c1959e..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/feature.properties
+++ /dev/null
@@ -1,141 +0,0 @@
-# /**
-#  * <copyright>
-#  *
-#  * Copyright (c) 2002-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 - Initial API and implementation
-#  *
-#  * </copyright>
-#  *
-#  * $Id: feature.properties,v 1.2 2004/05/26 15:16:27 marcelop Exp $
-#  */
-
-# ==============================================================================
-# Do not change the properties between this line and the last line containing:
-# %%% END OF TRANSLATED PROPERTIES %%%
-# Instead, either redefine an existing property, or create a new property,
-# append it to the end of the file, and change the code to use the new name.
-# ==============================================================================
-
-# This file contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=XML Schema Infoset Model (XSD) Source
-
-# "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 Modeling Framework. (source code)
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
-
-# ==============================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# The above properties have been shipped for translation.
-# ==============================================================================
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/feature.xml
deleted file mode 100644
index d5f2b77..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/feature.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-/**
- * <copyright>
- *
- * Copyright (c) 2002-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 - Initial API and implementation
- *
- * </copyright>
- *
- * $Id: feature.xml,v 1.1 2004/03/06 18:00:11 marcelop Exp $
- */
--->
-
-<feature
-      id="org.eclipse.xsd.source"
-      label="%featureName"
-      version="2.0.0"
-      image= "eclipse_update_120.jpg"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <license url="%licenseURL">
-     %license
-   </license>
-
-   <url>
-      <update url="http://update.eclipse.org/updates" label="%updateSiteName"/>
-   </url>
-
-   <plugin
-         id="org.eclipse.xsd.source"
-         download-size="0"
-         install-size="0"
-         version="2.0.0">
-   </plugin>
-   
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/license.html
deleted file mode 100644
index af8c380..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/license.html
+++ /dev/null
@@ -1,71 +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>14th August, 2003</p>
-
-<h3>Usage Of Content</h3>
-
-<p>ECLIPSE.ORG MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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>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>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/META-INF/MANIFEST.MF
deleted file mode 100644
index 59499bc..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/cpl-v10.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">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:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">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.  </FONT><FONT SIZE="2">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.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"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.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">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.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">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. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> 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; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">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.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">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</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> 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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, 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. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">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 </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">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, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">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.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/eclipse_update_120.jpg b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/feature.properties b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/feature.properties
deleted file mode 100644
index 58b3ec7..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-# /**
-#  * <copyright>
-#  *
-#  * Copyright (c) 2002-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 - Initial API and implementation
-#  *
-#  * </copyright>
-#  *
-#  * $Id: feature.properties,v 1.3 2004/04/28 16:27:45 nickb Exp $ 
-#  */
-
-# ==============================================================================
-# Do not change the properties between this line and the last line containing:
-# %%% END OF TRANSLATED PROPERTIES %%%
-# Instead, either redefine an existing property, or create a new property,
-# append it to the end of the file, and change the code to use the new name.
-# ==============================================================================
-
-# This file contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=XSD Schema Infoset Model
-
-# "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=XML Schema Infoset Model
-
-# "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.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG 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 Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "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 Eclipse.org 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\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\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 Eclipse.org 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 ##########################################
-
-# ==============================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# The above properties have been shipped for translation.
-# ==============================================================================
-
-# "secondaryUpdateSiteName" property - label for the secondary update site (on download.eclipse.org)
-secondaryUpdateSiteName=EMF/SDO/XSD Secondary Update Site
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/feature.xml
deleted file mode 100644
index 3e51342..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/feature.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.xsd"
-      label="%featureName"
-      version="2.0.0"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright url="http://www.eclipse.org/legal/cpl-v10.html">
-      Copyright (c) 2002-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
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/"/>
-      <discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/tools/emf/updates/"/>
-   </url>
-
-   <requires>
-      <import plugin="org.eclipse.core.resources" version="3.0.0" match="compatible"/>
-      <import plugin="org.eclipse.emf.ecore" version="2.0.0" match="compatible"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.xsd"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.xsd.edit"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.xsd.editor"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.xsd.test"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.mapping.xsd2ecore"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-   <plugin
-         id="org.eclipse.emf.mapping.xsd2ecore.editor"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-</feature>
diff --git a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/license.html b/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/license.html
deleted file mode 100644
index af8c380..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/license.html
+++ /dev/null
@@ -1,71 +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>14th August, 2003</p>
-
-<h3>Usage Of Content</h3>
-
-<p>ECLIPSE.ORG MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  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, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE 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>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>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/perf/platform.xml b/update/org.eclipse.update.tests.core/data/perf/platform.xml
deleted file mode 100644
index 983e5c4..0000000
--- a/update/org.eclipse.update.tests.core/data/perf/platform.xml
+++ /dev/null
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Created on Mon Aug 23 15:05:43 EDT 2004-->
-<config date="1093287943134" transient="false" version="3.0">
-<site enabled="true" policy="USER-EXCLUDE" updateable="true" url="platform:/base/">
-<feature id="org.eclipse.barrup.rad.feature" url="features/org.eclipse.barrup.rad.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barupdate.dev.product" url="features/org.eclipse.barupdate.dev.product_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barupdate.dev" url="features/org.eclipse.barupdate.dev_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.uml2" url="features/org.eclipse.uml2_1.0.1/" version="1.0.1"/>
-<feature id="org.eclipse.barxtools.comparemerge.ejbddfeature" url="features/org.eclipse.barxtools.comparemerge.ejbdd-feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.serverattach.v5" url="features/org.eclipse.foo.serverattach.v5_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardebug.xsl" url="features/org.eclipse.bardebug.xsl_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barxtools.platform.feature" url="features/org.eclipse.barxtools.platform.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barsupport.rad.doc" url="features/org.eclipse.barsupport.rad.doc_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.barr2a.rdj.feature" url="features/org.eclipse.barr2a.rdj.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barupdate.test.ct.feature" url="features/org.eclipse.barupdate.test.ct.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barxtools.eDataviz.feature" url="features/org.eclipse.barxtools.eDataviz.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barrad.welcome.feature" url="features/org.eclipse.barrad.welcome.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardebug.wsa.launch.load" url="features/org.eclipse.bardebug.wsa.launch.load_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barrup.feature" url="features/org.eclipse.barrup.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barxtools.visualization.feature" url="features/org.eclipse.barxtools.visualization.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barrad.nav.doc.feature" url="features/org.eclipse.barrad.nav.doc.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.y.test" primary="true" url="features/org.eclipse.y.test_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.bardebug.activescript.win32" url="features/org.eclipse.bardebug.activescript.win32_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barxtools.platform.win32.feature" url="features/org.eclipse.barxtools.platform.win32.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.portal.tools.feature" url="features/org.eclipse.foo.portal.tools.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.serverattach" url="features/org.eclipse.foo.serverattach_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.y.test.examples" primary="true" url="features/org.eclipse.y.test.examples_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.barz.common.ui" url="features/org.eclipse.barz.common.ui_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.ejb" url="features/org.eclipse.barz.ejb_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.y.profiling" primary="true" url="features/org.eclipse.y.profiling_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.foo.ejbdeploy.feature.nl1" url="features/org.eclipse.foo.ejbdeploy.feature.nl1_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.emf.integration" url="features/org.eclipse.barz.emf.integration_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardebug.javascript" url="features/org.eclipse.bardebug.javascript_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardebug.ast.feature" url="features/org.eclipse.bardebug.ast.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.wsvt-feature" url="features/org.eclipse.wsvt-feature_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.foo.sib.mediation.develop.feature" url="features/org.eclipse.foo.sib.mediation.develop.feature_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.foo.webservice.was.creation.ejb.feature.nl1" url="features/org.eclipse.foo.webservice.was.creation.ejb.feature.nl1_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.webedit.editor.feature" url="features/org.eclipse.foo.webedit.editor.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.data" url="features/org.eclipse.barz.data_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.sib.mediation.deploy.feature" url="features/org.eclipse.foo.sib.mediation.deploy.feature_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.foo.e" url="features/org.eclipse.foo.e_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.webservice.was.creation.ejb.feature" url="features/org.eclipse.foo.webservice.was.creation.ejb.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.siteedit.feature" url="features/org.eclipse.foo.siteedit.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.profiling.server.compatible" url="features/org.eclipse.foo.profiling.server.compatible_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.ws" url="features/org.eclipse.barz.ws_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.ejb.samples-feature" url="features/org.eclipse.foo.ejb.samples-feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.activities.feature" url="features/org.eclipse.barz.activities.feature_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.foo.examples" url="features/org.eclipse.foo.examples_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barx.sdk" url="features/org.eclipse.barx.sdk_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardebug.pdt.win32" url="features/org.eclipse.bardebug.pdt.win32_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardebug.wsa" url="features/org.eclipse.bardebug.wsa_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.jve.express" url="features/org.eclipse.foo.jve.express_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardata.linux" url="features/org.eclipse.bardata.linux_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barsse.xmlmarkup" url="features/org.eclipse.barsse.xmlmarkup_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.validation" url="features/org.eclipse.barz.validation_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.y.gla" primary="true" url="features/org.eclipse.y.gla_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.barz.ws.model" url="features/org.eclipse.barz.ws.model_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barx.ast" url="features/org.eclipse.barx.ast_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barws.ast.st.ext.nl1" url="features/org.eclipse.barws.ast.st.ext.nl1_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.common.utilities" url="features/org.eclipse.barz.common.utilities_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.barz.common" url="features/org.eclipse.barz.common_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.xml.model" url="features/org.eclipse.barz.xml.model_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardebug.pdt" url="features/org.eclipse.bardebug.pdt_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.navigator" url="features/org.eclipse.barz.navigator_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.webtools.feature" url="features/org.eclipse.foo.webtools.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.emf.integration.core" url="features/org.eclipse.barz.emf.integration.core_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.foo.struts.feature" url="features/org.eclipse.foo.struts.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barsse.base" url="features/org.eclipse.barsse.base_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardebug.help.doc" url="features/org.eclipse.bardebug.help.doc_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.y.models" url="features/org.eclipse.y.models_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.y.logging" url="features/org.eclipse.y.logging_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.bardebug.javascript.nl1.feature" url="features/org.eclipse.bardebug.javascript.nl1.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barws.ast.st.batch" url="features/org.eclipse.barws.ast.st.batch_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barsse.snippets" url="features/org.eclipse.barsse.snippets_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barws.rapiddeploy" plugin-identifier="org.eclipse.barws.rapiddeploy.core" url="features/org.eclipse.barws.rapiddeploy_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.bardata" url="features/org.eclipse.bardata_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.security" url="features/org.eclipse.foo.security_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.probekit" url="features/org.eclipse.foo.probekit_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.jsf.feature" url="features/org.eclipse.foo.jsf.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.analysis" url="features/org.eclipse.foo.analysis_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.ac-tech" url="features/org.eclipse.foo.ac-tech_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.webservice.was.creation.feature" url="features/org.eclipse.foo.webservice.was.creation.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.ejb" url="features/org.eclipse.foo.ejb_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.ejbdeploy.feature" url="features/org.eclipse.foo.ejbdeploy.feature_5.1.1/" version="5.1.1"/>
-<feature id="org.eclipse.barz.e" url="features/org.eclipse.barz.e_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.ftp" url="features/org.eclipse.foo.ftp_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.y.examples" url="features/org.eclipse.y.examples_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.foo.jve.core" url="features/org.eclipse.foo.jve.core_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.y.core" url="features/org.eclipse.y.core_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.barz.ws.axis" url="features/org.eclipse.barz.ws.axis_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.jve.e" url="features/org.eclipse.foo.jve.e_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.resources.common.feature" url="features/org.eclipse.foo.resources.common.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barws" url="features/org.eclipse.barws_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.y" url="features/org.eclipse.y_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.bardebug.ast.nl1.feature" url="features/org.eclipse.bardebug.ast.nl1.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz" url="features/org.eclipse.barz_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barlpex" url="features/org.eclipse.barlpex_3.0.0/" version="3.0.0"/>
-<feature id="org.eclipse.barxml" url="features/org.eclipse.barxml_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.ws.consumption" url="features/org.eclipse.barz.ws.consumption_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.egl.feature" url="features/org.eclipse.foo.egl.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.server.tomcat" url="features/org.eclipse.barz.server.tomcat_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barws.rapiddeploy.cmdframework" url="features/org.eclipse.barws.rapiddeploy.cmdframework_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.foo.ejb.sbf.feature" url="features/org.eclipse.foo.ejb.sbf.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.qev" url="features/org.eclipse.foo.qev_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.ws.ext.feature" url="features/org.eclipse.foo.ws.ext.feature_5.9.0/" version="5.9.0"/>
-<feature id="org.eclipse.barz.xml" url="features/org.eclipse.barz.xml_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barupdate.web.developer" url="features/org.eclipse.barupdate.web.developer_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barws.ast.st.base.nl1" url="features/org.eclipse.barws.ast.st.base.nl1_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.jdt.integration" url="features/org.eclipse.barz.jdt.integration_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.y.source" url="features/org.eclipse.y.source_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.foo.gla" url="features/org.eclipse.foo.gla_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.ws.ejb.nl1.feature" url="features/org.eclipse.foo.ws.ejb.nl1.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barws.ast.st.base" url="features/org.eclipse.barws.ast.st.base_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barsupport.rwd.doc" url="features/org.eclipse.barsupport.rwd.doc_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.barupdate.pd.prof" url="features/org.eclipse.barupdate.pd.prof_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.webservice.was.creation.feature.nl1" url="features/org.eclipse.foo.webservice.was.creation.feature.nl1_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.wsvtvalidatorfeature" url="features/org.eclipse.wsvtvalidatorfeature_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.barws.ast.st.batch.nl1" url="features/org.eclipse.barws.ast.st.batch.nl1_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barws.ast.doc.feature" url="features/org.eclipse.barws.ast.doc.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.ws.ejb.feature" url="features/org.eclipse.foo.ws.ejb.feature_5.9.0/" version="5.9.0"/>
-<feature id="org.eclipse.barws.rapiddeploy.nl1" url="features/org.eclipse.barws.rapiddeploy.nl1_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.barz.jca" url="features/org.eclipse.barz.jca_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.xml.validate" url="features/org.eclipse.barz.xml.validate_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.extension" url="features/org.eclipse.barz.extension_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.env.ui" url="features/org.eclipse.barz.env.ui_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.env" url="features/org.eclipse.barz.env_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barupdate.jscrib.framework" url="features/org.eclipse.barupdate.jscrib.framework_1.2.0/" version="1.2.0"/>
-<feature id="org.eclipse.bardebug.pdt.nl1.feature" url="features/org.eclipse.bardebug.pdt.nl1.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barrwd.doc.feature" url="features/org.eclipse.barrwd.doc.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barupdate.orphans" url="features/org.eclipse.barupdate.orphans_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.foo.profiling" url="features/org.eclipse.foo.profiling_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.y.probekit" url="features/org.eclipse.y.probekit_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.barsse.webmarkup" url="features/org.eclipse.barsse.webmarkup_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardata.win32" url="features/org.eclipse.bardata.win32_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.server" url="features/org.eclipse.barz.server_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.jem" url="features/org.eclipse.jem_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.foo.project.interchange" url="features/org.eclipse.foo.project.interchange_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.ve" url="features/org.eclipse.ve_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.bardebug.wsa.nl1.feature" url="features/org.eclipse.bardebug.wsa.nl1.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.webservice.was.deploy.feature.nl1" url="features/org.eclipse.foo.webservice.was.deploy.feature.nl1_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.ws.ext.nl1.feature" url="features/org.eclipse.foo.ws.ext.nl1.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.bardebug.helpas.doc" url="features/org.eclipse.bardebug.helpas.doc_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.emf.ui.integration" url="features/org.eclipse.foo.emf.ui.integration_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.webservice.was.deploy.feature" url="features/org.eclipse.foo.webservice.was.deploy.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barz.web" url="features/org.eclipse.barz.web_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.foo.profiling.server" url="features/org.eclipse.foo.profiling.server_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barws.ast.st.ext" url="features/org.eclipse.barws.ast.st.ext_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barrup.updatezone.feature" url="features/org.eclipse.barrup.updatezone.feature_1.0.0/" version="1.0.0"/>
-<feature id="org.eclipse.barsamplegallery-feature" url="features/org.eclipse.barsamplegallery-feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.jdt.source" url="features/org.eclipse.jdt.source_3.0.1/" version="3.0.1"/>
-<feature application="org.eclipse.ui.ide.workbench" id="org.eclipse.barupdate.sdp.feature" primary="true" url="features/org.eclipse.barupdate.sdp.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.pde.source" url="features/org.eclipse.pde.source_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.foo.lum.utils.feature" url="features/org.eclipse.foo.lum.utils.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.baresupport.client.nl1" url="features/org.eclipse.baresupport.client/" version="0.9.14"/>
-<feature id="org.eclipse.y.logging" url="features/org.eclipse.y.logging_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.emf.ecore.sdo.doc" url="features/org.eclipse.emf.ecore.sdo.doc_2.0.0/" version="2.0.0"/>
-<feature id="org.eclipse.foo.logging" url="features/org.eclipse.foo.logging_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barupdate.welcome.feature.nl1" url="features/org.eclipse.barupdate.welcome.feature.nl1/" version="6.0.0"/>
-<feature application="org.eclipse.ui.ide.workbench" id="org.eclipse.platform" primary="true" url="features/org.eclipse.platform_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.barcommon.doc.feature" url="features/org.eclipse.barcommon.doc.feature/" version="6.0.0"/>
-<feature id="org.eclipse.jdt" url="features/org.eclipse.jdt_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.barsupport.core.doc" url="features/org.eclipse.barsupport.core.doc/" version="1.0.0"/>
-<feature id="org.eclipse.xyz.clearcase" url="features/org.eclipse.xyz.clearcase_6.0.11/" version="6.0.11"/>
-<feature id="org.eclipse.bartutorialgallery-feature" url="features/org.eclipse.bartutorialgallery-feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barupdate.welcome.feature" url="features/org.eclipse.barupdate.welcome.feature/" version="6.0.0"/>
-<feature id="org.eclipse.emf" url="features/org.eclipse.emf_2.0.1/" version="2.0.1"/>
-<feature id="org.eclipse.platform.source" url="features/org.eclipse.platform.source_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.barupdate.common.activities.feature" url="features/org.eclipse.barupdate.common.activities.feature_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barupdate.cdi.itlm" url="features/org.eclipse.barupdate.cdi.itlm_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.pde" url="features/org.eclipse.pde_3.0.1/" version="3.0.1"/>
-<feature id="org.eclipse.emf.doc" url="features/org.eclipse.emf.doc_2.0.1/" version="2.0.1"/>
-<feature id="org.eclipse.emf.ecore.sdo" url="features/org.eclipse.emf.ecore.sdo_2.0.1/" version="2.0.1"/>
-<feature id="org.eclipse.barsupport.core.doc.nl1" url="features/org.eclipse.barsupport.core.doc.nl1/" version="1.0.0"/>
-<feature id="org.eclipse.barxtools.comparemerge" url="features/org.eclipse.barxtools.comparemerge_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.barxtools.common.ui.properties" url="features/org.eclipse.barxtools.common.ui.properties_6.0.0/" version="6.0.0"/>
-<feature id="org.eclipse.xsd" url="features/org.eclipse.xsd_2.0.1/" version="2.0.1"/>
-<feature id="org.eclipse.gef" url="features/org.eclipse.gef_3.0.0/" version="3.0.0"/>
-</site>
-</config>
diff --git a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.feature1.plugin1_1.1.1.jar b/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.feature1.plugin1_1.1.1.jar
deleted file mode 100644
index 0c995d5..0000000
--- a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.feature1.plugin1_1.1.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.feature2.plugin2_2.2.2.jar b/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.feature2.plugin2_2.2.2.jar
deleted file mode 100644
index 0c995d5..0000000
--- a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.feature2.plugin2_2.2.2.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.dummy_7.9.8.jar b/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.dummy_7.9.8.jar
deleted file mode 100644
index 78f193d..0000000
--- a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.dummy_7.9.8.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar b/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
deleted file mode 100644
index 2275ade..0000000
--- a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar b/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
deleted file mode 100644
index ea958c7..0000000
--- a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml b/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
deleted file mode 100644
index 7f05d82..0000000
--- a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<plugin name="JUnit Test Framework" id="org.eclipse.update.core.tests.feature1.plugin1" version="3.5.6" vendor-name="junit.org">

-  <runtime>

-    <library name="junit.jar">

-      <export name="*"/>

-    </library>

-  </runtime>

-</plugin>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.plugin1_1.1.1/src.jar b/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
deleted file mode 100644
index 2d4d609..0000000
--- a/update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/reconciliationSites/site1/install/features/feature3/feature.xml b/update/org.eclipse.update.tests.core/data/reconciliationSites/site1/install/features/feature3/feature.xml
deleted file mode 100644
index 3141af8..0000000
--- a/update/org.eclipse.update.tests.core/data/reconciliationSites/site1/install/features/feature3/feature.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature id="org.eclipse.update.core.tests.feature3" image="feature1.gif" label="Third Feature" provider-name="Smart Company" version="1.0.0" >
-  <description>Description</description>
-  <copyright>copyright</copyright>
-  <license>license</license>
-  <url>
-    <update label="URL to update the feature" url="http://www.eclipse.org/"/>
-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>
-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>
-  </url>
-  <plugin download-size="1500" id="org.eclipse.update.plugin1" install-size="1000" fragment="false" nl="us" os="OS_WIN32" version="1.1.1" ws="WS_WIN32"/>
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/reconciliationSites/site1/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml b/update/org.eclipse.update.tests.core/data/reconciliationSites/site1/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
deleted file mode 100644
index e01846c..0000000
--- a/update/org.eclipse.update.tests.core/data/reconciliationSites/site1/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin name="JUnit Test Framework" id="org.eclipse.update.core.tests.feature1.plugin1" version="3.5.6" vendor-name="junit.org">
-  <runtime>
-    <library name="junit.jar">
-      <export name="*"/>
-    </library>
-  </runtime>
-</plugin>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/reconciliationSites/site1/plugins/org.eclipse.update.plugin1_1.1.1/src.jar b/update/org.eclipse.update.tests.core/data/reconciliationSites/site1/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
deleted file mode 100644
index 2d4d609..0000000
--- a/update/org.eclipse.update.tests.core/data/reconciliationSites/site1/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/reconciliationSites/site2/install/features/feature3/feature.xml b/update/org.eclipse.update.tests.core/data/reconciliationSites/site2/install/features/feature3/feature.xml
deleted file mode 100644
index 68a7de8..0000000
--- a/update/org.eclipse.update.tests.core/data/reconciliationSites/site2/install/features/feature3/feature.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature id="org.eclipse.update.core.tests.feature3" image="feature1.gif" label="Third Feature" provider-name="Smart Company" version="1.0.0" >
-  <description>Description</description>
-  <copyright>copyright</copyright>
-  <license>license</license>
-  <url>
-    <update label="URL to update the feature" url="http://www.eclipse.org/"/>
-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>
-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>
-  </url>
-  <plugin download-size="1500" id="org.eclipse.update.core" install-size="1000" fragment="false" nl="us" os="OS_WIN32" version="2.1.0" ws="WS_WIN32"/>
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/reconciliationSites/site2/plugins/org.eclipse.update.core_2.0.0/plugin.xml b/update/org.eclipse.update.tests.core/data/reconciliationSites/site2/plugins/org.eclipse.update.core_2.0.0/plugin.xml
deleted file mode 100644
index e01846c..0000000
--- a/update/org.eclipse.update.tests.core/data/reconciliationSites/site2/plugins/org.eclipse.update.core_2.0.0/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin name="JUnit Test Framework" id="org.eclipse.update.core.tests.feature1.plugin1" version="3.5.6" vendor-name="junit.org">
-  <runtime>
-    <library name="junit.jar">
-      <export name="*"/>
-    </library>
-  </runtime>
-</plugin>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/reconciliationSites/site2/plugins/org.eclipse.update.core_2.0.0/src.jar b/update/org.eclipse.update.tests.core/data/reconciliationSites/site2/plugins/org.eclipse.update.core_2.0.0/src.jar
deleted file mode 100644
index 2d4d609..0000000
--- a/update/org.eclipse.update.tests.core/data/reconciliationSites/site2/plugins/org.eclipse.update.core_2.0.0/src.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/resources.properties b/update/org.eclipse.update.tests.core/data/resources.properties
deleted file mode 100644
index 1a3ab90..0000000
--- a/update/org.eclipse.update.tests.core/data/resources.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2003 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

-###############################################################################

-HTTP_PATH_1=/org.eclipse.update.tests.core.updatetests/UpdateManager2/

-HTTP_PATH_2=/org.eclipse.update.tests.core.updatetests/UpdateManager/

-HTTP_PATH_3=/org.eclipse.update.tests.core.updatetests/Site with space/
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/site.xml b/update/org.eclipse.update.tests.core/data/site.xml
deleted file mode 100644
index 3fc60c7..0000000
--- a/update/org.eclipse.update.tests.core/data/site.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site type="org.eclipse.update.core.file">

-<description url="info/siteInfo.html"/>

-  <feature url="testAPI/features/feature3">

-    <category name="eclipse/UML"/>

-  </feature>

-  <feature url="http://www.eclipse.org/feature2">

-    <category name="eclipse/J2EE"/>

-  </feature>

-  <feature url="http://www.eclipse.org/feature1">

-    <category name="eclipse/J2EE"/>

-  </feature>

-  <archive path="plugins/org.eclipse.update.plugin1_1.1.1.jar" url="plugins/org.eclipse.update.plugin1_1.1.1"/>    

-  <category-def label="J2EE tools" name="eclipse/J2EE"/>

-  <category-def label="EJB Tools" name="eclipse/J2EE/EJB"/>

-  <category-def label="UML tools" name="eclipse/UML"/>

-  <category-def label="Messaging Tools" name="B2B"/>

-  <category-def label="Eclipse Tools" name="eclipse"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/site2/site.xml b/update/org.eclipse.update.tests.core/data/site2/site.xml
deleted file mode 100644
index 39d1c11..0000000
--- a/update/org.eclipse.update.tests.core/data/site2/site.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site url="Info.html" type="org.eclipse.update.core.file">

-  <feature url="features/feature1"/>

-  <archive path="org.eclipse.update.plugin1" url="plugins/plugin1"/>

-  <archive path="org.eclipse.update.archive2" url="plugins/plugin2"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleAndPluginManifests_1.0.3/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleAndPluginManifests_1.0.3/META-INF/MANIFEST.MF
deleted file mode 100644
index c223e4f..0000000
--- a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleAndPluginManifests_1.0.3/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Generated-from: 1077062603708
-Bundle-Name: Test
-Bundle-Version: 1.0.3
-Bundle-SymbolicName: org.eclipse.update.core.tests.bundleAndPluginManifestsBUNDLEPARSED
-Bundle-Vendor: Eclipse.org
-Bundle-ClassPath: plugin.jar
-Legacy: true
-Bundle-Activator: org.eclipse.update.core.tests.bundleAndPluginManifests.Activator
-Require-Bundle: 
- org.eclipse.core.runtime,
- org.eclipse.ui
diff --git a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleAndPluginManifests_1.0.3/plugin.xml b/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleAndPluginManifests_1.0.3/plugin.xml
deleted file mode 100644
index 6b59ddb..0000000
--- a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleAndPluginManifests_1.0.3/plugin.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin name="JUnit Test Framework" id="org.eclipse.update.core.tests.bundleAndPluginManifests" version="1.0.3" vendor-name="Eclipse.org">
-</plugin>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleManifest_1.0.1/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleManifest_1.0.1/META-INF/MANIFEST.MF
deleted file mode 100644
index 656e680..0000000
--- a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleManifest_1.0.1/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Generated-from: 1077062603708
-Bundle-Name: Test
-Bundle-Version: 1.0.1
-Bundle-SymbolicName: org.eclipse.update.core.tests.bundleManifest; singleton=true
-Bundle-Vendor: Eclipse.org
-Bundle-ClassPath: plugin.jar
-Legacy: true
-Bundle-Activator: org.eclipse.update.core.tests.bundleManifest.Activator
-Require-Bundle: 
- org.eclipse.core.runtime,
- org.eclipse.ui
diff --git a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.0/plugin.xml b/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.0/plugin.xml
deleted file mode 100644
index 7f81c46..0000000
--- a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.0/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<plugin name="JUnit Test Framework" id="org.eclipse.update.core.tests.feature1.plugin2" version="5.0.0" vendor-name="junit.org">

-  <runtime>

-    <library name="junit.jar">

-      <export name="*"/>

-    </library>

-  </runtime>

-</plugin>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.0/src.jar b/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.0/src.jar
deleted file mode 100644
index 2d4d609..0000000
--- a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.0/src.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.1/plugin.xml b/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.1/plugin.xml
deleted file mode 100644
index efb3c26..0000000
--- a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.1/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<plugin name="JUnit Test Framework" id="org.eclipse.update.core.tests.feature1.plugin2" version="5.0.1" vendor-name="junit.org">

-  <runtime>

-    <library name="junit.jar">

-      <export name="*"/>

-    </library>

-  </runtime>

-</plugin>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.1/src.jar b/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.1/src.jar
deleted file mode 100644
index 2d4d609..0000000
--- a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.1/src.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/notBundleManifest_1.0.2/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/notBundleManifest_1.0.2/META-INF/MANIFEST.MF
deleted file mode 100644
index 866fb0f..0000000
--- a/update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/notBundleManifest_1.0.2/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,8 +0,0 @@
-Generated-from: 1077062603708
-Bundle-Name: Not Valid Bundle Manifest
-Bundle-Version: 1.0.2
-Bundle-Vendor: Eclipse.org
-Bundle-ClassPath: plugin.jar
-Require-Bundle: 
- org.eclipse.core.runtime,
- org.eclipse.ui
diff --git a/update/org.eclipse.update.tests.core/data/testAPI/features/feature3/feature.xml b/update/org.eclipse.update.tests.core/data/testAPI/features/feature3/feature.xml
deleted file mode 100644
index f878d60..0000000
--- a/update/org.eclipse.update.tests.core/data/testAPI/features/feature3/feature.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature id="org.eclipse.update.core.tests.feature3" image="feature1.gif" label="Third Feature" provider-name="Smart Company" version="1.0.0" >
-  <description>Description</description>
-  <copyright>copyright</copyright>
-  <license>license</license>
-  <url>
-    <update label="URL to update the feature" url="http://www.eclipse.org/"/>
-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>
-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>
-  </url>
-  <plugin download-size="1500" id="org.eclipse.update.plugin1" install-size="1000" fragment="false" nl="us" os="WIN32,LINUX" version="1.1.1"/>
-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/testAPI/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml b/update/org.eclipse.update.tests.core/data/testAPI/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
deleted file mode 100644
index e01846c..0000000
--- a/update/org.eclipse.update.tests.core/data/testAPI/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin name="JUnit Test Framework" id="org.eclipse.update.core.tests.feature1.plugin1" version="3.5.6" vendor-name="junit.org">
-  <runtime>
-    <library name="junit.jar">
-      <export name="*"/>
-    </library>
-  </runtime>
-</plugin>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/testAPI/plugins/org.eclipse.update.plugin1_1.1.1/src.jar b/update/org.eclipse.update.tests.core/data/testAPI/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
deleted file mode 100644
index 2d4d609..0000000
--- a/update/org.eclipse.update.tests.core/data/testAPI/plugins/org.eclipse.update.plugin1_1.1.1/src.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/testAPI/site.xml b/update/org.eclipse.update.tests.core/data/testAPI/site.xml
deleted file mode 100644
index 4c15d43..0000000
--- a/update/org.eclipse.update.tests.core/data/testAPI/site.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site type="org.eclipse.update.core.file">
-<description url="info/siteInfo.html"/>
-  <feature url="features/feature3">
-    <category name="eclipse/UML"/>
-  </feature>
-  <feature url="http://www.eclipse.org/feature2">
-    <category name="eclipse/J2EE"/>
-  </feature>
-  <feature url="http://www.eclipse.org/feature1">
-    <category name="eclipse/J2EE"/>
-  </feature>
-  <archive path="plugins/org.eclipse.update.plugin1_1.1.1.jar" url="plugins/org.eclipse.update.plugin1_1.1.1"/>    
-  <category-def label="J2EE tools" name="eclipse/J2EE"/>
-  <category-def label="EJB Tools" name="eclipse/J2EE/EJB"/>
-  <category-def label="UML tools" name="eclipse/UML"/>
-  <category-def label="Messaging Tools" name="B2B"/>
-  <category-def label="Eclipse Tools" name="eclipse"/>
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/validation/site2/.eclipseproduct b/update/org.eclipse.update.tests.core/data/validation/site2/.eclipseproduct
deleted file mode 100644
index 8b829aa..0000000
--- a/update/org.eclipse.update.tests.core/data/validation/site2/.eclipseproduct
+++ /dev/null
@@ -1,3 +0,0 @@
-id=another.product.id

-name=Name of the product

-ver=1.2.4
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/validation/site3/.eclipseextension b/update/org.eclipse.update.tests.core/data/validation/site3/.eclipseextension
deleted file mode 100644
index 6d72df7..0000000
--- a/update/org.eclipse.update.tests.core/data/validation/site3/.eclipseextension
+++ /dev/null
@@ -1 +0,0 @@
-id=id.of.extended.product
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/validation/site4/eclipse/.eclipseextension b/update/org.eclipse.update.tests.core/data/validation/site4/eclipse/.eclipseextension
deleted file mode 100644
index acc84e9..0000000
--- a/update/org.eclipse.update.tests.core/data/validation/site4/eclipse/.eclipseextension
+++ /dev/null
@@ -1 +0,0 @@
-id=different.product.id
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/validation/site5/.eclipseUM b/update/org.eclipse.update.tests.core/data/validation/site5/.eclipseUM
deleted file mode 100644
index 196c522..0000000
--- a/update/org.eclipse.update.tests.core/data/validation/site5/.eclipseUM
+++ /dev/null
@@ -1,3 +0,0 @@
-id=org.eclipse.platform

-name=a Product 

-version=3.5.6
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/validation/site5/eclipse/.eclipseextension b/update/org.eclipse.update.tests.core/data/validation/site5/eclipse/.eclipseextension
deleted file mode 100644
index fff40a3..0000000
--- a/update/org.eclipse.update.tests.core/data/validation/site5/eclipse/.eclipseextension
+++ /dev/null
@@ -1,3 +0,0 @@
-id=org.eclipse.platform
-name=Eclipse Platform
-version=3.1.0
diff --git a/update/org.eclipse.update.tests.core/data/validation/site6/.eclipseUM b/update/org.eclipse.update.tests.core/data/validation/site6/.eclipseUM
deleted file mode 100644
index 597f9f8..0000000
--- a/update/org.eclipse.update.tests.core/data/validation/site6/.eclipseUM
+++ /dev/null
@@ -1 +0,0 @@
-id=org.eclipse.sdk
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/validation/site6/children/children/eclipse/.eclipseextension b/update/org.eclipse.update.tests.core/data/validation/site6/children/children/eclipse/.eclipseextension
deleted file mode 100644
index 597f9f8..0000000
--- a/update/org.eclipse.update.tests.core/data/validation/site6/children/children/eclipse/.eclipseextension
+++ /dev/null
@@ -1 +0,0 @@
-id=org.eclipse.sdk
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/xmls/apitests/org.eclipse.test.feature_1.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/xmls/apitests/org.eclipse.test.feature_1.0.0/feature.xml
deleted file mode 100644
index 1511800..0000000
--- a/update/org.eclipse.update.tests.core/data/xmls/apitests/org.eclipse.test.feature_1.0.0/feature.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<feature id="org.test1.ident1" label="Feature One" nl="en_us,fr,de" os="OS_WIN32,OS_LINUX" provider-name="Object Technology International" version="1.0.0" ws="WS_WIN32,WS_MOTIF,WS_GTK">

-  <description>Test feature for testIdentifier test</description>

-  <copyright>Copyright (c) the company</copyright>

-  <license>Do you accept the license ?</license>

-  <url>

-    <update label="URL to update teh feature" url="http://www.eclipse.org"/>

-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>

-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>

-  </url>

-  <plugin download-size="1500" id="org.eclipse.update.core.tests.feature1.plugin1" install-size="1000" fragment="false" nl="us" os="OS_WIN32" version="3.5.6" ws="WS_WIN32"/>

-  <plugin download-size="1200" id="org.eclipse.update.core.tests.feature1.plugin2" install-size="978" fragment="false" version="5.0.0"/>

-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/xmls/apitests/org.eclipse_test_feature/feature.xml b/update/org.eclipse.update.tests.core/data/xmls/apitests/org.eclipse_test_feature/feature.xml
deleted file mode 100644
index 9f05cda..0000000
--- a/update/org.eclipse.update.tests.core/data/xmls/apitests/org.eclipse_test_feature/feature.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<feature id="org.test1.ident2" label="Feature One" nl="en_us,fr,de" os="OS_WIN32,OS_LINUX" provider-name="Object Technology International" version="1.0.0" ws="WS_WIN32,WS_MOTIF,WS_GTK">

-  <description>Test feature for testIdentifier test</description>

-  <copyright>Copyright (c) the company</copyright>

-  <license>Do you accept the license ?</license>

-  <url>

-    <update label="URL to update teh feature" url="http://www.eclipse.org"/>

-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>

-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>

-  </url>

-  <plugin download-size="1500" url="org.eclipse.update.core.tests.feature1.plugin1" id="org.eclipse.update.core.tests.feature1.plugin1" install-size="1000" fragment="false" nl="us" os="OS_WIN32" version="3.5.6" ws="WS_WIN32"/>

-  <plugin download-size="1200" id="org.eclipse.update.core.tests.feature1.plugin2" install-size="978" fragment="false" version="5.0.0"/>

-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/xmls/feature_1.0.0/feature.xml b/update/org.eclipse.update.tests.core/data/xmls/feature_1.0.0/feature.xml
deleted file mode 100644
index c4ee139..0000000
--- a/update/org.eclipse.update.tests.core/data/xmls/feature_1.0.0/feature.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<feature id="org.eclipse.update.core.tests.feature1" image="feature1.gif" label="Feature One" nl="en,fr,de" os="OS_WIN32,OS_LINUX" provider-name="Object Technology International" version="1.0.4" ws="WS_WIN32,WS_MOTIF,WS_GTK">

-  <description>I believe this is the description of feature 1, well, feature 1 is an exceptional feature that you should install right NOW on your machine... try it.</description>

-  <copyright>Ok, now, this is a very very complex Copyright  not prepared by a lawyer Copyright (c) the company</copyright>

-  <license>#1 Do you accept it #2 you do nto accept it ...Do you accpt it ?</license>

-  <url>

-    <update label="URL to update the feature" url="http://www.eclipse.org/path/feature1/"/>

-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>

-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>

-  </url>

-  <plugin download-size="1500" id="org.eclipse.update.core.tests.feature1.plugin1" install-size="1000" fragment="false" nl="us" os="OS_WIN32" version="3.5.6" ws="WS_WIN32"/>

-  <plugin download-size="1200" id="org.eclipse.update.core.tests.feature1.plugin2" install-size="978" fragment="false" version="5.0.0"/>

-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/data/xmls/feature_1.0.0/feature1.gif b/update/org.eclipse.update.tests.core/data/xmls/feature_1.0.0/feature1.gif
deleted file mode 100644
index 03e30a2..0000000
--- a/update/org.eclipse.update.tests.core/data/xmls/feature_1.0.0/feature1.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/data/xmls/site1/site.xml b/update/org.eclipse.update.tests.core/data/xmls/site1/site.xml
deleted file mode 100644
index 44823c0..0000000
--- a/update/org.eclipse.update.tests.core/data/xmls/site1/site.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site url="info" type="org.eclipse.update.core.file">

-  <feature id="org.isv.feature3" url="www.eclipse.org/feature3" version="3.4.5">

-    <category name="eclipse/UML"/>

-  </feature>

-  <feature id="org.eclipse.update.core.tests.feature2" url="www.eclipse.org/feature2" version="3.4.6">

-    <category name="eclipse/J2EE"/>

-  </feature>

-  <feature id="org.eclipse.update.core.tests.fature1" url="www.eclipse.org/feature1" version="2.3.5">

-    <category name="eclipse/J2EE"/>

-  </feature>

-  <archive path="org.eclipse.update.plugin1" url="www.eclipse.org/pluign1"/>

-  <archive path="org.eclipse.update.archive2" url="www.eclipse.org/plugin2"/>

-  <archive path="org.eclipse.update.plugin3" url="www.eclipse.org/plugin3"/>

-  <archive path="org.eclipse.unknown.plugin" url="www.eclipse.org/plugins/plugin4"/>

-  <archive path="org.eclipse.update.core.tests.feature1.foo1" url="www.eclipse.org/plugin1"/>

-  <category-def label="J2EE tools" name="eclipse/J2EE"/>

-  <category-def label="EJB Tools" name="eclipse/J2EE/EJB"/>

-  <category-def label="UML tools" name="eclipse/UML"/>

-  <category-def label="Messaging Tools" name="B2B"/>

-  <category-def label="Eclipse tools" name="eclipse"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/plugin.properties b/update/org.eclipse.update.tests.core/plugin.properties
deleted file mode 100644
index 1caa664..0000000
--- a/update/org.eclipse.update.tests.core/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2003 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

-###############################################################################

-

-name = Install/Update Core Tests

-provider-name = Eclipse.org
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/plugin.xml b/update/org.eclipse.update.tests.core/plugin.xml
deleted file mode 100644
index 083a090..0000000
--- a/update/org.eclipse.update.tests.core/plugin.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.0"?>

-<plugin

-   id="org.eclipse.update.tests.core"

-   name="%name"

-   version="3.0.0"

-   provider-name="%provider-name"

-   class="org.eclipse.update.tests.UpdateTestsPlugin">

-

-   <runtime>

-      <library name="updatetests.jar">

-         <export name="*"/>

-      </library>

-   </runtime>

-   <requires>

-      <import plugin="org.eclipse.core.runtime"/>

-      <import plugin="org.junit"/>

-      <import plugin="org.eclipse.core.resources"/>

-      <import plugin="org.eclipse.update.core"/>

-      <import plugin="org.eclipse.tomcat"/>

-      <import plugin="org.eclipse.help.appserver"/>

-      <import plugin="org.eclipse.update.configurator"/>

-      <import plugin="org.eclipse.test.performance"/>

-   </requires>

-

-

-   <extension

-         id="feature1"

-         point="org.eclipse.update.core.featureTypes">

-      <feature-factory

-            class="org.eclipse.update.internal.core.FeatureExecutableFactory">

-      </feature-factory>

-   </extension>

-   <extension

-         id="ftp"

-         point="org.eclipse.update.core.siteTypes">

-      <site-factory

-            class="org.eclipse.update.tests.implementation.SiteFTPFactory">

-      </site-factory>

-   </extension>

-

-</plugin>

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/AllTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/AllTests.java
deleted file mode 100644
index d215b5d..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/AllTests.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the 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.update.tests;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-import org.eclipse.update.tests.api.AllAPITests;

-import org.eclipse.update.tests.branding.*;

-//import org.eclipse.update.tests.configurations.AllConfigurationsTests;

-import org.eclipse.update.tests.core.boot.AllPlatformConfigurationTests;

-import org.eclipse.update.tests.mirror.*;

-import org.eclipse.update.tests.model.AllModelTests;

-import org.eclipse.update.tests.nestedfeatures.AllNestedTests;

-import org.eclipse.update.tests.parser.AllParserTests;

-//import org.eclipse.update.tests.perfms.*;

-import org.eclipse.update.tests.reconciliation.AllReconciliationTests;

-import org.eclipse.update.tests.regularInstall.AllRegularInstallTests;

-//import org.eclipse.update.tests.regularRemove.AllRegularRemoveTests;

-import org.eclipse.update.tests.sitevalidation.AllSiteValidationTests;

-//import org.eclipse.update.tests.standalone.*;

-import org.eclipse.update.tests.types.AllTypesTests;

-import org.eclipse.update.tests.uivalues.AllCoreUITests;

-

-public class AllTests extends TestSuite {

-	public AllTests(String name) {

-		super(name);

-	}

-	public static Test suite() throws Exception {

-		TestSuite suite = new TestSuite();

-		suite.setName("All Update Manager Tests");

-		suite.addTest(AllMirrorTests.suite());	

-		suite.addTest(AllSiteValidationTests.suite());

-		suite.addTest(AllPlatformConfigurationTests.suite());

-		suite.addTest(AllRegularInstallTests.suite());

-		suite.addTest(AllAPITests.suite());

-		suite.addTest(AllParserTests.suite());

-		suite.addTest(AllCoreUITests.suite());

-//		suite.addTest(AllConfigurationsTests.suite());

-		suite.addTest(AllTypesTests.suite());

-//		suite.addTest(AllRegularRemoveTests.suite());

-		suite.addTest(AllNestedTests.suite());	

-		suite.addTest(AllReconciliationTests.suite());					

-		suite.addTest(AllModelTests.suite());

-		suite.addTest(AllBrandingTests.suite());

-		//suite.addTest(AllStandaloneTests.suite());

-		//suite.addTest(AllPerformanceTests.suite());

-		return suite;

-	}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/UpdateManagerTestCase.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/UpdateManagerTestCase.java
deleted file mode 100644
index a388b2d..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/UpdateManagerTestCase.java
+++ /dev/null
@@ -1,163 +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 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.update.tests;

-

-

-import java.io.File;

-import java.io.IOException;

-import java.net.*;

-import java.util.*;

-

-import junit.framework.TestCase;

-import org.eclipse.core.runtime.*;

-import org.eclipse.core.runtime.IPluginDescriptor;

-import org.eclipse.core.runtime.Platform;

-import org.eclipse.update.configuration.IConfiguredSite;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.IFeature;

-import org.eclipse.update.core.IPluginEntry;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.internal.core.UpdateManagerUtils;

-/**

- * All Help System Test cases must subclass this base Testcase.

- * See SampleTestCase.java for a template.

- */

-

-public abstract class UpdateManagerTestCase extends TestCase {

-

-	protected static ResourceBundle bundle;

-	protected static String dataPath;

-

-	protected static URL SOURCE_FILE_SITE;

-	protected static URL SOURCE_FILE_SITE_INSTALLED;

-	protected static URL SOURCE_HTTP_SITE;

-	protected static URL TARGET_FILE_SITE;

-

-	private static final String DATA_PATH = "data/";

-

-	/**

-	 * Default Constructor

-	 */

-	public UpdateManagerTestCase(String name) {

-		super(name);

-		try {

-			init();

-		} catch (Exception e) {

-			fail(e.toString());

-			e.printStackTrace();

-		}

-	}

-

-	protected static void init() throws MissingResourceException, IOException, MalformedURLException {

-

-		IPluginDescriptor dataDesc = Platform.getPluginRegistry().getPluginDescriptor("org.eclipse.update.tests.core");

-		URL resolvedURL = Platform.asLocalURL(Platform.resolve(dataDesc.getInstallURL()));

-		URL dataURL = new URL(resolvedURL, DATA_PATH);

-		dataPath = dataURL.getFile();

-		String homePath = (System.getProperty("java.io.tmpdir")).replace(File.separatorChar, '/');

-

-		if (bundle == null) {

-			ClassLoader l = new URLClassLoader(new URL[] { dataURL }, null);

-			bundle = ResourceBundle.getBundle("resources", Locale.getDefault(), l);

-		}

-

-		try {

-			SOURCE_FILE_SITE = new File(dataPath).toURL();

-			SOURCE_FILE_SITE_INSTALLED = new File(dataPath + "testAPI/").toURL();

-			SOURCE_HTTP_SITE = new URL("http", getHttpHost(), getHttpPort(), bundle.getString("HTTP_PATH_1"));

-			TARGET_FILE_SITE = new URL("file", null, homePath + "/target/");

-		} catch (Exception e) {

-			fail(e.toString());

-			e.printStackTrace();

-		}

-

-		//cleanup target 

-		File target = new File(homePath + "/target/");

-		UpdateManagerUtils.removeFromFileSystem(target);

-		// cleanup info about just installed plugins

-		InstallRegistry.cleanup();

-		

-		// setup cache site to false. 

-		// Note: the standalone tests will set it back to true

-		InternalSiteManager.globalUseCache = false;

-	}

-

-	/**

-	 * Simple implementation of setUp. Subclasses are prevented 

-	 * from overriding this method to maintain logging consistency.

-	 * umSetUp() should be overriden instead.

-	 */

-	protected final void setUp() throws Exception {

-		System.out.println("----- " + this.getName());

-		System.out.println(this.getName() + ": setUp...");

-		umSetUp();

-	}

-

-	/**

-	 * Sets up the fixture, for example, open a network connection.

-	 * This method is called before a test is executed.

-	 */

-	protected void umSetUp() throws Exception {

-		// do nothing.

-	}

-

-	/**

-	 * Simple implementation of tearDown.  Subclasses are prevented 

-	 * from overriding this method to maintain logging consistency.

-	 * umTearDown() should be overriden instead.

-	 */

-	protected final void tearDown() throws Exception {

-		System.out.println(this.getName() + ": tearDown...\n");

-		umTearDown();

-	}

-

-	/**

-	 * Tears down the fixture, for example, close a network connection.

-	 * This method is called after a test is executed.

-	 */

-	protected void umTearDown() throws Exception {

-		// do nothing.

-	}

-

-	protected static String getHttpHost() {

-		return UpdateTestsPlugin.getWebAppServerHost();

-	}

-

-	protected static int getHttpPort() {

-		return UpdateTestsPlugin.getWebAppServerPort();

-	}

-

-	protected void remove(IFeature feature, IConfiguredSite configSite) throws CoreException {

-		ISite site = configSite.getSite();

-		remove(feature, site);

-	}

-

-	protected void remove(IFeature feature, ISite site) throws CoreException {

-		site.getFeatureReference(feature);

-		// remove the plugins and features dir

-		String sitePath = site.getURL().getFile();

-		File file = null;

-

-		String featureName = feature.getVersionedIdentifier().getIdentifier().toString() + "_" + feature.getVersionedIdentifier().getVersion().toString();

-		file = new File(sitePath, "features" + File.separator + featureName);

-		System.out.println("****************************************Removing :" + file);

-		UpdateManagerUtils.removeFromFileSystem(file);

-

-		IPluginEntry[] entries = feature.getPluginEntries();

-		for (int i = 0; i < entries.length; i++) {

-			String name = entries[i].getVersionedIdentifier().getIdentifier().toString() + "_" + entries[i].getVersionedIdentifier().getVersion().toString() + File.separator;

-			file = new File(sitePath, "plugins" + File.separator + name);

-			System.out.println("****************************************Removing :" + file);

-			UpdateManagerUtils.removeFromFileSystem(file);

-			InstallRegistry.unregisterPlugin(entries[i]);

-		}

-	}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/UpdateTestsPlugin.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/UpdateTestsPlugin.java
deleted file mode 100644
index 1843ffd..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/UpdateTestsPlugin.java
+++ /dev/null
@@ -1,88 +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 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.update.tests;

-import org.eclipse.core.runtime.*;

-import org.eclipse.help.internal.appserver.WebappManager;

-import org.eclipse.update.internal.core.UpdateCore;

-import org.osgi.framework.*;

-

-/**

- * manages the startuo and shutown of the 

- * web server

- */

-public class UpdateTestsPlugin extends Plugin {

-

-	private static String appServerHost = null;

-	private static int appServerPort = 0;

-	private static UpdateTestsPlugin plugin;

-	private static BundleContext bundleContext;

-	private static boolean initialized=false;

-

-	public static UpdateTestsPlugin getPlugin() {

-		return plugin;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)

-	 */

-	public void start(BundleContext context) throws Exception {

-		super.start(context);

-		plugin = this;

-		bundleContext = context;

-	}

-	

-	/* (non-Javadoc)

-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)

-	 */

-	public void stop(BundleContext context) throws Exception {

-		WebappManager.stop("org.eclipse.update.tests.core.updatetests");

-		plugin = null;

-		bundleContext = null;

-		super.stop(context);

-	}

-

-	/**

-	 * Returns the host identifier for the web app server

-	 */

-	public static String getWebAppServerHost() {

-		if (!initialized) initialize();

-		return appServerHost;

-	}

-

-	/**

-	 * Returns the port identifier for the web app server

-	 */

-	public static int getWebAppServerPort() {

-		if (!initialized) initialize();		

-		return appServerPort;

-	}

-	/**

-	 * Method initialize.

-	 */

-	private static void initialize() {

-		String text = null;

-		try {

-			WebappManager.start("org.eclipse.update.tests.core.updatetests", "org.eclipse.update.tests.core", new Path("webserver"));

-			appServerHost = WebappManager.getHost();

-			appServerPort = WebappManager.getPort();

-

-			text = "The webServer did start ip:" + appServerHost + ":" + appServerPort;

-		} catch (CoreException e) {

-			text = "The webServer didn't start ";

-			IStatus status = new Status(IStatus.ERROR, "org.eclipse.update.tests.core", IStatus.OK, "WebServer not started. Update Tests results are invalid", null);

-			UpdateCore.warn("",new CoreException(status));

-		}finally {

-			System.out.println(text);

-			initialized = true;

-		}

-	}

-

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/AllAPITests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/AllAPITests.java
deleted file mode 100644
index ab96b39..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/AllAPITests.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.api;

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-/**

- * Manages the API tests

- */

-public class AllAPITests extends UpdateManagerTestCase {

-	/**

-	 * Constructor

-	 */

-	public AllAPITests(String name) {

-		super(name);

-	}

-	

-	/**

-	 * List of API tests

-	 */

-	public static Test suite() throws Exception {

-		TestSuite suite = new TestSuite();

-		suite.setName("API Tests");

-

-		suite.addTest(new TestSuite(TestSiteAPI.class));

-		suite.addTest(new TestSuite(TestLocalSiteAPI.class));		

-		suite.addTest(new TestSuite(TestUpdateManagerUtilsAPI.class));		

-		suite.addTest(new TestSuite(TestDefaultExecutableFeatureAPI.class));

-		suite.addTest(new TestSuite(TestDefaultPackageFeatureAPI.class));

-		suite.addTest(new TestSuite(TestPluginContainerAPI.class));

-		suite.addTest(new TestSuite(TestSiteManagerAPI.class));		

-		suite.addTest(new TestSuite(TestNestedFeatureAPI.class));

-		suite.addTest(new TestSuite(TestFeatureContentProvider_FileFilterAPI.class));

-		return suite;

-	}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/DefaultFeature.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/DefaultFeature.java
deleted file mode 100644
index 3456bb3..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/DefaultFeature.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.api;

-

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.core.FeatureExecutableContentProvider;

-/**

- * Abstract Class that implements most of the behavior of a feature

- * A feature ALWAYS belongs to an ISite

- */

-public class DefaultFeature extends Feature {

-

-

-	/**

-	 * Copy constructor

-	 */

-	public DefaultFeature(IFeature sourceFeature, ISite targetSite) throws CoreException {

-		this(targetSite);

-		this.setFeatureContentProvider(sourceFeature.getFeatureContentProvider());

-		this.setIdentifier(sourceFeature.getVersionedIdentifier());

-		this.setLabel(sourceFeature.getLabel());

-		this.setUpdateSiteEntry(sourceFeature.getUpdateSiteEntry());

-		this.setDiscoverySiteEntries(sourceFeature.getDiscoverySiteEntries());

-		this.setProvider(sourceFeature.getProvider());

-		this.setDescription(sourceFeature.getDescription());

-		this.setCopyright(sourceFeature.getCopyright());

-		this.setLicense(sourceFeature.getLicense());

-		this.setPluginEntries(sourceFeature.getPluginEntries());

-		this.setImage(sourceFeature.getImage());

-	}

-	

-	/**

-	 * Constructor

-	 */

-	public DefaultFeature(ISite targetSite) throws CoreException {

-		super();

-		this.setSite(targetSite);		

-	}	

-	

-	

-	/**

-	 * Sets the identifier

-	 * @param identifier The identifier to set

-	 */

-	public void setIdentifier(VersionedIdentifier identifier) {

-		setFeatureIdentifier(identifier.getIdentifier());

-		setFeatureVersion(identifier.getVersion().toString());

-	}

-

-	/**

-	 * Sets the discoverySiteEntries

-	 * @param discoveryInfos The discoveryInfos to set

-	 */

-	public void setDiscoverySiteEntries(IURLEntry[] discoveryInfos) {

-		setDiscoverySiteEntryModels((URLEntryModel[]) discoveryInfos);

-	}

-

-	/**

-	 * Sets the updateSiteEntry

-	 * @param updateInfo The updateInfo to set

-	 */

-	public void setUpdateSiteEntry(IURLEntry updateInfo) {

-		setUpdateSiteEntryModel((URLEntryModel) updateInfo);

-	}

-

-	/**

-	 * Adds a discoveryInfo

-	 * @param discoveryInfo The discoveryInfo to add

-	 */

-	public void addDiscoverySiteEntry(IURLEntry discoveryInfo) {

-		addDiscoverySiteEntryModel((URLEntryModel) discoveryInfo);

-	}

-

-	/**

-	 * Sets the description

-	 * @param description The description to set

-	 */

-	public void setDescription(IURLEntry description) {

-		setDescriptionModel((URLEntryModel) description);

-	}

-

-	/**

-	 * Sets the copyright

-	 * @param copyright The copyright to set

-	 */

-	public void setCopyright(IURLEntry copyright) {

-		setCopyrightModel((URLEntryModel) copyright);

-	}

-

-	/**

-	 * Sets the license

-	 * @param license The license to set

-	 */

-	public void setLicense(IURLEntry license) {

-		setLicenseModel((URLEntryModel) license);

-	}

-

-	/**

-	 * Sets the image

-	 * @param image The image to set

-	 */

-	public void setImage(URL image) {

-		if (image==null) return;

-		setImageURLString(image.toExternalForm());

-	}

-

-	/**

-	 * Adds an import

-	 * @param anImport The import to add

-	 */

-	public void addImport(IImport anImport) {

-		if (anImport != null) {

-			addImportModel((ImportModel) anImport);

-		}

-	}

-

-

-	/**

-	 * Sets the pluginEntries

-	 * @param pluginEntries The pluginEntries to set

-	 */

-	public void setPluginEntries(IPluginEntry[] pluginEntries) {

-		if (pluginEntries != null) {

-			for (int i = 0; i < pluginEntries.length; i++) {

-				addPluginEntry(pluginEntries[i]);

-			}

-		}

-	}

-

-

-	/**

-	 * sets teh URL isf not already present

-	 */

-	public void setURL(URL url) throws CoreException{

-		//if (getFeatureContentProvider()==null){

-			FeatureContentProvider contentProvider = new FeatureExecutableContentProvider(url);

-			this.setFeatureContentProvider(contentProvider);

-			contentProvider.setFeature(this);

-		//}

-	}

-	

-	

-	/*

-	 * @see IPluginContainer#addPluginEntry(IPluginEntry)

-	 */

-	public void addPluginEntry(IPluginEntry pluginEntry) {

-		if (pluginEntry != null) {

-			addPluginEntryModel((PluginEntryModel) pluginEntry);

-		}

-	}

-

-	/*

-	 * @see IFeature#addNonPluginEntry(INonPluginEntry)

-	 */

-	public void addNonPluginEntry(INonPluginEntry dataEntry) {

-		if (dataEntry != null) {

-			addNonPluginEntryModel((NonPluginEntryModel) dataEntry);

-		}

-	}	

-

-	}
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/MyURLEntry.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/MyURLEntry.java
deleted file mode 100644
index 5944db4..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/MyURLEntry.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.api;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.update.core.URLEntry;

-

-/**

- * Wrapper around URLEntry

- */

-public class MyURLEntry extends URLEntry {

-	

-	public MyURLEntry(String annotation, URL url) throws MalformedURLException {

-		super();

-		setAnnotation(annotation);

-		if (url!=null) {

-			setURLString(url.toExternalForm());

-			resolve(null,null);

-		}

-	}

-

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestDefaultExecutableFeatureAPI.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestDefaultExecutableFeatureAPI.java
deleted file mode 100644
index 7886db4..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestDefaultExecutableFeatureAPI.java
+++ /dev/null
@@ -1,184 +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 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.update.tests.api;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.UpdateManagerUtils;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-

-

-public class TestDefaultExecutableFeatureAPI extends UpdateManagerTestCase {

-	

-	private DefaultFeature remoteFeature=null;

-	

-	/**

-	 * Test the testFeatures()

-	 */

-	public TestDefaultExecutableFeatureAPI(String arg0) {

-		super(arg0);

-	}

-	

-	/**

-	 * the feature to test

-	 */

-	private DefaultFeature getFeature() throws MalformedURLException, CoreException {

-		if (remoteFeature == null){

-

-		ISite site = SiteManager.getSite(SOURCE_FILE_SITE, null);

-		URL url = UpdateManagerUtils.getURL(site.getURL(),"testAPI/"+Site.DEFAULT_INSTALLED_FEATURE_PATH+"feature3/",null);

-		SiteFeatureReference ref = new SiteFeatureReference();

-		ref.setSite(site);

-		ref.setURL(url);

-		IFeature feature = ref.getFeature(null);

-		remoteFeature = new DefaultFeature(feature,site);

-

-		}

-		return remoteFeature;

-	}

-

-	public void testIdentifier() throws CoreException, MalformedURLException {

-		String id1 = "xmls/apitests/org.eclipse.test.feature_1.0.0/";

-		String id2 = "xmls/apitests/org.eclipse_test_feature";

-		VersionedIdentifier ident1 = new VersionedIdentifier("org.test1.ident1","1.0.0");

-		VersionedIdentifier ident2 = new VersionedIdentifier("org.test1.ident2","1.0.0");		

-		

-

-			ISite site = SiteManager.getSite(SOURCE_FILE_SITE,null);

-			

-			URL url1 = UpdateManagerUtils.getURL(site.getURL(),id1,null);			

-			remoteFeature = new DefaultFeature(site);

-			remoteFeature.setURL(url1);

-			remoteFeature.setIdentifier(ident1);

-			assertEquals(ident1.toString(),remoteFeature.getVersionedIdentifier().toString());

-	 	

-			 URL url2 = UpdateManagerUtils.getURL(site.getURL(),id2,null);		

-			remoteFeature = new DefaultFeature(site);

-			remoteFeature.setURL(url2);

-			remoteFeature.setIdentifier(ident2);

-			assertEquals(ident2.toString(),remoteFeature.getVersionedIdentifier().toString());

-		

-

-	}

-

-

-

-	public void testSite() throws MalformedURLException, CoreException{

-		String ident1 = Site.DEFAULT_INSTALLED_FEATURE_PATH+"feature3/";		

-

-			ISite site = SiteManager.getSite(SOURCE_FILE_SITE,null);

-			

-			URL id = UpdateManagerUtils.getURL(site.getURL(),ident1,null);			

-			remoteFeature = new DefaultFeature(site);

-			remoteFeature.setURL(id);

-			assertEquals(site,remoteFeature.getSite());

-

-	}

-

-

-	public void testLabel() throws CoreException,MalformedURLException {

-		String label = "dummy label";

-		Feature feature = getFeature();

-		feature.setLabel(label);

-		assertEquals(label,feature.getLabel());

-	}

-

-

-	public void testUpdateURL() throws CoreException,MalformedURLException {

-		URL url = null;

-		String label = "OTI Site";

-		try {

-			url = new URL("http://www.oti.com/");

-			

-		} catch (java.net.MalformedURLException e){} // impossible eh !

-		DefaultFeature feature = getFeature();

-		feature.setUpdateSiteEntry(new MyURLEntry(label, url));

-		assertEquals(url,feature.getUpdateSiteEntry().getURL());

-		assertEquals(label,feature.getUpdateSiteEntry().getAnnotation());

-

-	} 

-

-

-	

-	public void testDiscoveryURLs() throws CoreException,MalformedURLException {

-		IURLEntry[] urlInfo = new MyURLEntry[2];

-		URL[] url = new URL[2];

-		String[] label = new String[2];

-		try {

-			url[0] = new URL("http://www.oti.com/");

-			url[1] = new URL("http://eclipse.org/");

-			label[0] = "OTI Site";

-			label[1] = "Eclipse Site";

-		} catch (java.net.MalformedURLException e){} // impossible eh !

-		DefaultFeature feature = getFeature();

-		for (int i=0;i<2;i++){

-				urlInfo[i] = new MyURLEntry(label[i],url[i]);

-		}

-		feature.setDiscoverySiteEntries(urlInfo);

-		for (int i=0; i<feature.getDiscoverySiteEntries().length;i++){

-			assertEquals(urlInfo[i],feature.getDiscoverySiteEntries()[i]);

-		}

-

-	}

-

-

-	public void testProvider() throws CoreException,MalformedURLException {

-		String provider = "not so dummy provider";

-		IFeature feature = getFeature();

-		((Feature)feature).setProvider(provider);

-		assertEquals(provider,feature.getProvider());

-	}

-

-

-

-	public void testDescription() throws CoreException,MalformedURLException {

-		String desc = "pretty long description as a string with \r\n and \t and \n";

-		IURLEntry info = new MyURLEntry(desc,null);

-		DefaultFeature feature = getFeature();

-		feature.setDescription(info);

-		assertEquals(desc,feature.getDescription().getAnnotation());

-	}

-	

-

-	public void testDescription1() throws CoreException, MalformedURLException {

-		URL url = null;

-		try {

-			url = new URL("http://www.oti.com");

-		} catch (MalformedURLException e){/*pretty impossible*/}

-		IURLEntry info = new MyURLEntry(null,url);

-		DefaultFeature feature = getFeature();

-		feature.setDescription(info);

-		assertEquals(url,feature.getDescription().getURL());

-	}	

-	

-

-	public void testDescription2() throws CoreException, MalformedURLException {

-		

- 	 URL url = null;

-		try {

-			url = new URL("http://www.oti.com");

-		} catch (MalformedURLException e){/*pretty impossible*/}

-		String desc = "pretty long description as a string with \r\n and \t and \n";

-		IURLEntry info = new MyURLEntry(desc,url);

-		DefaultFeature feature = getFeature();

-		feature.setDescription(info);

-		String result = feature.getDescription().getAnnotation();

-		assertEquals(desc,result);

-		assertEquals(url,feature.getDescription().getURL());

-	}	

-

-

-

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestDefaultPackageFeatureAPI.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestDefaultPackageFeatureAPI.java
deleted file mode 100644
index f1f757d..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestDefaultPackageFeatureAPI.java
+++ /dev/null
@@ -1,175 +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 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.update.tests.api;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.UpdateManagerUtils;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-

-

-public class TestDefaultPackageFeatureAPI extends UpdateManagerTestCase {

-	

-	private	DefaultFeature remoteFeature=null;

-	

-	/**

-	 * Test the testFeatures()

-	 */

-	public TestDefaultPackageFeatureAPI(String arg0) {

-		super(arg0);

-	}

-	

-	/**

-	 * the feature to test

-	 */

-	private DefaultFeature getFeature() throws MalformedURLException, CoreException {

-		if (remoteFeature == null){

-		ISite site = SiteManager.getSite(SOURCE_FILE_SITE, null);

-		URL id = UpdateManagerUtils.getURL(site.getURL(),"org.eclipse.update.core.feature1_1.0.0.jar",null);	

-		remoteFeature = new DefaultFeature(site);

-		remoteFeature.setURL(id);

-		}

-		return remoteFeature;

-	}

-

-	public void testIdentifier() throws CoreException, MalformedURLException {

-		

-		String id1 = "features/org.eclipse.test.feature_1.0.0.jar";

-		String id2 = "features/org.eclipse_test_feature.jar";

-		VersionedIdentifier ident1 = new VersionedIdentifier("org.test1.ident1","1.0.0");

-		VersionedIdentifier ident2 = new VersionedIdentifier("org.test1.ident2","1.0.0");		

-		

-

-			ISite site = SiteManager.getSite(SOURCE_FILE_SITE, null);

-			

-			URL url1 = UpdateManagerUtils.getURL(site.getURL(),id1,null);			

-			remoteFeature = new DefaultFeature(site);

-			remoteFeature.setURL(url1);

-			remoteFeature.setIdentifier(ident1);

-			assertEquals(ident1.toString(),remoteFeature.getVersionedIdentifier().toString());

-		

-			 URL url2 = UpdateManagerUtils.getURL(site.getURL(),id2,null);		

-			remoteFeature = new DefaultFeature(site);

-			remoteFeature.setURL(url2);

-			remoteFeature.setIdentifier(ident2);			

-			assertEquals(ident2.toString(),remoteFeature.getVersionedIdentifier().toString());

-	}

-

-

-	public void testSite() throws MalformedURLException, CoreException {

-		String ident1 = "org.eclipse.test.feature_1.0.0.jar";		

-

-			ISite site = SiteManager.getSite(SOURCE_FILE_SITE, null);

-			

-			URL id = UpdateManagerUtils.getURL(site.getURL(),ident1,null);		

-			remoteFeature = new DefaultFeature(site);

-			remoteFeature.setURL(id);	

-			assertEquals(site,remoteFeature.getSite());

-

-	}

-

-

-	public void testLabel() throws CoreException, MalformedURLException {

-		String label = "dummy label";

-		Feature feature = getFeature();

-		feature.setLabel(label);

-		assertEquals(label,feature.getLabel());

-	}

-

-	public void testUpdateURL() throws CoreException, MalformedURLException {

-		URL url = null;

-		String label = "OTI Site";

-		try {

-			url = new URL("http://www.oti.com/");

-			

-		} catch (java.net.MalformedURLException e){} // impossible eh !

-		DefaultFeature feature = getFeature();

-		feature.setUpdateSiteEntry(new MyURLEntry(label, url));

-		assertEquals(url,feature.getUpdateSiteEntry().getURL());

-		assertEquals(label,feature.getUpdateSiteEntry().getAnnotation());

-

-	} 

-

-

-	

-	public void testDiscoveryURLs() throws CoreException, MalformedURLException {

-		IURLEntry[] urlInfo = new URLEntry[2];

-		URL[] url = new URL[2];

-		String[] label = new String[2];

-		try {

-			url[0] = new URL("http://www.oti.com/");

-			url[1] = new URL("http://eclipse.org/");

-			label[0] = "OTI Site";

-			label[1] = "Eclipse Site";

-		} catch (java.net.MalformedURLException e){} // impossible eh !

-		DefaultFeature feature = getFeature();

-		for (int i=0;i<2;i++){

-				urlInfo[i] = new MyURLEntry(label[i],url[i]);

-		}

-		feature.setDiscoverySiteEntries(urlInfo);

-		for (int i=0; i<feature.getDiscoverySiteEntries().length;i++){

-			assertEquals(urlInfo[i],feature.getDiscoverySiteEntries()[i]);

-		}

-

-

-	}

-

-

-	public void testProvider() throws CoreException, MalformedURLException {

-		String provider = "not so dummy provider";

-		Feature feature = getFeature();

-		feature.setProvider(provider);

-		assertEquals(provider,feature.getProvider());

-	}

-

-

-

-	public void testDescription() throws CoreException, MalformedURLException {

-		String desc = "pretty long description as a string with \r\n and \t and \n";

-		IURLEntry info = new MyURLEntry(desc,null);

-		DefaultFeature feature = getFeature();

-		feature.setDescription(info);

-		assertEquals(desc,feature.getDescription().getAnnotation());

-	}

-	

-

-	public void testDescription1() throws CoreException, MalformedURLException {

-		URL url = null;

-		try {

-			url = new URL("http://www.oti.com");

-		} catch (MalformedURLException e){/*pretty impossible*/}

-		IURLEntry info = new MyURLEntry(null,url);

-		DefaultFeature feature = getFeature();

-		feature.setDescription(info);

-		assertEquals(url,feature.getDescription().getURL());

-	}	

-	

-	public void testDescription2() throws CoreException, MalformedURLException {

-		

-		URL url = null;

-		try {

-			url = new URL("http://www.oti.com");

-		} catch (MalformedURLException e){/*pretty impossible*/}

-		String desc = "pretty long description as a string with \r\n and \t and \n";

-		IURLEntry info = new MyURLEntry(desc,url);

-		DefaultFeature feature = getFeature();

-		feature.setDescription(info);

-		assertEquals(desc,feature.getDescription().getAnnotation());

-		assertEquals(url,feature.getDescription().getURL());

-	}

-

-

-

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestFeatureContentProvider_FileFilterAPI.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestFeatureContentProvider_FileFilterAPI.java
deleted file mode 100644
index 55deb03..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestFeatureContentProvider_FileFilterAPI.java
+++ /dev/null
@@ -1,85 +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 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.update.tests.api;
-import org.eclipse.update.core.FeatureContentProvider;
-import org.eclipse.update.internal.core.FeatureExecutableContentProvider;
-import org.eclipse.update.tests.UpdateManagerTestCase;
-
-
-
-public class TestFeatureContentProvider_FileFilterAPI extends UpdateManagerTestCase {
-	
-	
-	/**
-	 * Test the testFeatures()
-	 */
-	public TestFeatureContentProvider_FileFilterAPI(String arg0) {
-		super(arg0);
-	}
-	
-	public void testFileFilter(){
-		
-		String p1 = "/p1/p2/a.*";
-		String p2 = "p1/p2/b.*";
-		String p3 = "/p1/p2/a.txt";
-		String p4 = "/p1/p2/*.txt";
-		
-		String name1 = "/p1/p2/a.txt";
-		String name2 = "/p1/p2/b.txt";
-		String name3 = "/p3/p2/a.txt";
-		String name4 = "p1/p2/a.txt";
-		String name5 = "/p1/p2/b.txt";
-		String name6 = "/p1/p2/c.txt";
-		String name7 = "/p1/p2/p3/a.txt";
-		
-		
-		FeatureContentProvider cp = new FeatureExecutableContentProvider(null);
-		
-		FeatureContentProvider.FileFilter filter1 = cp.new FileFilter(p1);
-		FeatureContentProvider.FileFilter filter2 = cp.new FileFilter(p2);
-		FeatureContentProvider.FileFilter filter3 = cp.new FileFilter(p3);
-		FeatureContentProvider.FileFilter filter4 = cp.new FileFilter(p4);
-
-		assertTrue("1.1",filter1.accept(name1));		
-		assertTrue("1.2",!filter1.accept(name2));		
-		assertTrue("1.3",!filter1.accept(name3));	
-		assertTrue("1.4",!filter1.accept(name4));		
-		assertTrue("1.5",!filter1.accept(name5));		
-		assertTrue("1.6",!filter1.accept(name6));		
-		assertTrue("1.7",!filter1.accept(name7));
-	
-		assertTrue("2.1",!filter2.accept(name1));		
-		assertTrue("2.2",!filter2.accept(name2));		
-		assertTrue("2.3",!filter2.accept(name3));	
-		assertTrue("2.4",!filter2.accept(name4));		
-		assertTrue("2.5",!filter2.accept(name5));		
-		assertTrue("2.6",!filter2.accept(name6));		
-		assertTrue("2.7",!filter2.accept(name7));
-
-		assertTrue("3.1",filter3.accept(name1));		
-		assertTrue("3.2",!filter3.accept(name2));		
-		assertTrue("3.3",!filter3.accept(name3));	
-		assertTrue("3.4",!filter3.accept(name4));		
-		assertTrue("3.5",!filter3.accept(name5));		
-		assertTrue("3.6",!filter3.accept(name6));		
-		assertTrue("3.7",!filter3.accept(name7));
-		
-		assertTrue("4.1",filter4.accept(name1));		
-		assertTrue("4.2",filter4.accept(name2));		
-		assertTrue("4.3",!filter4.accept(name3));	
-		assertTrue("4.4",!filter4.accept(name4));		
-		assertTrue("4.5",filter4.accept(name5));		
-		assertTrue("4.6",filter4.accept(name6));		
-		assertTrue("4.7",!filter4.accept(name7));								
-					
-	}
-}
-
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestLocalSiteAPI.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestLocalSiteAPI.java
deleted file mode 100644
index ab49a5f..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestLocalSiteAPI.java
+++ /dev/null
@@ -1,117 +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 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.update.tests.api;

-import java.net.URL;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.CategoryModel;

-import org.eclipse.update.core.model.SiteModel;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestLocalSiteAPI extends UpdateManagerTestCase {

-	

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestLocalSiteAPI(String arg0) {

-		super(arg0);

-	}

-	

-	public void testFileParsing() throws Exception {

-

-		ISite site = SiteManager.getSite(new URL(SOURCE_FILE_SITE,"siteTestLocalSite/"), null);

-		IArchiveReference[] info = site.getArchives();

-		

-		if (info.length<=0){

-			fail("no plugins in site: "+site.getURL().toExternalForm());

-		}

-		 

-		boolean found1 = false;

-		boolean found2 = false;

-		String name1= "plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar";

-		String name2 = "plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar";

-		

-		for (int i =0; i<info.length; i++){

-			if (info[i].getPath().equals(name1)) found1 = true;

-			if (info[i].getPath().equals(name2)) found2 = true;

-		}

-		

-		if (!found1 || !found2){

-			fail("Cannot find plugin : org.eclipse.update.core.tests.feature1.plugin2 version 5.0.0 and 5.0.1 on the site, by parsing file system");

-		}

-		

-

-	}

-	

-	public void testBundleManifestParsing() throws Exception {

-

-		ISite site = SiteManager.getSite(new URL(SOURCE_FILE_SITE,"siteTestLocalSite/"),null);

-		IArchiveReference[] info = site.getArchives();

-		

-		if (info.length<=0){

-			fail("no plugins in site: "+site.getURL().toExternalForm());

-		}

-		 

-		boolean found1 = false;

-		boolean found2 = false;

-		boolean found3 = false;

-		String name1= "plugins/org.eclipse.update.core.tests.bundleManifest_1.0.1.jar";

-		String name2 = "plugins/org.eclipse.update.core.tests.bundleAndPluginManifestsBUNDLEPARSED_1.0.3.jar";

-		String name3 = "plugins/org.eclipse.update.core.tests.bundleAndPluginManifests_1.0.3.jar";

-		

-		for (int i =0; i<info.length; i++){

-			if (info[i].getPath().equals(name1)) found1 = true;

-			if (info[i].getPath().equals(name2)) found2 = true;

-			if (info[i].getPath().equals(name3)) found3 = true;

-		}

-		

-		if (!found1 || !found2){

-			fail("Cannot find plugin : org.eclipse.update.core.tests.feature1.plugin2 version 5.0.0 and 5.0.1 on the site, by parsing file system");

-		}

-		if (found3){

-			fail("Plugin manifest parsed instead of bundle manifest.");

-		}

-		

-

-	}

-	

-	

-	public void testCategories() throws Exception {

-

-		ISite site = SiteManager.getSite(SOURCE_FILE_SITE, null);

-		

-		ICategory category = new Category("category","Label of category");

-		

-		((SiteModel)site).addCategoryModel((CategoryModel)category);

-		

-		ICategory[] categories = site.getCategories();

-		boolean found = false;

-		for (int index = 0; index < categories.length; index++) {

-			ICategory element = categories[index];

-			if (element.getName().equals("category")) found = true;

-		}

-		if (!found) fail("cannot find category 'category' in site");

-

-		ISiteFeatureReference ref = new SiteFeatureReference();

-		ref.setSite(site);

-		ref.addCategory(category);		

-		categories = ref.getCategories();

-		found = false;

-		for (int index = 0; index < categories.length; index++) {

-			ICategory element = categories[index];

-			if (element.getName().equals("category")) found = true;

-		}

-		if (!found) fail("cannot find category 'category' in feature");

-		

-			}

-

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestNestedFeatureAPI.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestNestedFeatureAPI.java
deleted file mode 100644
index 5cf3585..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestNestedFeatureAPI.java
+++ /dev/null
@@ -1,153 +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 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.update.tests.api;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.UpdateManagerUtils;
-import org.eclipse.update.tests.UpdateManagerTestCase;
-
-public class TestNestedFeatureAPI extends UpdateManagerTestCase {
-
-	/**
-	 * Test the testFeatures()
-	 */
-	public TestNestedFeatureAPI(String arg0) {
-		super(arg0);
-	}
-
-	/**
-	 * the feature to test
-	 */
-	private IFeature getRootFeature() throws MalformedURLException, CoreException {
-		ISite site = SiteManager.getSite(new URL(SOURCE_FILE_SITE, "nestedFeatureSiteTest/site.xml"),null);
-		URL url = UpdateManagerUtils.getURL(site.getURL(), Site.DEFAULT_INSTALLED_FEATURE_PATH + "rootfeature.jar", null);
-		SiteFeatureReference ref = new SiteFeatureReference();
-		ref.setSite(site);
-		ref.setURL(url);
-		ref.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);
-		IFeature feature = ref.getFeature(null);
-		return feature;
-	}
-
-	/**
-	 * the feature to test
-	 */
-	private IFeature getChildFeature() throws MalformedURLException, CoreException {
-
-		ISite site = SiteManager.getSite(new URL(SOURCE_FILE_SITE, "nestedFeatureSiteTest/"), null);
-		URL url = UpdateManagerUtils.getURL(site.getURL(), Site.DEFAULT_INSTALLED_FEATURE_PATH + "org.eclipse.update.core.tests.childrenfeature_2.0.0.jar", null);
-		SiteFeatureReference ref = new SiteFeatureReference();
-		ref.setSite(site);
-		ref.setURL(url);
-		ref.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);
-		IFeature feature = ref.getFeature(null);
-		return feature;
-	}
-
-	/*
-	 * 
-	 */
-	public void testNested() throws Exception {
-
-		IFeature rootFeature = getRootFeature();
-		IFeatureReference[] ref = rootFeature.getIncludedFeatureReferences();
-		IFeature childFeature = getChildFeature();
-		assertEquals("Children feature are not equal", childFeature, ref[0].getFeature(null));
-	}
-
-	/**
-	 * the feature to test
-	 */
-	private IFeature getRootFeature2() throws MalformedURLException, CoreException {
-		ISite site = SiteManager.getSite(new URL(SOURCE_FILE_SITE, "nestedFeatureSiteTest2/site.xml"),null);
-		URL url = UpdateManagerUtils.getURL(site.getURL(), Site.DEFAULT_INSTALLED_FEATURE_PATH + "rootfeature.jar", null);
-		SiteFeatureReference ref = new SiteFeatureReference();
-		ref.setSite(site);
-		ref.setURL(url);
-		ref.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);
-		IFeature feature = ref.getFeature(null);
-		return feature;
-	}
-
-	/**
-	 * the feature to test
-	 */
-	private IFeature getChildFeature2() throws MalformedURLException, CoreException {
-
-		ISite site = SiteManager.getSite(new URL(SOURCE_FILE_SITE, "nestedFeatureSiteTest2/site.xml"),null);
-		URL url = UpdateManagerUtils.getURL(site.getURL(), Site.DEFAULT_INSTALLED_FEATURE_PATH + "childrenfeature.jar", null);
-		SiteFeatureReference ref = new SiteFeatureReference();
-		ref.setSite(site);
-		ref.setURL(url);
-		ref.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);
-		IFeature feature = ref.getFeature(null);
-		return feature;
-	}
-
-	/*
-	 * 
-	 */
-	public void testNested2() throws Exception {
-
-		IFeature rootFeature = getRootFeature2();
-		IFeatureReference[] ref = rootFeature.getIncludedFeatureReferences();
-		IFeature childFeature = getChildFeature2();
-		assertEquals("Children feature are not equal", childFeature, ref[0].getFeature(null));
-	}
-
-//	/**
-//	 * the feature to test
-//	 */
-//	private IFeature getRootFeature3() throws MalformedURLException, CoreException {
-//		ISite site = SiteManager.getSite(new URL(SOURCE_FILE_SITE, "nestedFeatureSiteTest3/site.xml"), null);
-//		URL url = UpdateManagerUtils.getURL(site.getURL(), Site.DEFAULT_INSTALLED_FEATURE_PATH + "rootfeature.jar", null);
-//		SiteFeatureReference ref = new SiteFeatureReference();
-//		ref.setSite(site);
-//		ref.setURL(url);
-//		ref.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);
-//		IFeature feature = ref.getFeature(null);
-//		return feature;
-//	}
-
-//	/**
-//	 * the feature to test
-//	 */
-//	private IFeature getChildFeature3() throws MalformedURLException, CoreException {
-//
-//		ISite site = SiteManager.getSite(new URL(SOURCE_FILE_SITE, "nestedFeatureSiteTest3/site.xml"));
-//		URL url = UpdateManagerUtils.getURL(site.getURL(), Site.DEFAULT_INSTALLED_FEATURE_PATH + "childrenfeature.jar", null);
-//		SiteFeatureReference ref = new SiteFeatureReference();
-//		ref.setSite(site);
-//		ref.setURL(url);
-//		ref.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);
-//		IFeature feature = ref.getFeature(null);
-//		return feature;
-//	}
-
-	/*
-	 * 
-	 */
-	/*	public void testNested3() throws Exception {
-	
-			IFeature rootFeature = getRootFeature3();
-			IFeatureReference[] ref = rootFeature.getIncludedFeatureReferences();
-			IFeature childFeature = getChildFeature3();
-			assertEquals(
-				"Children feature are not equal",
-				childFeature,
-				ref[0].getFeature());
-		}
-	*/
-
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestPluginContainerAPI.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestPluginContainerAPI.java
deleted file mode 100644
index 37e56f3..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestPluginContainerAPI.java
+++ /dev/null
@@ -1,77 +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 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.update.tests.api;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.UpdateManagerUtils;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestPluginContainerAPI extends UpdateManagerTestCase {

-

-	private Site site;

-	private DefaultFeature feature;

-

-	/**

-	 * the Site to test

-	 */

-	private Site getSite() throws CoreException, MalformedURLException {

-		if (site == null) {

-

-			site = (Site)SiteManager.getSite(new URL(SOURCE_FILE_SITE,"testAPI/"), null);

-

-		}

-		return site;

-	}

-

-	/**

-	 * the feature to test

-	 */

-	private DefaultFeature getFeature() throws MalformedURLException, CoreException {

-		if (feature == null) {

-			ISite site = getSite();

-			URL id = UpdateManagerUtils.getURL(site.getURL(),"org.eclipse.update.core.feature1_1.0.0.jar",null);						

-			feature = new DefaultFeature(site);

-			feature.setURL(id);	

-		}

-		return feature;

-	}

-

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestPluginContainerAPI(String arg0) throws CoreException {

-		super(arg0);

-	}

-

-	public void testAbstractFeature() throws CoreException, MalformedURLException {

-		PluginEntry pluginEntry = new PluginEntry();

-		pluginEntry.setVersionedIdentifier(new VersionedIdentifier("id", "6"));

-		Feature _feature = getFeature();

-		((DefaultFeature)_feature).addPluginEntry(pluginEntry);

-		assertEquals(_feature.getPluginEntryCount(), 1);

-		assertEquals(_feature.getPluginEntries()[0], pluginEntry);

-

-	}

-

-	public void testAbstactSite() throws CoreException, MalformedURLException {

-		PluginEntry pluginEntry = new PluginEntry();

-		pluginEntry.setVersionedIdentifier(new VersionedIdentifier("id", "6"));

-		Site _site = getSite();

-		_site.addPluginEntry(pluginEntry);

-		assertEquals(_site.getPluginEntryCount(), 1);

-		assertEquals(_site.getPluginEntries()[0], pluginEntry);

-

-	}

-

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestSiteAPI.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestSiteAPI.java
deleted file mode 100644
index c2362d4..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestSiteAPI.java
+++ /dev/null
@@ -1,39 +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 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.update.tests.api;

-import java.io.File;

-import java.net.URL;

-

-import org.eclipse.update.core.ISite;

-import org.eclipse.update.core.SiteManager;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestSiteAPI extends UpdateManagerTestCase {

-	

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestSiteAPI(String arg0) {

-		super(arg0);

-	}

-	

-	public void testURL() throws Exception {

-

-		ISite site = SiteManager.getSite(SOURCE_FILE_SITE, null);

-		assertEquals(new File(site.getURL().getFile()),new File(SOURCE_FILE_SITE.getFile()));

-		

-		ISite site2 = SiteManager.getSite(SOURCE_HTTP_SITE, null);

-		assertEquals(site2.getURL(),new URL("http", getHttpHost(),getHttpPort(), bundle.getString("HTTP_PATH_1")+"site.xml"));

-

-	}

-

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestSiteManagerAPI.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestSiteManagerAPI.java
deleted file mode 100644
index 428c465..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestSiteManagerAPI.java
+++ /dev/null
@@ -1,76 +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 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.update.tests.api;

-import java.io.File;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestSiteManagerAPI extends UpdateManagerTestCase {

-	

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestSiteManagerAPI(String arg0) {

-		super(arg0);

-	}

-	

-	public void testFile() throws Exception {

-		ISite fileSite = SiteManager.getSite(TARGET_FILE_SITE,null);

-		String site = fileSite.getURL().toExternalForm();		

-		assertEquals(TARGET_FILE_SITE.toExternalForm(), site);

-	}

-	

-	public void testUnknown() throws Exception {

-		URL url = new URL("ftp://255.255.255.255/");

-		try {

-		SiteManager.getSite(url,null);

-		fail("Connected to ftp://255.255.255.255/, should not happen");

-		} catch (CoreException e){

-			// expected

-		} catch (IllegalArgumentException e){

-			// expected as the version of the WebDav HTTP Connection returns so

-		}

-	}

-	

-	public void testLocalSite() throws Exception {

-		

-		ILocalSite site = SiteManager.getLocalSite();

-		IConfiguredSite[] instSites = site.getCurrentConfiguration().getConfiguredSites();

-		assertTrue(instSites.length>0);

-		System.out.println("Local Site:"+instSites[0].getSite().getURL().toExternalForm());

-		

-		ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE_INSTALLED,null);

-		IFeature remoteFeature = remoteSite.getFeatureReferences()[0].getFeature(null);

-		remove(remoteFeature,instSites[0].getSite());		

-		instSites[0].getSite().install(remoteFeature,null,null);

-		

-		IFeatureReference[] features = site.getCurrentConfiguration().getConfiguredSites()[0].getSite().getFeatureReferences();

-		assertTrue(features.length>0);

-

-		//cleanup

-		assertNotNull(remoteFeature);		

-		File file = new File(instSites[0].getSite().getURL().getFile()+File.separator+Site.DEFAULT_INSTALLED_FEATURE_PATH+remoteFeature.getVersionedIdentifier());

-		UpdateManagerUtils.removeFromFileSystem(file);

-		file = new File(instSites[0].getSite().getURL().getFile()+File.separator+Site.DEFAULT_PLUGIN_PATH+"org.eclipse.update.plugin1_1.1.1");

-		UpdateManagerUtils.removeFromFileSystem(file);		

-		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);	

-

-	}

-	

-

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestUpdateManagerUtilsAPI.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestUpdateManagerUtilsAPI.java
deleted file mode 100644
index d82488e..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestUpdateManagerUtilsAPI.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.api;

-import java.net.URL;

-

-import org.eclipse.update.internal.core.UpdateManagerUtils;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestUpdateManagerUtilsAPI extends UpdateManagerTestCase {

-	

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestUpdateManagerUtilsAPI(String arg0) {

-		super(arg0);

-	}

-	

-	public void testgetURL() throws Exception {

-		URL url1 = new URL("http://www.eclipse.org");

-		URL url2 = new URL("file://c:/hello");

-		URL url3 = new URL("file:/home/eclipse/");

-		URL url4 = new URL("ftp:/host:8080/path/");

-		URL url5 = new URL("jar:file:/tmp/100100!/");

-		

-		String default1 = "default1/default";

-		String default2 = "/default2/";

-		

-		String str1 = "http://dev.eclipse.org";

-		String str2 = "relative1/path/";

-		String str3 = "/relative2/path";

-		

-		String result1=null;

-		String result2=null;

-		

-		//****************************************************************************************

-		// 1.0

-		result1 = UpdateManagerUtils.getURL(url1,str1,default1).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("1.0",result2,result1);

-		

-		// 1.1

-		 result1 = UpdateManagerUtils.getURL(null,str1,null).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("1.1",result2,result1);

-		

-		// 1.2

-		 result1 = UpdateManagerUtils.getURL(url1,str1,null).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("1.2",result2,result1);

-		

-		// 1.3

-		 result1 = UpdateManagerUtils.getURL(url1,str2,default1).toExternalForm();

-		 result2 = "http://www.eclipse.org/relative1/path/";

-		assertEquals("1.3",result2,result1);

-		

-		// 1.4

-		 result1 = UpdateManagerUtils.getURL(url1,str3,default1).toExternalForm();

-		 result2 = "http://www.eclipse.org/relative2/path";

-		assertEquals("1.4",result2,result1);

-		

-		// 1.5

-		 result1 = UpdateManagerUtils.getURL(url1,null,default1).toExternalForm();

-		 result2 = "http://www.eclipse.org/default1/default";

-		assertEquals("1.5",result2,result1);

-		

-		// 1.6

-		 result1 = UpdateManagerUtils.getURL(url1,null,default2).toExternalForm();

-		 result2 = "http://www.eclipse.org/default2/";

-		assertEquals("1.6",result2,result1);

-		

-		//****************************************************************************************

-		// 2.0

-		 result1 = UpdateManagerUtils.getURL(url2,str1,default1).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("2.0",result2,result1);

-		

-		// 2.1

-		 result1 = UpdateManagerUtils.getURL(null,str1,null).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("2.1",result2,result1);

-		

-		// 2.2

-		 result1 = UpdateManagerUtils.getURL(url2,str1,null).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("2.2",result2,result1);

-		

-		// 2.3

-		 result1 = UpdateManagerUtils.getURL(url2,str2,default1).toExternalForm();

-		 result2 = "file://c:/relative1/path/";

-		assertEquals("2.3",result2,result1);

-		

-		// 2.4

-		 result1 = UpdateManagerUtils.getURL(url2,str3,default1).toExternalForm();

-		 result2 = "file://c:/relative2/path";

-		assertEquals("2.4",result2,result1);

-		

-		// 2.5

-		 result1 = UpdateManagerUtils.getURL(url2,null,default1).toExternalForm();

-		 result2 = "file://c:/default1/default";

-		assertEquals("2.5",result2,result1);

-		

-		// 2.6

-		 result1 = UpdateManagerUtils.getURL(url2,null,default2).toExternalForm();

-		 result2 = "file://c:/default2/";

-		assertEquals("2.6",result2,result1);

-		

-

-		//****************************************************************************************

-		// 3.0

-		 result1 = UpdateManagerUtils.getURL(url3,str1,default1).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("3.0",result2,result1);

-		

-		// 3.1

-		 result1 = UpdateManagerUtils.getURL(null,str1,null).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("3.1",result2,result1);

-		

-		// 3.2

-		 result1 = UpdateManagerUtils.getURL(url3,str1,null).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("3.2",result2,result1);

-		

-		// 3.3

-		 result1 = UpdateManagerUtils.getURL(url3,str2,default1).toExternalForm();

-		 result2 = "file:/home/eclipse/relative1/path/";

-		assertEquals("3.3",result2,result1);

-		

-		// 3.4

-		 result1 = UpdateManagerUtils.getURL(url3,str3,default1).toExternalForm();

-		 result2 = "file:/home/eclipse/relative2/path";

-		assertEquals("3.4",result2,result1);

-		

-		// 3.5

-		 result1 = UpdateManagerUtils.getURL(url3,null,default1).toExternalForm();

-		 result2 = "file:/home/eclipse/default1/default";

-		assertEquals("3.5",result2,result1);

-		

-		// 3.6

-		 result1 = UpdateManagerUtils.getURL(url3,null,default2).toExternalForm();

-		 result2 = "file:/home/eclipse/default2/";

-		assertEquals("3.6",result2,result1);

-				

-		//****************************************************************************************

-		// 4.0

-		 result1 = UpdateManagerUtils.getURL(url4,str1,default1).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("4.0",result2,result1);

-		

-		// 4.1

-		 result1 = UpdateManagerUtils.getURL(null,str1,null).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("4.1",result2,result1);

-		

-		// 4.2

-		 result1 = UpdateManagerUtils.getURL(url4,str1,null).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("4.2",result2,result1);

-		

-		// 4.3

-		 result1 = UpdateManagerUtils.getURL(url4,str2,default1).toExternalForm();

-		 result2 = "ftp:/host:8080/path/relative1/path/";

-		assertEquals("4.3",result2,result1);

-		

-		// 4.4

-		 result1 = UpdateManagerUtils.getURL(url4,str3,default1).toExternalForm();

-		 result2 = "ftp:/host:8080/path/relative2/path";

-		assertEquals("4.4",result2,result1);

-		

-		// 4.5

-		 result1 = UpdateManagerUtils.getURL(url4,null,default1).toExternalForm();

-		 result2 = "ftp:/host:8080/path/default1/default";

-		assertEquals("4.5",result2,result1);

-		

-		// 4.6

-		 result1 = UpdateManagerUtils.getURL(url4,null,default2).toExternalForm();

-		 result2 = "ftp:/host:8080/path/default2/";

-		assertEquals("4.6",result2,result1);

-		

-		//****************************************************************************************

-		// 5.0

-		 result1 = UpdateManagerUtils.getURL(url5,str1,default1).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("5.0",result2,result1);

-		

-		// 5.1

-		 result1 = UpdateManagerUtils.getURL(null,str1,null).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("5.1",result2,result1);

-		

-		// 5.2

-		 result1 = UpdateManagerUtils.getURL(url5,str1,null).toExternalForm();

-		 result2 = "http://dev.eclipse.org";

-		assertEquals("5.2",result2,result1);

-		

-		// 5.3

-		 result1 = UpdateManagerUtils.getURL(url5,str2,default1).toExternalForm();

-		 result2 = "jar:file:/tmp/100100!/relative1/path/";

-		assertEquals("5.3",result2,result1);

-		

-		// 5.4

-		 result1 = UpdateManagerUtils.getURL(url5,str3,default1).toExternalForm();

-		 result2 = "jar:file:/tmp/100100!/relative2/path";

-		assertEquals("5.4",result2,result1);

-		

-		// 5.5

-		 result1 = UpdateManagerUtils.getURL(url5,null,default1).toExternalForm();

-		 result2 = "jar:file:/tmp/100100!/default1/default";

-		assertEquals("5.5",result2,result1);

-		

-		// 5.6

-		 result1 = UpdateManagerUtils.getURL(url5,null,default2).toExternalForm();

-		 result2 = "jar:file:/tmp/100100!/default2/";

-		assertEquals("5.6",result2,result1);				

-

-	}

-	

-	

-

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/AllBrandingTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/AllBrandingTests.java
deleted file mode 100644
index 197f60b..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/AllBrandingTests.java
+++ /dev/null
@@ -1,40 +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 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.update.tests.branding;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.update.tests.UpdateManagerTestCase;
-
-/**
- * Manages the API tests
- */
-public class AllBrandingTests extends UpdateManagerTestCase {
-	/**
-	 * Constructor
-	 */
-	public AllBrandingTests(String name) {
-		super(name);
-	}
-	
-	/**
-	 * List of API tests
-	 */
-	public static Test suite() throws Exception {
-		TestSuite suite = new TestSuite();
-		suite.setName("Branding Tests");
-
-		suite.addTest(new TestSuite(BundleProviderTest.class));	
-		suite.addTest(new TestSuite(ProductTest.class));	
-
-		return suite;
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/BundleProviderTest.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/BundleProviderTest.java
deleted file mode 100644
index f9b2765..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/BundleProviderTest.java
+++ /dev/null
@@ -1,50 +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 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.update.tests.branding;
-
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.internal.configurator.branding.*;
-import org.eclipse.update.tests.UpdateManagerTestCase;
-import org.osgi.framework.*;
-
-public class BundleProviderTest extends UpdateManagerTestCase {
-
-	public BundleProviderTest(String testcase){
-		super(testcase);
-	}
-
-	public void testMain() throws Exception {
-		
-		IBundleGroupProvider[] bundleGroupProviders = Platform.getBundleGroupProviders();
-		for (int i=0; i<bundleGroupProviders.length; i++) {
-			System.out.println("BundleGroupProvider:"+bundleGroupProviders[i].getName());
-			IBundleGroup[] bundleGroups = bundleGroupProviders[i].getBundleGroups();
-			for (int j=0; j<bundleGroups.length; j++) {
-				System.out.println("BundleGroup name:"+bundleGroups[j].getName() +"\n" +
-						"description:" + bundleGroups[j].getDescription() + "\n"+
-						"id:" + bundleGroups[j].getIdentifier() + "\n" +
-						"provider:" + bundleGroups[j].getProviderName() + "\n" +
-						"version:" + bundleGroups[j].getVersion() + "\n" +
-						"license:" + bundleGroups[j].getProperty(IBundleGroupConstants.LICENSE_HREF) + "\n" +
-						"featureImage:" + bundleGroups[j].getProperty(IBundleGroupConstants.FEATURE_IMAGE) + "\n" +
-						"tips and tricks:" + bundleGroups[j].getProperty(IBundleGroupConstants.TIPS_AND_TRICKS_HREF) + "\n" +
-						"welcomePage:" + bundleGroups[j].getProperty(IBundleGroupConstants.WELCOME_PAGE) + "\n" +
-						"welcomePerspective:" + bundleGroups[j].getProperty(IBundleGroupConstants.WELCOME_PERSPECTIVE));
-				System.out.println("bundles:");
-				Bundle[] bundles = bundleGroups[j].getBundles();
-				for (int b=0; b<bundles.length; b++)
-					System.out.println(bundles[b].getSymbolicName());
-				System.out.println();
-			}
-		}
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/ProductTest.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/ProductTest.java
deleted file mode 100644
index 9b068c1..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/ProductTest.java
+++ /dev/null
@@ -1,41 +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 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.update.tests.branding;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.internal.configurator.branding.*;
-import org.eclipse.update.tests.*;
-
-public class ProductTest extends UpdateManagerTestCase {
-
-	public ProductTest(String testcase){
-		super(testcase);
-	}
-
-	public void testMain() throws Exception {
-		
-		IProduct product = Platform.getProduct();
-		if (product == null)
-			System.out.println("No product defined");
-		else
-			System.out.println("Product is: \n" +
-					"name=" + product.getName() + "\n" +
-					"application=" + product.getApplication() + "\n" +
-					"description=" + product.getDescription() + "\n" +
-					"id="+ product.getId() + "\n" +
-					"about_text:"+product.getProperty(IProductConstants.ABOUT_TEXT) +"\n" +
-					"about_image:"+product.getProperty(IProductConstants.ABOUT_IMAGE) +"\n" +
-					"app_name:"+product.getProperty(IProductConstants.APP_NAME) +"\n" +
-					"window_image:"+product.getProperty(IProductConstants.WINDOW_IMAGE) +"\n" +
-					"window_images:"+product.getProperty(IProductConstants.WINDOW_IMAGES) );
-				
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/AllConfigurationsTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/AllConfigurationsTests.java
deleted file mode 100644
index bd8748e..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/AllConfigurationsTests.java
+++ /dev/null
@@ -1,30 +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 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.update.tests.configurations;

-

-import org.eclipse.update.tests.UpdateManagerTestCase;

-import junit.framework.*;

-

-

-public class AllConfigurationsTests extends UpdateManagerTestCase {

-public AllConfigurationsTests(String name) {

-	super(name);

-}

-public static Test suite() {

-	TestSuite suite = new TestSuite();

-	suite.setName("Regular Install Tests");

-	

-//	suite.addTest(new TestSuite(TestRevert.class));

-	suite.addTest(new TestSuite(TestBackward.class));

-		

-	return suite;

-}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/TestBackward.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/TestBackward.java
deleted file mode 100644
index 052d474..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/TestBackward.java
+++ /dev/null
@@ -1,65 +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 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.update.tests.configurations;

-import java.io.File;

-

-

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestBackward extends UpdateManagerTestCase {

-	

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestBackward(String arg0) {

-		super(arg0);

-	}

-	

-	public void testSimpleBackward() throws Exception {

-

-		// cleanup

-		SiteLocal siteLocal = ((SiteLocal)SiteManager.getLocalSite());

-		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		InternalSiteManager.localSite=null;		

-

-		ILocalSite site = SiteManager.getLocalSite();

-		ISite remoteSite = SiteManager.getSite(SOURCE_HTTP_SITE,null);

-		IFeatureReference featureRef = remoteSite.getFeatureReferences()[0];

-		

-		IInstallConfiguration oldInstallConfig = site.getCurrentConfiguration();

-		IConfiguredSite oldConfigSite = oldInstallConfig.getConfiguredSites()[0];

-		

-		((ConfiguredSite)oldConfigSite).setUpdatable(true);	

-		assertNotNull("Reference is null",featureRef);

-		remove(featureRef.getFeature(null),oldConfigSite);	

-		oldConfigSite.install(featureRef.getFeature(null),null,null);

-		site.save();

-	

-		

-		// Activity -> InstallConfig

-		IInstallConfiguration current = site.getCurrentConfiguration();

-//		IActivity activity = current.getActivities()[0];	

-//		assertTrue(activity.getInstallConfiguration().equals(current));

-		

-		// ConfigSite->InstallConfig

-		IConfiguredSite newConfigSite = current.getConfiguredSites()[0];

-		assertTrue(newConfigSite.getInstallConfiguration().equals(current));

-		

-		// cleanup

-		localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);			

-	}

-

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/TestRevert.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/TestRevert.java
deleted file mode 100644
index 88b855a..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/TestRevert.java
+++ /dev/null
@@ -1,127 +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 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.update.tests.configurations;

-import java.io.File;

-import java.net.URL;

-

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.configurator.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.internal.model.ConfigurationPolicyModel;

-import org.eclipse.update.internal.model.ConfiguredSiteModel;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestRevert extends UpdateManagerTestCase {

-	

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestRevert(String arg0) {

-		super(arg0);

-	}

-	

-	public void testSimpleRevertInstall() throws Exception {

-

-		// cleanup

-		SiteLocal siteLocal = ((SiteLocal)SiteManager.getLocalSite());

-		File localFile = new File(siteLocal.getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);		

-		InternalSiteManager.localSite=null;		

-

-		ILocalSite site = SiteManager.getLocalSite();

-		ISite remoteSite = SiteManager.getSite(SOURCE_HTTP_SITE,null);

-		IFeatureReference featureRef = remoteSite.getFeatureReferences()[0];

-		IFeatureReference featureRef2 = remoteSite.getFeatureReferences()[1];

-		IFeature feature = featureRef.getFeature(null);

-		

-		// old config, no features installed

-		IInstallConfiguration old = site.getCurrentConfiguration();

-		ConfigurationPolicy excludepolicy = new ConfigurationPolicy();

-		excludepolicy.setPolicy(IPlatformConfiguration.ISitePolicy.USER_EXCLUDE);

-		IConfiguredSite oldConfigSite = old.getConfiguredSites()[0];

-		excludepolicy.setConfiguredSiteModel((ConfiguredSiteModel)oldConfigSite);		

-		((ConfiguredSiteModel)oldConfigSite).setConfigurationPolicyModel((ConfigurationPolicyModel)excludepolicy);

-		

-		// install one feature

-		IInstallConfiguration newConfig = site.cloneCurrentConfiguration();

-		IConfiguredSite configSite = newConfig.getConfiguredSites()[0];

-		if (!configSite.getSite().equals(oldConfigSite.getSite())) fail("Config sites are not equals");

-		site.addConfiguration(newConfig);	

-		

-		((ConfiguredSite)configSite).setUpdatable(true);			

-		IFeatureReference installedFeature = configSite.install(feature,null,null);

-		site.save();

-

-		// unconfigure it

-		configSite.unconfigure(installedFeature.getFeature(null));

-

-		// install another feature

-		IFeature feature2 = featureRef2.getFeature(null);

-		IInstallConfiguration newConfig2 = site.cloneCurrentConfiguration();

-		IConfiguredSite anotherConfigSite = newConfig2.getConfiguredSites()[0];

-		if (!anotherConfigSite.getSite().equals(oldConfigSite.getSite())) fail("Config sites are not equals");		

-		site.addConfiguration(newConfig2);		

-		anotherConfigSite.install(feature2,null,null);

-		site.save();

-

-		// revert to old state where no feature where configured

-		site.revertTo(old,null,null);

-		site.save();

-		

-		// check

-		String time = ""+site.getCurrentConfiguration().getCreationDate().getTime();

-		File file = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		assertTrue("new configuration does not exist", file.exists());

-		

-		

-		//find configured site

-		IConfiguredSite newConfigSite = null;

-		IConfiguredSite[] sites = site.getCurrentConfiguration().getConfiguredSites();

-		for (int i = 0; i < sites.length; i++) {

-			if (sites[i].getSite().equals(oldConfigSite.getSite())){

-				 newConfigSite = sites[i];

-				 break;

-			}

-		}

-		if (newConfigSite==null) fail("Cannot find configuration site");

-

-		int oldNumber = oldConfigSite.getConfiguredFeatures().length;

-		int newNumber = newConfigSite.getConfiguredFeatures().length;

-		

-		//

-		IFeatureReference[] configFeatures = newConfigSite.getConfiguredFeatures();

-		for (int i = 0; i < configFeatures.length; i++) {

-			System.out.println(configFeatures[i]);

-		}		

-		assertTrue("Wrong number of configured features old:"+oldNumber+" new:"+newNumber,oldNumber==newNumber);

-		

-		// test only 2 install config in local site

-		int newNumberUnconfiguredFeatures = ((ConfiguredSite)newConfigSite).getConfigurationPolicy().getUnconfiguredFeatures().length;

-		int oldNumberUnconfiguredFeatures = ((ConfiguredSite)oldConfigSite).getConfigurationPolicy().getUnconfiguredFeatures().length;		

-		assertEquals("wrong number of unconfigured features",oldNumberUnconfiguredFeatures+2,newNumberUnconfiguredFeatures);

-		

-		// cleanup

-		localFile = new File(siteLocal.getLocationURL().getFile());;

-		UpdateManagerUtils.removeFromFileSystem(localFile);		

-		localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);				

-		UpdateManagerUtils.removeFromFileSystem(file);	

-		time = ""+newConfig.getCreationDate().getTime();

-		file = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocationURL(),"DefaultConfig"+time+".xml").getFile());	

-		UpdateManagerUtils.removeFromFileSystem(file);	

-		time = ""+newConfig2.getCreationDate().getTime();

-		file = new File(new URL(((SiteLocal)SiteManager.getLocalSite()).getLocationURL(),"DefaultConfig"+time+".xml").getFile());	

-		UpdateManagerUtils.removeFromFileSystem(file);	

-	}

-

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/AllPlatformConfigurationTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/AllPlatformConfigurationTests.java
deleted file mode 100644
index fc1fef9..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/AllPlatformConfigurationTests.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.core.boot;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class AllPlatformConfigurationTests

-	extends PlatformConfigurationTestCase {

-	/**

-	 * Constructor

-	 */

-	public AllPlatformConfigurationTests(String name) {

-		super(name);

-	}

-	

-	/**

-	 * List of API tests

-	 */

-	public static Test suite() throws Exception {

-		TestSuite suite = new TestSuite();

-		suite.setName("PlatformConfiguration Tests");

-

-		suite.addTest(new TestSuite(TestPlatCfgAPI.class));

-

-		return suite;

-	}

-

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/PlatformConfigurationTestCase.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/PlatformConfigurationTestCase.java
deleted file mode 100644
index c9fa01e..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/PlatformConfigurationTestCase.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.core.boot;

-

-import java.io.File;

-import java.util.Date;

-

-import junit.framework.TestCase;

-

-public class PlatformConfigurationTestCase extends TestCase {

-	

-	protected String tempDir;

-	

-	public PlatformConfigurationTestCase(String name) {

-		super(name);

-		try {

-			init();

-		} catch (Exception e) {

-			fail(e.toString());

-			e.printStackTrace();

-		}

-	}

-	

-	protected void init() {

-	}

-	

-	protected void setUp() {

-		// get new temp directory for testcase

-		String root = getTempDirectoryName();

-		setupDirectory(root);

-		tempDir = root;

-	}

-	

-	protected void tearDown() {

-		// cleanup testcase temp directory

-		if (tempDir != null)

-			cleanupDirectory(tempDir);

-	}

-	

-	protected String getTempDirectoryName() {

-		String tmp = System.getProperty("java.io.tmpdir");

-		if (!tmp.endsWith(File.separator))

-			tmp += File.separator;

-		return tmp+"eclipse"+File.separator+(new Date().getTime()+File.separator);

-	}

-	

-	protected void setupDirectory(String name) {

-		File dir = new File(name);

-		dir.mkdirs();

-	}

-	

-	protected void cleanupDirectory(String name) {

-		File dir = new File(name);

-		deleteDirectory(dir);

-	}

-	

-	private void deleteDirectory(File dir) {

-		File[] list = dir.listFiles();

-		if (list == null)

-			return;

-			

-		for (int i=0; i<list.length; i++) {

-			if (list[i].isDirectory()) 

-				deleteDirectory(list[i]);

-			if (!list[i].delete())

-				System.out.println("Unable to delete "+list[i].toString());

-		}

-	}

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/TestPlatCfgAPI.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/TestPlatCfgAPI.java
deleted file mode 100644
index d7b8d1f..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/TestPlatCfgAPI.java
+++ /dev/null
@@ -1,209 +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 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.update.tests.core.boot;

-

-import java.io.IOException;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import junit.framework.Assert;

-import org.eclipse.update.configurator.*;

-import org.eclipse.update.configurator.IPlatformConfiguration.*;

-

-public class TestPlatCfgAPI extends PlatformConfigurationTestCase {

-			

-	public TestPlatCfgAPI(String arg0) {

-		super(arg0);

-	}

-	

-	public void testBasic() throws Exception {

-		

-		// get new config object

-		IPlatformConfiguration cfig = null;

-		try {

-			cfig = ConfiguratorUtils.getPlatformConfiguration(null);

-		} catch (IOException e) {

-			Assert.fail("0.0.0 "+e.toString());

-		}

-		ISiteEntry[] dflt = cfig.getConfiguredSites();

-		Assert.assertEquals("0.0.1",dflt.length,0);

-		

-		// policy tests

-		ISitePolicy p1 = cfig.createSitePolicy(ISitePolicy.USER_INCLUDE, null);

-		Assert.assertEquals("1.0.0",p1.getType(),ISitePolicy.USER_INCLUDE);

-		Assert.assertEquals("1.0.1",p1.getList().length,0);

-		p1.setList(new String[] {"first"});

-		Assert.assertEquals("1.0.2",p1.getList().length,1);

-		Assert.assertEquals("1.0.3",p1.getList()[0],"first");

-		

-		ISitePolicy p2 = cfig.createSitePolicy(ISitePolicy.USER_EXCLUDE, new String[0]);

-		Assert.assertEquals("1.1.0",p2.getType(),ISitePolicy.USER_EXCLUDE);

-		Assert.assertEquals("1.1.1",p2.getList().length,0);

-		p2.setList(new String[] {"first", "second"});

-		Assert.assertEquals("1.1.2",p2.getList().length,2);

-		Assert.assertEquals("1.1.3",p2.getList()[1],"second");

-		

-		// create some urls

-		URL u1 = null;

-		URL u2 = null;

-

-		URL u4 = null;

-		try {

-			u1 = new URL("file:/d:/temp_test_dummy");

-//			u2 = new URL("file://localhost/temp");

-			new URL("http://some.server/temp/");

-			u4 = new URL("http://bad.url");

-		} catch (MalformedURLException e) {

-			Assert.fail("2.0.0 unable to create URL "+e);

-		}

-				

-		// site creation tests

-		ISiteEntry s1 = cfig.createSiteEntry(u1,p2);

-		Assert.assertEquals("3.0.0",s1.getURL(),u1);

-		Assert.assertEquals("3.0.1",s1.getSitePolicy(),p2);

-		s1.setSitePolicy(p1);

-		Assert.assertEquals("3.0.2",s1.getSitePolicy(),p1);

-		

-//		ISiteEntry s2 = cfig.createSiteEntry(u2,p1);

-//		Assert.assertEquals("3.1.0",s2.getURL(),u2);

-//		Assert.assertEquals("3.1.1",s2.getSitePolicy(),p1);

-//		s2.setSitePolicy(p2);

-//		Assert.assertEquals("3.1.2",s2.getSitePolicy(),p2);

-		

-		// configure site tests

-		Assert.assertEquals("3.3.0",cfig.getConfiguredSites().length,0);

-		cfig.configureSite(s1);

-		Assert.assertEquals("3.3.1",cfig.getConfiguredSites().length,1);

-//		cfig.configureSite(s2);

-//		Assert.assertEquals("3.3.2",cfig.getConfiguredSites().length,2);

-//		

-		// lookup site tests

-		Assert.assertEquals("3.4.0",cfig.findConfiguredSite(u1),s1);

-//		Assert.assertEquals("3.4.1",cfig.findConfiguredSite(u2),s2);

-		Assert.assertNull("3.4.3",cfig.findConfiguredSite(u4));

-		

-		// unconfigure site tests

-		cfig.unconfigureSite(s1);

-		Assert.assertEquals("3.5.0",cfig.getConfiguredSites().length,0);

-		Assert.assertNull("3.5.1",cfig.findConfiguredSite(u1));		

-//		cfig.unconfigureSite(s2);

-//		Assert.assertEquals("3.5.2",cfig.getConfiguredSites().length,0);

-//		Assert.assertNull("3.5.3",cfig.findConfiguredSite(u2));	

-	}

-	

-	public void testSaveRestore() throws Exception {

-				

-		Assert.assertNotNull("0.0 Unable to obtain temp directory",tempDir);

-		

-		// get new config object

-		IPlatformConfiguration cfig = null;

-		try {

-			cfig = ConfiguratorUtils.getPlatformConfiguration(null);

-		} catch (IOException e) {

-			Assert.fail("0.0.0 "+e.toString());

-		}

-		ISiteEntry[] sites = cfig.getConfiguredSites();

-		Assert.assertEquals("0.0.1",sites.length,0);

-				

-		// create policies

-		ISitePolicy p1 = cfig.createSitePolicy(ISitePolicy.USER_INCLUDE, null);

-		ISitePolicy p2 = cfig.createSitePolicy(ISitePolicy.USER_EXCLUDE, new String[0]);		

-		ISitePolicy p3 = cfig.createSitePolicy(ISitePolicy.USER_INCLUDE, new String[] {"first"});

-		ISitePolicy p4 = cfig.createSitePolicy(ISitePolicy.USER_EXCLUDE, new String[] {"first", "second"});

-						

-		// create some urls

-		URL u1 = null;

-		URL u2 = null;

-		URL u3 = null;

-		URL u4 = null;

-

-		try {

-			u1 = new URL("file:d:/temp/");

-			u2 = new URL("file://localhost/temp/");

-			u3 = new URL("http://some.server/temp/");

-			u4 = new URL("http://another.server/temp/");

-			new URL("http://one.more.server/temp/");

-		} catch (MalformedURLException e) {

-			Assert.fail("1.0 unable to create URL "+e);

-		}

-		

-		// create and configure sites

-		ISiteEntry s1 = cfig.createSiteEntry(u1,p1);

-		cfig.configureSite(s1);

-		ISiteEntry s2 = cfig.createSiteEntry(u2,p2);

-		cfig.configureSite(s2);

-		ISiteEntry s3 = cfig.createSiteEntry(u3,p3);

-		cfig.configureSite(s3);

-		ISiteEntry s4 = cfig.createSiteEntry(u4,p4);

-		cfig.configureSite(s4);

-		sites = cfig.getConfiguredSites();

-		Assert.assertEquals("1.1",sites.length,4);

-		

-		// do save

-		try {

-			cfig.save();

-			Assert.fail("2.0 was expecting IOException");

-		} catch (IOException e) {

-		}

-		

-		URL cfigURL = null;

-		try {

-			cfigURL = new URL("file:"+tempDir+ "platform.xml");

-		} catch(MalformedURLException e) {

-			Assert.fail("2.1 unable to create URL "+e);

-		}

-		

-		try {

-			cfig.save(cfigURL);

-		} catch (IOException e) {

-			Assert.fail("2.2 "+e);

-		}

-		

-		// reload configuration	

-		try {

-			ConfiguratorUtils.getPlatformConfiguration(cfigURL);

-		} catch (IOException e) {

-			Assert.fail("2.3 "+e.toString());

-		}

-		ISiteEntry[] newSites = cfig.getConfiguredSites();

-		Assert.assertEquals("2.4",newSites.length,4);

-		

-		// check what we've got

-		Assert.assertEquals("3.0.1",sites[0].getURL(),newSites[0].getURL());

-		Assert.assertEquals("3.0.2",sites[0].getSitePolicy().getType(),newSites[0].getSitePolicy().getType());

-		Assert.assertEquals("3.0.3",sites[0].getSitePolicy().getList(),newSites[0].getSitePolicy().getList());

-		

-		Assert.assertEquals("3.1.1",sites[1].getURL(),newSites[1].getURL());

-		Assert.assertEquals("3.1.2",sites[1].getSitePolicy().getType(),newSites[1].getSitePolicy().getType());

-		Assert.assertEquals("3.1.3",sites[1].getSitePolicy().getList(),newSites[1].getSitePolicy().getList());

-		

-		Assert.assertEquals("3.2.1",sites[2].getURL(),newSites[2].getURL());

-		Assert.assertEquals("3.2.2",sites[2].getSitePolicy().getType(),newSites[2].getSitePolicy().getType());

-		Assert.assertEquals("3.2.3",sites[2].getSitePolicy().getList(),newSites[2].getSitePolicy().getList());

-		

-		Assert.assertEquals("3.3.1",sites[3].getURL(),newSites[3].getURL());

-		Assert.assertEquals("3.3.2",sites[3].getSitePolicy().getType(),newSites[3].getSitePolicy().getType());

-		Assert.assertEquals("3.3.3",sites[3].getSitePolicy().getList(),newSites[3].getSitePolicy().getList());

-		

-	}

-	

-	public void testCurrentConfiguration() throws Exception {

-				

-		Assert.assertNotNull("0.0 Unable to obtain temp directory",tempDir);

-		

-		// get new config object

-		IPlatformConfiguration cfig = null;

-		cfig = ConfiguratorUtils.getCurrentPlatformConfiguration();

-		cfig.getPluginPath();

-		cfig.save();

-	}

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/TestPlatCfgDefault.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/TestPlatCfgDefault.java
deleted file mode 100644
index 0a3710a..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/TestPlatCfgDefault.java
+++ /dev/null
@@ -1,33 +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 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.update.tests.core.boot;

-

-import org.eclipse.update.configurator.*;

-

-

-public class TestPlatCfgDefault

-	extends PlatformConfigurationTestCase {

-		

-	public TestPlatCfgDefault(String arg0) {

-		super(arg0);

-	}

-	

-	public void testInitial() throws Exception {

-		IPlatformConfiguration cfig = null;

-		cfig = ConfiguratorUtils.getCurrentPlatformConfiguration();

-		IPlatformConfiguration.ISiteEntry se = cfig.getConfiguredSites()[0];

-		IPlatformConfiguration.ISitePolicy sp = cfig.createSitePolicy(IPlatformConfiguration.ISitePolicy.USER_EXCLUDE, new String[] {"1", "2","3","4","5","6","7","8","9","10","11","12"});

-		se.setSitePolicy(sp);

-		cfig.save();

-		System.out.println("done ...");

-	}

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/implementation/SiteFTP.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/implementation/SiteFTP.java
deleted file mode 100644
index a49d320..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/implementation/SiteFTP.java
+++ /dev/null
@@ -1,272 +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 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.update.tests.implementation;

-

-import java.io.InputStream;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.IFeature;

-import org.eclipse.update.core.IFeatureReference;

-import org.eclipse.update.core.IPluginEntry;

-import org.eclipse.update.core.IURLEntry;

-import org.eclipse.update.core.model.InstallAbortedException;

-import org.eclipse.update.internal.core.*;

-

-public class SiteFTP implements ISite {

-

-	private URL url;

-	public SiteFTP(URL url){

-		this.url = url;

-	}

-

-	/*

-	 * @see ISite#getFeatureReferences()

-	 */

-	public ISiteFeatureReference[] getFeatureReferences() {

-		return null;

-	}

-

-	/*

-	 * @see ISite#install(IFeature, FeatureVerification verifier,IProgressMonitor)

-	 */

-	public IFeatureReference install(IFeature feature,IVerificationListener verificationListener, IProgressMonitor monitor) throws CoreException {

-		return null;

-	}

-

-	/*

-	 * @see ISite#remove(IFeature, IProgressMonitor)

-	 */

-	public void remove(IFeature feature, IProgressMonitor monitor) throws CoreException {

-	}

-

-	/*

-	 * @see ISite#addSiteChangedListener(IConfiguredSiteChangedListener)

-	 */

-	public void addSiteChangedListener(IConfiguredSiteChangedListener listener) {

-	}

-

-	/*

-	 * @see ISite#removeSiteChangedListener(IConfiguredSiteChangedListener)

-	 */

-	public void removeSiteChangedListener(IConfiguredSiteChangedListener listener) {

-	}

-

-	/*

-	 * @see ISite#getURL()

-	 */

-	public URL getURL() {

-		return url;

-	}

-

-	/*

-	 * @see ISite#getType()

-	 */

-	public String getType() {

-		return "org.eclipse.update.tests.ftp";

-	}

-

-	/*

-	 * @see ISite#getCategories()

-	 */

-	public ICategory[] getCategories() {

-		return null;

-	}

-

-	/*

-	 * @see ISite#getArchives()

-	 */

-	public IArchiveReference[] getArchives() {

-		return null;

-	}

- 

-	/*

-	 * @see ISite#addCategory(ICategory)

-	 */

-	public void addCategory(ICategory category) {

-	}

-

-	/*

-	 * @see ISite#save()

-	 */

-	public void save() throws CoreException {

-	}

-

-	/*

-	 * @see IPluginContainer#getPluginEntries()

-	 */

-	public IPluginEntry[] getPluginEntries() {

-		return null;

-	}

-

-	/*

-	 * @see IPluginContainer#getPluginEntryCount()

-	 */

-	public int getPluginEntryCount() {

-		return 0;

-	}

-

-	/*

-	 * @see ISite#getDownloadSizeFor(IFeature)

-	 */

-	public long getDownloadSizeFor(IFeature feature) {

-		return 0;

-	}

-

-	/*

-	 * @see ISite#getInstallSizeFor(IFeature)

-	 */

-	public long getInstallSizeFor(IFeature feature) {

-		return 0;

-	}

-

-

-	/*

-	 * @see IPluginContainer#store(IPluginEntry, String, InputStream)

-	 */

-	public void store(IPluginEntry entry, String name, InputStream inStream) throws CoreException {

-	}

-

-	/*

-	 * @see IAdaptable#getAdapter(Class)

-	 */

-	public Object getAdapter(Class adapter) {

-		return null;

-	}

-

-	/*

-	 * @see IPluginContainer#remove(IPluginEntry)

-	 */

-	public void remove(IPluginEntry entry) throws CoreException {

-	}

-

-	/*

-	 * @see ISite#setSiteContentConsumer(ISiteContentConsumer)

-	 */

-	public void setSiteContentConsumer(ISiteContentConsumer contentConsumer) {

-	}

-

-	/*

-	 * @see ISite#setSiteContentProvider(ISiteContentProvider)

-	 */

-	public void setSiteContentProvider(ISiteContentProvider siteContentProvider) {

-	}

-

-	/*

-	 * @see ISite#getSiteContentProvider()

-	 */

-	public ISiteContentProvider getSiteContentProvider() {

-		return null;

-	}

-

-	/*

-	 * @see ISite#getDefaultPackagedFeatureType()

-	 */

-	public String getDefaultPackagedFeatureType() {

-		return null;

-	}

-

-	/*

-	 * @see ISite#store(IFeature, String, InputStream, IProgressMonitor)

-	 */

-	public void store(IFeature feature, String name, InputStream inStream, IProgressMonitor monitor) throws CoreException {

-	}

-

-

-	/*

-	 * @see IPluginContainer#remove(IPluginEntry, IProgressMonitor)

-	 */

-	public void remove(IPluginEntry entry, IProgressMonitor monitor) throws CoreException {

-	}

-

-	/*

-	 * @see ISite#getCategory(String)

-	 */

-	public ICategory getCategory(String key) {

-		return null;

-	}

-

-	/*

-	 * @see ISite#createSiteContentConsumer(IFeature)

-	 */

-	public ISiteContentConsumer createSiteContentConsumer(IFeature feature) throws CoreException {

-		return null;

-	}

-

-	/*

-	 * @see ISite#getFeatureReference(IFeature)

-	 */

-	public ISiteFeatureReference getFeatureReference(IFeature feature) {

-		return null;

-	}

-

-	/*

-	 * @see ISite#getDescription()

-	 */

-	public IURLEntry getDescription() {

-		return null;

-	}

-

-	/*

-	 * @see ISite#getPluginEntriesOnlyReferencedBy(IFeature)

-	 */

-	public IPluginEntry[] getPluginEntriesOnlyReferencedBy(IFeature feature) throws CoreException {

-		return null;

-	}

-

-	/**

-	 * @see ISite#addPluginEntry(IPluginEntry)

-	 */

-	public void addPluginEntry(IPluginEntry pluginEntry) {

-	}

-

-	/**

-	 * @see org.eclipse.update.core.ISite#install(IFeature, IFeatureReference[], IVerificationListener, IProgressMonitor)

-	 */

-	public IFeatureReference install(IFeature feature, IFeatureReference[] optionalfeatures, IVerificationListener verificationListener, IProgressMonitor monitor) throws InstallAbortedException, CoreException {

-		return null;

-	}

-

-

-	public IConfiguredSite getCurrentConfiguredSite() {

-		return null;

-	}

-

-	public IFeature createFeature(String type, URL url) throws CoreException {

-		return null;

-	}

-

-	/**

-	 * @see org.eclipse.update.core.ISite#createFeature(java.lang.String, java.net.URL, org.eclipse.core.runtime.IProgressMonitor)

-	 */

-	public IFeature createFeature(String type, URL url, IProgressMonitor monitor) throws CoreException {

-		return null;

-	}

-

-

-	/**

-	 * @see org.eclipse.update.core.ISite#getRawFeatureReferences()

-	 */

-	public ISiteFeatureReference[] getRawFeatureReferences() {

-		return null;

-	}

-

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.update.core.ISite#getMirrorSiteEntries()

-	 */

-	public IURLEntry[] getMirrorSiteEntries() throws CoreException {

-		return null;

-	}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/implementation/SiteFTPFactory.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/implementation/SiteFTPFactory.java
deleted file mode 100644
index 0d4fd25..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/implementation/SiteFTPFactory.java
+++ /dev/null
@@ -1,64 +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 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.update.tests.implementation;

-import java.io.IOException;

-import java.io.InputStream;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.core.URLEncoder;

-

-public class SiteFTPFactory extends SiteModelFactory implements ISiteFactory {

-

-	public static final String FILE = "a/b/c/";

-

-	/*

-	 * @see ISiteFactory#createSite(URL, boolean)

-	 */

-	public ISite createSite(URL url)

-		throws CoreException, InvalidSiteTypeException {

-		ISite site = null;

-		InputStream siteStream = null;

-

-		try {

-			URL resolvedURL = URLEncoder.encode(url);

-			siteStream = resolvedURL.openStream();

-

-			SiteModelFactory factory = (SiteModelFactory) this;

-			factory.parseSite(siteStream);

-

-			site = new SiteFTP(new URL("http://eclipse.org/" + FILE));

-			

-		} catch (MalformedURLException e) {

-			throw Utilities.newCoreException("Unable to create URL", e);

-		} catch (IOException e) {

-			throw Utilities.newCoreException("Unable to access URL",ISite.SITE_ACCESS_EXCEPTION, e);

-		} finally {

-			try {

-				if (siteStream != null)

-					siteStream.close();

-			} catch (Exception e) {

-			}

-		}

-		return site;

-	}

-

-	/*

-	 * @see SiteModelFactory#canParseSiteType(String)

-	 */

-	public boolean canParseSiteType(String type) {

-		return "org.eclipse.update.tests.core.ftp".equalsIgnoreCase(type);

-	}

-

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/AllMirrorTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/AllMirrorTests.java
deleted file mode 100644
index d699186..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/AllMirrorTests.java
+++ /dev/null
@@ -1,40 +0,0 @@
-
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.tests.mirror;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.update.tests.UpdateManagerTestCase;
-
-public class AllMirrorTests extends UpdateManagerTestCase {
-	
-	public AllMirrorTests(String name){
-		super(name);
-	}
-	
-	public static Test suite(){
-		TestSuite suite = new TestSuite();
-		suite.setName("Mirror Tests");
-		
-		// the following will take all the test methods in the class that starts with "test"
-		
-		suite.addTest(new TestSuite(TestRemoteFeatureVersionMirror.class));
-		suite.addTest(new TestSuite(TestRemoteEmbeddedFeatureMirror.class));
-		suite.addTest(new TestSuite(TestRemoteDoubleEmbeddedFeatureMirror.class));
-		
-		// or you can specify the method
-		//suite.addTest(new TestGetFeature("methodThatDoesNotStartWithtest"));
-		return suite;	
-	}
-
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/MirrorManagerTestCase.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/MirrorManagerTestCase.java
deleted file mode 100644
index d70e4d8..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/MirrorManagerTestCase.java
+++ /dev/null
@@ -1,464 +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 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.update.tests.mirror;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.internal.core.UpdateCore;
-import org.eclipse.update.tests.UpdateManagerTestCase;
-
-
-public class MirrorManagerTestCase extends UpdateManagerTestCase{
-	public static int exitValue=-1;
-	public static StringBuffer errOutput;
-	
-	public MirrorManagerTestCase(String arg0){
-		super(arg0);
-	}
-	
-	//WatchDog thread to kill mirroring process if it hangs (or takes too long)
-	public static class Timer extends Thread{
-		private Process proc;
-		
-		public Timer(Process proc){
-			super();
-			this.setDaemon(true);
-			this.proc = proc;
-		}
-		
-		public void run(){
-			try {
-				// Note: normal test on 2.2Ghz P4 is 2.9s 
-				//:. giving 100x leeway to complete process before killing it
-				sleep(300000); 
-				proc.destroy();
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-	}
-	
-	// structure to hold category definition names and descriptions
-	class CategoryDefinition {
-		private String name;
-		private String desc;
-		public void setName(String name) {
-			this.name = name;
-		}
-		public void setDesc(String desc) {
-			this.desc = desc;
-		}
-		public String getName() {
-			return name;
-		}
-		public String getDesc() {
-			return desc;
-		}
-	}
-	
-	// structure to hold feature IDs and their category names
-	public class FeatureCategory{
-		private String featureId;
-		private ArrayList category;
-		
-		public FeatureCategory(){
-			category = new ArrayList();
-		}
-		
-		public void setFeatureID(String fid){
-			featureId = fid;
-		}
-		
-		public void addCategory(String cat){
-			category.add(cat);
-		}
-		
-		public String getFeatureID(){
-			return featureId;
-		}
-		
-		public String[] getCategories(){
-			return (String[])category.toArray(new String[category.size()]);
-		}
-	}
-	
-	// StreamConsumer to display output to output files or console
-	public static class StreamConsumer extends Thread {
-		private BufferedReader bReader;
-
-		public StreamConsumer(InputStream inputStream) {
-			super();
-			setDaemon(true);
-			bReader = new BufferedReader(new InputStreamReader(inputStream));
-		}
-
-		public void run() {
-			try {
-				String line;
-				while (null != (line = bReader.readLine())) {
-					System.out.println(line);
-					errOutput.append(line);
-					errOutput.append("\n");
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-	
-	/**
-	 * Returns a string array consisting of commands and their arguments to
-	 * be run.
-	 * @param remoteLoc - path of remote site (site being mirrored)
-	 * @param toLocalSiteUrl - path of local site (new mirror site)
-	 * @param fid - feature id of featuring being mirror (optional - can be null)
-	 * @param ver - version of feature to be mirrored (optional - can be null)
-	 * @param mirUrl - directory location of policy.xml (optional - can be mull)
-	 * @return
-	 */
-	public String[] getCommand(
-		String remoteLoc,
-		String toLocalSiteUrl,
-		String fid,
-		String ver,
-		String mirUrl) {
-		final String classpath = "startup.jar";
-		final String launcher = "org.eclipse.core.launcher.Main";
-		final String command = "mirror";
-		final String application = "org.eclipse.update.core.standaloneUpdate";
-		final String FLAG_CP = "-cp";
-		final String FLAG_APP = "-application";
-		final String FLAG_CMD = "-command";
-		final String FLAG_FID = "-featureId";
-		final String FLAG_DATA = "-data";
-		final String FLAG_VERSION = "-version";
-		final String FLAG_FROM = "-from";
-		final String FLAG_TO = "-to";
-		final String FLAG_URL = "-mirrorURL";
-		final String FLAG_SPLASH = "-nosplash";
-		final String FLAG_CONSOLELOG = "-consolelog";
-		final String data =
-			UpdateCore.getPlugin().getStateLocation().toOSString();
-		String[] cmd =
-			new String[] {
-				getJavaVMPath(),
-				FLAG_CP,
-				classpath,
-				launcher,
-				FLAG_APP,
-				application,
-				FLAG_CMD,
-				command,
-				FLAG_FROM,
-				(remoteLoc !=null ? remoteLoc : ""),
-				FLAG_TO,
-				toLocalSiteUrl,
-				(fid != null ? FLAG_FID : ""),
-				(fid != null ? fid : ""),
-				(ver != null ? FLAG_VERSION : ""),
-				(ver != null ? ver : ""),
-				(mirUrl != null ? FLAG_URL : ""),
-				(mirUrl != null ? mirUrl : ""),
-				FLAG_SPLASH,
-				FLAG_DATA,
-				data,
-				FLAG_CONSOLELOG};
-		return cmd;
-	}
-	
-	public boolean checkFeatureInSiteXMLExists(String url, String fid, String ver){
-		File site = new File(url + "/site.xml");
-		assertTrue(site.exists());
-		BufferedReader breader;
-		FileReader freader;
-		String text = new String();
-		String jarName = fid + "_" + ver + ".jar";
-		String feature = "<feature url=\"" +
-			"features/" + jarName + 
-			"\" id=\"" + fid + 
-			"\" version=\"" + ver+"\">";
-		try {
-			freader = new FileReader(site);
-			breader = new BufferedReader(freader);
-		} catch (FileNotFoundException e) {
-			// would have been caught by assert above
-			return false;
-		}
-		try {
-			while ((text = breader.readLine()) != null) {
-				text = text.trim();
-				if (text.equals(feature)){
-					breader.close();
-					freader.close();
-					return true;
-				}
-			}
-
-			breader.close();
-			freader.close();
-			return false;
-		} catch (IOException e) {
-			e.printStackTrace();
-			return false;
-		}
-	}
-
-	public void checkSiteXML(String url) throws Exception {
-		File mirror = new File(url);
-		File site = new File(url + "/site.xml");
-		assertTrue(mirror.isDirectory());
-		assertTrue(mirror.exists());
-		assertTrue(site.exists());
-	}
-
-	public void checkPolicyXML(String url) throws Exception {
-		File mirror = new File(url);
-		File site = new File(url + "/policy.xml");
-		assertTrue(mirror.isDirectory());
-		assertTrue(mirror.exists());
-		assertTrue(site.exists());
-	}
-	public boolean checkPolicyURL(String url, String mirrorUrl){
-		File site = new File(url + "/policy.xml");
-		assertTrue(site.exists());
-		BufferedReader breader;
-		FileReader freader;
-		String text = new String();
-
-		try {
-			freader = new FileReader(site);
-			breader = new BufferedReader(freader);
-		} catch (FileNotFoundException e) {
-			// would have been caught by assert above
-			return false;
-		}
-
-		try {
-			while ((text = breader.readLine()) != null) {
-				if (text.indexOf(mirrorUrl)!=-1){
-					breader.close();
-					freader.close();	
-					return true;
-				}
-			}
-
-			breader.close();
-			freader.close();
-			return false;
-		} catch (IOException e) {
-			e.printStackTrace();
-			return false;
-		}
-	}
-
-	public boolean doesCategoryDefinitionExist(String url) {
-		File site = new File(url + "/site.xml");
-		assertTrue(site.exists());
-		BufferedReader breader;
-		FileReader freader;
-		String text = new String();
-
-		try {
-			freader = new FileReader(site);
-			breader = new BufferedReader(freader);
-		} catch (FileNotFoundException e) {
-			// would have been caught by assert above
-			return false;
-		}
-
-		try {
-			while ((text = breader.readLine()) != null) {
-				if (text.indexOf("category-def")!=-1)
-					return true;
-			}
-
-			breader.close();
-			freader.close();
-			return false;
-		} catch (IOException e) {
-			e.printStackTrace();
-			return false;
-		}
-
-	}
-	
-	public String getEclipseRoot() {
-		return ConfiguratorUtils.getInstallURL().toExternalForm().replaceFirst(
-			"file:",
-			"");
-	}
-	
-	public FeatureCategory[] getFeatureCategories(String url){
-		File site = new File(url + "/site.xml");
-		assertTrue(site.exists());
-		BufferedReader breader;
-		FileReader freader;
-		String text = new String();
-		ArrayList featureCategories = new ArrayList();
-		
-		try {
-			freader = new FileReader(site);
-			breader = new BufferedReader(freader);
-		} catch (FileNotFoundException e) {
-			// would have been caught by assert above
-			return new FeatureCategory[0];
-		}
-
-		try {
-			FeatureCategory currTok = new FeatureCategory();
-			boolean add = false;
-			while((text =breader.readLine())!=null){
-				StringTokenizer strTok = new StringTokenizer(text);
-				while (strTok.hasMoreTokens()){
-					String temp = strTok.nextToken();
-					if (temp.equals("</feature>")){
-						add = true;
-					} else if (temp.startsWith("id")){
-						currTok.setFeatureID(temp.split("\"")[1]);
-					} else if (temp.startsWith("name")){
-						currTok.addCategory(temp.split("\"")[1]);
-					}
-				}
-				if (add){
-					featureCategories.add(currTok);
-					currTok = new FeatureCategory();
-					add = false;
-				}
-			}
-
-			breader.close();
-			freader.close();
-			return (FeatureCategory[])featureCategories.toArray(new FeatureCategory[featureCategories.size()]);
-		} catch (IOException e) {
-			System.err.println(e);
-			return new FeatureCategory[0];
-		}
-	}
-	
-	public String getJavaVMPath() {
-		// Create command string for launching the process
-		String vm = System.getProperty("java.vm.name");
-		String executable = "J9".equals(vm) ? "j9" : "java";
-		if (org.eclipse.osgi.service.environment.Constants.OS_WIN32.equals(Platform.getOS()))
-			executable += "w.exe";
-
-		String javaInstallDir =
-			System.getProperty("java.home") + File.separator + "bin";
-		return javaInstallDir + File.separator + executable;
-	}
-	
-	public CategoryDefinition[] getCategoryDefinitions(String url) {
-		File site = new File(url + "/site.xml");
-		assertTrue(site.exists());
-		BufferedReader breader;
-		FileReader freader;
-		String text = new String();
-		ArrayList catDef = new ArrayList();
-
-		try {
-			freader = new FileReader(site);
-			breader = new BufferedReader(freader);
-		} catch (FileNotFoundException e) {
-			// would have been caught by assert above
-			return new CategoryDefinition[0];
-		}
-
-		try {
-			boolean add = false;
-			boolean isDesc = false;
-			CategoryDefinition temp = new CategoryDefinition();
-			while ((text = breader.readLine()) != null) {
-				if (text.trim().startsWith("<category-def")
-					&& text.indexOf("name") != -1) {
-					temp.setName(text.split("\"")[1]);
-					add = false;
-				} else if (text.trim().equals("<description>")) {
-					isDesc = true;
-				} else if (text.trim().equals("</description>")) {
-					isDesc = false;
-				} else if (isDesc) {
-					temp.setDesc(text.trim());
-				} else if (text.trim().equals("</category-def>")) {
-					add = true;
-				}
-				if (add) {
-					catDef.add(temp);
-					add = false;
-					temp = new CategoryDefinition();
-				}
-			}
-
-			breader.close();
-			freader.close();
-			return (CategoryDefinition[])catDef.toArray(new CategoryDefinition[catDef.size()]);
-		} catch (IOException e) {
-			System.err.println(e);
-			return new CategoryDefinition[0];
-		}
-
-	}
-	
-	public int performMirror(String[] cmd_mirror) {
-		File file = new File(getEclipseRoot());
-		try {
-			System.out.println("Launching:");
-			for(int i=0; i<cmd_mirror.length; i++){
-				System.out.print(cmd_mirror[i]+" ");
-			}
-			System.out.println();
-			Process proc =
-				Runtime.getRuntime().exec(cmd_mirror, (String[]) null, file);
-
-			StreamConsumer outputs = new StreamConsumer(proc.getInputStream());
-			outputs.start();
-			StreamConsumer errors = new StreamConsumer(proc.getErrorStream());
-			errors.start();
-			Timer timer = new Timer(proc);
-			timer.start();
-
-			return proc.waitFor();
-		} catch (IOException e) {
-			System.err.println(e);
-		} catch (InterruptedException e) {
-			System.err.println(e);
-		} catch (Exception e) {
-			System.err.println(e);
-		}
-		return -1;
-	}
-
-	// ensure exit without problems
-	public void testExitValue() throws Exception {
-		assertEquals(exitValue, 0);
-	}
-	
-	// ensure output string buffer ends with "Mirror command completed
-	// successfully."
-	// note: output may instead by "Command completed successfully."
-	public void testMirrorSuccess() throws Exception {
-		StringTokenizer tokenizer =
-			new StringTokenizer(
-				errOutput.toString(),
-				"\n");
-		String lastLine = new String();
-		while (tokenizer.hasMoreTokens()){
-			lastLine = tokenizer.nextToken();
-		}
-		assertTrue(
-			lastLine.equals("Mirror command completed successfully.")
-				|| lastLine.equals("Command completed successfully."));
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteDoubleEmbeddedFeatureMirror.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteDoubleEmbeddedFeatureMirror.java
deleted file mode 100644
index e4cad27..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteDoubleEmbeddedFeatureMirror.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.tests.mirror;
-
-import java.io.File;
-import java.util.ArrayList;
-
-import org.eclipse.update.tests.UpdateTestsPlugin;
-
-public class TestRemoteDoubleEmbeddedFeatureMirror extends MirrorManagerTestCase {
-	private static boolean isMirrored;
-
-	public TestRemoteDoubleEmbeddedFeatureMirror(String arg0) {
-		super(arg0);
-		errOutput = new StringBuffer();
-		isMirrored = false;
-	}
-
-	public void umSetUp() {
-		String featureId = "update.feature1c";
-		String version = "3.0.0";
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteDoubleEmbeddedFeatureMirror";
-		String mirrorURL = "http://update.eclipse.org/my-mirror-url";
-		// first mirror
-		String fromRemoteSiteUrl =
-			"file:"
-				+ dataPath
-				+ "mirrors/update-site1";
-		if (!isMirrored) {
-			exitValue =
-				performMirror(
-					getCommand(fromRemoteSiteUrl,toLocalSiteUrl, null, null, mirrorURL));
-		
-		// end of first mirror
-		fromRemoteSiteUrl =
-			"file:"
-			+ dataPath
-			+ "mirrors/update-site5";
-			exitValue =
-				performMirror(
-					getCommand(fromRemoteSiteUrl,toLocalSiteUrl, featureId, version, mirrorURL));
-			isMirrored = true;
-		}
-	}
-
-	// make sure each feature is under its correct category names
-	public void testFeatureCategories() throws Exception{
-		String fromRemoteSiteUrl =
-		        dataPath
-				+ "mirrors/update-site5";
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteDoubleEmbeddedFeatureMirror";
-		FeatureCategory[] mirrorFeatures = getFeatureCategories(toLocalSiteUrl);
-		FeatureCategory[] required = new FeatureCategory[1];
-		required[0] = new FeatureCategory();
-		required[0].setFeatureID("update.feature1c");
-		required[0].addCategory("Site5-Category1");
-		assertTrue(checkFeatureCategoriesContained(required, mirrorFeatures));
-	}
-	
-	// ensure exit without problems
-	public void testExitValue() throws Exception {
-		super.testExitValue();
-	}
-	
-	// ensure category definitions exist
-	public void testCategoryDefinitionsExist() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteDoubleEmbeddedFeatureMirror";
-		assertTrue(doesCategoryDefinitionExist(toLocalSiteUrl));
-	}
-
-	// ensure feature exists per site.xml
-	public void testFeatureInSiteXMLExists() {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteDoubleEmbeddedFeatureMirror";
-		String featureId = "update.feature1c";
-		String version = "3.0.0";
-		assertTrue(
-			checkFeatureInSiteXMLExists(toLocalSiteUrl, featureId, version));
-	}
-
-	// ensure site.xml is generated
-	public void testSiteXMLExists() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteDoubleEmbeddedFeatureMirror";
-		checkSiteXML(toLocalSiteUrl);
-	}
-
-	// ensure policy.xml is generated
-	public void testPolicyXMLExists() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteDoubleEmbeddedFeatureMirror";
-		checkPolicyXML(toLocalSiteUrl);
-	}
-
-	// ensure policy.xml references the correct mirrorURL
-	public void testPolicyURL() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteDoubleEmbeddedFeatureMirror";
-		String mirrorURL = "http://update.eclipse.org/my-mirror-url";
-		assertTrue(checkPolicyURL(toLocalSiteUrl, mirrorURL));
-	}
-
-	// ensure all jars in features directory mirrored
-	public void testAllFeatureJarsExist() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteDoubleEmbeddedFeatureMirror";
-		String[] featureJars = { "update.feature1b_2.0.0.jar" };
-		assertTrue(checkAllFeatureJars(toLocalSiteUrl, featureJars));
-	}
-
-	// ensure all jars in plugins directory mirrored
-	public void testAllPluginJarsExist() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteDoubleEmbeddedFeatureMirror";
-		String[] pluginJars =
-			{ "com.plugin1_1.0.0.jar", "com.plugin1a_1.0.1.jar" };
-		assertTrue(checkAllPluginJars(toLocalSiteUrl, pluginJars));
-	}
-
-	// ensure output string buffer ends with "Mirror command completed
-	// successfully."
-	// note: output may instead by "Command completed successfully."
-	public void testMirrorSuccess() throws Exception {
-		super.testMirrorSuccess();
-	}
-	
-	public boolean checkAllFeatureJars(String url, String[] jarNames) {
-		File featuresDir = new File(url + "/features");
-		assertTrue(featuresDir.exists());
-		assertTrue(featuresDir.isDirectory());
-		String[] list = featuresDir.list();
-
-		ArrayList ls = new ArrayList();
-		for (int i = 0; i < list.length; i++) {
-			ls.add(list[i]);
-		}
-
-		for (int j = 0; j < jarNames.length; j++) {
-			assertTrue(ls.contains(jarNames[j]));
-		}
-		return true;
-	}
-
-	public boolean checkAllPluginJars(String url, String[] jarNames) {
-		File pluginsDir = new File(url + "/plugins");
-		assertTrue(pluginsDir.exists());
-		assertTrue(pluginsDir.isDirectory());
-		String[] list = pluginsDir.list();
-
-		ArrayList ls = new ArrayList();
-		for (int i = 0; i < list.length; i++) {
-			ls.add(list[i]);
-		}
-
-		for (int j = 0; j < jarNames.length; j++) {
-			assertTrue(ls.contains(jarNames[j]));
-		}
-		return true;
-	}
-
-	public boolean checkFeatureCategoriesContained(FeatureCategory[] required,FeatureCategory[] localDefs){
-		boolean hasMatch;
-		for (int i = 0 ; i<required.length; i++){
-			hasMatch = false;
-			for (int j = 0; j<localDefs.length; j++){
-				if (localDefs[j].getFeatureID().equals(required[i].getFeatureID()) &&
-					checkCategoriesMatch(localDefs[j].getCategories(), required[i].getCategories())){
-						hasMatch = true;
-						j=localDefs.length;
-				}
-			}
-			if (!hasMatch)
-				return false;
-		}
-		return true;
-	}
-	
-	public boolean checkCategoriesMatch(String[] localCat, String[] remoteCat){
-		boolean hasMatch;
-		for (int i = 0; i<localCat.length; i++){
-			hasMatch = false;
-			for (int j = 0; j<remoteCat.length; i++){
-				if (localCat[i].equals(remoteCat[j])){
-					hasMatch = true;
-					j=remoteCat.length;
-				}
-			}
-			if(!hasMatch)
-				return false;
-		}
-		return true;
-	}
-
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteEmbeddedFeatureMirror.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteEmbeddedFeatureMirror.java
deleted file mode 100644
index 86ea260..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteEmbeddedFeatureMirror.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.tests.mirror;
-
-import java.io.File;
-import java.util.ArrayList;
-
-import org.eclipse.update.tests.UpdateTestsPlugin;
-
-public class TestRemoteEmbeddedFeatureMirror extends MirrorManagerTestCase {
-	private static boolean isMirrored;
-
-	public TestRemoteEmbeddedFeatureMirror(String arg0) {
-		super(arg0);
-		errOutput = new StringBuffer();
-		isMirrored = false;
-	}
-
-	public void umSetUp() {
-		String featureId = "update.feature1c";
-		String version = "3.0.0";
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteEmbeddedFeatureMirror";
-		String mirrorURL = "http://update.eclipse.org/my-mirror-url";
-		String fromRemoteSiteUrl =
-				"file:"
-				+ dataPath
-				+ "mirrors/update-site4";
-		if (!isMirrored) {
-			exitValue =
-				performMirror(
-					getCommand(fromRemoteSiteUrl,toLocalSiteUrl, featureId, version, mirrorURL));
-			isMirrored = true;
-		}
-	}
-
-	// ensure exit without problems
-	public void testExitValue() throws Exception {
-		super.testExitValue();
-	}
-
-	// ensure all category definitions exist
-	public void testCategoryDefinitionsExist() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteEmbeddedFeatureMirror";
-		assertTrue(doesCategoryDefinitionExist(toLocalSiteUrl));
-	}
-
-	public void testFeatureInSiteXMLExists() {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteEmbeddedFeatureMirror";
-		String featureId = "update.feature1c";
-		String version = "3.0.0";
-		assertTrue(
-			checkFeatureInSiteXMLExists(toLocalSiteUrl, featureId, version));
-	}
-
-	// ensure site.xml is generated
-	public void testSiteXMLExists() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteEmbeddedFeatureMirror";
-		checkSiteXML(toLocalSiteUrl);
-	}
-
-	// ensure policy.xml is generated
-	public void testPolicyXMLExists() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteEmbeddedFeatureMirror";
-		checkPolicyXML(toLocalSiteUrl);
-	}
-
-	// ensure policy.xml uses the correct mirrorURL
-	public void testPolicyURL() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteEmbeddedFeatureMirror";
-		String mirrorURL = "http://update.eclipse.org/my-mirror-url";
-		assertTrue(checkPolicyURL(toLocalSiteUrl, mirrorURL));
-	}
-
-	// ensure all jars in features directory mirrored
-	public void testAllFeatureJarsExist() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteEmbeddedFeatureMirror";
-		String[] featureJars = { "update.feature1_1.0.0.jar", "update.feature1_1.0.1.jar", "update.feature1b_2.0.0.jar", "update.feature1c_3.0.0.jar" };
-		assertTrue(checkAllFeatureJars(toLocalSiteUrl, featureJars));
-	}
-
-	// ensure all jars in plugins directory mirrored
-	public void testAllPluginJarsExist() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteEmbeddedFeatureMirror";
-		String[] pluginJars =
-			{ "com.plugin1_1.0.0.jar", "com.plugin1a_1.0.1.jar" };
-		assertTrue(checkAllPluginJars(toLocalSiteUrl, pluginJars));
-	}
-
-	// ensure output string buffer ends with "Mirror command completed
-	// successfully."
-	// note: output may instead by "Command completed successfully."
-	public void testMirrorSuccess() throws Exception {
-		super.testMirrorSuccess();
-	}
-
-	public boolean checkAllFeatureJars(String url, String[] jarNames) {
-		File featuresDir = new File(url + "/features");
-		assertTrue(featuresDir.exists());
-		assertTrue(featuresDir.isDirectory());
-		String[] list = featuresDir.list();
-
-		ArrayList ls = new ArrayList();
-		for (int i = 0; i < list.length; i++) {
-			ls.add(list[i]);
-		}
-
-		assertEquals(list.length, jarNames.length);
-		for (int j = 0; j < jarNames.length; j++) {
-			assertTrue(ls.contains(jarNames[j]));
-		}
-		return true;
-	}
-
-	public boolean checkAllPluginJars(String url, String[] jarNames) {
-		File pluginsDir = new File(url + "/plugins");
-		assertTrue(pluginsDir.exists());
-		assertTrue(pluginsDir.isDirectory());
-		String[] list = pluginsDir.list();
-
-		ArrayList ls = new ArrayList();
-		for (int i = 0; i < list.length; i++) {
-			ls.add(list[i]);
-		}
-
-		assertEquals(list.length, jarNames.length);
-		for (int j = 0; j < jarNames.length; j++) {
-			assertTrue(ls.contains(jarNames[j]));
-		}
-		return true;
-	}
-
-	public boolean checkCategoryDefinitionsContained(CategoryDefinition[] localDefs, CategoryDefinition[] remoteDefs){
-		boolean hasMatch;
-		for (int i = 0 ; i<localDefs.length; i++){
-			hasMatch = false;
-			for (int j = 0; j<remoteDefs.length; j++){
-				if (localDefs[i].getName().equals(remoteDefs[j].getName())
-						&& localDefs[i].getDesc().equals(remoteDefs[j].getDesc()))
-					hasMatch = true;
-			}
-			if (!hasMatch)
-				return false;
-		}
-		return true;
-	}
-	
-
-
-	// start testing category definitions
-	public void testCategoryDefinitions() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteEmbeddedFeatureMirror";
-		String fromRemoteSiteUrl =
-		        dataPath
-				+ "mirrors/update-site4";
-		CategoryDefinition[] localDefs = getCategoryDefinitions(toLocalSiteUrl);
-		CategoryDefinition[] remoteDefs = getCategoryDefinitions(fromRemoteSiteUrl);
-		assertTrue(checkCategoryDefinitionsContained(localDefs, remoteDefs));
-	}
-
-
-
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteFeatureVersionMirror.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteFeatureVersionMirror.java
deleted file mode 100644
index f3a0b25..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteFeatureVersionMirror.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.tests.mirror;
-
-import java.io.File;
-
-import org.eclipse.update.tests.UpdateTestsPlugin;
-
-public class TestRemoteFeatureVersionMirror extends MirrorManagerTestCase {
-	private static boolean isMirrored;
-	
-	public TestRemoteFeatureVersionMirror(String arg0) {
-		super(arg0);
-		errOutput = new StringBuffer();
-		isMirrored = false;
-	}
-
-	public void umSetUp() {
-		String featureId = "update.feature1";
-		String version = "1.0.0";
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteFeatureVersionMirror";
-		String mirrorURL = "http://update.eclipse.org/my-mirror-url";
-		String fromRemoteSiteUrl = "file:" + dataPath + "mirrors/update-site1";
-		if (!isMirrored) {
-			exitValue =
-				performMirror(
-					getCommand(fromRemoteSiteUrl,toLocalSiteUrl, featureId, version, mirrorURL));
-			isMirrored = true;
-		}
-	}
-
-	// ensure exit without problems
-	public void testExitValue() throws Exception {
-		super.testExitValue();
-	}
-
-	// ensure all category definitions exist
-	public void testCategoryDefinitionsExist() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteFeatureVersionMirror";
-		assertTrue(doesCategoryDefinitionExist(toLocalSiteUrl));
-	}
-
-	// ensure feature exists per site.xml
-	public void testFeatureInSiteXMLExists(){
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteFeatureVersionMirror";
-		String featureId = "update.feature1";
-		String version = "1.0.0";
-		assertTrue(checkFeatureInSiteXMLExists(toLocalSiteUrl, featureId, version));
-	}
-	
-	// ensure site.xml is generated
-	public void testSiteXMLExists() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteFeatureVersionMirror";
-		checkSiteXML(toLocalSiteUrl);
-	}
-
-	// ensure policy.xml is generated
-	public void testPolicyXMLExists() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteFeatureVersionMirror";
-		checkPolicyXML(toLocalSiteUrl);
-	}
-	
-	// ensure policy.xml uses the correct mirrorURL
-	public void testPolicyURL() throws Exception{
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteFeatureVersionMirror";
-		String mirrorURL = "http://update.eclipse.org/my-mirror-url";
-		assertTrue(checkPolicyURL(toLocalSiteUrl, mirrorURL));
-	}
-
-	// ensure all jars for features and plugins mirrored
-	public void testAllJarsExist() throws Exception {
-		String toLocalSiteUrl =
-			UpdateTestsPlugin.getPlugin().getStateLocation()
-				+ "/temp/testRemoteFeatureVersionMirror";
-		String featureId = "update.feature1";
-		String version = "1.0.0";
-		String jarName = featureId + "_" + version + ".jar";
-		File file = new File(toLocalSiteUrl + "/features/" + jarName);
-		assertTrue(file.exists());
-	}
-
-	// ensure output string buffer ends with "Mirror command completed
-	// successfully."
-	// note: output may instead by "Command completed successfully."
-	public void testMirrorSuccess() throws Exception {
-		super.testMirrorSuccess();
-	}
-
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/AllModelTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/AllModelTests.java
deleted file mode 100644
index dad8de5..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/AllModelTests.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.model;

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-/**

- * Manages the API tests

- */

-public class AllModelTests extends UpdateManagerTestCase {

-	/**

-	 * Constructor

-	 */

-	public AllModelTests(String name) {

-		super(name);

-	}

-	

-	/**

-	 * List of API tests

-	 */

-	public static Test suite() throws Exception {

-		TestSuite suite = new TestSuite();

-		suite.setName("Model Tests");

-

-		suite.addTest(new TestSuite(FeatureMain.class));

-		suite.addTest(new TestSuite(SiteMain.class));		

-

-		return suite;

-	}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/FeatureMain.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/FeatureMain.java
deleted file mode 100644
index 803b5bb..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/FeatureMain.java
+++ /dev/null
@@ -1,183 +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 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.update.tests.model;

-

-import java.io.*;

-import java.net.URL;

-import java.util.ResourceBundle;

-

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class FeatureMain extends UpdateManagerTestCase {

-

-	public FeatureMain(String testcase){

-		super(testcase);

-	}

-

-	public void testMain() throws Exception {

-		

-		FeatureModelFactory factory = new FeatureModelFactory();

-		InputStream is = null;

-		FeatureModel feature = null;

-		

-		System.out.println("Parsing feature ...");

-		try {

-			is = FeatureMain.class.getResourceAsStream("feature.xml");		

-			feature = factory.parseFeature(is);

-		} finally {

-			if (is != null) {

-				try { is.close();} catch(IOException e) {}

-			}

-		}

-		

-		String base = "http://another.server/feature.xml";

-		System.out.println("Resolving feature using "+base+" ...");

-		ResourceBundle bundle = null;

-		bundle = ResourceBundle.getBundle("org/eclipse/update/tests/model/test");

-		feature.resolve(new URL(base), new URL(base));

-	}

-	

-//	private static void writeFeature(PrintWriter w, int level, FeatureModel feature) {

-//		if (feature == null) return;

-//		

-//		String in = getIndent(level);

-//		w.println(in+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

-//		

-//		w.println(in+"<feature");

-//		w.println(in+"   "+"id=\""+feature.getFeatureIdentifier()+"\"");

-//		w.println(in+"   "+"version=\""+feature.getFeatureVersion()+"\"");

-//		w.println(in+"   "+"label=\""+feature.getLabel()+"\"");

-//		w.println(in+"   "+"provider-name=\""+feature.getProvider()+"\"");

-//		w.println(in+"   "+"image=\""+feature.getImageURLString()+"\" -> "+feature.getImageURL());

-//		w.println(in+"   "+"os=\""+feature.getOS()+"\"");

-//		w.println(in+"   "+"ws=\""+feature.getWS()+"\"");

-//		w.println(in+"   "+"nl=\""+feature.getNL()+"\"");

-//		w.println(in+"   "+"application=\""+feature.getApplication()+"\"");

-//		w.println(in+"   "+">");

-//		

-//		writeDescription(w, level+1, feature.getDescriptionModel());

-//		writeCopyright(w, level+1, feature.getCopyrightModel());

-//		writeLicense(w, level+1, feature.getLicenseModel());

-//		writeURLs(w, level+1, feature);

-//		writePrereqs(w, level+1, feature);

-//		writePluginEntries(w, level+1, feature);

-//		writeNonPluginEntries(w, level+1, feature);

-//		         

-//        w.println(in+"</feature>");

-//	}

-//	

-//	private static void writeDescription(PrintWriter w, int level, URLEntryModel ue) {

-//		String in = getIndent(level);

-//		w.println("");

-//		w.println(in+"<description url=\""+ue.getURLString()+"\" -> "+ue.getURL()+">");

-//		w.println(in+ue.getAnnotation());

-//		w.println(in+"</description>");

-//	}

-//	

-//	private static void writeCopyright(PrintWriter w, int level, URLEntryModel ue) {

-//		String in = getIndent(level);

-//		w.println("");

-//		w.println(in+"<copyright url=\""+ue.getURLString()+"\" -> "+ue.getURL()+">");

-//		w.println(in+ue.getAnnotation());

-//		w.println(in+"</copyright>");

-//	}

-//	

-//	private static void writeLicense(PrintWriter w, int level, URLEntryModel ue) {

-//		String in = getIndent(level);

-//		w.println("");

-//		w.println(in+"<license url=\""+ue.getURLString()+"\" -> "+ue.getURL()+">");

-//		w.println(in+ue.getAnnotation());

-//		w.println(in+"</license>");

-//	}

-//	

-//	private static void writeURLs(PrintWriter w, int level, FeatureModel feature) {

-//		String in = getIndent(level);

-//		String in2 = getIndent(level+1);

-//		w.println("");

-//		w.println(in+"<url>");

-//		

-//		URLEntryModel update = feature.getUpdateSiteEntryModel();

-//		w.println(in2+"<update");

-//		w.println(in2+"   "+"url=\""+update.getURLString()+"\" -> "+update.getURL());

-//		w.println(in2+"   "+"label=\""+update.getAnnotation()+"\"");

-//		w.println(in2+"   "+"/>");

-//		

-//		URLEntryModel[] discovery = feature.getDiscoverySiteEntryModels();

-//		for (int i=0; i<discovery.length; i++) {

-//			w.println(in2+"<discovery");

-//			w.println(in2+"   "+"url=\""+discovery[i].getURLString()+"\" -> "+discovery[i].getURL());

-//			w.println(in2+"   "+"label=\""+discovery[i].getAnnotation()+"\"");

-//			w.println(in2+"   "+"/>");

-//		}

-//		

-//		w.println(in+"</url>");

-//	}

-//	

-//	private static void writePrereqs(PrintWriter w, int level, FeatureModel feature) {

-//		String in = getIndent(level);

-//		String in2 = getIndent(level+1);

-//		w.println("");

-//		w.println(in+"<requires>");

-//		

-//		ImportModel[] imp = feature.getImportModels();

-//		for (int i=0; i<imp.length; i++) {

-//			w.println(in2+"<import");

-//			w.println(in2+"   "+"plugin=\""+imp[i].getIdentifier()+"\"");

-//			w.println(in2+"   "+"version=\""+imp[i].getVersion()+"\"");

-//			w.println(in2+"   "+"match=\""+imp[i].getMatchingRuleName()+"\"");

-//			w.println(in2+"   "+"/>");

-//		}

-//		

-//		w.println(in+"</requires>");

-//	}

-//	

-//	private static void writePluginEntries(PrintWriter w, int level, FeatureModel feature) {

-//		String in = getIndent(level);

-//		w.println("");

-//		

-//		PluginEntryModel[] plugin = feature.getPluginEntryModels();

-//		for (int i=0; i<plugin.length; i++) {

-//			w.println(in+"<plugin");

-//			w.println(in+"   "+"id=\""+plugin[i].getPluginIdentifier()+"\"");

-//			w.println(in+"   "+"version=\""+plugin[i].getPluginVersion()+"\"");

-//			w.println(in+"   "+"fragment=\""+plugin[i].isFragment()+"\"");

-//			w.println(in+"   "+"os=\""+plugin[i].getOS()+"\"");

-//			w.println(in+"   "+"ws=\""+plugin[i].getWS()+"\"");

-//			w.println(in+"   "+"nl=\""+plugin[i].getNL()+"\"");

-//			w.println(in+"   "+"download-size=\""+plugin[i].getDownloadSize()+"\"");

-//			w.println(in+"   "+"install-size=\""+plugin[i].getInstallSize()+"\"");

-//			w.println(in+"   "+"/>");

-//		}

-//	}

-//	

-//	private static void writeNonPluginEntries(PrintWriter w, int level, FeatureModel feature) {

-//		String in = getIndent(level);

-//		w.println("");

-//		

-//		NonPluginEntryModel[] data = feature.getNonPluginEntryModels();

-//		for (int i=0; i<data.length; i++) {

-//			w.println(in+"<data");

-//			w.println(in+"   "+"id=\""+data[i].getIdentifier()+"\"");

-//			w.println(in+"   "+"download-size=\""+data[i].getDownloadSize()+"\"");

-//			w.println(in+"   "+"install-size=\""+data[i].getInstallSize()+"\"");

-//			w.println(in+"   "+"/>");

-//		}

-//	}

-//	

-//	

-//	private static String getIndent(int level) {

-//		String indent = "";

-//		for (int i=0; i<level; i++) 

-//			indent += "   ";

-//		return indent;

-//	}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/SiteMain.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/SiteMain.java
deleted file mode 100644
index cc49bf2..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/SiteMain.java
+++ /dev/null
@@ -1,158 +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 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.update.tests.model;

-

-import java.io.*;

-import java.net.URL;

-

-import org.eclipse.update.core.SiteFeatureReferenceModel;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class SiteMain extends UpdateManagerTestCase {

-	

-	public SiteMain(String name){

-		super(name);

-	}

-

-	public void testMain() throws Exception {

-		

-		StringWriter strWriter=new StringWriter();

-		PrintWriter w = new PrintWriter(strWriter);

-

-		process("site_old_format.xml",w);

-		process("site.xml",w);

-		try {

-			process("site_with_type.xml",w);

-			fail("InvalidSiteTypeException not thrown");

-		} catch (InvalidSiteTypeException e) {

-			assertEquals(e.getNewType(),"some.other.site.type");

-		} finally {

-			System.out.println(strWriter);

-			w.close();

-		}

-	}

-	

-	private static void process(String xml, PrintWriter w) throws Exception {

-		

-		SiteModelFactory factory = new SiteModelFactory();

-		InputStream is = null;

-		SiteModel site = null;

-		

-		w.println("");

-		w.println("Parsing site map ...");

-		try {

-			is = SiteMain.class.getResourceAsStream(xml);		

-			site = factory.parseSite(is);

-		}  finally {

-			if (is != null) {

-				try { is.close();} catch(IOException e) {}

-			}

-		}

-		

-		if (site == null) return;

-		

-		String base = "http://another.server/site.xml";

-		w.println("Resolving site using "+base+" ...");

-		site.resolve(new URL(base), null);

-		

-		w.println("Writing site ...");

-		writeSite(w,0,site);

-	}

-	

-	private static void writeSite(PrintWriter w, int level, SiteModel site) {

-		if (site == null) return;

-		

-		String in = getIndent(level);

-		w.println(in+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

-		

-		w.println(in+"<site");

-		w.println(in+"   "+"type=\""+site.getType()+"\"");

-		w.println(in+"   "+">");

-		

-		writeDescription(w, level+1, site.getDescriptionModel());

-		writeFeatures(w, level+1, site);

-		writeArchives(w, level+1, site);

-		writeCategoryDefs(w, level+1, site);

-         

-        w.println(in+"</feature>");

-	}

-	

-	private static void writeDescription(PrintWriter w, int level, URLEntryModel ue) {

-		if (ue == null) return;

-		String in = getIndent(level);

-		w.println("");

-		w.println(in+"<description url=\""+ue.getURLString()+"\" -> "+ue.getURL()+">");

-		w.println(in+ue.getAnnotation());

-		w.println(in+"</description>");

-	}

-	

-	private static void writeFeatures(PrintWriter w, int level, SiteModel site) {

-		String in = getIndent(level);

-		getIndent(level+1);

-		w.println("");

-		

-		SiteFeatureReferenceModel[] features = site.getFeatureReferenceModels();

-		for (int i=0; i<features.length; i++) {

-			w.println(in+"<feature");

-			w.println(in+"   "+"type=\""+features[i].getType()+"\"");

-			w.println(in+"   "+"url=\""+features[i].getURLString()+"\" -> "+features[i].getURL());

-			w.println(in+"   "+">");

-			writeCategories(w, level+1, features[i]);

-			w.println(in+"</feature>");

-		}

-	}

-	

-	private static void writeArchives(PrintWriter w, int level, SiteModel site) {

-		String in = getIndent(level);

-		w.println("");

-		

-		ArchiveReferenceModel[] archive = site.getArchiveReferenceModels();

-		for (int i=0; i<archive.length; i++) {

-			w.println(in+"<archive");

-			w.println(in+"   "+"path=\""+archive[i].getPath()+"\"");

-			w.println(in+"   "+"url=\""+archive[i].getURLString()+"\" -> "+archive[i].getURL());

-			w.println(in+"   "+"/>");

-		}

-	}

-	

-	private static void writeCategoryDefs(PrintWriter w, int level, SiteModel site) {

-		String in = getIndent(level);

-		getIndent(level+1);

-		w.println("");

-		

-		CategoryModel[] cat = site.getCategoryModels();

-		for (int i=0; i<cat.length; i++) {

-			w.println(in+"<category-def");

-			w.println(in+"   "+"name=\""+cat[i].getName()+"\"");

-			w.println(in+"   "+"label=\""+cat[i].getLabel()+"\"");

-			w.println(in+"   "+">");

-			writeDescription(w, level+1, cat[i].getDescriptionModel());

-			w.println(in+"</category-def>");

-		}

-	}

-	

-	private static void writeCategories(PrintWriter w, int level, SiteFeatureReferenceModel feature) {

-		String in = getIndent(level);

-		String[] cat = feature.getCategoryNames();

-		for (int i=0; i<cat.length; i++) {

-			w.println(in+"<category name=\""+cat[i]+"\"");

-		}

-	}

-	

-	private static String getIndent(int level) {

-		String indent = "";

-		for (int i=0; i<level; i++) 

-			indent += "   ";

-		return indent;

-	}

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/feature.xml b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/feature.xml
deleted file mode 100644
index 1db9650..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/feature.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-

-<feature id="my.feature" version="3.7.1" label="%s1" provider-name="VK Inc."

-         image="images/feature.gif" os="Win32" ws="Win32" nl="en_CA,en_US"

-         application="org.eclipse.ui.workbench">

-

-   <install-handler url="install/handler.html" library="custom.jar" class="InstallHandler"/>

-   

-   <description url="http://www.tools.com/features/my.feature">

-      Description of my.feature

-   </description>

-   

-   <copyright url="copyright/my.feature">

-      Copyright for my.feature

-   </copyright>

-   

-   <license url="%url1">

-      License for my.feature

-   </license>

-   

-   <url>

-      <update url="http://www.tools.com/update" label="Update site"/>

-      <discovery url="http://www.tools.com/discovery1" label="%s2"/>

-      <discovery url="%url2" label="%s3 Discovery site 2"/>

-      <discovery url="%url3 http://www.tools.com/discovery3" label="Discovery site 3"/>

-   </url>

-   

-   <requires>

-      <import plugin="plugin.1" version="1.0.0" match="perfect"/>

-      <import plugin="plugin.2" version="3.2.0"/>

-      <import plugin="plugin.3"/>

-   </requires>

-   

-   <plugin id="my.plugin.1" version="1.0.0" fragment="true"

-           os="Win32" ws="Win32" nl="en_US" download-size="23456" install-size="1234567"/>

-   <plugin id="my.plugin.2" version="1.0.1"/>

-   <plugin id="my.plugin.3" version="1.0.2"/>

-   

-   <data id="examples.zip" download-size="23456" install-size="1234567"/>

-   <data id="custom/rt.jar"/>

-

-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site.xml b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site.xml
deleted file mode 100644
index 7516f26..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-

-<site>

-

-   <description url="http://www.tools.com/updateSite">

-      Site description

-   </description>

-

-   <feature type="my.feature.type" url="feature1.jar">

-      <category name="tools"/>

-      <category name="utilities"/>

-      <category name="windows.tools"/>

-   </feature>

-   

-   <feature type="" url="file:/feature2.jar">

-      <category name="utilities"/>

-   </feature>

-   

-   

-   <archive path="first/archive" url="archive1.jar"/>

-   <archive path="second/archive" url="archive2.jar"/>

-   

-   <category-def name="tools" label="Development Tools">

-      <description url="http://www.tools.com/tools">

-         This is description for tools

-      </description>

-   </category-def>

-   

-   <category-def name="utilities" label="Utilities">

-      <description url="tools.html"/>/

-   </category-def>

-   

-   <category-def name="windows.tools" label="Windows Development Tools"/>

-

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site_old_format.xml b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site_old_format.xml
deleted file mode 100644
index dd10ef7..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site_old_format.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-

-<site url="www.tools.com/updateSite">

-

-   <feature type="my.feature.type" url="feature1.jar">

-      <category name="tools"/>

-      <category name="utilities"/>

-      <category name="windows.tools"/>

-   </feature>

-   

-   <feature type="" url="feature2.jar">

-      <category name="utilities"/>

-   </feature>

-  

-   <archive path="first/archive" url="archive1.jar"/>

-   <archive path="second/archive" url="archive2.jar"/>

-   

-   <category-def name="tools" label="Development Tools">

-      <description url="http://www.tools.com/tools">

-         This is description for tools

-      </description>

-   </category-def>

-   

-   <category-def name="utilities" label="Utilities">

-      <description url="utilities.html"/>

-   </category-def>

-   

-   <category-def name="windows.tools" label="Windows Development Tools"/>

-

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site_with_type.xml b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site_with_type.xml
deleted file mode 100644
index 2ee3a3f..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site_with_type.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-

-<site url="http://www.tools.com/updateSite" type="some.other.site.type">

-

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/test.properties b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/test.properties
deleted file mode 100644
index 4201818..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/test.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2003 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

-###############################################################################

-s1 = String 1

-s2 = String 2

-url1 = relative/index.html

-url2 = http://some.server/tools.html

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nativeTests/TestLocalSystemInfo.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nativeTests/TestLocalSystemInfo.java
deleted file mode 100644
index ffcccbd..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nativeTests/TestLocalSystemInfo.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.tests.nativeTests;
-import java.io.File;
-
-import org.eclipse.update.configuration.IVolume;
-import org.eclipse.update.configuration.LocalSystemInfo;
-import org.eclipse.update.tests.UpdateManagerTestCase;
-
-public class TestLocalSystemInfo extends UpdateManagerTestCase {
-
-	/**
-	 * Test the natives
-	 */
-	public TestLocalSystemInfo(String arg0) {
-		super(arg0);
-	}
-
-	public void testNative() throws Exception {
-	
-		// mount point
-       IVolume[] a = LocalSystemInfo.getVolumes();
-        if (a==null) throw new Exception("cannot find native library");
-		System.out.println("Found "+a.length+" mount points.");
-		for (int i =0; i<a.length;i++){
-			System.out.print("#"+i+" - "+a[i]);
-			
-			File root = a[i].getFile();
-			String label = a[i].getLabel();
-			if (label==null) label="NO LABEL";
-			int type = a[i].getType();
-			long size = LocalSystemInfo.getFreeSpace(root);
-			System.out.println(" ->:"+label+":"+getType(type)+":"+getSize(size));
-		}
-	}
-	
-	private String getType(int type){
-		switch (type) {
-			case LocalSystemInfo.VOLUME_FIXED :
-				return "VOLUME FIXED";
-			case LocalSystemInfo.VOLUME_REMOTE :
-				return "VOLUME REMOTE";
-			case LocalSystemInfo.VOLUME_REMOVABLE :
-				return "VOLUME REMOVABLE";
-			case LocalSystemInfo.VOLUME_CDROM :
-				return "VOLUME CDROM";				
-			case LocalSystemInfo.VOLUME_UNKNOWN :
-				return "VOLUME UNKNOWN";
-			default :
-				return "WRONG VOLUME INFO";
-		}
-	}
-	
-	private String getSize(long size){
-		if (size==LocalSystemInfo.SIZE_UNKNOWN) return "UNKNOWN SIZE";
-		
-		long kb = size/(1024*1024);
-		return new String(size+" ("+kb+"MB)");
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nestedfeatures/AllNestedTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nestedfeatures/AllNestedTests.java
deleted file mode 100644
index dc233c0..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nestedfeatures/AllNestedTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.tests.nestedfeatures;
-import org.eclipse.update.tests.UpdateManagerTestCase;
-import junit.framework.*;
-
-public class AllNestedTests extends UpdateManagerTestCase {
-public AllNestedTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	TestSuite suite = new TestSuite();
-	suite.setName("Nested Install Tests");
-	
-	// the following will take all teh test methods in teh class that start with 'test'
-
-	suite.addTest(new TestSuite(TestInstall.class));
-
-	// or you can specify the method
-	//suite.addTest(new TestGetFeature("methodThatDoesNotStartWithtest"));	
-	
-	return suite;
-}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nestedfeatures/TestInstall.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nestedfeatures/TestInstall.java
deleted file mode 100644
index b4f5070..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nestedfeatures/TestInstall.java
+++ /dev/null
@@ -1,301 +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 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.update.tests.nestedfeatures;
-import java.io.File;
-import java.net.URL;
-
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.tests.UpdateManagerTestCase;
-
-public class TestInstall extends UpdateManagerTestCase {
-
-	/**
-	 * Constructor for Test1
-	 */
-	public TestInstall(String arg0) {
-		super(arg0);
-	}
-
-	public void testFileSite() throws Exception {
-		
-		//cleanup target 
-		File target = new File(TARGET_FILE_SITE.getFile());
-		UpdateManagerUtils.removeFromFileSystem(target);		
-		InstallRegistry.cleanup();
-		
-
-		ISite remoteSite =
-			SiteManager.getSite(new URL(SOURCE_FILE_SITE, "nestedFeatureSiteTest/site.xml"),null);
-		IFeature remoteFeature = remoteSite.getFeatureReferences()[0].getFeature(null);
-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,null);
-		localSite.install(remoteFeature, null, null);
-
-		// verify root Feature
-		String site = localSite.getURL().getFile();
-		IPluginEntry[] entries = remoteFeature.getPluginEntries();
-		assertTrue("no plugins entry", (entries != null && entries.length != 0));
-		String pluginName = entries[0].getVersionedIdentifier().toString();
-		File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);
-		assertTrue(
-			"plugin files not installed locally:" + pluginFile,
-			pluginFile.exists());
-		File pluginXMLFile =
-			new File(
-				site,
-				Site.DEFAULT_PLUGIN_PATH + pluginName + File.separator + "plugin.xml");
-		assertTrue("plugin.xml file not installed locally", pluginXMLFile.exists());
-
-		File featureFile =
-			new File(
-				site,
-				Site.DEFAULT_INSTALLED_FEATURE_PATH
-					+ remoteFeature.getVersionedIdentifier().toString());
-		assertTrue(
-			"feature info not installed locally:" + featureFile,
-			featureFile.exists());
-
-		// clean plugins & feature
-		for (int i = 0; i < entries.length; i++) {
-			pluginName = entries[i].getVersionedIdentifier().toString();
-			pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);
-			UpdateManagerUtils.removeFromFileSystem(pluginFile);
-			InstallRegistry.unregisterPlugin(entries[i]);
-		}
-		UpdateManagerUtils.removeFromFileSystem(featureFile);
-
-		// verify child Feature
-		IFeature childFeature =
-			remoteFeature.getIncludedFeatureReferences()[0].getFeature(null);
-		entries = childFeature.getPluginEntries();
-		assertTrue("no plugins entry", (entries != null && entries.length != 0));
-		pluginName = entries[0].getVersionedIdentifier().toString();
-		pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);
-		assertTrue(
-			"plugin files not installed locally:" + pluginFile,
-			pluginFile.exists());
-		pluginXMLFile =
-			new File(
-				site,
-				Site.DEFAULT_PLUGIN_PATH + pluginName + File.separator + "plugin.xml");
-		assertTrue("plugin.xml file not installed locally", pluginXMLFile.exists());
-
-		featureFile =
-			new File(
-				site,
-				Site.DEFAULT_INSTALLED_FEATURE_PATH
-					+ childFeature.getVersionedIdentifier().toString());
-		assertTrue(
-			"feature info not installed locally:" + featureFile,
-			featureFile.exists());
-
-		// clean plugins
-		for (int i = 0; i < entries.length; i++) {
-			pluginName = entries[0].getVersionedIdentifier().toString();
-			pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);
-			UpdateManagerUtils.removeFromFileSystem(pluginFile);
-		}
-
-		// clean features
-		UpdateManagerUtils.removeFromFileSystem(featureFile);
-		UpdateManagerUtils.removeFromFileSystem(new File(localSite.getURL().getFile()));
-		InstallRegistry.cleanup();
-	}
-
-	/**
-	 * 
-	 */
-	public void testHTTPSite() throws Exception {
-
-		ISite remoteSite =
-			SiteManager.getSite(new URL(SOURCE_HTTP_SITE, "nestedFeatureSiteTest/"),null);
-		IFeatureReference[] features = remoteSite.getFeatureReferences();
-		IFeature remoteFeature = null;
-
-		if (features == null || features.length == 0)
-			fail("No features on the site");
-
-		for (int i = 0; i < features.length; i++) {
-			if (features[i].getURL().toExternalForm().endsWith("rootfeature.jar")) {
-				remoteFeature = features[i].getFeature(null);
-				break;
-			}
-		}
-
-		assertNotNull("Cannot find rootfeature.jar on site", remoteFeature);
-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,null);
-		localSite.install(remoteFeature, null, null);
-
-		// rootfeature.jar should not be in the local site
-		IFeatureReference[] localFeatures = localSite.getFeatureReferences();
-		if (localFeatures == null || localFeatures.length == 0)
-			fail("No features on the target site");
-
-		boolean found = false;
-		for (int i = 0; i < localFeatures.length; i++) {
-			if (localFeatures[i].getURL().toExternalForm().endsWith("rootfeature.jar")) {
-				found = true;
-				break;
-			}
-		}
-
-		assertTrue(
-			"Found rootfeature.jar on target site. Target site feature ref shouldnot contain JAR file",
-			!found);
-
-		// check root
-		String site = localSite.getURL().getFile();
-		IPluginEntry[] entries = remoteFeature.getPluginEntries();
-		assertTrue("no plugins entry", (entries != null && entries.length != 0));
-
-		String pluginName = entries[0].getVersionedIdentifier().toString();
-		File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);
-		assertTrue(
-			"plugin files not installed locally:" + pluginFile,
-			pluginFile.exists());		
-		File pluginXMLFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName+ File.separator + "plugin.xml");
-		assertTrue(
-			"plugin info not installed locally:" + pluginXMLFile,
-			pluginXMLFile.exists());
-
-		File featureFile =
-			new File(
-				site,
-				Site.DEFAULT_INSTALLED_FEATURE_PATH
-					+ remoteFeature.getVersionedIdentifier().toString());
-		assertTrue("feature info not installed locally", featureFile.exists());
-
-		// clean plugins & feature
-		for (int i = 0; i < entries.length; i++) {
-			pluginName = entries[i].getVersionedIdentifier().toString();
-			pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);
-			UpdateManagerUtils.removeFromFileSystem(pluginFile);
-			InstallRegistry.unregisterPlugin(entries[i]);
-		}
-		UpdateManagerUtils.removeFromFileSystem(featureFile);
-
-		// verify child Feature
-		IFeature childFeature =
-			remoteFeature.getIncludedFeatureReferences()[0].getFeature(null);
-		entries = childFeature.getPluginEntries();
-		assertTrue("no plugins entry", (entries != null && entries.length != 0));
-		pluginName = entries[0].getVersionedIdentifier().toString();
-		pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);
-		assertTrue(
-			"plugin files not installed locally:" + pluginFile,
-			pluginFile.exists());
-		pluginXMLFile =
-			new File(
-				site,
-				Site.DEFAULT_PLUGIN_PATH + pluginName + File.separator + "plugin.xml");
-		assertTrue("plugin.xml file not installed locally", pluginXMLFile.exists());
-
-		featureFile =
-			new File(
-				site,
-				Site.DEFAULT_INSTALLED_FEATURE_PATH
-					+ childFeature.getVersionedIdentifier().toString());
-		assertTrue(
-			"feature info not installed locally:" + featureFile,
-			featureFile.exists());
-
-		// clean plugins
-		for (int i = 0; i < entries.length; i++) {
-			pluginName = entries[0].getVersionedIdentifier().toString();
-			pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);
-			UpdateManagerUtils.removeFromFileSystem(pluginFile);
-		}
-
-		// clean features
-		UpdateManagerUtils.removeFromFileSystem(featureFile);
-		UpdateManagerUtils.removeFromFileSystem(new File(localSite.getURL().getFile()));
-	}
-
-//	public void testInstall() throws Exception {
-//
-//		// cleanup local files...
-//		URL localURL = ((SiteLocal) SiteManager.getLocalSite()).getLocationURL();
-//		File localFile = new File(localURL.getFile());
-//		UpdateManagerUtils.removeFromFileSystem(localFile);
-//		InstallRegistry.cleanup();
-//
-//		URL INSTALL_SITE = null;
-//		try {
-//			INSTALL_SITE = new URL(SOURCE_FILE_SITE, "nestedFeatureSiteTest/site.xml");
-//		} catch (Exception e) {
-//			fail(e.toString());
-//			e.printStackTrace();
-//		}
-//
-//		ISite remoteSite = SiteManager.getSite(INSTALL_SITE,null);
-//		IFeatureReference[] features = remoteSite.getFeatureReferences();
-//		IFeature remoteFeature = null;
-//
-//		if (features == null || features.length == 0)
-//			fail("No features on the site");
-//
-//		for (int i = 0; i < features.length; i++) {
-//			if (features[i].getURL().toExternalForm().endsWith("rootfeature.jar")) {
-//				remoteFeature = features[i].getFeature(null);
-//				break;
-//			}
-//		}
-//
-//		assertNotNull("Cannot find rootfeature.jar on site", remoteFeature);
-//		ILocalSite localSite = SiteManager.getLocalSite();
-//		IConfiguredSite site =
-//			localSite.getCurrentConfiguration().getConfiguredSites()[0];
-//
-//		((ConfiguredSite)site).setUpdatable(true);
-//		site.install(remoteFeature, null, null);
-//
-//		IPluginEntry[] entries = remoteFeature.getPluginEntries();
-//		assertTrue("no plugins entry", (entries != null && entries.length != 0));
-//
-//		String sitePath = site.getSite().getURL().getFile();
-//		String pluginName = entries[0].getVersionedIdentifier().toString();
-//		File pluginFile = new File(sitePath, Site.DEFAULT_PLUGIN_PATH + pluginName);
-//		assertTrue("plugin info not installed locally"+pluginFile, pluginFile.exists());
-//
-//		File featureFile =
-//			new File(
-//				sitePath,
-//				Site.DEFAULT_INSTALLED_FEATURE_PATH
-//					+ remoteFeature.getVersionedIdentifier().toString());
-//		assertTrue("feature info not installed locally", featureFile.exists());
-//
-//		//cleanup
-//		File file =
-//			new File(
-//				site.getSite().getURL().getFile()
-//					+ File.separator
-//					+ Site.DEFAULT_INSTALLED_FEATURE_PATH
-//					+ remoteFeature.getVersionedIdentifier());
-//		// clean plugins
-//		for (int i = 0; i < entries.length; i++) {
-//			pluginName = entries[0].getVersionedIdentifier().toString();
-//			pluginFile =
-//				new File(
-//					site.getSite().getURL().getFile(),
-//					Site.DEFAULT_PLUGIN_PATH + pluginName);
-//			UpdateManagerUtils.removeFromFileSystem(pluginFile);
-//		}
-//
-//		UpdateManagerUtils.removeFromFileSystem(file);
-//		UpdateManagerUtils.removeFromFileSystem(pluginFile);
-//		UpdateManagerUtils.removeFromFileSystem(localFile);
-//		UpdateManagerUtils.removeFromFileSystem(
-//			new File(
-//				((InstallConfiguration) localSite.getCurrentConfiguration())
-//					.getURL()
-//					.getFile()));
-//	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/AllParserTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/AllParserTests.java
deleted file mode 100644
index 4cc01a9..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/AllParserTests.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.parser;

-

-import org.eclipse.update.tests.UpdateManagerTestCase;

-import junit.framework.*;

-

-

-public class AllParserTests extends UpdateManagerTestCase {

-public AllParserTests(String name) {

-	super(name);

-}

-public static Test suite() {

-	TestSuite suite = new TestSuite();

-	suite.setName("Parsing Tests");

-	

-	// the following will take all teh test methods in teh class that start with 'test'

-	suite.addTest(new TestSuite(TestFeatureParse.class));

-	suite.addTest(new TestSuite(TestSiteParse.class));	

-	suite.addTest(new TestSuite(TestCategories.class));		

-	

-	// or you can specify the method

-	//suite.addTest(new TestGetFeature("methodThatDoesNotStartWithtest"));	

-	

-	return suite;

-}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestCategories.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestCategories.java
deleted file mode 100644
index 8a2566c..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestCategories.java
+++ /dev/null
@@ -1,62 +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 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.update.tests.parser;

-import java.net.URL;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestCategories extends UpdateManagerTestCase {

-	/**

-	 * Constructor for Test1

-	 */

-	public TestCategories(String arg0) {

-		super(arg0);

-	}

-

-	public void testCategories() throws Exception {

-

-		URL remoteUrl = new URL(SOURCE_FILE_SITE + "xmls/site1/");

-		ISite remoteSite = SiteManager.getSite(remoteUrl,null);

-

-		ISiteFeatureReference[] feature = remoteSite.getFeatureReferences();

-		//ICategory[] categories = remoteSite.getCategories();

-

-		ICategory featureCategory = feature[0].getCategories()[0];

-

-		assertEquals("UML tools", featureCategory.getLabel());

-

-	}

-

-	public void testOrderedCategories() throws Exception {

-

-		URL remoteUrl = new URL(SOURCE_FILE_SITE + "xmls/site1/");

-		ISite remoteSite = SiteManager.getSite(remoteUrl,null);

-

-		ICategory[] categories = remoteSite.getCategories();

-		for (int i = 0; i < categories.length; i++) {

-			System.out.println("Cat ordered->" + categories[i].getName());

-		}

-

-		assertEquals("Eclipse tools", categories[1].getLabel());

-

-	}

-

-	public void testTranslatedCategories() throws Exception {

-

-		ISite remoteSite = SiteManager.getSite(SOURCE_HTTP_SITE,null);

-

-		ICategory[] categories = remoteSite.getCategories();

-

-		assertEquals("Required Drivers", categories[0].getLabel());

-

-	}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestFeatureParse.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestFeatureParse.java
deleted file mode 100644
index 665980f..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestFeatureParse.java
+++ /dev/null
@@ -1,132 +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 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.update.tests.parser;

-

-import java.net.URL;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.DefaultFeatureParser;

-import org.eclipse.update.core.model.FeatureModel;

-import org.eclipse.update.core.model.URLEntryModel;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-import org.xml.sax.SAXParseException;

-

-public class TestFeatureParse extends UpdateManagerTestCase {

-

-	/**

-	 * Constructor for Test1

-	 */

-	public TestFeatureParse(String arg0) {

-		super(arg0);

-	}

-

-	public void testParse() throws Exception {

-

-		String xmlFile = "xmls/feature_1.0.0/";

-		ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE, null);

-		URL url = UpdateManagerUtils.getURL(remoteSite.getURL(), xmlFile, null);

-

-		SiteFeatureReference ref = new SiteFeatureReference();

-		ref.setSite(remoteSite);

-		ref.setURL(url);

-		IFeature feature = ref.getFeature(null);

-

-		String prov = feature.getProvider();

-		assertEquals("Object Technology International", prov);

-

-	}

-

-	public void testParseValid1() throws Exception {

-

-		try {

-			URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/feature1.xml");

-			DefaultFeatureParser parser = new DefaultFeatureParser();

-			parser.init(new FeatureExecutableFactory());

-			URL resolvedURL = URLEncoder.encode(remoteURL);

-			FeatureModel remoteFeature = parser.parse(resolvedURL.openStream());

-			remoteFeature.resolve(remoteURL, null);

-

-		} catch (SAXParseException e) {

-			fail("Exception should NOT be thrown");

-		}

-	}

-

-	public void testParseValid1bis() throws Exception {

-

-		try {

-			URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/feature1bis.xml");

-			DefaultFeatureParser parser = new DefaultFeatureParser();

-			parser.init(new FeatureExecutableFactory());

-			URL resolvedURL = URLEncoder.encode(remoteURL);

-			FeatureModel remoteFeature = parser.parse(resolvedURL.openStream());

-			remoteFeature.resolve(remoteURL, null);

-

-		} catch (SAXParseException e) {

-			fail("Exception should NOT be thrown");

-		}

-	}

-

-	public void testParseValid2() throws Exception {

-

-		try {

-			URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/feature2.xml");

-			DefaultFeatureParser parser = new DefaultFeatureParser();

-			parser.init(new FeatureExecutableFactory());

-			URL resolvedURL = URLEncoder.encode(remoteURL);

-			FeatureModel remoteFeature = parser.parse(resolvedURL.openStream());

-			remoteFeature.resolve(remoteURL, null);

-

-		} catch (SAXParseException e) {

-			fail("Exception should not be thrown" + e.getMessage());

-		}

-	}

-

-	public void testParseValid3() throws Exception {

-

-		try {

-			URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/feature3.xml");

-			DefaultFeatureParser parser = new DefaultFeatureParser();

-			parser.init(new FeatureExecutableFactory());

-			URL resolvedURL = URLEncoder.encode(remoteURL);

-			FeatureModel remoteFeature = parser.parse(resolvedURL.openStream());

-			remoteFeature.resolve(remoteURL, null);

-

-			String copyrightString = remoteFeature.getCopyrightModel().getURL().getFile();

-			boolean resolved = copyrightString.indexOf(SiteManager.getOS()) != -1;

-			assertTrue("Copyright URL not resolved:" + copyrightString, resolved);

-		} catch (SAXParseException e) {

-			fail("Exception should not be thrown" + e.getMessage());

-		}

-	}

-

-	// parse type

-	public void testParseValid4() throws Exception {

-

-		try {

-			URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/feature4.xml");

-			DefaultFeatureParser parser = new DefaultFeatureParser();

-			parser.init(new FeatureExecutableFactory());

-			URL resolvedURL = URLEncoder.encode(remoteURL);

-			FeatureModel remoteFeature = parser.parse(resolvedURL.openStream());

-			remoteFeature.resolve(remoteURL, null);

-

-			URLEntryModel[] models = remoteFeature.getDiscoverySiteEntryModels();

-			assertTrue("Discovery model is not a Web Model", models[0].getType()==IURLEntry.WEB_SITE);

-			URLEntryModel copyright = remoteFeature.getCopyrightModel();

-			assertTrue("Copyright model is not an Update Model", copyright.getType()==IURLEntry.UPDATE_SITE);

-			

-		} catch (SAXParseException e) {

-			fail("Exception should not be thrown" + e.getMessage());

-		}

-	}

-

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestSiteParse.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestSiteParse.java
deleted file mode 100644
index 1a970a0..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestSiteParse.java
+++ /dev/null
@@ -1,288 +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 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.update.tests.parser;

-

-import java.io.File;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.core.SiteFileFactory;

-import org.eclipse.update.internal.core.URLEncoder;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-import org.xml.sax.SAXParseException;

-

-public class TestSiteParse extends UpdateManagerTestCase {

-

-	/**

-	 * Constructor for Test1

-	 */

-	public TestSiteParse(String arg0) {

-		super(arg0);

-	}

-

-	public void testParse() throws Exception {

-

-		URL remoteUrl = new URL(SOURCE_FILE_SITE + "xmls/site1/");

-		ISite remoteSite = SiteManager.getSite(remoteUrl,null);

-

-		//IFeatureReference[] feature = remoteSite.getFeatureReferences();

-		//ICategory[] categories = remoteSite.getCategories();

-

-		String path = remoteUrl.getFile();

-		String path2 = remoteSite.getDescription().getURL().getFile();

-		assertEquals(new File(path + "index.html"), new File(path2));

-

-	}

-

-	public void testNumberOfFeatures() throws Exception {

-

-		URL remoteURL = new URL("http", getHttpHost(), getHttpPort(), bundle.getString("HTTP_PATH_2"));

-		ISite remoteSite = SiteManager.getSite(remoteURL,null);

-

-		IFeatureReference[] feature = remoteSite.getFeatureReferences();

-		assertEquals(feature.length, 2);

-

-	}

-

-	public void testParseValid1() throws Exception {

-

-		URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/site.xml");

-		DefaultSiteParser parser = new DefaultSiteParser();

-		parser.init(new SiteFileFactory());

-		URL resolvedURL = URLEncoder.encode(remoteURL);

-		SiteModel remoteSite = parser.parse(resolvedURL.openStream());

-		remoteSite.resolve(remoteURL, null);

-

-		FeatureReferenceModel[] feature = remoteSite.getFeatureReferenceModels();

-		CategoryModel[] categories = remoteSite.getCategoryModels();

-		ArchiveReferenceModel[] archives = remoteSite.getArchiveReferenceModels();

-

-		assertTrue("Wrong number of features", feature.length == 6);

-		assertTrue("Wrong number of categories", categories.length == 3);

-		assertTrue("Wrong number of archives", archives.length == 0);

-

-		String path = new URL(SOURCE_FILE_SITE + "parsertests/").getFile();

-		String path2 = remoteSite.getDescriptionModel().getURL().getFile();

-		assertEquals(path + "index.html", path2);

-

-	}

-

-	public void testParseValid2() throws Exception {

-

-		URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/reddot.xml");

-		DefaultSiteParser parser = new DefaultSiteParser();

-		parser.init(new SiteFileFactory());

-		URL resolvedURL = URLEncoder.encode(remoteURL);

-		SiteModel remoteSite = parser.parse(resolvedURL.openStream());

-		remoteSite.resolve(remoteURL, null);

-

-		FeatureReferenceModel[] feature = remoteSite.getFeatureReferenceModels();

-		CategoryModel[] categories = remoteSite.getCategoryModels();

-		ArchiveReferenceModel[] archives = remoteSite.getArchiveReferenceModels();

-

-		assertTrue("Wrong number of features", feature.length == 2);

-		assertTrue("Wrong number of categories", categories.length == 1);

-		assertTrue("Wrong number of archives", archives.length == 2);

-

-		String valideString = "This category contains all of the <currently> available versions of Red Dot feature. <greeting>Hello, world!</greeting>";

-		assertEquals(valideString, remoteSite.getCategoryModels()[0].getDescriptionModel().getAnnotation());

-

-		String path = new URL(SOURCE_FILE_SITE + "parsertests/").getFile();

-		String path2 = remoteSite.getDescriptionModel().getURL().getFile();

-		assertEquals(path + "index.html", path2);

-

-	}

-

-	public void testParseValid3() throws Exception {

-

-		URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/reddot1.xml");

-		DefaultSiteParser parser = new DefaultSiteParser();

-		parser.init(new SiteFileFactory());

-		URL resolvedURL = URLEncoder.encode(remoteURL);

-		SiteModel remoteSite = parser.parse(resolvedURL.openStream());

-		remoteSite.resolve(remoteURL, null);

-

-		FeatureReferenceModel[] feature = remoteSite.getFeatureReferenceModels();

-		CategoryModel[] categories = remoteSite.getCategoryModels();

-		ArchiveReferenceModel[] archives = remoteSite.getArchiveReferenceModels();

-

-		assertTrue("Wrong number of features", feature.length == 2);

-		assertTrue("Wrong number of categories", categories.length == 1);

-		assertTrue("Wrong number of archives", archives.length == 2);

-

-		String valideString = "This category contains all of the <currently> available versions of Red Dot feature.";

-		assertEquals(valideString, remoteSite.getCategoryModels()[0].getDescriptionModel().getAnnotation());

-

-		String path = new URL(SOURCE_FILE_SITE + "parsertests/").getFile();

-		String path2 = remoteSite.getDescriptionModel().getURL().getFile();

-		assertEquals(path + "index.html", path2);

-

-	}

-

-	public void testParseValid4() throws Exception {

-

-		URL remoteURL = new URL(SOURCE_FILE_SITE + "SiteURLTest/data/site.xml");

-		DefaultSiteParser parser = new DefaultSiteParser();

-		parser.init(new SiteFileFactory());

-		URL resolvedURL = URLEncoder.encode(remoteURL);

-		SiteModel remoteSite = parser.parse(resolvedURL.openStream());

-		remoteSite.resolve(remoteURL, null);

-

-		FeatureReferenceModel[] feature = remoteSite.getFeatureReferenceModels();

-		//CategoryModel[] categories = remoteSite.getCategoryModels();

-		ArchiveReferenceModel[] archives = remoteSite.getArchiveReferenceModels();

-

-		assertTrue("Wrong number of features", feature.length == 2);

-		assertTrue("Wrong number of archives", archives.length == 3);

-

-		URL path1 = new URL(SOURCE_FILE_SITE + "SiteURLTest/data/artifacts/features/helpFeature.jar");

-		URL url1 = feature[0].getURL();

-		assertEquals(path1, url1);

-		URL path2 = new URL(SOURCE_FILE_SITE + "SiteURLTest/data/artifacts/plugins/help.jar");

-		assertEquals(path2, archives[0].getURL());

-

-		String path = new URL(SOURCE_FILE_SITE + "SiteURLTest/data/info/").getFile();

-		String path3 = remoteSite.getDescriptionModel().getURL().getFile();

-		assertEquals(path + "siteInfo.html", path3);

-

-	}

-

-	public void testParseValid5() throws Exception {

-

-		URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/site2.xml");

-		DefaultSiteParser parser = new DefaultSiteParser();

-		parser.init(new SiteFileFactory());

-		URL resolvedURL = URLEncoder.encode(remoteURL);

-		SiteModel remoteSite = parser.parse(resolvedURL.openStream());

-		remoteSite.resolve(remoteURL, null);

-

-		FeatureReferenceModel[] featureRef = remoteSite.getFeatureReferenceModels();

-		//CategoryModel[] categories = remoteSite.getCategoryModels();

-		ArchiveReferenceModel[] archives = remoteSite.getArchiveReferenceModels();

-

-		assertTrue("Wrong number of features", featureRef.length == 1);

-		assertTrue("Wrong number of archives", archives.length == 0);

-

-		try {

-			((FeatureReference) featureRef[0]).getFeature(null);

-		} catch (CoreException e) {

-			Throwable e1 = e.getStatus().getException();

-			if (e1.getMessage().indexOf("not-eclipse") == -1) {

-				throw e;

-			}

-		}

-	}

-

-	public void testParseValid6() throws Exception {

-

-		URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/site4.xml");

-		DefaultSiteParser parser = new DefaultSiteParser();

-		parser.init(new SiteFileFactory());

-		URL resolvedURL = URLEncoder.encode(remoteURL);

-		SiteModel remoteSite = parser.parse(resolvedURL.openStream());

-		remoteSite.resolve(remoteURL, null);

-

-		FeatureReferenceModel[] featureRef = remoteSite.getFeatureReferenceModels();

-		//CategoryModel[] categories = remoteSite.getCategoryModels();

-		ArchiveReferenceModel[] archives = remoteSite.getArchiveReferenceModels();

-

-		assertTrue("Wrong number of features", featureRef.length == 2);

-		assertTrue("Wrong number of archives", archives.length == 0);

-

-		try {

-			((FeatureReference) featureRef[0]).getFeature(null);

-		} catch (CoreException e) {

-			Throwable e1 = e.getStatus().getException();

-			String msg = e1.getMessage().replace(File.separatorChar, '/');

-			if (msg.indexOf("_1.0.0.jar/feature.xml") == -1) {

-				throw e;

-			}

-		}

-	}

-

-	public void testParseUnknownCategory() throws Exception {

-

-		URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/site3.xml");

-		DefaultSiteParser parser = new DefaultSiteParser();

-		parser.init(new SiteFileFactory());

-		URL resolvedURL = URLEncoder.encode(remoteURL);

-		SiteModel remoteSite = parser.parse(resolvedURL.openStream());

-		remoteSite.resolve(remoteURL, null);

-

-		FeatureReferenceModel[] featureRef = remoteSite.getFeatureReferenceModels();

-		ICategory[] categories = ((SiteFeatureReference) featureRef[0]).getCategories();

-		assertTrue(categories.length == 0);

-	}

-

-	public void testParseValid7() throws Exception {

-

-		try {

-			URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/site7.xml");

-			DefaultSiteParser parser = new DefaultSiteParser();

-			parser.init(new SiteFileFactory());

-			URL resolvedURL = URLEncoder.encode(remoteURL);

-			SiteModel remoteSite = parser.parse(resolvedURL.openStream());

-			remoteSite.resolve(remoteURL, null);

-

-		} catch (SAXParseException e) {

-			fail("Exception should not be thrown" + e.getMessage());

-		}

-	}

-

-	public void testParseValid8() throws Exception {

-

-		try {

-			URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/site8.xml");

-			DefaultSiteParser parser = new DefaultSiteParser();

-			parser.init(new SiteFileFactory());

-			URL resolvedURL = URLEncoder.encode(remoteURL);

-			SiteModel remoteSite = parser.parse(resolvedURL.openStream());

-			remoteSite.resolve(remoteURL, null);

-

-		} catch (SAXParseException e) {

-			fail("Exception should not be thrown" + e.getMessage());

-		}

-	}

-

-	public void testParseValid9() throws Exception {

-

-		try {

-			URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/site9.xml");

-			DefaultSiteParser parser = new DefaultSiteParser();

-			parser.init(new SiteFileFactory());

-			URL resolvedURL = URLEncoder.encode(remoteURL);

-			SiteModel remoteSite = parser.parse(resolvedURL.openStream());

-			remoteSite.resolve(remoteURL, null);

-		} catch (SAXParseException e) {

-			fail("Exception should not be thrown" + e.getMessage());

-		}

-	}

-

-	public void testParseValid10() throws Exception {

-

-		SiteModel remoteSite = null;

-		try {

-			URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/site10.xml");

-			DefaultSiteParser parser = new DefaultSiteParser();

-			parser.init(new SiteFileFactory());

-			URL resolvedURL = URLEncoder.encode(remoteURL);

-			remoteSite = parser.parse(resolvedURL.openStream());

-			remoteSite.resolve(remoteURL, null);

-		} catch (SAXParseException e) {

-			fail("Exception should not be thrown" + e.getMessage());

-		}

-		FeatureReferenceModel[] models = remoteSite.getFeatureReferenceModels();

-		assertEquals("Invalid versioned identifier", models[0].getFeatureIdentifier(), "org.eclipse.test.feature");

-	}

-

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/perfms/AllPerformanceTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/perfms/AllPerformanceTests.java
deleted file mode 100644
index e669b7d..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/perfms/AllPerformanceTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.tests.perfms;
-
-import org.eclipse.update.tests.UpdateManagerTestCase;
-import junit.framework.*;
-
-
-public class AllPerformanceTests extends UpdateManagerTestCase {
-public AllPerformanceTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	TestSuite suite = new TestSuite();
-	suite.setName("Update Performance Tests");
-	
-	// the following will take all teh test methods in the class that start with 'test'
-	suite.addTest(new TestSuite(TestStartup.class));
-	return suite;
-}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/perfms/TestStartup.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/perfms/TestStartup.java
deleted file mode 100644
index cf2d9e1..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/perfms/TestStartup.java
+++ /dev/null
@@ -1,76 +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 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.update.tests.perfms;
-//import java.net.*;
-
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.internal.configurator.*;
-import org.eclipse.test.performance.*;
-import org.eclipse.update.tests.*;
-
-
-
-public class TestStartup extends UpdateManagerTestCase {
-	public TestStartup(String arg0) {
-		super(arg0);
-	}
-	
-
-	public void testConfigurationCreation() {
-		Performance perf= Performance.getDefault();
-		PerformanceMeter performanceMeter= perf.createPerformanceMeter(perf.getDefaultScenarioId(this));
-		perf.tagAsGlobalSummary(performanceMeter, "Configuration creation", Dimension.ELAPSED_PROCESS);
-		
-		try {
-			for (int i= 0; i < 10; i++) {
-				performanceMeter.start();
-				try {
-					URL platformXml = new URL("file", "",dataPath + "/" + "perf/platform.xml");
-					IPlatformConfiguration config = new PlatformConfigurationFactory().getPlatformConfiguration(platformXml);
-				} catch (IOException e) {
-					System.out.println("Cannot create configuration for performance measurement");
-				}
-				performanceMeter.stop();
-	 		}
-			performanceMeter.commit();
-			perf.assertPerformance(performanceMeter);
-	 	} finally {
-			performanceMeter.dispose();
-	 	}
-	}
-	
-	public void testConfigurationDetection() {
-		Performance perf= Performance.getDefault();
-		PerformanceMeter performanceMeter= perf.createPerformanceMeter(perf.getDefaultScenarioId(this));
-		perf.tagAsGlobalSummary(performanceMeter, "Configuration detection", Dimension.ELAPSED_PROCESS);
-
-		try {
-			for (int i= 0; i < 10; i++) {
-				performanceMeter.start();
-				try {
-					URL siteURL = new URL("file", "",dataPath + "/" + "perf/eclipse");
-					SiteEntry site = new SiteEntry(siteURL);
-					site.loadFromDisk(0);
-				} catch (Exception e) {
-					System.out.println("Cannot create site entry for performance measurement");
-				}
-				performanceMeter.stop();
-	 		}
-			performanceMeter.commit();
-			perf.assertPerformance(performanceMeter);
-	 	} finally {
-			performanceMeter.dispose();
-	 	}
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/reconciliation/AllReconciliationTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/reconciliation/AllReconciliationTests.java
deleted file mode 100644
index 8b9d17a..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/reconciliation/AllReconciliationTests.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.tests.reconciliation;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.update.tests.UpdateManagerTestCase;
-
-/**
- * Manages the API tests
- */
-public class AllReconciliationTests extends UpdateManagerTestCase {
-	/**
-	 * Constructor
-	 */
-	public AllReconciliationTests(String name) {
-		super(name);
-	}
-	
-	/**
-	 * List of API tests
-	 */
-	public static Test suite() throws Exception {
-		TestSuite suite = new TestSuite();
-		suite.setName("API Tests");
-
-
-		suite.addTest(new TestSuite(TestSiteReconciliation.class));
-
-		return suite;
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/reconciliation/TestSiteReconciliation.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/reconciliation/TestSiteReconciliation.java
deleted file mode 100644
index 8b1b0e1..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/reconciliation/TestSiteReconciliation.java
+++ /dev/null
@@ -1,169 +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 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.update.tests.reconciliation;
-import java.io.*;
-import java.net.*;
-
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.configurator.IPlatformConfiguration;
-import org.eclipse.update.configurator.IPlatformConfiguration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.tests.*;
-
-public class TestSiteReconciliation extends UpdateManagerTestCase {
-	
-
-	
-
-	/**
-	 * Test the getFeatures()
-	 */
-	public TestSiteReconciliation(String arg0) {
-		super(arg0);
-	}
-
-	private void addConfigSite(int policy, URL url,String[] listOfPlugins) throws Exception {
-		String xmlFile = ((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile();
-		UpdateManagerUtils.removeFromFileSystem(new File(xmlFile));		
-		InternalSiteManager.localSite=null;
-		// get new config object
-		IPlatformConfiguration cfig = ConfiguratorUtils.getCurrentPlatformConfiguration();
-		ISitePolicy p1 = cfig.createSitePolicy(policy, listOfPlugins);	
-		ISiteEntry s1 = cfig.createSiteEntry(url,p1);
-		cfig.configureSite(s1);	
-	}
-	
-	private void removeConfigSite(URL url) throws Exception {
-		// get new config object
-		IPlatformConfiguration cfig = ConfiguratorUtils.getCurrentPlatformConfiguration();
-		ISiteEntry s1 = cfig.findConfiguredSite(url);
-		assertNotNull("Unable to find site entry:"+url,s1);
-		cfig.unconfigureSite(s1);
-		cfig.save();
-	}	
-	/**
-	 * Site 1 contains a feature which needs a plugin taht is not on the path when we start
-	 * it will never be configured
-	 */
-	public void testNewSiteInclude1() throws Exception {
-	
-		int policy  = ISitePolicy.USER_INCLUDE;
-		URL url = new URL("file",null,dataPath+"reconciliationSites/site1/");
-		String[] plugins = new String[]{};
-		addConfigSite(policy,url, plugins);
-
-		ILocalSite local = SiteManager.getLocalSite();
-		((SiteLocal)local).setStamp(0);
-		IConfiguredSite[] newSites = local.getCurrentConfiguration().getConfiguredSites();
-		IConfiguredSite newSite = null;
-		for (int i = 0; i < newSites.length; i++) {
-			if (UpdateManagerUtils.sameURL(newSites[i].getSite().getURL(),url)){
-				newSite = newSites[i];
-			}
-		}
-		
-		if (newSite==null) fail("Site not found in configuration");
-		
-		IFeatureReference[] ref = newSite.getConfiguredFeatures();
-		assertEquals("Wrong number of configured features",0,ref.length);		
-		ref = ((ConfiguredSite)newSite).getConfigurationPolicy().getUnconfiguredFeatures();
-		assertEquals("Wrong number of unconfigured features",0,ref.length);		
-		
-		removeConfigSite(url);
-	}
-
-	public void testNewSiteExclude1() throws Exception {
-		
-		int policy  = ISitePolicy.USER_EXCLUDE;
-		URL url = new URL("file",null,dataPath+"reconciliationSites/site1/");
-		String[] plugins = new String[]{};
-		addConfigSite(policy,url, plugins);
-		
-		ILocalSite local = SiteManager.getLocalSite();
-		((SiteLocal)local).setStamp(0);		
-		IConfiguredSite[] newSites = local.getCurrentConfiguration().getConfiguredSites();
-		IConfiguredSite newSite = null;
-		for (int i = 0; i < newSites.length; i++) {
-			if (UpdateManagerUtils.sameURL(newSites[i].getSite().getURL(),url)){
-				newSite = newSites[i];
-			}
-		}
-		
-		if (newSite==null) fail("Site not found in configuration");
-		
-		IFeatureReference[] ref = newSite.getConfiguredFeatures();
-		assertEquals("Wrong number of configured features",0,ref.length);		
-		ref = ((ConfiguredSite)newSite).getConfigurationPolicy().getUnconfiguredFeatures();
-		assertEquals("Wrong number of unconfigured features",0,ref.length);				
-		removeConfigSite(url);
-	}
-
-	/**
-	 * Site 2 contains a feature which needs a plugin taht is on the path when we start
-	 * it will be configured
-	 */
-	public void testNewSiteInclude2() throws Exception {
-		
-		int policy  = ISitePolicy.USER_INCLUDE;
-		URL url = new URL("file",null,dataPath+"reconciliationSites/site2/");
-		String[] plugins = new String[]{};
-		addConfigSite(policy,url, plugins);
-		ILocalSite local = SiteManager.getLocalSite();
-		((SiteLocal)local).setStamp(0);		
-		IConfiguredSite[] newSites = local.getCurrentConfiguration().getConfiguredSites();
-		IConfiguredSite newSite = null;
-		for (int i = 0; i < newSites.length; i++) {
-			if (UpdateManagerUtils.sameURL(newSites[i].getSite().getURL(),url)){
-				newSite = newSites[i];
-			}
-		}
-		
-		if (newSite==null) fail("Site not found in configuration");
-		
-		IFeatureReference[] ref = newSite.getConfiguredFeatures();
-		assertEquals("Wrong number of configured features",0,ref.length);
-		ref = ((ConfiguredSite)newSite).getConfigurationPolicy().getUnconfiguredFeatures();
-		assertEquals("Wrong number of unconfigured features",0,ref.length);
-		
-		removeConfigSite(url);
-	}
-
-
-
-	public void testNewSiteExclude2() throws Exception {
-		
-		int policy  = ISitePolicy.USER_EXCLUDE;
-		URL url = new URL("file",null,dataPath+"reconciliationSites/site2/");
-		String[] plugins = new String[]{};
-		addConfigSite(policy,url, plugins);
-		ILocalSite local = SiteManager.getLocalSite();
-		((SiteLocal)local).setStamp(0);		
-		IConfiguredSite[] newSites = local.getCurrentConfiguration().getConfiguredSites();
-		IConfiguredSite newSite = null;
-		for (int i = 0; i < newSites.length; i++) {
-			if (UpdateManagerUtils.sameURL(newSites[i].getSite().getURL(),url)){
-				newSite = newSites[i];
-			}
-		}
-		
-		if (newSite==null) fail("Site not found in configuration");
-		
-		IFeatureReference[] ref = newSite.getConfiguredFeatures();
-		assertEquals("Wrong number of configured features",0,ref.length);
-		ref = ((ConfiguredSite)newSite).getConfigurationPolicy().getUnconfiguredFeatures();
-		assertEquals("Wrong number of unconfigured features",0,ref.length);
-
-		removeConfigSite(url);
-	}
-}
-
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/AllRegularInstallTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/AllRegularInstallTests.java
deleted file mode 100644
index d857b55..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/AllRegularInstallTests.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.regularInstall;

-

-import org.eclipse.update.tests.UpdateManagerTestCase;

-import junit.framework.*;

-

-

-public class AllRegularInstallTests extends UpdateManagerTestCase {

-public AllRegularInstallTests(String name) {

-	super(name);

-}

-public static Test suite() {

-	TestSuite suite = new TestSuite();

-	suite.setName("Regular Install Tests");

-	

-	// the following will take all teh test methods in teh class that start with 'test'

-

-	suite.addTest(new TestSuite(TestInstall.class));

-	suite.addTest(new TestSuite(TestInstallURLSIteXML.class));	

-	suite.addTest(new TestSuite(TestSpaceInInstall.class));	

-	suite.addTest(new TestSuite(TestGetFeature.class));

-	suite.addTest(new TestSuite(TestExecutableInstall.class));	

-	suite.addTest(new TestSuite(TestExecutablePackagedInstall.class));		

-	suite.addTest(new TestSuite(TestDataEntryInstall.class));

-	suite.addTest(new TestSuite(TestLocalSite.class));		

-	

-	// or you can specify the method

-	//suite.addTest(new TestGetFeature("methodThatDoesNotStartWithtest"));	

-	

-	return suite;

-}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/MultipleTestLocalSite.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/MultipleTestLocalSite.java
deleted file mode 100644
index f0325b2..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/MultipleTestLocalSite.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.regularInstall;

-

-import org.eclipse.update.tests.UpdateManagerTestCase;

-import junit.framework.*;

-

-

-public class MultipleTestLocalSite extends UpdateManagerTestCase {

-public MultipleTestLocalSite(String name) {

-	super(name);

-}

-public static Test suite() {

-	TestSuite suite = new TestSuite();

-	suite.setName("Multiple Test Local Site");

-	

-	// the following will take all teh test methods in teh class that start with 'test'

-	

-	for(int i=0; i<50; i++){

-		suite.addTest(new TestSuite(TestLocalSite.class));

-	}

-	

-	return suite;

-}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestDataEntryInstall.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestDataEntryInstall.java
deleted file mode 100644
index c22e94c..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestDataEntryInstall.java
+++ /dev/null
@@ -1,100 +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 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.update.tests.regularInstall;

-import java.io.File;

-import java.net.URL;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.UpdateManagerUtils;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestDataEntryInstall extends UpdateManagerTestCase {

-	/**

-	 * Constructor for Test1

-	 */

-	public TestDataEntryInstall(String arg0) {

-		super(arg0);

-	}

-

-	/**

-	 * With site.xml

-	 */

-	public void testDataEntrySite() throws Exception {

-

-		//cleanup target 

-		File target = new File(TARGET_FILE_SITE.getFile());

-		UpdateManagerUtils.removeFromFileSystem(target);

-		

-		URL newURL =new File(dataPath + "dataEntrySiteTest/site1/site.xml").toURL();

-		ISite remoteSite = SiteManager.getSite(newURL,null);

-		IFeatureReference[] featuresRef = remoteSite.getFeatureReferences();

-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,null);

-		IFeature remoteFeature = null;

-		

-		for (int i = 0; i < featuresRef.length; i++) {

-			remoteFeature = featuresRef[i].getFeature(null);

-			localSite.install(remoteFeature, null,null);

-

-			// verify

-			String site = localSite.getURL().getFile();

-			INonPluginEntry[] entries = remoteFeature.getNonPluginEntries();

-			assertTrue("no data entry", (entries != null && entries.length != 0));

-			String pluginName = entries[0].getIdentifier().toString();

-			File pluginFile = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString()+File.separator+ pluginName);

-			assertTrue("data files not installed locally:"+pluginFile, pluginFile.exists());

-		} 

-

-		//cleanup target 

-		UpdateManagerUtils.removeFromFileSystem(target);

-

-

-	}

-	

-	

-	/**

-	 * With site.xml

-	 */

-	public void testDataEntrySitePackaged() throws Exception {

-

-		//cleanup target 

-		File target = new File(TARGET_FILE_SITE.getFile());

-		UpdateManagerUtils.removeFromFileSystem(target);

-		

-		URL newURL =new File(dataPath + "dataEntrySiteTest/site2/site.xml").toURL();

-		ISite remoteSite = SiteManager.getSite(newURL,null);

-		IFeatureReference[] featuresRef = remoteSite.getFeatureReferences();

-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,null);

-		IFeature remoteFeature = null;

-		

-		for (int i = 0; i < featuresRef.length; i++) {

-			remoteFeature = featuresRef[i].getFeature(null);

-			localSite.install(remoteFeature, null,null);

-

-			// verify

-			String site = localSite.getURL().getFile();

-			INonPluginEntry[] entries = remoteFeature.getNonPluginEntries();

-			assertTrue("no data entry", (entries != null && entries.length != 0));

-			entries[0].getIdentifier().toString();

-			File pluginFile = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString()+File.separator+ "nondata"+File.separator+"file1.zip");

-			assertTrue("Data file inside the jar not installed locally:"+pluginFile, pluginFile.exists());

-			pluginFile = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString()+File.separator+ "file.zip");

-			assertTrue("Data file outside the jar not installed locally:"+pluginFile, pluginFile.exists());

-			

-		} 

-		

-

-		//cleanup target 

-		UpdateManagerUtils.removeFromFileSystem(target);

-

-

-	}	

-	

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestExecutableInstall.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestExecutableInstall.java
deleted file mode 100644
index b99411f..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestExecutableInstall.java
+++ /dev/null
@@ -1,72 +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 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.update.tests.regularInstall;

-

-import java.io.File;

-import java.util.Locale;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.internal.core.UpdateManagerUtils;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-

-public class TestExecutableInstall extends UpdateManagerTestCase {

-

-	/**

-	 * Constructor for Test1

-	 */

-	public TestExecutableInstall(String arg0) {

-		super(arg0);

-	}

-	

-

-

-	public void testFileSite() throws Exception{

-		

-		//cleanup target 

-		File target = new File(TARGET_FILE_SITE.getFile());

-		UpdateManagerUtils.removeFromFileSystem(target);		

-		InstallRegistry.cleanup();

-		

-		ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE_INSTALLED,null);

-		IFeatureReference[] remoteFeatureReference = remoteSite.getFeatureReferences();

-		IFeature remoteFeature = remoteFeatureReference[0].getFeature(null);

-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,null);

-		assertNotNull(remoteFeature);

-		remove(remoteFeature,localSite);		

-		localSite.install(remoteFeature,null,null);

-		

-		// verify

-		String site = localSite.getURL().getFile();

-		IPluginEntry[] entries = remoteFeature.getRawPluginEntries();

-		assertTrue("no plugins entry",(entries!=null && entries.length!=0));

-		String pluginName= entries[0].getVersionedIdentifier().toString();

-		File pluginFile = new File(site,Site.DEFAULT_PLUGIN_PATH+pluginName);

-		if (Locale.getDefault().toString().indexOf("us") != -1)

-			assertTrue("plugin files not installed locally",pluginFile.exists());

-

-		File featureFile = new File(site,Site.DEFAULT_INSTALLED_FEATURE_PATH+remoteFeature.getVersionedIdentifier().toString());

-		assertTrue("feature info not installed locally:"+featureFile,featureFile.exists());

-		assertTrue("feature is a file, not a directory:"+featureFile,featureFile.isDirectory());

-

-		

-		File featureFileXML = new File(site,Site.DEFAULT_INSTALLED_FEATURE_PATH+remoteFeature.getVersionedIdentifier().toString()+File.separator+"feature.xml");

-		assertTrue("feature info not installed locally: no feature.xml",featureFileXML.exists());

-

-		//cleanup target 

-		UpdateManagerUtils.removeFromFileSystem(target);

-		

-	}

-

-}

-

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestExecutablePackagedInstall.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestExecutablePackagedInstall.java
deleted file mode 100644
index 4385887..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestExecutablePackagedInstall.java
+++ /dev/null
@@ -1,147 +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 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.update.tests.regularInstall;

-import java.io.File;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestExecutablePackagedInstall extends UpdateManagerTestCase {

-	/**

-	 * Constructor for Test1

-	 */

-	public TestExecutablePackagedInstall(String arg0) {

-		super(arg0);

-	}

-

-	/**

-	 * With site.xml

-	 */

-	public void testFilePackageExecutableFeatureSite() throws Exception {

-

-		//cleanup target  

-		File target = new File(TARGET_FILE_SITE.getFile());

-		UpdateManagerUtils.removeFromFileSystem(target);

-		

-		URL newURL = new File(dataPath + "ExecutableFeaturePackagedSite/data2/site.xml").toURL();

-		ISite remoteSite = SiteManager.getSite(newURL,null);

-		IFeatureReference[] featuresRef = remoteSite.getFeatureReferences();

-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,null);

-		IFeature remoteFeature = null;

-		

-		// at least one executable feature and on packaged

-		boolean execFeature = false;

-		boolean packFeature = false;

-

-		if (featuresRef.length==0) fail ("no feature found");

-	

-		for (int i = 0; i < featuresRef.length; i++) {

-			remoteFeature = featuresRef[i].getFeature(null);

-			remove(remoteFeature,localSite);			

-			localSite.install(remoteFeature, null,null);

-			

-			if (remoteFeature.getFeatureContentProvider() instanceof FeaturePackagedContentProvider) packFeature = true;

-			if (remoteFeature.getFeatureContentProvider() instanceof FeatureExecutableContentProvider) execFeature = true;

-

-			// verify

-			String site = localSite.getURL().getFile();

-			IPluginEntry[] entries = remoteFeature.getRawPluginEntries();

-			assertTrue("no plugins entry", (entries != null && entries.length != 0));

-			String pluginName = entries[0].getVersionedIdentifier().toString();

-			File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);

-			assertTrue("plugin files not installed locally:"+pluginFile, pluginFile.exists());

-

-			File featureFile = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString());

-			assertTrue("feature info not installed locally:"+featureFile, featureFile.exists());

-

-			File featureFileXML = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString() + File.separator + "feature.xml");

-			assertTrue("feature info not installed locally: no feature.xml", featureFileXML.exists());

-		}

-

-		if (!execFeature && !packFeature){

-			fail("cannot find one executable and one package feature on teh site");

-		}

-

-		//cleanup target 

-		UpdateManagerUtils.removeFromFileSystem(target);

-

-

-	}

-	

-	

-	/**

-	 * Without site.xml

-	 */

-	public void testFileNoSiteXMLSite() throws Exception {

-

-		//cleanup target 

-		File target = new File(TARGET_FILE_SITE.getFile());

-		UpdateManagerUtils.removeFromFileSystem(target);

-		

-		URL newURL = new File(dataPath + "ExecutableFeaturePackagedSite/data/").toURL();

-		ISite remoteSite = SiteManager.getSite(newURL,null);

-		IFeatureReference[] featuresRef = remoteSite.getFeatureReferences();

-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,null);

-		IFeature remoteFeature = null;

-		

-		// at least one executable feature and on packaged

-		boolean execFeature = false;

-		boolean packFeature = false;

-

-		if (featuresRef.length==0) fail ("no feature found");

-	

-		for (int i = 0; i < featuresRef.length; i++) {

-			try {

-				remoteFeature = featuresRef[i].getFeature(null);

-			} catch (CoreException e){

-				Throwable e1 = e.getStatus().getException();

-				String msg = e1.getMessage().replace(File.separatorChar,'/');

-				if (msg.indexOf("CVS/feature.xml")==-1){

-					throw e;

-				}				

-			}

-			if (remoteFeature!=null){

-				remove(remoteFeature,localSite);

-				localSite.install(remoteFeature,null, null);

-				

-				if (remoteFeature.getFeatureContentProvider() instanceof FeaturePackagedContentProvider) packFeature = true;

-				if (remoteFeature.getFeatureContentProvider() instanceof FeatureExecutableContentProvider) execFeature = true;

-	

-				// verify

-				String site = localSite.getURL().getFile();

-				IPluginEntry[] entries = remoteFeature.getRawPluginEntries();

-				assertTrue("no plugins entry", (entries != null && entries.length != 0));

-				String pluginName = entries[0].getVersionedIdentifier().toString();

-				File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);

-				assertTrue("plugin files not installed locally:"+pluginFile, pluginFile.exists());

-	

-				File featureFile = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString());

-				assertTrue("feature info not installed locally:"+featureFile, featureFile.exists());

-	

-				File featureFileXML = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString() + File.separator + "feature.xml");

-				assertTrue("feature info not installed locally: no feature.xml", featureFileXML.exists());

-			}

-		}

-

-		if (!execFeature && !packFeature){

-			fail("cannot find one executable and one package feature on teh site");

-		}

-

-		//cleanup target 

-		UpdateManagerUtils.removeFromFileSystem(target);

-

-

-	}

-	

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestGetFeature.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestGetFeature.java
deleted file mode 100644
index 518a0eb..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestGetFeature.java
+++ /dev/null
@@ -1,49 +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 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.update.tests.regularInstall;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-

-public class TestGetFeature extends UpdateManagerTestCase {

-

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestGetFeature(String arg0) {

-		super(arg0);

-	}

-	

-	

-	public void testFeatureFileSite() throws Exception{

-		

-		ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE,null);

-		IFeatureReference[] remoteFeatures = remoteSite.getFeatureReferences();

-		if (remoteFeatures==null || remoteFeatures.length==0) fail("No feature available for testing");

-		for (int i=0;i<remoteFeatures.length;i++){

-			System.out.println("feature:"+remoteFeatures[i].getURL().toExternalForm());

-		}

-	}

-

-

-	public void testFeatureHTTPSite() throws Exception{ 

-		

-		ISite remoteSite = SiteManager.getSite(SOURCE_HTTP_SITE,null);

-		IFeatureReference[] remoteFeatures = remoteSite.getFeatureReferences();

-		if (remoteFeatures==null || remoteFeatures.length==0) fail("No feature available for testing");		

-		for (int i=0;i<remoteFeatures.length;i++){

-			System.out.println("feature:"+remoteFeatures[i].getURL().toExternalForm());

-		}

-	}

-}

-

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestInstall.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestInstall.java
deleted file mode 100644
index b999543..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestInstall.java
+++ /dev/null
@@ -1,313 +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 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.update.tests.regularInstall;

-import java.io.File;

-import java.net.MalformedURLException;

-import java.net.URL;

-import java.util.Locale;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestInstall extends UpdateManagerTestCase {

-

-	/**

-	 * 

-	 */

-	public static final String PACKAGED_FEATURE_TYPE = "packaged"; //$NON-NLS-1$

-

-	public class Listener implements IConfiguredSiteChangedListener {

-

-		public boolean notified = false;

-

-		public void featureInstalled(IFeature feature) {

-			notified = true;

-			System.out.println("Notified DefaultFeature Installed");

-		}

-

-		public void featureRemoved(IFeature feature) {

-		}

-

-		public void featureConfigured(IFeature feature) {

-		};

-		public void featureUnconfigured(IFeature feature) {

-		};

-

-		public boolean isNotified() {

-			return notified;

-		}

-	}

-

-	/**

-	 * Constructor for Test1

-	 */

-	public TestInstall(String arg0) {

-		super(arg0);

-	}

-

-	private IFeature getFeature1(ISite site)

-		throws MalformedURLException, CoreException {

-		SiteFeatureReference ref = new SiteFeatureReference();

-		ref.setSite(site);

-		ref.setURLString("features/org.eclipse.update.core.tests.feature1_1.0.4.jar");

-		ref.setType(getDefaultInstallableFeatureType());

-		ref.resolve(site.getURL(), null);

-		return ref.getFeature(null);

-	}

-

-	public void testFileSite() throws Exception {

-

-		ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE,null);

-		IFeature remoteFeature = getFeature1(remoteSite);

-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,null);

-		localSite.install(remoteFeature, null, null);

-

-		// verify

-		String site = localSite.getURL().getFile();

-		IPluginEntry[] entries = remoteFeature.getPluginEntries();

-		assertTrue("no plugins entry", (entries != null && entries.length != 0));

-		String pluginName = entries[0].getVersionedIdentifier().toString();

-		File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);

-		assertTrue("plugin files not installed locally:"+pluginFile, pluginFile.exists());

-		File pluginXMLFile =

-			new File(

-				site,

-				Site.DEFAULT_PLUGIN_PATH + pluginName + File.separator + "plugin.xml");

-		assertTrue("plugin.xml file not installed locally", pluginXMLFile.exists());

-

-		File featureFile =

-			new File(

-				site,

-				Site.DEFAULT_INSTALLED_FEATURE_PATH

-					+ remoteFeature.getVersionedIdentifier().toString());

-		assertTrue(

-			"feature info not installed locally:" + featureFile,

-			featureFile.exists());

-		//cleanup

-		UpdateManagerUtils.removeFromFileSystem(pluginFile);

-		UpdateManagerUtils.removeFromFileSystem(new File(localSite.getURL().getFile()));

-

-	}

-

-	/**

-	 * 

-	 */

-	public void testHTTPSite() throws Exception {

-

-		ISite remoteSite = SiteManager.getSite(SOURCE_HTTP_SITE,null);

-		IFeatureReference[] features = remoteSite.getFeatureReferences();

-		IFeature remoteFeature = null;

-

-		if (features == null || features.length == 0)

-			fail("No features on the site");

-

-		for (int i = 0; i < features.length; i++) {

-			if (features[i].getURL().toExternalForm().endsWith("features2.jar")) {

-				remoteFeature = features[i].getFeature(null);

-				break;

-			}

-		}

-

-		assertNotNull("Cannot find feature2.jar on site", remoteFeature);

-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,null);

-		localSite.install(remoteFeature, null, null);

-

-		// feature2.jar should not be in the local site

-		IFeatureReference[] localFeatures = localSite.getFeatureReferences();

-		if (localFeatures == null || localFeatures.length == 0)

-			fail("No features on the target site");

-

-		boolean found = false;

-		for (int i = 0; i < localFeatures.length; i++) {

-			if (localFeatures[i].getURL().toExternalForm().endsWith("features2.jar")) {

-				found = true;

-				break;

-			}

-		}

-

-		assertTrue(

-			"Found feature2.jar on target site. Target site feature ref shouldnot contain JAR file",

-			!found);

-

-		// check

-		String site = localSite.getURL().getFile();

-		IPluginEntry[] entries = remoteFeature.getPluginEntries();

-		assertTrue("no plugins entry", (entries != null && entries.length != 0));

-

-		String pluginName = entries[0].getVersionedIdentifier().toString();

-		File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);

-		assertTrue("plugin info not installed locally:"+pluginFile, pluginFile.exists());

-

-		File featureFile =

-			new File(

-				site,

-				Site.DEFAULT_INSTALLED_FEATURE_PATH

-					+ remoteFeature.getVersionedIdentifier().toString());

-		assertTrue("feature info not installed locally", featureFile.exists());

-

-		//localSite.save();

-

-		//cleanup

-		UpdateManagerUtils.removeFromFileSystem(pluginFile);

-		UpdateManagerUtils.removeFromFileSystem(new File(localSite.getURL().getFile()));

-	}

-

-	public void testInstall() throws Exception {

-

-		// cleanup local files...

-		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);

-

-		URL INSTALL_SITE = null;

-		try {

-			INSTALL_SITE =

-				new URL("http", getHttpHost(), getHttpPort(), bundle.getString("HTTP_PATH_2"));

-		} catch (Exception e) {

-			fail(e.toString());

-			e.printStackTrace();

-		}

-

-		ISite remoteSite = SiteManager.getSite(INSTALL_SITE,null);

-		IFeatureReference[] features = remoteSite.getFeatureReferences();

-		IFeature remoteFeature = null;

-

-		if (features == null || features.length == 0)

-			fail("No features on the site");

-

-		for (int i = 0; i < features.length; i++) {

-			if (features[i].getURL().toExternalForm().endsWith("helpFeature.jar")) {

-				remoteFeature = features[i].getFeature(null);

-				break;

-			}

-		}

-

-		assertNotNull("Cannot find help.jar on site", remoteFeature);

-		ILocalSite localSite = SiteManager.getLocalSite();

-		IConfiguredSite site =

-			localSite.getCurrentConfiguration().getConfiguredSites()[0];

-		Listener listener = new Listener();

-		site.addConfiguredSiteChangedListener(listener);

-

-		((ConfiguredSite)site).setUpdatable(true);

-		site.install(remoteFeature, null, null);

-

-		IPluginEntry[] entries = remoteFeature.getRawPluginEntries();

-		assertTrue("no plugins entry", (entries != null && entries.length != 0));

-

-		String sitePath = site.getSite().getURL().getFile();

-		String pluginName = entries[0].getVersionedIdentifier().toString();

-		File pluginFile = new File(sitePath, Site.DEFAULT_PLUGIN_PATH + pluginName);

-		if (Locale.getDefault().toString().indexOf("fr") != -1)

-			assertTrue("plugin info not installed locally", pluginFile.exists());

-

-		File featureFile =

-			new File(

-				sitePath,

-				Site.DEFAULT_INSTALLED_FEATURE_PATH

-					+ remoteFeature.getVersionedIdentifier().toString());

-		assertTrue("feature info not installed locally", featureFile.exists());

-

-		//cleanup

-		File file =

-			new File(

-				site.getSite().getURL().getFile()

-					+ File.separator

-					+ Site.DEFAULT_INSTALLED_FEATURE_PATH

-					+ remoteFeature.getVersionedIdentifier());

-		UpdateManagerUtils.removeFromFileSystem(file);

-		UpdateManagerUtils.removeFromFileSystem(pluginFile);

-		InstallRegistry.unregisterPlugin(entries[0]);

-		UpdateManagerUtils.removeFromFileSystem(localFile);

-		UpdateManagerUtils.removeFromFileSystem(

-			new File(

-				((InstallConfiguration) localSite.getCurrentConfiguration())

-					.getURL()

-					.getFile()));

-

-		site.removeConfiguredSiteChangedListener(listener);

-		assertTrue("Listener hasn't received notification", listener.isNotified());

-	}

-

-	public void testFileSiteWithoutSiteXML() throws Exception {

-

-		ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE,null);

-		IFeature remoteFeature = getFeature1(remoteSite);

-		IConfiguredSite localSite =

-			SiteManager.getLocalSite().getCurrentConfiguration().getConfiguredSites()[0];

-		localSite.getSite().install(remoteFeature, null, null);

-

-		IFeatureReference[] features = localSite.getSite().getFeatureReferences();

-		if (features.length == 0)

-			fail("The local site does not contain feature, should not contain an XML file but features should be found anyway by parsing");

-		if (localSite.getSite().getArchives().length == 0)

-			fail("The local site does not contain archives, should not contain an XML file but archives should be found anyway by parsing");

-

-		//cleanup

-		File file =

-			new File(

-				localSite.getSite().getURL().getFile()

-					+ File.separator

-					+ Site.DEFAULT_INSTALLED_FEATURE_PATH

-					+ remoteFeature.getVersionedIdentifier());

-		UpdateManagerUtils.removeFromFileSystem(file);

-		file =

-			new File(

-				localSite.getSite().getURL().getFile()

-					+ File.separator

-					+ Site.DEFAULT_PLUGIN_PATH

-					+ "org.eclipse.update.core.tests.feature1.plugin1_3.5.6");

-		UpdateManagerUtils.removeFromFileSystem(file);

-		file =

-			new File(

-				localSite.getSite().getURL().getFile()

-					+ File.separator

-					+ Site.DEFAULT_PLUGIN_PATH

-					+ "org.eclipse.update.core.tests.feature1.plugin2_5.0.0");

-		UpdateManagerUtils.removeFromFileSystem(file);

-		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);

-

-		try {

-			SiteManager.getSite(new URL("http://www.eclipse.org/"),null);

-			fail("The site contains site.xml... it should be an HTTP site without an XML file");			

-		} catch (CoreException e) {

-			// expected

-		}

-

-	}

-

-//	/**

-//	* 

-//	*/

-//	private Feature createPackagedFeature(URL url, ISite site)

-//		throws CoreException {

-//		String packagedFeatureType = ISite.DEFAULT_PACKAGED_FEATURE_TYPE;

-//		Feature result = null;

-//		if (packagedFeatureType != null) {

-//			IFeatureFactory factory =

-//				FeatureTypeFactory.getInstance().getFactory(packagedFeatureType);

-//			result = (Feature) factory.createFeature(url, site);

-//		}

-//		return result;

-//	}

-	/*

-	 * @see ISite#getDefaultInstallableFeatureType()

-	 */

-	public String getDefaultInstallableFeatureType() {

-		String pluginID =

-			UpdateCore.getPlugin().getDescriptor().getUniqueIdentifier() + ".";

-		return pluginID + PACKAGED_FEATURE_TYPE;

-	}

-

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestInstallURLSIteXML.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestInstallURLSIteXML.java
deleted file mode 100644
index 5c2b72b..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestInstallURLSIteXML.java
+++ /dev/null
@@ -1,332 +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 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.update.tests.regularInstall;

-import java.io.*;

-import java.net.*;

-import java.util.Locale;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.tests.*;

-

-public class TestInstallURLSIteXML extends UpdateManagerTestCase {

-

-	/**

-	 * 

-	 */

-	public static final String PACKAGED_FEATURE_TYPE = "packaged"; //$NON-NLS-1$	

-

-	public class Listener implements IConfiguredSiteChangedListener {

-

-		public boolean notified = false;

-

-		public void featureInstalled(IFeature feature) {

-			notified = true;

-			System.out.println("Notified DefaultFeature Installed");

-		}

-

-		public void featureRemoved(IFeature feature) {

-		}

-

-		public void featureConfigured(IFeature feature) {

-		}

-		public void featureUnconfigured(IFeature feature) {

-		}

-

-		public boolean isNotified() {

-			return notified;

-		}

-	}

-

-	/**

-	 * Constructor for Test1

-	 */

-	public TestInstallURLSIteXML(String arg0) {

-		super(arg0);

-	}

-

-	private IFeature getFeature1(ISite site)

-		throws MalformedURLException, CoreException {

-		SiteFeatureReference ref = new SiteFeatureReference();

-		ref.setSite(site);

-		ref.setURLString("features/org.eclipse.update.core.tests.feature1_1.0.4.jar");

-		ref.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);

-		ref.resolve(site.getURL(), null);

-		return ref.getFeature(null);

-	}

-

-	public void testFileSite() throws Exception {

-

-		ISite remoteSite =

-			SiteManager.getSite(new URL(SOURCE_FILE_SITE, Site.SITE_XML),true,null);

-		IFeature remoteFeature = getFeature1(remoteSite);

-		URL url = TARGET_FILE_SITE;

-		File file = new File(TARGET_FILE_SITE.getFile());

-		if (!file.exists()) file.mkdirs();

-		ISite localSite = SiteManager.getSite(url,true,null);

-		remove(remoteFeature,localSite);

-		localSite.install(remoteFeature, null, null);

-

-		// verify

-		String site = TARGET_FILE_SITE.getFile();

-		IPluginEntry[] entries = remoteFeature.getPluginEntries();

-		assertTrue("no plugins entry", (entries != null && entries.length != 0));

-		String pluginName = entries[0].getVersionedIdentifier().toString();

-		File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);

-		assertTrue("plugin files not installed locally", pluginFile.exists());

-		File pluginXMLFile =

-			new File(

-				site,

-				Site.DEFAULT_PLUGIN_PATH + pluginName + File.separator + "plugin.xml");

-		assertTrue("plugin.xml file not installed locally", pluginXMLFile.exists());

-

-		File featureFile =

-			new File(

-				site,

-				Site.DEFAULT_INSTALLED_FEATURE_PATH

-					+ remoteFeature.getVersionedIdentifier().toString());

-		assertTrue(

-			"feature info not installed locally:" + featureFile,

-			featureFile.exists());

-		//cleanup

-		UpdateManagerUtils.removeFromFileSystem(pluginFile);

-		UpdateManagerUtils.removeFromFileSystem(new File(localSite.getURL().getFile()));

-		InstallRegistry.cleanup();

-	}

-

-	/**

-	 * 

-	 */

-	public void testHTTPSite() throws Exception {

-

-		// clean

-		File targetFile  = new File(TARGET_FILE_SITE.getFile());

-		UpdateManagerUtils.removeFromFileSystem(targetFile);

-		InstallRegistry.cleanup();

-

-		ISite remoteSite =

-			SiteManager.getSite(new URL(SOURCE_HTTP_SITE, Site.SITE_XML),true,null);

-		IFeatureReference[] features = remoteSite.getFeatureReferences();

-		IFeature remoteFeature = null;

-

-		if (features == null || features.length == 0)

-			fail("No features on the site");

-

-		for (int i = 0; i < features.length; i++) {

-			if (features[i].getURL().toExternalForm().endsWith("features2.jar")) {

-				remoteFeature = features[i].getFeature(null);

-				break;

-			}

-		}

-

-		assertNotNull("Cannot find feature2.jar on site", remoteFeature);

-		URL url = TARGET_FILE_SITE;

-		File file = new File(TARGET_FILE_SITE.getFile());

-		if (!file.exists()) file.mkdirs();

-		ISite localSite = SiteManager.getSite(url,true,null);

-		localSite.install(remoteFeature, null, null);

-

-		// feature2.jar should not be in the local site

-		IFeatureReference[] localFeatures = localSite.getFeatureReferences();

-		if (localFeatures == null || localFeatures.length == 0)

-			fail("No features on the target site");

-

-		boolean found = false;

-		for (int i = 0; i < localFeatures.length; i++) {

-			if (localFeatures[i].getURL().toExternalForm().endsWith("features2.jar")) {

-				found = true;

-				break;

-			}

-		}

-

-		assertTrue(

-			"Found feature2.jar on target site. Target site feature ref shouldnot contain JAR file",

-			!found);

-

-		// check

-		String site = TARGET_FILE_SITE.getFile();

-		IPluginEntry[] entries = remoteFeature.getPluginEntries();

-		assertTrue("no plugins entry", (entries != null && entries.length != 0));

-

-		String pluginName = entries[0].getVersionedIdentifier().toString();

-		File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);

-		assertTrue("plugin info not installed locally", pluginFile.exists());

-

-		File featureFile =

-			new File(

-				site,

-				Site.DEFAULT_INSTALLED_FEATURE_PATH

-					+ remoteFeature.getVersionedIdentifier().toString());

-		assertTrue("feature info not installed locally", featureFile.exists());

-

-		//localSite.save();

-

-		//cleanup

-		UpdateManagerUtils.removeFromFileSystem(pluginFile);

-		UpdateManagerUtils.removeFromFileSystem(new File(localSite.getURL().getFile()));

-		InstallRegistry.cleanup();

-	}

-

-	public void testInstall() throws Exception {

-

-		// cleanup local files...

-		SiteLocal siteLocal = ((SiteLocal) SiteManager.getLocalSite());

-		File localFile = new File(siteLocal.getLocationURL().getFile());

-		//if (!localFile.exists()) fail("LocalSite file doesn't exist ->"+localFile.getAbsolutePath()+"<-");

-		UpdateManagerUtils.removeFromFileSystem(localFile);		

-		/*

-		localFile = new File(localFile,SiteLocal.SITE_LOCAL_FILE);

-		if (!localFile.exists()) fail("LocalSite.xml doesn't exist:"+localFile);

-		UpdateManagerUtils.removeFromFileSystem(localFile);

-		*/

-		

-		InternalSiteManager.localSite = null;

-

-		URL INSTALL_SITE = null;

-		try {

-			INSTALL_SITE =

-				new URL("http", getHttpHost(), getHttpPort(), bundle.getString("HTTP_PATH_2"));

-		} catch (Exception e) {

-			fail(e.toString());

-			e.printStackTrace();

-		}

-

-		ISite remoteSite = SiteManager.getSite(INSTALL_SITE,true,null);

-		IFeatureReference[] features = remoteSite.getFeatureReferences();

-		IFeature remoteFeature = null;

-

-		if (features == null || features.length == 0)

-			fail("No features on the site");

-

-		for (int i = 0; i < features.length; i++) {

-			if (features[i].getURL().toExternalForm().endsWith("helpFeature.jar")) {

-				remoteFeature = features[i].getFeature(null);

-				break;

-			}

-		}

-

-		assertNotNull("Cannot find help.jar on site", remoteFeature);

-		ILocalSite localSite = SiteManager.getLocalSite();

-		IConfiguredSite site = localSite.getCurrentConfiguration().getConfiguredSites()[0];

-		Listener listener = new Listener();

-		site.addConfiguredSiteChangedListener(listener);

-

-		((ConfiguredSite)site).setUpdatable(true);

-		site.install(remoteFeature, null, null);

-

-		IPluginEntry[] entries = remoteFeature.getRawPluginEntries();

-		assertTrue("no plugins entry", (entries != null && entries.length != 0));

-

-		String sitePath = site.getSite().getURL().getFile();

-		String pluginName = entries[0].getVersionedIdentifier().toString();

-		File pluginFile = new File(sitePath, Site.DEFAULT_PLUGIN_PATH + pluginName);

-		if (Locale.getDefault().toString().indexOf("fr") != -1)

-			assertTrue("plugin info not installed locally:"+pluginFile, pluginFile.exists());

-

-		File featureFile =

-			new File(

-				sitePath,

-				Site.DEFAULT_INSTALLED_FEATURE_PATH

-					+ remoteFeature.getVersionedIdentifier().toString());

-		if (Locale.getDefault().toString().indexOf("fr") != -1 ||

-				Locale.getDefault().toString().indexOf("us") != -1 ||

-				Locale.getDefault().toString().indexOf("de") != -1)

-		assertTrue("feature info not installed locally", featureFile.exists());

-

-		//cleanup

-		File file =

-			new File(

-				site.getSite().getURL().getFile()

-					+ File.separator

-					+ Site.DEFAULT_INSTALLED_FEATURE_PATH

-					+ remoteFeature.getVersionedIdentifier());

-		UpdateManagerUtils.removeFromFileSystem(file);

-		UpdateManagerUtils.removeFromFileSystem(pluginFile);

-		UpdateManagerUtils.removeFromFileSystem(localFile);

-		UpdateManagerUtils.removeFromFileSystem(

-			new File(

-				((InstallConfiguration) localSite.getCurrentConfiguration())

-					.getURL()

-					.getFile()));

-		InstallRegistry.cleanup();

-		

-		site.removeConfiguredSiteChangedListener(listener);

-		assertTrue("Listener hasn't received notification", listener.isNotified());

-	}

-

-//	public void testFileSiteWithoutSiteXML() throws Exception {

-//

-//		ISite remoteSite =

-//			SiteManager.getSite(new URL(SOURCE_FILE_SITE, Site.SITE_XML),true,null);

-//		IFeature remoteFeature = getFeature1(remoteSite);

-//		IConfiguredSite localSite =

-//			SiteManager.getLocalSite().getCurrentConfiguration().getConfiguredSites()[0];

-//		localSite.getSite().install(remoteFeature, null, null);

-//

-//		IFeatureReference[] features = localSite.getSite().getFeatureReferences();

-//		if (features.length == 0)

-//			fail("The local site does not contain feature, should not contain an XML file but features should be found anyway by parsing");

-//		if (localSite.getSite().getArchives().length == 0)

-//			fail("The local site does not contain archives, should not contain an XML file but archives should be found anyway by parsing");

-//

-//		//cleanup

-//		File file =

-//			new File(

-//				localSite.getSite().getURL().getFile()

-//					+ File.separator

-//					+ Site.DEFAULT_INSTALLED_FEATURE_PATH

-//					+ remoteFeature.getVersionedIdentifier());

-//		UpdateManagerUtils.removeFromFileSystem(file);

-//		file =

-//			new File(

-//				localSite.getSite().getURL().getFile()

-//					+ File.separator

-//					+ Site.DEFAULT_PLUGIN_PATH

-//					+ "org.eclipse.update.core.tests.feature1.plugin1_3.5.6");

-//		UpdateManagerUtils.removeFromFileSystem(file);

-//		file =

-//			new File(

-//				localSite.getSite().getURL().getFile()

-//					+ File.separator

-//					+ Site.DEFAULT_PLUGIN_PATH

-//					+ "org.eclipse.update.core.tests.feature1.plugin2_5.0.0");

-//		UpdateManagerUtils.removeFromFileSystem(file);

-//		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-//		UpdateManagerUtils.removeFromFileSystem(localFile);

-//

-//	}

-

-	/**

-	* 

-	*/

-//	private Feature createPackagedFeature(URL url, ISite site)

-//		throws CoreException {

-//		String packagedFeatureType = ISite.DEFAULT_PACKAGED_FEATURE_TYPE;

-//		Feature result = null;

-//		if (packagedFeatureType != null) {

-//			IFeatureFactory factory =

-//				FeatureTypeFactory.getInstance().getFactory(packagedFeatureType);

-//			result = (Feature) factory.createFeature(url, site);

-//		}

-//		return result;

-//	}

-	/*

-	 * @see ISite#getDefaultInstallableFeatureType()

-	 */

-	public String getDefaultInstallableFeatureType() {

-		String pluginID =

-			UpdateCore.getPlugin().getDescriptor().getUniqueIdentifier() + ".";

-		return pluginID + PACKAGED_FEATURE_TYPE;

-	}

-

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestLocalSite.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestLocalSite.java
deleted file mode 100644
index d123f00..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestLocalSite.java
+++ /dev/null
@@ -1,422 +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 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.update.tests.regularInstall;

-import java.io.*;

-import java.net.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.configurator.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.internal.model.*;

-import org.eclipse.update.tests.*;

-

-public class TestLocalSite extends UpdateManagerTestCase {

-	

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestLocalSite(String arg0) {

-		super(arg0);

-	}

-	

-	public void testCreationConfigFile() throws Exception {

-

-		//clean up

-		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);	

-		InternalSiteManager.localSite=null;	

-

-

-		ILocalSite site = SiteManager.getLocalSite();

-		site.save();

-		assertTrue("config file hasn't been saved in :"+localFile.getAbsolutePath(), localFile.exists());

-		

-		// cleanup

-		UpdateManagerUtils.removeFromFileSystem(localFile);		

-		

-

-	}

-	

-	public void testDefaultConfigFile() throws Exception {

-

-		//clean up

-

-		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);	

-		InternalSiteManager.localSite=null;

-

-		ILocalSite site = SiteManager.getLocalSite();

-		assertTrue("The local site does not contain an history of install configuration",site.getConfigurationHistory().length!=0);

-		assertTrue("The local site does not contain an current install configuration",site.getCurrentConfiguration()!=null);

-		assertTrue("The local site does not contain a default configuration site for the current install config",site.getCurrentConfiguration().getConfiguredSites().length!=0);

-		

-		System.out.println("Default Config Site is :"+site.getCurrentConfiguration().getConfiguredSites()[0].getSite().getURL().toExternalForm());

-		

-		// cleanup	

-		UpdateManagerUtils.removeFromFileSystem(localFile);		

-		

-

-	}

-	

-/*	public void testInstallFeatureSaveConfig() throws Exception {

-

-		//clean up

-		SiteLocal siteLocal = (SiteLocal)SiteManager.getLocalSite();

-		URL newURL = new URL(siteLocal.getLocationURL(),SiteLocal.SITE_LOCAL_FILE);

-		File localFile = new File(newURL.getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);

-		UpdateManagerUtils.removeFromFileSystem(new File(((InstallConfiguration)siteLocal.getCurrentConfiguration()).getURL().getFile()));	

-		InternalSiteManager.localSite=null;		

-

-		ILocalSite site = SiteManager.getLocalSite();

-		ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE_INSTALLED);

-		IFeature feature = remoteSite.getFeatureReferences()[0].getFeature();

-		int oldNumber = site.getCurrentConfiguration().getConfiguredSites().length;

-		

-		// we are not checking if this is read only

-		IInstallConfiguration newConfig = site.cloneCurrentConfiguration();

-		newConfig.setLabel("new Label");		

-		//IInstallConfiguration newConfig = site.getCurrentConfiguration();

-		IConfiguredSite configSite = newConfig.getConfiguredSites()[0];

-		ConfigurationPolicyModel configPolicy = new BaseSiteLocalFactory().createConfigurationPolicyModel();

-		configPolicy.setPolicy(IPlatformConfiguration.ISitePolicy.USER_INCLUDE);

-		((ConfiguredSite)configSite).setConfigurationPolicy((ConfigurationPolicy)configPolicy);

-		int oldNumberOfhistory = site.getConfigurationHistory().length;		

-		site.addConfiguration(newConfig);	

-		assertNotNull(feature);	

-

-		((ConfiguredSite)configSite).isUpdatable(true);

-		remove(feature,configSite);				

-		configSite.install(feature,null,null);

-				

-		// teh current one points to a real fature

-		// does not throw error.

-		IConfiguredSite configSite2 = site.getCurrentConfiguration().getConfiguredSites()[0];

-		assertTrue("No Configured features found",configSite.getConfiguredFeatures().length>0);

-		IFeatureReference ref = configSite2.getConfiguredFeatures()[0];

-		IFeature feature2 = ref.getFeature();

-		//String configuredFeature = feature2.getLabel();

-

-		assertEquals(feature2.getVersionedIdentifier().toString(),"org.eclipse.update.core.tests.feature3_1.0.0");

-		assertTrue("Wrong id  version of feature",feature2.getVersionedIdentifier().toString().equalsIgnoreCase("org.eclipse.update.core.tests.feature3_1.0.0"));

-		

-		// only one feature configured

-		assertTrue("too many features configured",configSite2.getConfiguredFeatures().length==1);

-		

-		// no feature unconfigured

-		assertTrue("too many unconfigured features",((ConfiguredSite)configSite2).getConfigurationPolicy().getUnconfiguredFeatures().length==0);

-		

-		// test only 2 install config in local site

-		//assertEquals("wrong number of history in Local site:",oldNumberOfhistory+1,site.getConfigurationHistory().length);

-		

-		// test same # of sites in current config

-		assertTrue("Wrong number of config sites in current config",site.getCurrentConfiguration().getConfiguredSites().length==oldNumber);

-		

-		//test only one feature for the site

-		assertTrue("wrong number of configured features for config site",site.getCurrentConfiguration().getConfiguredSites()[0].getConfiguredFeatures().length==1);

-		

-		// test only 2 activities

-		assertTrue("Wrong number of activities for install config",site.getCurrentConfiguration().getActivities().length==2);

-

-		site.save();		

-

-		// check

-		// there are 2 configuration

-		String time = ""+site.getCurrentConfiguration().getCreationDate().getTime();

-		URL location = ((SiteLocal)site).getLocationURL();

-		File file = new File(new URL(location,"Config"+time+".xml").getFile());

-		assertTrue("new configuration does not exist", file.exists());

-		

-		// cleanup

-		localFile = new File(new URL(location,SiteLocal.SITE_LOCAL_FILE).getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);		

-		localFile = new File(new URL(location,SiteLocal.DEFAULT_CONFIG_FILE).getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);	

-		localFile = new File(new URL(location,Site.DEFAULT_FEATURE_PATH+File.separator+feature.getVersionedIdentifier().toString()).getFile());		

-		UpdateManagerUtils.removeFromFileSystem(localFile);	

-		localFile = new File(new URL(location,Site.DEFAULT_FEATURE_PATH+File.separator+feature2.getVersionedIdentifier().toString()).getFile());		

-		UpdateManagerUtils.removeFromFileSystem(localFile);	

-		UpdateManagerUtils.removeFromFileSystem(file);		

-		localFile = new File(feature2.getURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);

-	}

-*/

-	

-	public void testRetriveConfig() throws Exception {

-

-		//clean up

-		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);	

-		InternalSiteManager.localSite=null;		

-

-		ILocalSite site = SiteManager.getLocalSite();

-		ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE_INSTALLED,null);

-		IFeature feature = remoteSite.getFeatureReferences()[0].getFeature(null);

-		int oldNumber = site.getCurrentConfiguration().getConfiguredSites().length;		

-		

-		// we are not checking if this is read only

-		IInstallConfiguration newConfig = site.cloneCurrentConfiguration();

-		newConfig.setLabel("new Label");		

-		IConfiguredSite configSite = newConfig.getConfiguredSites()[0];

-		ConfigurationPolicyModel configPolicy = new BaseSiteLocalFactory().createConfigurationPolicyModel();

-		configPolicy.setPolicy(IPlatformConfiguration.ISitePolicy.USER_INCLUDE);

-		((ConfiguredSite)configSite).setConfigurationPolicyModel((ConfigurationPolicyModel)configPolicy);	

-		int oldNumberOfhistory = site.getConfigurationHistory().length;			

-		site.addConfiguration(newConfig);

-		assertNotNull(feature);			

-		

-		((ConfiguredSite)configSite).setUpdatable(true);

-		remove(feature,configSite);			

-		configSite.install(feature,null,null);

-		site.save();

-		

-		// we created the second xml file

-

-		//do not cleanup, we want to reuse previously created local site

-		// but force re-read of xml File

-		InternalSiteManager.localSite=null;

-		site = SiteManager.getLocalSite();

-		

-		// check

-		// there are 2 configuration

-		String time = ""+site.getCurrentConfiguration().getCreationDate().getTime();

-		URL location = ((SiteLocal)site).getLocationURL();		

-		File file = new File(new URL(location,"platform.xml").getFile());

-		assertTrue("new configuration does not exist", file.exists());

-		

-		// teh current one points to a real fature

-		// does not throw error.

-		IConfiguredSite configSite2 = site.getCurrentConfiguration().getConfiguredSites()[0];

-		IFeatureReference[] refs = configSite2.getConfiguredFeatures();

-		IFeature feature2 = null;

-		for (int i = 0; i < refs.length; i++) {

-			IFeature feature3 = refs[i].getFeature(null);			

-			if ("org.eclipse.update.core.tests.feature3_1.0.0".equals(feature3.getVersionedIdentifier().toString())){

-				feature2 = feature3;

-				break;

-			}		

-		}

-		assertNotNull("Feature 2 is Null",feature2);

-		assertTrue("Wrong id  version of feature",feature2.getVersionedIdentifier().toString().equalsIgnoreCase("org.eclipse.update.core.tests.feature3_1.0.0"));

-		

-		// test only 2 install config in local site

-//		assertEquals("wrong number of history in Local site:",oldNumberOfhistory+1,site.getConfigurationHistory().length);

-		

-		// test # of sites in current config

-		assertTrue("Wrong number of config sites in current config",site.getCurrentConfiguration().getConfiguredSites().length==oldNumber);

-		

-		//test only one feature for the site

-//		assertTrue("wrong number of configured features for config site",site.getCurrentConfiguration().getConfiguredSites()[0].getConfiguredFeatures().length==1);

-		

-		// test only 2 activities

-//		assertTrue("Wrong number of activities for install config",site.getCurrentConfiguration().getActivities().length==2);

-		

-		

-		// cleanup

-		localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);		

-		localFile = new File(new URL(location,Site.DEFAULT_FEATURE_PATH+File.separator+feature.getVersionedIdentifier().toString()).getFile());		

-		UpdateManagerUtils.removeFromFileSystem(localFile);					

-		UpdateManagerUtils.removeFromFileSystem(file);		

-	}

-

-/*	public void testRetriveConfigHTTPInstall() throws Exception {

-

-		//clean up

-		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);

-		InternalSiteManager.localSite=null;		

-

-		ILocalSite site = SiteManager.getLocalSite();

-		ISite remoteSite = SiteManager.getSite(SOURCE_HTTP_SITE,null);

-		IFeature feature = remoteSite.getFeatureReferences()[0].getFeature(null);

-		

-		// we are not checking if this is read only

-		IInstallConfiguration newConfig = site.cloneCurrentConfiguration();

-		newConfig.setLabel("new Label");		

-		IConfiguredSite configSite = newConfig.getConfiguredSites()[0];

-		ConfigurationPolicyModel configPolicy = new BaseSiteLocalFactory().createConfigurationPolicyModel();

-		configPolicy.setPolicy(IPlatformConfiguration.ISitePolicy.USER_INCLUDE);

-		((ConfiguredSite)configSite).setConfigurationPolicyModel((ConfigurationPolicyModel)configPolicy);	

-		int oldNumberOfhistory = site.getConfigurationHistory().length;			

-		site.addConfiguration(newConfig);

-		

-	

-		((ConfiguredSite)configSite).setUpdatable(true);				

-		configSite.install(feature,null,null);

-		site.save();

-

-		//do not cleanup, we want to reuse previously created local site

-		// but force re-read of xml File

-		InternalSiteManager.localSite=null;

-		site = SiteManager.getLocalSite();

-		feature = remoteSite.getFeatureReferences()[0].getFeature(null);

-		int oldNumber = site.getCurrentConfiguration().getConfiguredSites().length;		

-		

-		// check

-		// there are 2 configuration

-		String time = ""+site.getCurrentConfiguration().getCreationDate().getTime();

-		URL location = ((SiteLocal)site).getLocationURL();		

-		File file = new File(new URL(location,"platform.xml").getFile());

-		assertTrue("new configuration does not exist", file.exists());

-		

-		// teh current one points to a real fature

-		// does not throw error.

-		IConfiguredSite configSite2 = site.getCurrentConfiguration().getConfiguredSites()[0];

-		

-		IFeatureReference[] refs = configSite2.getConfiguredFeatures();

-		boolean found = false;

-		IFeature feature2 = null;

-		for (int i = 0; !found && i < refs.length; i++) {

-			IFeature feature3 = refs[i].getFeature(null);			

-			if ("org.test1.ident1_1.0.0".equals(feature3.getVersionedIdentifier().toString())){

-				feature2 = feature3;

-				found = true;

-			}		

-		}

-

-		//String configuredFeature = feature2.getLabel();

-		assertTrue("cannot find feature org.test1.ident1_1.0.0 in configured Site",found);

-		assertTrue("Wrong id  version of feature",feature2.getVersionedIdentifier().toString().equalsIgnoreCase("org.test1.ident1_1.0.0"));

-		

-		// test only 2 install config in local site

-//		assertEquals("wrong number of history in Local site:",oldNumberOfhistory+1,site.getConfigurationHistory().length);

-		

-		// test same number of sites in current config

-		assertTrue("Wrong number of config sites in current config",site.getCurrentConfiguration().getConfiguredSites().length==oldNumber);

-		

-		//test only one feature for the site

-//		assertTrue("wrong number of configured features for config site",site.getCurrentConfiguration().getConfiguredSites()[0].getConfiguredFeatures().length==1);

-		

-		// test only 2 activities

-//		assertTrue("Wrong number of activities for install config",site.getCurrentConfiguration().getActivities().length==2);

-		

-		

-		// cleanup

-		localFile = new File(location.getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);		

-		localFile = new File(new URL(location,Site.DEFAULT_FEATURE_PATH+File.separator+feature.getVersionedIdentifier().toString()).getFile());		

-		UpdateManagerUtils.removeFromFileSystem(localFile);							

-		UpdateManagerUtils.removeFromFileSystem(file);		

-		localFile = new File(feature2.getURL().getFile());

-		UpdateManagerUtils.removeFromFileSystem(localFile);

-	}*/

-	

-//TODO uncomment this once site disabling is supported

-public void testRetriveConfigHTTPInstallNotEnable() throws Exception {

-/*

-	//clean up

-	SiteLocal siteLocal = (SiteLocal)SiteManager.getLocalSite();

-	URL newURL = new URL(siteLocal.getLocationURL(),SiteLocal.SITE_LOCAL_FILE);

-	File localFile = new File(newURL.getFile());

-	UpdateManagerUtils.removeFromFileSystem(localFile);

-	UpdateManagerUtils.removeFromFileSystem(new File(((InstallConfiguration)siteLocal.getCurrentConfiguration()).getURL().getFile()));	

-	InternalSiteManager.localSite=null;		

-

-	ILocalSite site = SiteManager.getLocalSite();

-	ISite remoteSite = SiteManager.getSite(SOURCE_HTTP_SITE);

-	IFeature feature = remoteSite.getFeatureReferences()[0].getFeature(null);

-		

-	// we are not checking if this is read only

-	IInstallConfiguration newConfig = site.cloneCurrentConfiguration();

-	newConfig.setLabel("new Label");		

-	IConfiguredSite configSite = newConfig.getConfiguredSites()[0];

-	ConfigurationPolicyModel configPolicy = new BaseSiteLocalFactory().createConfigurationPolicyModel();

-	configPolicy.setPolicy(IPlatformConfiguration.ISitePolicy.USER_INCLUDE);

-	((ConfiguredSite)configSite).setConfigurationPolicyModel((ConfigurationPolicyModel)configPolicy);	

-	int oldNumberOfhistory = site.getConfigurationHistory().length;			

-	site.addConfiguration(newConfig);

-		

-	

-	((ConfiguredSite)configSite).setUpdatable(true);

-	configSite.install(feature,null,null);

-	((ConfiguredSite)configSite).setEnabled(false);	

-	site.save();

-

-	//do not cleanup, we want to reuse previously created local site

-	// but force re-read of xml File

-	InternalSiteManager.localSite=null;

-	site = SiteManager.getLocalSite();

-	feature = remoteSite.getFeatureReferences()[0].getFeature(null);

-	int oldNumber = site.getCurrentConfiguration().getConfiguredSites().length;		

-		

-	// check

-	// there are 2 configuration

-	String time = ""+site.getCurrentConfiguration().getCreationDate().getTime();

-	URL location = ((SiteLocal)site).getLocationURL();		

-	File file = new File(location.getFile());

-	assertTrue("new configuration does not exist", file.exists());

-		

-	// teh current one points to a real fature

-	// does not throw error.

-	IConfiguredSite configSite2 = site.getCurrentConfiguration().getConfiguredSites()[0];

-		

-	IFeatureReference[] refs = configSite2.getConfiguredFeatures();

-	boolean found = false;

-	IFeature feature2 = null;

-	for (int i = 0; !found && i < refs.length; i++) {

-		IFeature feature3 = refs[i].getFeature(null);			

-		if ("org.test1.ident1_1.0.0".equals(feature3.getVersionedIdentifier().toString())){

-			feature2 = feature3;

-			found = true;

-		}		

-	}

-

-	//String configuredFeature = feature2.getLabel();

-	assertTrue("found feature org.test1.ident1_1.0.0 in disabled configured Site",!found);

-		

-	//test no configured features

-//	assertTrue("wrong number of configured features for config site",site.getCurrentConfiguration().getConfiguredSites()[0].getConfiguredFeatures().length==0);

-	

-	

-	configSite2.setEnabled(true);

-	refs = configSite2.getConfiguredFeatures();	

-	for (int i = 0; i < refs.length; i++) {

-		IFeature feature3 = refs[i].getFeature(null);			

-		if ("org.test1.ident1_1.0.0".equals(feature3.getVersionedIdentifier().toString())){

-			feature2 = feature3;

-			found = true;

-		}		

-	}

-

-	//String configuredFeature = feature2.getLabel();

-	assertTrue("cannot find feature org.test1.ident1_1.0.0 in configured Site",found);

-	assertTrue("Wrong id  version of feature",feature2.getVersionedIdentifier().toString().equalsIgnoreCase("org.test1.ident1_1.0.0"));

-		

-	// test only 2 install config in local site

-//	assertEquals("wrong number of history in Local site:",oldNumberOfhistory+1,site.getConfigurationHistory().length);

-		

-	// test same number of sites in current config

-//	assertTrue("Wrong number of config sites in current config",site.getCurrentConfiguration().getConfiguredSites().length==oldNumber);

-		

-	//test only one feature for the site

-//	assertTrue("wrong number of configured features for config site",site.getCurrentConfiguration().getConfiguredSites()[0].getConfiguredFeatures().length==1);

-		

-	// test only 2 activities

-//	assertTrue("Wrong number of activities for install config",site.getCurrentConfiguration().getActivities().length==2);

-		

-		

-	// cleanup

-	localFile = new File(new URL(location,SiteLocal.SITE_LOCAL_FILE).getFile());

-	UpdateManagerUtils.removeFromFileSystem(localFile);		

-	localFile = new File(new URL(location,SiteLocal.DEFAULT_CONFIG_FILE).getFile());

-	UpdateManagerUtils.removeFromFileSystem(localFile);	

-	localFile = new File(new URL(location,Site.DEFAULT_FEATURE_PATH+File.separator+feature.getVersionedIdentifier().toString()).getFile());		

-	UpdateManagerUtils.removeFromFileSystem(localFile);	

-	UpdateManagerUtils.removeFromFileSystem(new File(((InstallConfiguration)site.getCurrentConfiguration()).getURL().getFile()));						

-	UpdateManagerUtils.removeFromFileSystem(file);		

-	localFile = new File(feature2.getURL().getFile());

-	UpdateManagerUtils.removeFromFileSystem(localFile);*/

-}

-

-

-}

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestSpaceInInstall.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestSpaceInInstall.java
deleted file mode 100644
index 5e6e4a9..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestSpaceInInstall.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.regularInstall;

-import java.io.File;

-import java.net.URL;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestSpaceInInstall extends UpdateManagerTestCase {

-	/**

-	 * Constructor for Test1

-	 */

-	public TestSpaceInInstall(String arg0) {

-		super(arg0);

-	}

-

-	/**

-	 *

-	 */

-	public void testSpaceInURL() throws Exception {

-

-		//cleanup target 

-		URL testURL = new URL(TARGET_FILE_SITE,"test site space/"); 

-		String testPath = testURL.getFile();

-		File target = new File(testPath);

-		UpdateManagerUtils.removeFromFileSystem(target);

-		

-		URL newURL = new File(dataPath + "Site with space/site.xml").toURL();

-		ISite remoteSite = SiteManager.getSite(newURL,true,null);

-		IFeatureReference[] featuresRef = remoteSite.getFeatureReferences();

-		File file = new File(testURL.getFile());

-		if (!file.exists()) file.mkdirs();

-		ISite localSite = SiteManager.getSite(testURL,true,null);

-		IFeature remoteFeature = null;

-		

-		// at least one executable feature and on packaged

-		boolean execFeature = false;

-		boolean packFeature = false;

-

-		if (featuresRef.length==0) fail ("no feature found");

-	

-		for (int i = 0; i < featuresRef.length; i++) {

-			remoteFeature = featuresRef[i].getFeature(null);

-			remove(remoteFeature,localSite); 

-			localSite.install(remoteFeature, null,null);

-			

-			if (remoteFeature.getFeatureContentProvider() instanceof FeaturePackagedContentProvider) packFeature = true;

-			if (remoteFeature.getFeatureContentProvider() instanceof FeatureExecutableContentProvider) execFeature = true;

-

-			// verify

-			String site = testURL.getFile();

-			IPluginEntry[] entries = remoteFeature.getRawPluginEntries();

-			assertTrue("no plugins entry", (entries != null && entries.length != 0));

-			String pluginName = entries[0].getVersionedIdentifier().toString();

-			File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);

-			assertTrue("plugin files not installed locally", pluginFile.exists());

-

-			File featureFile = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString());

-			assertTrue("feature info not installed locally:"+featureFile, featureFile.exists());

-

-			File featureFileXML = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString() + File.separator + "feature.xml");

-			assertTrue("feature info not installed locally: no feature.xml", featureFileXML.exists());

-		}

-

-		if (!execFeature && !packFeature){

-			fail("cannot find one executable and one package feature on teh site");

-		}

-

-		//cleanup target 

-		UpdateManagerUtils.removeFromFileSystem(target);

-

-

-	}

-	

-	

-	/**

-	 *

-	 */

-	public void testSpaceInHTTPURL() throws Exception {

-

-		//cleanup target  

-		File target = new File(TARGET_FILE_SITE.getFile());

-		UpdateManagerUtils.removeFromFileSystem(target);

-		InstallRegistry.cleanup();

-		

-		String path = bundle.getString("HTTP_PATH_3");

-		ISite remoteSite = SiteManager.getSite(new URL("http",getHttpHost(),getHttpPort(),path),true,null);		

-		IFeatureReference[] featuresRef = remoteSite.getFeatureReferences();

-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,true,null);

-		IFeature remoteFeature = null;

-		

-		// at least one executable feature and on packaged

-		boolean execFeature = false;

-		boolean packFeature = false;

-

-		if (featuresRef.length==0) fail ("no feature found");

-	

-		for (int i = 0; i < featuresRef.length; i++) {

-			remoteFeature = featuresRef[i].getFeature(null);

-			localSite.install(remoteFeature, null,null);

-			

-			if (remoteFeature.getFeatureContentProvider() instanceof FeaturePackagedContentProvider) packFeature = true;

-			if (remoteFeature.getFeatureContentProvider() instanceof FeatureExecutableContentProvider) execFeature = true;

-

-			// verify

-			String site = TARGET_FILE_SITE.getFile();			

-			IPluginEntry[] entries = remoteFeature.getRawPluginEntries();

-			assertTrue("no plugins entry", (entries != null && entries.length != 0));

-			String pluginName = entries[0].getVersionedIdentifier().toString();

-			File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);

-			assertTrue("plugin files not installed locally", pluginFile.exists());

-

-			File featureFile = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString());

-			assertTrue("feature info not installed locally:"+featureFile, featureFile.exists());

-

-			File featureFileXML = new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + remoteFeature.getVersionedIdentifier().toString() + File.separator + "feature.xml");

-			assertTrue("feature info not installed locally: no feature.xml", featureFileXML.exists());

-		}

-

-		if (!execFeature && !packFeature){

-			fail("cannot find one executable and one package feature on teh site");

-		}

-

-		//cleanup target 

-		UpdateManagerUtils.removeFromFileSystem(target);

-		InstallRegistry.cleanup();

-

-	}

-		

-		

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularRemove/AllRegularRemoveTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularRemove/AllRegularRemoveTests.java
deleted file mode 100644
index 937ec75..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularRemove/AllRegularRemoveTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.regularRemove;

-

-import org.eclipse.update.tests.UpdateManagerTestCase;

-import junit.framework.*;

-

-

-public class AllRegularRemoveTests extends UpdateManagerTestCase {

-public AllRegularRemoveTests(String name) {

-	super(name);

-}

-public static Test suite() {

-	TestSuite suite = new TestSuite();

-	suite.setName("Regular Remove Tests");

-	

-	suite.addTest(new TestSuite(TestRemove.class));

-	

-	return suite;

-}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularRemove/TestRemove.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularRemove/TestRemove.java
deleted file mode 100644
index 4ac13a6..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularRemove/TestRemove.java
+++ /dev/null
@@ -1,91 +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 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.update.tests.regularRemove;

-import java.io.File;

-import java.net.MalformedURLException;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.configuration.IConfiguredSiteChangedListener;

-import org.eclipse.update.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-public class TestRemove extends UpdateManagerTestCase {

-

-	public class Listener implements IConfiguredSiteChangedListener {

-

-		public boolean notified = false;

-

-		public void featureInstalled(IFeature feature) {

-			notified = true;

-			System.out.println("Notified DefaultFeature Installed");

-		}

-

-		public void featureRemoved(IFeature feature) {

-		}

-		public void featureConfigured(IFeature feature) {

-		};

-		public void featureUnconfigured(IFeature feature) {

-		};

-

-		public boolean isNotified() {

-			return notified;

-		}

-	}

-

-	/**

-	 * Constructor for Test1

-	 */

-	public TestRemove(String arg0) {

-		super(arg0);

-	}

-

-	private IFeature getFeature1(ISite site)

-		throws MalformedURLException, CoreException {

-		//URL url = UpdateManagerUtils.getURL(site.getURL(), "features/org.eclipse.update.core.tests.feature1_1.0.4.jar", null);

-		SiteFeatureReference ref = new SiteFeatureReference();

-		ref.setSite(site);

-		ref.setURLString("features/org.eclipse.update.core.tests.feature1_1.0.4.jar");

-		ref.setType(ISite.DEFAULT_PACKAGED_FEATURE_TYPE);

-		ref.resolve(site.getURL(), null);

-		return ref.getFeature(null);

-	}

-

-	public void testRemoveFeature() throws Exception {

-

-		// install feature

-		ISite remoteSite = SiteManager.getSite(SOURCE_FILE_SITE,null);

-		IFeature remoteFeature = getFeature1(remoteSite);

-		ISite localSite = SiteManager.getSite(TARGET_FILE_SITE,null);

-		IFeatureReference ref = localSite.install(remoteFeature, null, null);

-

-		// then remove it

-		assertNotNull("Feature is null",ref.getFeature(null));

-		String featureRef = ref.getFeature(null).getVersionedIdentifier().toString();

-		localSite.remove(ref.getFeature(null), null);

-

-		// verify

-		String site = TARGET_FILE_SITE.getFile();

-		IPluginEntry[] entries = remoteFeature.getPluginEntries();

-		assertTrue("no plugins entry", (entries != null && entries.length != 0));

-		String pluginName = entries[0].getVersionedIdentifier().toString();

-

-		File pluginFile = new File(site, Site.DEFAULT_PLUGIN_PATH + pluginName);

-		assertTrue("plugin files installed locally", !pluginFile.exists());

-

-		File featureFile =

-			new File(site, Site.DEFAULT_INSTALLED_FEATURE_PATH + featureRef);

-		assertTrue(

-			"feature info installed locally:" + featureFile,

-			!featureFile.exists());

-

-	}

-

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/sitevalidation/AllSiteValidationTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/sitevalidation/AllSiteValidationTests.java
deleted file mode 100644
index 7d063a9..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/sitevalidation/AllSiteValidationTests.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.tests.sitevalidation;
-
-import org.eclipse.update.tests.UpdateManagerTestCase;
-import junit.framework.*;
-
-public class AllSiteValidationTests extends UpdateManagerTestCase {
-	public AllSiteValidationTests(String name) {
-		super(name);
-	}
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.setName("Site Validation Tests");
-
-		// the following will take all teh test methods in teh class that start with 'test'
-
-		suite.addTest(new TestSuite(TestSiteValidation.class));
-
-		return suite;
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/sitevalidation/TestSiteValidation.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/sitevalidation/TestSiteValidation.java
deleted file mode 100644
index b608ce7..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/sitevalidation/TestSiteValidation.java
+++ /dev/null
@@ -1,163 +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 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.update.tests.sitevalidation;
-import java.io.*;
-import java.net.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.configurator.IPlatformConfiguration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.tests.*;
-
-public class TestSiteValidation extends UpdateManagerTestCase {
-
-
-	/**
-	 * Constructor 
-	 */
-	public TestSiteValidation(String arg0) {
-		super(arg0);
-	}
-
-	private void removeConfigSite(URL url) throws Exception {
-		// get new config object
-		IPlatformConfiguration cfig = ConfiguratorUtils.getCurrentPlatformConfiguration();
-		ISiteEntry s1 = cfig.findConfiguredSite(url);
-		assertNotNull("Unable to find site entry:"+url,s1);
-		cfig.unconfigureSite(s1);
-	}
-
-	public void testSite1() throws Exception {
-
-		URL remoteUrl = new URL(TARGET_FILE_SITE + "validation/site1/eclipse");
-		File file = new File(remoteUrl.getFile());
-		ILocalSite local = SiteManager.getLocalSite();
-		IInstallConfiguration currentConfig = local.getCurrentConfiguration();
-		file.mkdirs();
-		IConfiguredSite configuredSite = currentConfig.createConfiguredSite(file);
-		IStatus status = configuredSite.verifyUpdatableStatus();
-
-		String msg = "The site "+file+" should be updatable.";
-		if (!status.isOK()){
-			fail(msg+status.getMessage());
-		}
-		currentConfig.removeConfiguredSite(configuredSite);
-		removeConfigSite(configuredSite.getSite().getURL());
-	}
-	
-	public void testSite2() throws Exception {
-
-		URL remoteUrl = new URL(SOURCE_FILE_SITE + "validation/site2/eclipse/");
-		File file = new File(remoteUrl.getFile());
-		ILocalSite local = SiteManager.getLocalSite();
-		IInstallConfiguration currentConfig = local.getCurrentConfiguration();
-		IConfiguredSite configuredSite;
-		try {
-		 configuredSite = currentConfig.createConfiguredSite(file);
-		} catch (CoreException e){
-			return;
-		}
-		IStatus status = configuredSite.verifyUpdatableStatus();
-
-//		UpdateManagerUtils.removeFromFileSystem(new File(file,".eclipseUM"));
-
-		String msg = "The site "+file+" should not be updatable.";
-		if (status.isOK()){
-			fail(msg+status.getMessage());
-		}
-		if (status.getMessage().indexOf("This site is contained in another site:")==-1){
-			fail("Wrong validation:"+status.getMessage());
-		}
-	}	
-
-	public void testSite3() throws Exception {
-
-		URL remoteUrl = new URL(SOURCE_FILE_SITE + "validation/site3/eclipse/");
-		File file = new File(remoteUrl.getFile());
-		ILocalSite local = SiteManager.getLocalSite();
-		IInstallConfiguration currentConfig = local.getCurrentConfiguration();
-		IConfiguredSite configuredSite = currentConfig.createConfiguredSite(file);
-		IStatus status = configuredSite.verifyUpdatableStatus();
-
-//		UpdateManagerUtils.removeFromFileSystem(new File(file,".eclipseUM"));
-
-		String msg = "The site "+file+" should not be updatable.";
-		if (status.isOK()){
-			fail(msg+status.getMessage());
-		}
-//		if (status.getMessage().indexOf("This site is contained in another site:")==-1){
-//			fail("Wrong validation:"+status.getMessage());
-//		}
-	}	
-
-	public void testSite4() throws Exception {
-
-		URL remoteUrl = new URL(SOURCE_FILE_SITE + "validation/site4/eclipse/");
-		File file = new File(remoteUrl.getFile());
-		ILocalSite local = SiteManager.getLocalSite();
-		IInstallConfiguration currentConfig = local.getCurrentConfiguration();
-		IConfiguredSite configuredSite = currentConfig.createConfiguredSite(file);
-		IStatus status = configuredSite.verifyUpdatableStatus();
-
-		String msg = "The site "+file+" should not be updatable.";
-		if (status.isOK()){
-			fail(msg+status.getMessage());
-		}
-		if (status.getMessage().indexOf("The site cannot be modified by this product. It is already associated with product:")==-1){
-			fail("Wrong validation:"+status.getMessage());
-		}
-	}	
-
-	public void testSite5() throws Exception {
-
-		URL remoteUrl = new URL(SOURCE_FILE_SITE + "validation/site5/");
-		File file = new File(remoteUrl.getFile());
-		ILocalSite local = SiteManager.getLocalSite();
-		IInstallConfiguration currentConfig = local.getCurrentConfiguration();
-		IConfiguredSite configuredSite = currentConfig.createConfiguredSite(file);
-		IStatus status = configuredSite.verifyUpdatableStatus();
-
-		String msg = "The site "+file+" should be updatable.";
-		if (!status.isOK()){
-			fail(msg+status.getMessage());
-		}
-		
-			// get new config object
-		URL url = configuredSite.getSite().getURL();
-		IPlatformConfiguration cfig = ConfiguratorUtils.getCurrentPlatformConfiguration();
-		ISiteEntry s1 = cfig.findConfiguredSite(url);
-		assertNotNull("Site entry not found:"+url,s1);
-		cfig.unconfigureSite(s1);
-		cfig.save();
-	}
-	
-	public void testSite6() throws Exception {
-
-		URL remoteUrl = new URL(SOURCE_FILE_SITE + "validation/site6/children/children/eclipse/");
-		File file = new File(remoteUrl.getFile());
-		if (!file.exists()) file.mkdirs();
-		ILocalSite local = SiteManager.getLocalSite();
-		IInstallConfiguration currentConfig = local.getCurrentConfiguration();
-		IConfiguredSite configuredSite = currentConfig.createConfiguredSite(file);
-		IStatus status = configuredSite.verifyUpdatableStatus();
-
-//		UpdateManagerUtils.removeFromFileSystem(new File(file,".eclipseUM"));
-
-		String msg = "The site "+file+" should not be updatable.";
-		if (status.isOK()){
-			fail(msg+status.getMessage());
-		}
-//		if (status.getMessage().indexOf("This site is contained in another site:")==-1){
-//			fail("Wrong validation:"+status.getMessage());
-//		}
-	}	
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/AllStandaloneTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/AllStandaloneTests.java
deleted file mode 100644
index bb60c51..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/AllStandaloneTests.java
+++ /dev/null
@@ -1,43 +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 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.update.tests.standalone;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.update.tests.UpdateManagerTestCase;
-
-
-public class AllStandaloneTests extends UpdateManagerTestCase{
-
-	public AllStandaloneTests(String name){
-		super(name);
-	}
-	
-	public static Test suite(){
-		TestSuite suite = new TestSuite();
-		suite.setName("Standalone Tests");
-		
-		// the following will take all the test methods in 
-		// the class that start with "test"
-		suite.addTest(new TestSuite(TestFeatureInstall.class));
-		suite.addTest(new TestSuite(TestFeatureUpdate.class));
-		suite.addTest(new TestSuite(TestFeatureEnable.class));
-		suite.addTest(new TestSuite(TestFeatureDisable.class));
-		suite.addTest(new TestSuite(TestFeatureUninstall.class));
-		suite.addTest(new TestSuite(TestBundlesInstall.class));
-		//and this one's for fun :)
-//		suite.addTest(new TestSuite(TestSiteSearch.class));
-		
-		return suite;
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/StandaloneManagerTestCase.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/StandaloneManagerTestCase.java
deleted file mode 100644
index ece2944..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/StandaloneManagerTestCase.java
+++ /dev/null
@@ -1,327 +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 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.update.tests.standalone;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.tests.*;
-
-public class StandaloneManagerTestCase extends UpdateManagerTestCase {
-	public static StringBuffer errOutput;
-	public static Integer exitValue= new Integer(-1);
-	public static URL TARGET_FILE_SITE;
-	private boolean oldCache = false;
-	
-	static {
-		File targetDir = new File(System.getProperty("java.io.tmpdir"));
-		targetDir = new File(targetDir, "standalone");
-		targetDir = new File(targetDir, "mytarget");
-		if (targetDir.exists())
-			deleteDirectory(targetDir);
-		try {
-			TARGET_FILE_SITE = targetDir.toURL();
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-	}
-	
-	public StandaloneManagerTestCase (String arg0){
-		super(arg0);
-	}
-	
-	/**
-	 * Sets up the fixture, for example, open a network connection.
-	 * This method is called before a test is executed.
-	 */
-	protected void umSetUp() {
-		// setup cache site to true
-		oldCache = InternalSiteManager.globalUseCache;
-		InternalSiteManager.globalUseCache = true;
-	}
-	
-	/**
-	 * Tears down the fixture, for example, close a network connection.
-	 * This method is called after a test is executed.
-	 */
-	protected void umTearDown() {
-		// do nothing.
-		InternalSiteManager.globalUseCache = oldCache;
-	}
-	
-	public void checkConfiguredSites(){
-		ILocalSite localSite;
-		System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
-		try {
-			localSite = SiteManager.getLocalSite();
-			System.out.println("LocalSite: " + localSite.getCurrentConfiguration().getLabel());
-		
-		//Get site to install to
-		IInstallConfiguration currentConfig = localSite.getCurrentConfiguration();
-		IConfiguredSite[] sites = currentConfig.getConfiguredSites();
-//	
-//			// start of config site print
-		System.out.println("GETTING CONFIGURED SITES...");
-		for (int i = 0; i<sites.length; i++){
-			System.out.println("site #" + i + ": " + sites[i].getSite().getURL().getFile());
-		}
-		System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
-		} catch (CoreException e) {
-			System.err.println(e);
-		}
-	}
-	
-	// get the first configured site found because this is the one we're most likely to 
-	// have installed into
-	public ISite getConfiguredSite(URL target){
-		try {
-			ILocalSite local = SiteManager.getLocalSite();
-			IInstallConfiguration currentConfig = local.getCurrentConfiguration();
-			IConfiguredSite[] sites = currentConfig.getConfiguredSites();
-			System.out.println("\nretrieving configured sites...");
-			String targetFile = new File(target.getFile()).getAbsolutePath();
-			for (int i = 0; i<sites.length ; i++){
-				System.out.println("site["+i+"]: " + sites[i].getSite().getURL());
-				String siteFile = new File(sites[i].getSite().getURL().getFile()).getAbsolutePath();
-				if (targetFile.equals(siteFile))
-					return sites[i].getSite();
-			}
-			if (sites.length == 0)
-				return null;
-			return sites[0].getSite();
-		} catch (CoreException e) {
-			System.err.println(e);
-			return null;
-		}
-	}
-	//WatchDog thread to kill mirroring process if it hangs (or takes too long)
-	public static class Timer extends Thread{
-		private Process proc;
-		
-		public Timer(Process proc){
-			super();
-			this.setDaemon(true);
-			this.proc = proc;
-		}
-		
-		public void run(){
-			try {
-				// sleep time 5min
-				sleep(300000); 
-				System.out.println("destroying process");
-				proc.destroy();
-			} catch (Exception e) {
-				System.err.println(e);
-				e.printStackTrace();
-			}
-		}
-	}
-	
-	// StreamConsumer to display output to output files or console
-	public static class StreamConsumer extends Thread {
-		private BufferedReader bReader;
-
-		public StreamConsumer(InputStream inputStream) {
-			super();
-			setDaemon(true);
-			bReader = new BufferedReader(new InputStreamReader(inputStream));
-			errOutput = new StringBuffer();
-		}
-
-		public void run() {
-			try {
-				String line;
-				while (null != (line = bReader.readLine())) {
-					System.err.println(line);
-					errOutput.append(line);
-					errOutput.append("\n");
-				}
-			} catch (IOException e) {
-				System.err.println(e);
-				e.printStackTrace();
-			}
-		}
-	}
-	
-	/**
-	 * @param command : command argument to run on site/feature 
-	 * (i.e. 'install', 'enable', 'disable', 'update') *<i>required</i>*
-	 * @param fid : feature id of the feature being installed, enabled, etc.
-	 * (optional - can be null)
-	 * @param ver : version of feature being installed, enabled, etc. (optional - can be null)
-	 * @param config : location of configuration info (i.e. file:D:\temp\.config\)
-	 * @param remoteLoc : remote site url (required for installing/searching from remote site)
-	 * @param localLoc : target site directory (required unless updating/searching)
-	 * @return a string array consisting of commands and their arguments to
-	 * be run
-	 */
-	public String[] getCommand(
-		String command,
-		String fid,
-		String ver,
-		String config,
-		String remoteLoc,
-		String localLoc){
-		final String classpath = "startup.jar";
-		final String launcher = "org.eclipse.core.launcher.Main";
-		final String application = "org.eclipse.update.core.standaloneUpdate";
-		final String FLAG_CP = "-cp";
-		final String FLAG_APP = "-application";
-		final String FLAG_CMD = "-command";
-		final String FLAG_FID = "-featureId";
-		final String FLAG_DATA = "-data";
-		final String FLAG_VERSION = "-version";
-		final String FLAG_FROM = "-from";
-		final String FLAG_TO = "-to";
-		final String FLAG_CONFIG = "-configuration";
-//		final String FLAG_URL = "-mirrorURL";
-		final String FLAG_SPLASH = "-nosplash";
-		final String FLAG_CONSOLELOG = "-consolelog";
-		final String data =
-			UpdateCore.getPlugin().getStateLocation().toOSString();
-		String[] cmd =
-			new String[] {
-				getJavaVMPath(),
-				FLAG_CP,
-				classpath,
-				launcher,
-				FLAG_APP,
-				application,
-				FLAG_CMD,
-				command,
-				(remoteLoc !=null ? FLAG_FROM : ""),
-				(remoteLoc !=null ? remoteLoc : ""),
-				(localLoc !=null ? FLAG_TO : ""),
-				(localLoc !=null ?localLoc.replaceFirst("file:", "") : ""),
-				(fid != null ? FLAG_FID : ""),
-				(fid != null ? fid : ""),
-				(ver != null ? FLAG_VERSION : ""),
-				(ver != null ? ver : ""),
-				(config != null ? FLAG_CONFIG : ""),
-				(config != null ? config : ""),
-				FLAG_SPLASH,
-				FLAG_DATA,
-				data,
-				FLAG_CONSOLELOG};
-		for (int i = 0 ;i<cmd.length; i++){
-			System.out.print(cmd[i] + " ");			
-		}System.out.println();
-		return cmd;
-	}
-	
-	public String getJavaVMPath() {
-		// Create command string for launching the process
-		String vm = System.getProperty("java.vm.name");
-		String executable = "J9".equals(vm) ? "j9" : "java";
-		if (org.eclipse.osgi.service.environment.Constants.OS_WIN32.equals(Platform.getOS()))
-			executable += "w.exe";
-
-		String javaInstallDir =
-			System.getProperty("java.home") + File.separator + "bin";
-		return javaInstallDir + File.separator + executable;
-	}
-	
-	public int performAction(String[] cmd) {
-		File file = new File(getEclipseRoot());
-		try {
-
-			Process proc =
-				Runtime.getRuntime().exec(cmd, (String[]) null, file);
-
-			StreamConsumer outputs = new StreamConsumer(proc.getInputStream());
-			outputs.start();
-			StreamConsumer errors = new StreamConsumer(proc.getErrorStream());
-			errors.start();
-			Timer timer = new Timer(proc);
-			timer.start();
-
-			return proc.waitFor();
-		} catch (IOException e) {
-			System.err.println(e);
-		} catch (InterruptedException e) {
-			System.err.println(e);
-		} catch (Exception e) {
-			System.err.println(e);
-		}
-		return -1;
-	}
-	
-	public String getEclipseRoot() {
-		return ConfiguratorUtils.getInstallURL().toExternalForm().replaceFirst(
-			"file:",
-			"");
-	}
-	
-	public ArrayList getArrayList(String[] list){
-		ArrayList temp = new ArrayList();
-		for(int i = 0; i< list.length; i++){
-			temp.add(list[i]);
-		}
-		return temp;
-	}
-	
-	public File getLatestConfigurationFile(File localFile) {
-
-		try {
-			System.out.println("reading from : " + localFile.getAbsolutePath());
-				FileReader freader = new FileReader(localFile);
-				BufferedReader breader = new BufferedReader(freader);
-				String configFileName="", line;
-				while (breader.ready()) {
-					line = breader.readLine();
-//					System.out.println(line);
-					if (line.trim().startsWith("<config url")) {
-						configFileName = line.split("\"")[1];
-					}
-				}
-				// read config file
-				File parent = new File(localFile.getParent());
-				System.out.println("parent: " + parent.getAbsolutePath());
-				String[] parList = parent.list();
-				int latest = 0; 
-				for (int i = parList.length-1; i>=0; i--){
-					System.out.println("parList[" + i + "]: " + parList[i]);
-					if (parList[i].startsWith("platform")){
-						latest = i;
-						break;
-					}
-				}
-				File configFile = new File(parent.getAbsolutePath() + File.separator + parList[latest]);
-				return configFile;
-				// end of config file read
-		} catch (Exception e) {
-			System.err.println(e);
-			e.printStackTrace();
-		}
-		return localFile;
-	}
-	
-	private static void deleteDirectory(File dir) {
-		File[] list = dir.listFiles();
-		if (list == null)
-			return;
-			
-		for (int i=0; i<list.length; i++) {
-			if (list[i].isDirectory()) 
-				deleteDirectory(list[i]);
-			if (!list[i].delete())
-				System.out.println("Unable to delete "+list[i].toString());
-		}
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestBundlesInstall.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestBundlesInstall.java
deleted file mode 100644
index bb04678..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestBundlesInstall.java
+++ /dev/null
@@ -1,127 +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 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.update.tests.standalone;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.standalone.*;
-
-
-public class TestBundlesInstall extends StandaloneManagerTestCase {
-	private static boolean isInstalled;
-
-	public TestBundlesInstall(String arg0) {
-		super(arg0);
-		isInstalled = false;
-	}
-
-	public void umSetUp() {
-		super.umSetUp();
-		//System.out.println("looking at configured sites available....");
-		//checkConfiguredSites();
-		
-		String featureId = "com.example.bundle.feature";
-		String version = "1.0.0";
-
-		String fromRemoteSiteUrl = "http://"+getHttpHost()+":"+ getHttpPort()+ "/org.eclipse.update.tests.core.updatetests/bundleSite/";;
-		if (!isInstalled) {
-			System.out.println(
-				"==============" + this.getClass() + "=============");
-			StandaloneUpdateApplication app = new StandaloneUpdateApplication();
-			try {
-				exitValue = (Integer)app.run(getCommand(
-					"install",
-					featureId,
-					version,
-					null,
-					fromRemoteSiteUrl,
-					TARGET_FILE_SITE.getFile()));
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-			isInstalled = true;
-		}
-		
-	}
-
-	public void testPluginsExist() {
-		ISite localSite = getConfiguredSite(TARGET_FILE_SITE);
-		
-		System.out.println("localSite: " + localSite.getURL().getFile());
-		IPluginEntry[] pluginEntries = localSite.getPluginEntries();
-		ArrayList list = new ArrayList();
-		if (pluginEntries == null || pluginEntries.length == 0){
-			System.err.println("No plugin entries on the target site");
-			fail("No plugin entries on the target site");
-		} else{
-			for (int i = 0; i < pluginEntries.length; i++){
-				System.out.println("found plugin: " + pluginEntries[i].getVersionedIdentifier().toString());
-				list.add(pluginEntries[i].getVersionedIdentifier().toString());
-			}
-		}
-
-		String[] pluginNames =
-			{	"com.example.bundle.plugin_1.0.0",
-				"com.example.bundle.plugin.ui_2.0.0",
-				"com.example.bundle.fragment_1.0.0",
-				"com.example.budle.fragment.ui_1.0.0"};
-		assertTrue(checkFilesInList(pluginNames, list));
-	}
-
-	public void testFeaturesExist() {
-		try {
-			ISite localSite =  getConfiguredSite(TARGET_FILE_SITE);
-
-			System.out.println("localSite: " + localSite.getURL().getFile());
-			// get feature references 
-			IFeatureReference[] localFeatures =
-				localSite.getFeatureReferences();
-			System.out.println("local currentCOnfigSite: " + localSite.getCurrentConfiguredSite());
-			ArrayList list = new ArrayList();
-			if (localFeatures == null || localFeatures.length == 0){
-				System.err.println("No features on the target site");
-				fail("No features on the target site");
-			} else {
-				for (int i = 0; i < localFeatures.length; i++)
-					list.add(localFeatures[i].getVersionedIdentifier().toString());
-			}
-			String[] featureNames =
-				{
-					"com.example.bundle.feature_1.0.0"};
-			assertTrue(checkFilesInList(featureNames, list));
-		} catch (CoreException e) {
-			System.err.println(e);
-		}
-	}
-
-	// makes sure all files/directories in "names" are in the directory listing "list"
-	public boolean checkFilesInList(
-		String[] names,
-		ArrayList list) {
-		
-		for (int i = 0; i < names.length; i++) {
-			System.out.println(names[i]);
-			if (!list.contains(names[i])){
-				return false;
-			}
-		}
-		return true;
-	}
-
-	// ensure exit without problems
-	public void testExitValue() throws Exception {
-		System.out.println("exitValue: " + exitValue);
-		assertEquals(exitValue, IPlatformRunnable.EXIT_OK);
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureDisable.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureDisable.java
deleted file mode 100644
index 3b332a2..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureDisable.java
+++ /dev/null
@@ -1,103 +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 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.update.tests.standalone;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.standalone.*;
-
-public class TestFeatureDisable extends StandaloneManagerTestCase {
-	public static boolean isDisabled;
-	
-	public TestFeatureDisable(String arg0) {
-		super(arg0);
-		isDisabled = false;
-	}
-
-	public void umSetUp() {
-		super.umSetUp();
-		
-		String featureId = "my.alphabet";
-		String version = "1.0.0";
-
-		checkConfiguredSites();
-		if (!isDisabled) {
-			System.out.println(
-				"==============" + this.getClass() + "=============");
-			StandaloneUpdateApplication app = new StandaloneUpdateApplication();
-			try {
-				exitValue = (Integer)app.run(getCommand(
-					"disable",
-					featureId,
-					version,
-					null,
-					null,
-					TARGET_FILE_SITE.getFile()));
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-			isDisabled = true;
-			checkConfiguredSites();
-		}
-	}
-	
-	// ensure exit without problems
-	public void testExitValue() throws Exception {
-		System.out.println("exitValue: " + exitValue);
-		assertEquals(exitValue, IPlatformRunnable.EXIT_OK);
-	}
-
-	public void testFeatureStatus() throws Exception {
-		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());
-		System.out.println(localFile.getAbsolutePath());
-		assertTrue(localFile.exists());
-		File configFile = getLatestConfigurationFile(localFile);
-	
-		String[] names =
-			{
-				"features/my.alphabet.round.letters_1.0.0/",
-				"features/my.alphabet.straight.letters_1.0.0/",
-				"features/my.alphabet_1.0.0/" };
-		assertTrue(configFile.exists());
-		assertTrue(checkFeaturesDisabled(getArrayList(names),configFile, TARGET_FILE_SITE.getFile()));
-	}
-
-	public boolean checkFeaturesDisabled(ArrayList featureNames, File configFile, String siteLocation){
-		try {
-			FileReader freader = new FileReader(configFile);
-			BufferedReader breader = new BufferedReader(freader);
-			String line;
-			System.out.println("now reading..." + configFile.getAbsolutePath());
-			boolean isSiteToCheck = false;
-			while (breader.ready()) {
-				line = breader.readLine();
-				if (line.trim().startsWith("<site url")){
-					isSiteToCheck = line.trim().split("\"")[1].replaceFirst("file:","").equals(siteLocation);
-				} else if (isSiteToCheck && line.trim().startsWith("<feature configured")){
-					System.err.println(line);
-					String[] configLine = line.split("\"");
-					if (featureNames.contains(configLine[3]) && configLine[1].equals("true")){
-						fail(configLine[3] + " has not been disabled.");
-					}
-				}
-			}
-		} catch (Exception e) {
-			System.err.println(e);
-		} 
-		return true;
-	}
-
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureEnable.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureEnable.java
deleted file mode 100644
index dad8983..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureEnable.java
+++ /dev/null
@@ -1,109 +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 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.update.tests.standalone;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.standalone.*;
-
-public class TestFeatureEnable extends StandaloneManagerTestCase {
-	public static boolean isEnabled;
-	
-	public TestFeatureEnable(String arg0) {
-		super(arg0);
-		isEnabled = false;
-	}
-
-	public void umSetUp() {
-
-		super.umSetUp();
-		
-		String featureId = "my.alphabet";
-		String version = "1.0.0";
-
-		checkConfiguredSites();
-		if (!isEnabled) {
-			System.out.println(
-				"==============" + this.getClass() + "=============");
-			StandaloneUpdateApplication app = new StandaloneUpdateApplication();
-			try {
-				exitValue = (Integer)app.run(getCommand(
-					"enable",
-					featureId,
-					version,
-					null,
-					null,
-					TARGET_FILE_SITE.getFile()));
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-			isEnabled = true;
-			checkConfiguredSites();
-		}
-	}
-	
-	// ensure exit without problems
-	public void testExitValue() throws Exception {
-		System.out.println("exitValue: " + exitValue);
-		assertEquals(exitValue, IPlatformRunnable.EXIT_OK);
-	}
-
-	public void testFeatureStatus() throws Exception {
-	
-		File localFile = new File(((SiteLocal)SiteManager.getLocalSite()).getLocationURL().getFile());
-		System.out.println(localFile.getAbsolutePath());
-		assertTrue(localFile.exists());
-		File configFile = getLatestConfigurationFile(localFile);
-		
-		String[] names =
-			{
-				"features/my.alphabet.round.letters_1.0.0/",
-				"features/my.alphabet.straight.letters_1.0.0/",
-				"features/my.alphabet_1.0.0/" };
-		assertTrue(configFile.exists());
-		assertTrue(checkFeaturesEnabled(getArrayList(names),configFile, TARGET_FILE_SITE.getFile()));
-	}
-
-	public boolean checkFeaturesEnabled(ArrayList featureNames, File configFile, String siteLocation){
-		try {
-			FileReader freader = new FileReader(configFile);
-			BufferedReader breader = new BufferedReader(freader);
-			String line;
-			System.out.println("now reading..." + configFile.getAbsolutePath());
-			boolean isSiteToCheck = false;
-			while (breader.ready()) {
-				line = breader.readLine();
-				if (line.trim().startsWith("<site url")){
-					isSiteToCheck = line.trim().split("\"")[1].replaceFirst("file:","").equals(siteLocation);
-				} else if (isSiteToCheck && line.trim().startsWith("<feature configured")){
-					System.err.println(line);
-					String[] configLine = line.split("\"");
-					if (featureNames.contains(configLine[3]) && configLine[1].equals("false")){
-						fail(configLine[3] + " has not been enabled.");
-					}
-					// temp - delete later
-					if (featureNames.contains(configLine[3]))
-						System.err.println(line);
-					// end of temp delete
-				}
-			}
-		} catch (Exception e) {
-			System.err.println(e);
-		} 
-		return true;
-	}
-
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureInstall.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureInstall.java
deleted file mode 100644
index 19fcbcd..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureInstall.java
+++ /dev/null
@@ -1,134 +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 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.update.tests.standalone;
-
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.standalone.*;
-
-
-public class TestFeatureInstall extends StandaloneManagerTestCase {
-	private static boolean isInstalled;
-
-	public TestFeatureInstall(String arg0) {
-		super(arg0);
-		isInstalled = false;
-	}
-
-	public void umSetUp() {
-		super.umSetUp();
-		//System.out.println("looking at configured sites available....");
-		//checkConfiguredSites();
-		
-		String featureId = "my.alphabet";
-		String version = "1.0.0";
-
-		String fromRemoteSiteUrl =
-			"http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/3.0/site/";
-		if (!isInstalled) {
-			System.out.println(
-				"==============" + this.getClass() + "=============");
-			StandaloneUpdateApplication app = new StandaloneUpdateApplication();
-			try {
-				exitValue = (Integer)app.run(getCommand(
-					"install",
-					featureId,
-					version,
-					null,
-					fromRemoteSiteUrl,
-					TARGET_FILE_SITE.getFile()));
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-			isInstalled = true;
-		}
-		
-	}
-
-	public void testPluginsExist() {
-		ISite localSite = getConfiguredSite(TARGET_FILE_SITE);
-		
-		System.out.println("localSite: " + localSite.getURL().getFile());
-		IPluginEntry[] pluginEntries = localSite.getPluginEntries();
-		ArrayList list = new ArrayList();
-		if (pluginEntries == null || pluginEntries.length == 0){
-			System.err.println("No plugin entries on the target site");
-			fail("No plugin entries on the target site");
-		} else{
-			for (int i = 0; i < pluginEntries.length; i++){
-				System.out.println("found plugin: " + pluginEntries[i].getVersionedIdentifier().toString());
-				list.add(pluginEntries[i].getVersionedIdentifier().toString());
-			}
-		}
-
-		String[] pluginNames =
-			{	"my.alphabet.letter.a_1.0.0",
-				"my.alphabet.letter.b_1.0.0",
-				"my.alphabet.letter.c_1.0.0",
-				"my.alphabet.letter.e_1.0.0",
-				"my.alphabet.round.letters_1.0.0",
-				"my.alphabet.straight.letters_1.0.0",
-				"my.alphabet_1.0.0" };
-		assertTrue(checkFilesInList(pluginNames, list));
-	}
-
-	public void testFeaturesExist() {
-		try {
-			ISite localSite =  getConfiguredSite(TARGET_FILE_SITE);
-
-			System.out.println("localSite: " + localSite.getURL().getFile());
-			// get feature references 
-			IFeatureReference[] localFeatures =
-				localSite.getFeatureReferences();
-			System.out.println("local currentCOnfigSite: " + localSite.getCurrentConfiguredSite());
-			ArrayList list = new ArrayList();
-			if (localFeatures == null || localFeatures.length == 0){
-				System.err.println("No features on the target site");
-				fail("No features on the target site");
-			} else {
-				for (int i = 0; i < localFeatures.length; i++)
-					list.add(localFeatures[i].getVersionedIdentifier().toString());
-			}
-			String[] featureNames =
-				{
-					"my.alphabet.round.letters_1.0.0",
-					"my.alphabet.straight.letters_1.0.0",
-					"my.alphabet_1.0.0" };
-			assertTrue(checkFilesInList(featureNames, list));
-		} catch (CoreException e) {
-			System.err.println(e);
-		}
-	}
-
-	// makes sure all files/directories in "names" are in the directory listing "list"
-	public boolean checkFilesInList(
-		String[] names,
-		ArrayList list) {
-		
-		for (int i = 0; i < names.length; i++) {
-			System.out.println(names[i]);
-			if (!list.contains(names[i])){
-				return false;
-			}
-		}
-		return true;
-	}
-
-	// ensure exit without problems
-	public void testExitValue() throws Exception {
-		System.out.println("exitValue: " + exitValue);
-		assertEquals(exitValue, IPlatformRunnable.EXIT_OK);
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureUninstall.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureUninstall.java
deleted file mode 100644
index a256646..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureUninstall.java
+++ /dev/null
@@ -1,123 +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 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.update.tests.standalone;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.standalone.*;
-
-
-public class TestFeatureUninstall extends StandaloneManagerTestCase {
-	public static boolean isUninstalled;
-	
-	public TestFeatureUninstall(String arg0){
-		super(arg0);
-		isUninstalled = false;
-	}
-	
-	public void umSetUp() {
-		super.umSetUp();
-		System.out.println("looking at configured sites available....");
-		checkConfiguredSites();
-		
-		String featureId = "my.alphabet";
-		String version = "1.0.0";
-
-		if(!isUninstalled){
-			System.out.println(
-				"==============" + this.getClass() + "=============");
-			StandaloneUpdateApplication app = new StandaloneUpdateApplication();
-			try {
-				exitValue = (Integer)app.run(getCommand(
-					"uninstall",
-					featureId,
-					version,
-					null,
-					null,
-					TARGET_FILE_SITE.getFile()));
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-			isUninstalled = true;
-		}
-	}
-	
-	// ensure exit without problems
-	public void testExitValue() throws Exception {
-		System.out.println("exitValue: " + exitValue);
-		assertEquals(exitValue, IPlatformRunnable.EXIT_OK);
-	}
-	
-	public void testFeaturesUninstalled() throws Exception {
-		try {
-			ISite localSite = getConfiguredSite(TARGET_FILE_SITE);
-			
-			// get feature references 
-			IFeatureReference[] localFeatures =
-				localSite.getFeatureReferences();
-			ArrayList list = new ArrayList();
-			if (localFeatures == null || localFeatures.length == 0){
-				fail("No features on the target site");
-			} else {
-				for (int i = 0; i < localFeatures.length; i++)
-					list.add(localFeatures[i].getVersionedIdentifier().toString());
-			}
-			String[] featureNames =
-				{
-					"my.alphabet.round.letters_1.0.0",
-					"my.alphabet.straight.letters_1.0.0",
-					"my.alphabet_1.0.0" };
-			assertTrue(checkFilesNotInList(featureNames, list));
-		} catch (CoreException e) {
-			System.err.println(e);
-		}
-	}
-	
-	public void testPluginsUninstalled() throws Exception {
-			ISite localSite = getConfiguredSite(TARGET_FILE_SITE);
-			
-			IPluginEntry[] pluginEntries = localSite.getPluginEntries();
-			ArrayList list = new ArrayList();
-			if (pluginEntries == null || pluginEntries.length == 0)
-				fail("No plugin entries on the target site");
-			else
-				for (int i = 0; i < pluginEntries.length; i++){
-					list.add(pluginEntries[i].getVersionedIdentifier().toString());
-					System.out.println("plugin found: " + pluginEntries[i].getVersionedIdentifier().toString());
-				}
-
-			String[] pluginNames =
-				{	"my.alphabet.letter.a_1.0.0",
-					"my.alphabet.letter.b_1.0.0",
-					"my.alphabet.letter.c_1.0.0",
-					"my.alphabet.letter.e_1.0.0",
-					"my.alphabet.round.letters_1.0.0",
-					"my.alphabet.straight.letters_1.0.0",
-					"my.alphabet_1.0.0" };
-			assertTrue(checkFilesNotInList(pluginNames, list));	
-	}
-	
-	// makes sure all files/directories in "names" are NOT in the directory listing "list"
-	public boolean checkFilesNotInList(
-		String[] names,
-		ArrayList list) {
-		
-		for (int i = 0; i < names.length; i++) {
-			System.out.println("searching for " + names[i] + "...");
-			if (list.contains(names[i]))
-				return false;
-		}
-		return true;
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureUpdate.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureUpdate.java
deleted file mode 100644
index a7e20c1..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureUpdate.java
+++ /dev/null
@@ -1,138 +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 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.update.tests.standalone;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.standalone.*;
-
-public class TestFeatureUpdate extends StandaloneManagerTestCase {
-	public static boolean isUpdated;
-	
-	public TestFeatureUpdate(String arg0) {
-		super(arg0);
-		isUpdated = false;
-	}
-
-	public void umSetUp() {
-		super.umSetUp();
-		System.out.println("looking at configured sites available....");
-		checkConfiguredSites();
-		
-		String featureId = "my.alphabet";
-		String version = "1.0.1";
-
-		if (!isUpdated) {
-			System.out.println(
-				"==============" + this.getClass() + "=============");
-			StandaloneUpdateApplication app = new StandaloneUpdateApplication();
-			try {
-				exitValue = (Integer)app.run(getCommand(
-						"update",
-						featureId,
-						version,
-						null,
-						null,
-						TARGET_FILE_SITE.getFile()));
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-			isUpdated = true;
-		}
-	}
-
-
-	// ensure exit without problems
-	public void testExitValue() throws Exception {
-		System.out.println("exitValue: " + exitValue);
-		assertEquals(exitValue, IPlatformRunnable.EXIT_OK);
-	}
-	
-	public void testPluginsExist() {
-
-			ISite localSite =  getConfiguredSite(TARGET_FILE_SITE);
-
-			IPluginEntry[] pluginEntries = localSite.getPluginEntries();
-			ArrayList list = new ArrayList();
-			if (pluginEntries == null || pluginEntries.length == 0)
-				fail("No plugin entries on the target site");
-			else
-				for (int i = 0; i < pluginEntries.length; i++) {
-					list.add(
-						pluginEntries[i].getVersionedIdentifier().toString());
-				}
-
-			String[] pluginNames =
-				{
-					"my.alphabet.letter.a_1.0.0",
-					"my.alphabet.letter.b_1.0.0",
-					"my.alphabet.letter.c_1.0.0",
-					"my.alphabet.letter.e_1.0.0",
-					"my.alphabet.round.letters_1.0.0",
-					"my.alphabet.straight.letters_1.0.0",
-					"my.alphabet_1.0.0",
-					"my.alphabet.letter.a_1.0.1",
-					"my.alphabet.letter.b_1.0.1",
-					"my.alphabet.letter.c_1.0.1",
-					"my.alphabet.letter.e_1.0.1",
-					"my.alphabet.round.letters_1.0.1",
-					"my.alphabet.straight.letters_1.0.1",
-					"my.alphabet_1.0.1" };
-			assertTrue(checkFilesInList(pluginNames, list));
-	}
-
-	public void testFeaturesExist() {
-		try {
-			ISite localSite = getConfiguredSite(TARGET_FILE_SITE);
-
-			// get feature references
-			IFeatureReference[] localFeatures =
-				localSite.getFeatureReferences();
-			ArrayList list = new ArrayList();
-			if (localFeatures == null || localFeatures.length == 0) {
-				fail("No features on the target site");
-			} else {
-				for (int i = 0; i < localFeatures.length; i++) {
-					list.add(
-						localFeatures[i].getVersionedIdentifier().toString());
-					System.out.println(
-						localFeatures[i].getVersionedIdentifier().toString());
-				}
-			}
-			String[] featureNames =
-				{
-					"my.alphabet.round.letters_1.0.0",
-					"my.alphabet.straight.letters_1.0.0",
-					"my.alphabet_1.0.0",
-					"my.alphabet.round.letters_1.0.1",
-					"my.alphabet.straight.letters_1.0.1",
-					"my.alphabet_1.0.1" };
-			assertTrue(checkFilesInList(featureNames, list));
-		} catch (CoreException e) {
-			System.err.println(e);
-		}
-	}
-
-	// makes sure all files/directories in "names" are in the directory listing
-	// "list"
-	public boolean checkFilesInList(String[] names, ArrayList list) {
-
-		for (int i = 0; i < names.length; i++) {
-			if (!list.contains(names[i]))
-				return false;
-		}
-		return true;
-	}
-
-}
diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/AllTypesTests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/AllTypesTests.java
deleted file mode 100644
index 970648d..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/AllTypesTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.types;

-

-import org.eclipse.update.tests.UpdateManagerTestCase;

-import junit.framework.*;

-

-

-public class AllTypesTests extends UpdateManagerTestCase {

-public AllTypesTests(String name) {

-	super(name);

-}

-public static Test suite() {

-	TestSuite suite = new TestSuite();

-	suite.setName("Regular Install Tests");

-	

-	// the following will take all teh test methods in teh class that start with 'test'

-	suite.addTest(new TestSuite(TestFeatureType.class));

-	suite.addTest(new TestSuite(TestSiteType.class));	

-	

-	// or you can specify the method

-	//suite.addTest(new TestGetFeature("methodThatDoesNotStartWithtest"));	

-	

-	return suite;

-}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/TestFeatureType.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/TestFeatureType.java
deleted file mode 100644
index bf5479f..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/TestFeatureType.java
+++ /dev/null
@@ -1,155 +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 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.update.tests.types;

-

-import java.io.File;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-

-public class TestFeatureType extends UpdateManagerTestCase {

-

-

-	private static final String PACKAGED_FEATURE_TYPE = "packaged"; //$NON-NLS-1$

-	private static final String INSTALLED_FEATURE_TYPE = "installed"; //$NON-NLS-1$	

-	

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestFeatureType(String arg0) {

-		super(arg0);

-	}

-	

-	

-	public String getDefaultInstallableFeatureType() {

-		String pluginID = UpdateCore.getPlugin().getDescriptor().getUniqueIdentifier() + "."; //$NON-NLS-1$

-		return pluginID + PACKAGED_FEATURE_TYPE;

-	}

-	

-	public String getDefaultExecutableFeatureType() {

-		String pluginID = UpdateCore.getPlugin().getDescriptor().getUniqueIdentifier() + "."; //$NON-NLS-1$

-		return pluginID + INSTALLED_FEATURE_TYPE;

-	}		

-	

-	/**

-	 * @throws Exception

-	 */

-	public void testSimplePackagedFeatureType() throws Exception{ 

-		FeatureTypeFactory factories = FeatureTypeFactory.getInstance();

-		IFeatureFactory factory = factories.getFactory(getDefaultInstallableFeatureType());

-		

-		ISite site = SiteManager.getSite(SOURCE_FILE_SITE,null);

-		URL featureURL = new URL(SOURCE_FILE_SITE,"features/features2.jar ");

-		

-		IFeature anotherFeature = factory.createFeature(featureURL,site,null);

-		

-		assertTrue("Factory doesn't create same feature",anotherFeature.getVersionedIdentifier().equals(anotherFeature.getVersionedIdentifier()));

-	}	

-	

-		/**

-	 * @throws Exception

-	 */

-	public void testSimpleExecutableFeatureType() throws Exception{ 

-		FeatureTypeFactory factories = FeatureTypeFactory.getInstance();

-		IFeatureFactory factory = factories.getFactory(getDefaultExecutableFeatureType());

-		

-		ISite site = SiteManager.getSite(SOURCE_FILE_SITE,null);

-		URL featureURL = new URL(SOURCE_FILE_SITE,"testAPI/"+Site.DEFAULT_INSTALLED_FEATURE_PATH+"feature3/");

-		

-		IFeature anotherFeature = factory.createFeature(featureURL,site,null);

-		

-		assertTrue("Factory doesn't create same feature",anotherFeature.getVersionedIdentifier().equals(anotherFeature.getVersionedIdentifier()));

-	}	

-	

-	/**

-	 * @throws Exception

-	 */

-	public void testFeatureType() throws Exception{ 

-		FeatureTypeFactory factories = FeatureTypeFactory.getInstance();

-		IFeatureFactory factory = factories.getFactory(getDefaultInstallableFeatureType());

-		

-		ISite site = SiteManager.getSite(SOURCE_HTTP_SITE,null);

-		IFeature feature = site.getFeatureReferences()[0].getFeature(null);

-		

-		IFeature anotherFeature = factory.createFeature(feature.getURL(),site,null);

-		

-		assertTrue("Factory doesn't create same feature",feature.getVersionedIdentifier().equals(anotherFeature.getVersionedIdentifier()));

-	}

-	

-	

-	/**

-	 * @throws Exception

-	 */

-	public void testFeatureNewType() throws Exception{ 

-		FeatureTypeFactory factories = FeatureTypeFactory.getInstance();

-		IFeatureFactory factory = factories.getFactory(getDefaultExecutableFeatureType());

-		

-		String featurePath = dataPath+"FeatureTypeExamples/site1/site.xml";

-		ISite site = SiteManager.getSite(new File(featurePath).toURL(),null);

-		IFeatureReference ref = site.getFeatureReferences()[0];

-		IFeature feature = ref.getFeature(null);

-		

-		IFeature anotherFeature = factory.createFeature(feature.getURL(),site,null);

-

-		assertTrue(feature.getFeatureContentProvider() instanceof FeatureExecutableContentProvider);		

-		assertTrue(((FeatureReference)ref).getType().equals("org.eclipse.update.tests.core.feature1"));		

-		assertTrue("Factory doesn't create same feature",feature.getVersionedIdentifier().equals(anotherFeature.getVersionedIdentifier()));

-

-

-	}

-	

-	

-		/**

-	 * @throws Exception

-	 */

-	public void testFeatureAnotherType() throws Exception{ 

-		FeatureTypeFactory factories = FeatureTypeFactory.getInstance();

-		IFeatureFactory factory = factories.getFactory(getDefaultInstallableFeatureType());

-		

-		String featurePath = dataPath+"FeatureTypeExamples/site2/site.xml";

-		ISite site = SiteManager.getSite(new File(featurePath).toURL(),null);

-		IFeatureReference ref = site.getFeatureReferences()[0];		

-		IFeature feature = ref.getFeature(null);

-		

-		IFeature anotherFeature = factory.createFeature(feature.getURL(),site,null);

-		

-		assertTrue("Factory doesn't create same feature",feature.getVersionedIdentifier().equals(anotherFeature.getVersionedIdentifier()));

-		assertTrue(feature.getFeatureContentProvider() instanceof FeaturePackagedContentProvider);

-		assertTrue(((FeatureReference)ref).getType().equals("org.eclipse.update.core.packaged"));

-		

-	}

-		

-		

-	/**

-	 * @throws Exception

-	 */

-	public void testFeatureUnknownType() throws Exception{ 

-		String featurePath = dataPath+"FeatureTypeExamples/site3/site.xml";

-		ISite site = SiteManager.getSite(new File(featurePath).toURL(),null);

-		IFeatureReference ref = site.getFeatureReferences()[0];		

-		try {

-			ref.getFeature(null);

-			assertTrue("id found, should not be found",false);

-		} catch (CoreException e){

-			if (e.getMessage().indexOf("org.eclipse.update.core.unknowntype.jar")==-1){

-				throw e;

-			}

-		}

-		

-	}		

-		

-}

-

-

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/TestSiteType.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/TestSiteType.java
deleted file mode 100644
index f4513d4..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/TestSiteType.java
+++ /dev/null
@@ -1,80 +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 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.update.tests.types;

-

-import java.io.File;

-import java.net.URL;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.FeaturePackagedContentProvider;

-import org.eclipse.update.internal.core.SiteURLContentProvider;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-import org.eclipse.update.tests.implementation.SiteFTPFactory;

-

-public class TestSiteType extends UpdateManagerTestCase {

-

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestSiteType(String arg0) {

-		super(arg0);

-	}

-

-	/**

-	 * @throws Exception

-	 */

-	public void testSiteType() throws Exception {

-

-		String featurePath = dataPath + "SiteTypeExamples/site1/site.xml";

-		ISite site = SiteManager.getSite(new File(featurePath).toURL(),null);

-		IFeatureReference ref = site.getFeatureReferences()[0];

-		IFeature feature = ref.getFeature(null);

-

-		assertTrue(site.getSiteContentProvider() instanceof SiteURLContentProvider);

-		assertTrue(((Site) site).getType().equals("org.eclipse.update.core.http"));

-		assertTrue(feature.getFeatureContentProvider() instanceof FeaturePackagedContentProvider);

-

-	}

-

-	/**

-		 * @throws Exception

-		 */

-	public void testFTPSiteType() throws Exception {

-

-		ISite site = SiteManager.getSite(new URL(SOURCE_FILE_SITE + "FTPLikeSite/"),null);

-

-		// should not find the mapping

-		// but then should attempt to read the XML file

-		// found a new type

-		// call the new type

-		assertTrue(

-			"Wrong site type",

-			site.getType().equals("org.eclipse.update.tests.ftp"));

-		assertTrue(

-			"Wrong file",

-			site.getURL().getFile().equals("/" + SiteFTPFactory.FILE));

-

-	}

-

-	public void testParseValid1() throws Exception {

-		try {

-			URL remoteURL = new URL(SOURCE_FILE_SITE + "parsertests/siteftp.xml");

-			ISite site = SiteManager.getSite(remoteURL,null);

-			site.getArchives();

-		} catch (CoreException e) {

-			if (e.getMessage().indexOf("</feature>") == -1) {

-				throw e;

-			}

-		}

-	}

-

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/uivalues/AllCoreUITests.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/uivalues/AllCoreUITests.java
deleted file mode 100644
index a18ab16..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/uivalues/AllCoreUITests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.tests.uivalues;

-

-import org.eclipse.update.tests.UpdateManagerTestCase;

-import junit.framework.*;

-

-

-public class AllCoreUITests extends UpdateManagerTestCase {

-public AllCoreUITests(String name) {

-	super(name);

-}

-public static Test suite() {

-	TestSuite suite = new TestSuite();

-	suite.setName("Regular Install Tests");

-	

-	// the following will take all teh test methods in teh class that start with 'test'

-	suite.addTest(new TestSuite(TestUILabel.class));

-	

-	// or you can specify the method

-	//suite.addTest(new TestGetFeature("methodThatDoesNotStartWithtest"));	

-	

-	return suite;

-}

-}

diff --git a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/uivalues/TestUILabel.java b/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/uivalues/TestUILabel.java
deleted file mode 100644
index a8915d5..0000000
--- a/update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/uivalues/TestUILabel.java
+++ /dev/null
@@ -1,87 +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 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.update.tests.uivalues;

-

-import java.io.File;

-import java.net.URL;

-

-import org.eclipse.update.core.*;

-import org.eclipse.update.tests.UpdateManagerTestCase;

-

-

-public class TestUILabel extends UpdateManagerTestCase {

-

-	/**

-	 * Test the getFeatures()

-	 */

-	public TestUILabel(String arg0) {

-		super(arg0);

-	}

-	

-	

-	/**

-	 * Method testHTTPSite.

-	 * @throws Exception

-	 */

-	public void testUpdateManagerSite() throws Exception{ 

-		

-		ISite remoteSite = SiteManager.getSite(new URL("http",getHttpHost(),getHttpPort(),bundle.getString("HTTP_PATH_2")),null);

-		ICategory[] categories = remoteSite.getCategories();

-		for (int i =0; i<categories.length; i++){

-			System.out.println("Category ->"+categories[i].getLabel()+":"+categories[i].getName());

-		}

-		System.out.println(remoteSite.getDescription().getURL().toExternalForm());

-		IFeatureReference[] remoteFeatures = remoteSite.getFeatureReferences();

-		if (remoteFeatures==null || remoteFeatures.length==0) fail("No feature available for testing");		

-		for (int i=0;i<remoteFeatures.length;i++){

-			IFeature feature = remoteFeatures[i].getFeature(null);

-			System.out.println("feature:"+feature.getVersionedIdentifier()+"->"+feature.getLabel());

-			print(feature.getLicense(),"License");

-			print(feature.getCopyright(),"Copyright");			

-			print(feature.getDescription(),"Description");				

-			

-			// check that it downloads the feature.jar under the cover

-			// and unpack it

-			

-			URL url = feature.getLicense().getURL();

-			if (url!=null){

-				assertTrue((new File(url.getFile())).exists());

-			}

-

-			url = feature.getCopyright().getURL();

-			if (url!=null){

-				assertTrue((new File(url.getFile())).exists());

-			}

-			

-			url = feature.getDescription().getURL();

-			if (url!=null){

-				assertTrue((new File(url.getFile())).exists());

-			}

-			

-		}

-	}

-	

-	

-	/**

-	 * Method print.

-	 * @param info

-	 * @param text

-	 */

-	private void print(IURLEntry info, String text){

-		System.out.print("->"+text+":");

-		if (info.getURL()!=null) 

-			System.out.println("<"+info.getURL().toExternalForm()+">");

-		else 

-			System.out.println(info.getAnnotation());

-	}

-} 

-

-

diff --git a/update/org.eclipse.update.tests.core/test.xml b/update/org.eclipse.update.tests.core/test.xml
deleted file mode 100644
index 1da81e0..0000000
--- a/update/org.eclipse.update.tests.core/test.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?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.update.tests.core"/>

-  <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>

-  <property name="class-name" value="org.eclipse.update.tests.AllTests" />

-  

-  <!-- 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="sniff-folder" value="${eclipse-home}/update_core_sniff_folder"/>

-    <delete dir="${sniff-folder}" quiet="true"/>

-    

-    <ant target="core-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="${class-name}"/>

-    </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>

-	

-	<!-- This target defines the performance tests that need to be run. -->

-	<target name="performance-suite">

-	  <property name="your-performance-folder" value="${eclipse-home}/update_performance_folder"/>

-	  <delete dir="${your-performance-folder}" quiet="true"/>

-	  <ant target="core-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="org.eclipse.update.tests.perfms.AllPerformanceTests"/>

-	  </ant>

-	</target>

-	

-  <!-- This target runs the performance test suites. -->

-	<target name="performance" depends="init,performance-suite">

-	  <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>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/test_with_mail.xml b/update/org.eclipse.update.tests.core/test_with_mail.xml
deleted file mode 100644
index 9f1d408..0000000
--- a/update/org.eclipse.update.tests.core/test_with_mail.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?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.update.tests.core"/>
-  <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-  <property name="class-name" value="org.eclipse.update.tests.AllTests" />
-  
-  <!-- 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="sniff-folder" value="${eclipse-home}/update_core_sniff_folder"/>
-    <delete dir="${sniff-folder}" quiet="true"/>
-    
-    <ant target="core-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="${class-name}"/>
-    </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">
-
-    <property name="email-from" value="Eclipse_Automated_Test@oti.com"/>
-    <property name="email-subject" value="Install/Update: Nightly Build Report"/>
-    <property name="email-subject-log" value="Install/Update: Nightly .log"/>
-    <property name="email-server" value="d25ml04.torolab.ibm.com"/>
-    <property name="infile" value="${eclipse-home}/${plugin-name}.xml"/>
-    <property name="infile-log" value="${eclipse-home}/workspace/.metadata/.log"/>
-      
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-    
-    <touch file="${infile-log}"/>
-
-    <mail from="${email-from}" tolist="celek@ca.ibm.com"
-          subject="${email-subject}" files="${infile}"
-          mailhost="${email-server}"/>
-
-    <mail from="${email-from}" tolist="celek@ca.ibm.com"
-          subject="${email-subject-log}" files="${infile-log}"
-          mailhost="${email-server}"/>
-
-    <mail from="${email-from}" tolist="celek@rogers.com"
-          subject="${email-subject-log}" files="${infile-log}"
-          mailhost="${email-server}"/>
-
-    <mail from="${email-from}" tolist="celek@rogers.com"
-          subject="${email-subject}" files="${infile}"
-          mailhost="${email-server}"/>
-
-  </target>
-</project>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/webserver/Site with space/features space/helpFeature.jar b/update/org.eclipse.update.tests.core/webserver/Site with space/features space/helpFeature.jar
deleted file mode 100644
index 1a23946..0000000
--- a/update/org.eclipse.update.tests.core/webserver/Site with space/features space/helpFeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/Site with space/features space/space feature.jar b/update/org.eclipse.update.tests.core/webserver/Site with space/features space/space feature.jar
deleted file mode 100644
index 33c3d5d..0000000
--- a/update/org.eclipse.update.tests.core/webserver/Site with space/features space/space feature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/Site with space/info/img/top_titlsm.gif b/update/org.eclipse.update.tests.core/webserver/Site with space/info/img/top_titlsm.gif
deleted file mode 100644
index 3917bb6..0000000
--- a/update/org.eclipse.update.tests.core/webserver/Site with space/info/img/top_titlsm.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/Site with space/info/img/wel_ml.jpg b/update/org.eclipse.update.tests.core/webserver/Site with space/info/img/wel_ml.jpg
deleted file mode 100644
index 01e33df..0000000
--- a/update/org.eclipse.update.tests.core/webserver/Site with space/info/img/wel_ml.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/Site with space/info/siteInfo.html b/update/org.eclipse.update.tests.core/webserver/Site with space/info/siteInfo.html
deleted file mode 100644
index b065aa3..0000000
--- a/update/org.eclipse.update.tests.core/webserver/Site with space/info/siteInfo.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

-<html>

-<head>

-</head>

-  <body>

-<img src="img/top_titlsm.gif" alt="" width="460" height="50">

-<br>

-<br>

-     It started with Smalltalk<br>

-    OTI has been building tools for platform-independent OO development since

-  1988. Our ENVY&reg; technology first brought collaborative software development,

-  version management and shared repositories to Smalltalk. IBM is one of

-many   companies to license ENVY, which continues to be the foundation of

-VisualAge&reg;   Smalltalk.<br>

-<br>

-<br>

-<br>

-      Next came Java&#8482;<br>

-    Because of our expertise in OO technology, IBM turned to OTI for a next-generation

-  development environment for Java. The result is VisualAge for Java, which

-  continues to win awards for its innovative IDE and team support. InfoWorld

-  has chosen VisualAge for Java as development tool of the year - year after

-  year after year!<br>

-<br>

-<br>

-<br>

-      Then pervasive computing<br>

-    OTI continues its development of IBM's VisualAge Micro Edition, a state-of-the-art

-  platform for collaborative development of embedded applications and systems

-  that are very lean. As the steady stream of press releases attests, VisualAge

-  Micro Edition is already licensed to the leading microchip manufacturers,

-  microkernel developers, and producers of handheld and consumer devices.<br>

-<br>

-<br>

-<br>

-      Now it's Eclipse<br>

-    OTI has built the next generation IBM application development tools platform.

-  Eclipse is a kind of universal tool platform - an open extensible IDE for

-  anything and nothing in particular. The real value comes from tool plug-ins

-  that "teach" Eclipse how to work with things - java files, web content,

-graphics,  video - almost anything you can imagine. Eclipse allows you to

-independently  develop tools that integrate with other people's tools so

-seamlessly you won't know where one tool ends and another starts. The IBM

-supported version of this technology, WebSphere Studio Workbench, will be

-the core of the next  generation of IBM and IBM Business Partner e-business

-tools optimized for  the WebSphere software platform.<br>

-<br>

-<br>

-<br>

-      So what's next?<br>

-    OTI continues to deliver object-oriented technology that scales across

- platforms,  across teams and across project size. From a mainframe to a

-watch  - we're  closing in on that vision.<br>

-<br>

-<img src="img/wel_ml.jpg" width="460" height="460" alt="">

-<br>

-<br>

-<br>

-<br>

-<br>

-<br>

-</body>

-</html>

diff --git a/update/org.eclipse.update.tests.core/webserver/Site with space/install/features space/feature3/feature.xml b/update/org.eclipse.update.tests.core/webserver/Site with space/install/features space/feature3/feature.xml
deleted file mode 100644
index 67741d9..0000000
--- a/update/org.eclipse.update.tests.core/webserver/Site with space/install/features space/feature3/feature.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<feature id="org.eclipse.update.core.tests.feature3" image="feature1.gif" label="Third Feature" provider-name="Smart Company" version="1.0.0" >

-  <description>Description</description>

-  <copyright>copyright</copyright>

-  <license>license</license>

-  <url>

-    <update label="URL to update the feature" url="http://www.eclipse.org/path/feature1/"/>

-    <discovery label="Discovery 1" url="http://www.eclipse.org"/>

-    <discovery label="Discovery 2" url="http://www.eclipse.org"/>

-  </url>

-</feature>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/Pde_core.jar b/update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/Pde_core.jar
deleted file mode 100644
index f107217..0000000
--- a/update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/Pde_core.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/help.jar b/update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/help.jar
deleted file mode 100644
index 7584f66..0000000
--- a/update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/help.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/junit_3.7.jar b/update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/junit_3.7.jar
deleted file mode 100644
index 67587b2..0000000
--- a/update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/junit_3.7.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/Site with space/site.xml b/update/org.eclipse.update.tests.core/webserver/Site with space/site.xml
deleted file mode 100644
index b5d4bbf..0000000
--- a/update/org.eclipse.update.tests.core/webserver/Site with space/site.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site>

-<description url="info/siteInfo.html"/>

-  <feature url="features space/helpFeature.jar">

-    <category name="eclipse/UML"/>

-  </feature>

-  <feature url="features space/space feature.jar">

-    <category name="eclipse/J2EE"/>

-  </feature>

-

-  <archive path="plugins/org.eclipse.help_1.0.0.jar" url="plugins space/help.jar"/>

-  <archive path="plugins/org.eclipse.pde.core_1.0.0.jar" url="plugins space/Pde_core.jar"/>

-  <archive path="plugins/org.junit_3.5.0.jar" url="plugins space/junit_3.7.jar"/>

-  <archive path="plugins/org.eclipse.update.plugin1_1.1.1" url="plugins space/org.eclipse.update.plugin1_1.1.1"/>  

-  <category-def label="IBM WSAD Tools" name="eclipse"/>

-  <category-def label="J2EE tools" name="eclipse/J2EE"/>

-  <category-def label="EJB Tools" name="eclipse/J2EE/EJB"/>

-  <category-def label="UML tools" name="eclipse/UML"/>

-  <category-def label="Messaging Tools" name="B2B"/>  

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager/features/helpFeature.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager/features/helpFeature.jar
deleted file mode 100644
index aec67d4..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager/features/helpFeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager/features/org.eclipse.pde.feature_1.0.0.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager/features/org.eclipse.pde.feature_1.0.0.jar
deleted file mode 100644
index 870b40a..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager/features/org.eclipse.pde.feature_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager/info/img/top_titlsm.gif b/update/org.eclipse.update.tests.core/webserver/UpdateManager/info/img/top_titlsm.gif
deleted file mode 100644
index 3917bb6..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager/info/img/top_titlsm.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager/info/img/wel_ml.jpg b/update/org.eclipse.update.tests.core/webserver/UpdateManager/info/img/wel_ml.jpg
deleted file mode 100644
index 01e33df..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager/info/img/wel_ml.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager/info/siteInfo.html b/update/org.eclipse.update.tests.core/webserver/UpdateManager/info/siteInfo.html
deleted file mode 100644
index b065aa3..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager/info/siteInfo.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

-<html>

-<head>

-</head>

-  <body>

-<img src="img/top_titlsm.gif" alt="" width="460" height="50">

-<br>

-<br>

-     It started with Smalltalk<br>

-    OTI has been building tools for platform-independent OO development since

-  1988. Our ENVY&reg; technology first brought collaborative software development,

-  version management and shared repositories to Smalltalk. IBM is one of

-many   companies to license ENVY, which continues to be the foundation of

-VisualAge&reg;   Smalltalk.<br>

-<br>

-<br>

-<br>

-      Next came Java&#8482;<br>

-    Because of our expertise in OO technology, IBM turned to OTI for a next-generation

-  development environment for Java. The result is VisualAge for Java, which

-  continues to win awards for its innovative IDE and team support. InfoWorld

-  has chosen VisualAge for Java as development tool of the year - year after

-  year after year!<br>

-<br>

-<br>

-<br>

-      Then pervasive computing<br>

-    OTI continues its development of IBM's VisualAge Micro Edition, a state-of-the-art

-  platform for collaborative development of embedded applications and systems

-  that are very lean. As the steady stream of press releases attests, VisualAge

-  Micro Edition is already licensed to the leading microchip manufacturers,

-  microkernel developers, and producers of handheld and consumer devices.<br>

-<br>

-<br>

-<br>

-      Now it's Eclipse<br>

-    OTI has built the next generation IBM application development tools platform.

-  Eclipse is a kind of universal tool platform - an open extensible IDE for

-  anything and nothing in particular. The real value comes from tool plug-ins

-  that "teach" Eclipse how to work with things - java files, web content,

-graphics,  video - almost anything you can imagine. Eclipse allows you to

-independently  develop tools that integrate with other people's tools so

-seamlessly you won't know where one tool ends and another starts. The IBM

-supported version of this technology, WebSphere Studio Workbench, will be

-the core of the next  generation of IBM and IBM Business Partner e-business

-tools optimized for  the WebSphere software platform.<br>

-<br>

-<br>

-<br>

-      So what's next?<br>

-    OTI continues to deliver object-oriented technology that scales across

- platforms,  across teams and across project size. From a mainframe to a

-watch  - we're  closing in on that vision.<br>

-<br>

-<img src="img/wel_ml.jpg" width="460" height="460" alt="">

-<br>

-<br>

-<br>

-<br>

-<br>

-<br>

-</body>

-</html>

diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/Pde_core.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/Pde_core.jar
deleted file mode 100644
index f107217..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/Pde_core.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/help.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/help.jar
deleted file mode 100644
index 7584f66..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/help.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/junit_3.7.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/junit_3.7.jar
deleted file mode 100644
index 67587b2..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/junit_3.7.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager/site.xml b/update/org.eclipse.update.tests.core/webserver/UpdateManager/site.xml
deleted file mode 100644
index 5e5fda7..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager/site.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site >

-<description url="info/siteInfo.html"/>

-  <feature url="features/helpFeature.jar">

-    <category name="eclipse/UML"/>

-  </feature>

-  <feature url="features/org.eclipse.pde.feature_1.0.0.jar">

-    <category name="eclipse/J2EE"/>

-  </feature>

-  <archive path="plugins/org.eclipse.help_1.0.0.jar" url="plugins/help.jar"/>

-  <archive path="plugins/org.eclipse.pde.core_1.0.0.jar" url="plugins/Pde_core.jar"/>

-  <archive path="plugins/org.junit_3.5.0.jar" url="plugins/junit_3.7.jar"/>

-  <category-def label="IBM WSAD Tools" name="eclipse"/>

-  <category-def label="J2EE tools" name="eclipse/J2EE"/>

-  <category-def label="EJB Tools" name="eclipse/J2EE/EJB"/>

-  <category-def label="UML tools" name="eclipse/UML"/>

-  <category-def label="Messaging Tools" name="B2B"/>  

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/features2.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/features2.jar
deleted file mode 100644
index 81df72c..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/features2.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse.test.feature_1.0.0.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse.test.feature_1.0.0.jar
deleted file mode 100644
index d1aee3f..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse.test.feature_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse.update.core.tests.feature1_1.0.4.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse.update.core.tests.feature1_1.0.4.jar
deleted file mode 100644
index f515ff4..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse.update.core.tests.feature1_1.0.4.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse_test_feature.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse_test_feature.jar
deleted file mode 100644
index 2be38d3..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse_test_feature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/features/org.eclipse.update.core.tests.childrenfeature_2.0.0.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/features/org.eclipse.update.core.tests.childrenfeature_2.0.0.jar
deleted file mode 100644
index 022665c..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/features/org.eclipse.update.core.tests.childrenfeature_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/features/rootfeature.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/features/rootfeature.jar
deleted file mode 100644
index b519803..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/features/rootfeature.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
deleted file mode 100644
index 5d9f5bc..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
deleted file mode 100644
index 8b4b04a..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
deleted file mode 100644
index 52208fe..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/site.xml b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/site.xml
deleted file mode 100644
index 7b09c86..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/site.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-  <feature url="features/rootfeature.jar" os="*"/>
-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar
deleted file mode 100644
index b00d882..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.feature1.plugin1_1.1.1.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.feature1.plugin1_1.1.1.jar
deleted file mode 100644
index 0c995d5..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.feature1.plugin1_1.1.1.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.feature2.plugin2_2.2.2.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.feature2.plugin2_2.2.2.jar
deleted file mode 100644
index 0c995d5..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.feature2.plugin2_2.2.2.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.dummy_7.9.8.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.dummy_7.9.8.jar
deleted file mode 100644
index d6737f6..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.dummy_7.9.8.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
deleted file mode 100644
index eb8690f..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
deleted file mode 100644
index 90a612f..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/site.properties b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/site.properties
deleted file mode 100644
index 8e1ced4..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/site.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2003 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

-###############################################################################

-drivers=Required Drivers

-security=Security Fixes
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/site.xml b/update/org.eclipse.update.tests.core/webserver/UpdateManager2/site.xml
deleted file mode 100644
index 657d9b2..0000000
--- a/update/org.eclipse.update.tests.core/webserver/UpdateManager2/site.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<site id="org.eclipse.update.core.tests" name="Tests" version="0.0.1">

-  <feature url="features/org.eclipse.test.feature_1.0.0.jar">

-    <category name="category1"/>

-  </feature>

-  <feature url="features/features2.jar">

-    <category name="category1/subcat1"/>

-    <category name="category2"/>

-  </feature>

-  <feature url="features/org.eclipse.update.core.tests.feature1_1.0.4.jar">

-    <category name="category1"/>

-    <category name="category2"/>

-  </feature>

-  <feature url="features/org.eclipse_test_feature.jar"/>

-  <feature url="org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar">

-    <category name="category1"/>

-  </feature>

-  <feature url="org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jar">

-  </feature>

-

-  <category-def name="category1/subcat1" label="Special Fix"/>

-  <category-def name="category1" label="%drivers"/>

-  <category-def name="category2" label="%security"/>

-</site>
\ No newline at end of file
diff --git a/update/org.eclipse.update.tests.core/webserver/WEB-INF/web.xml b/update/org.eclipse.update.tests.core/webserver/WEB-INF/web.xml
deleted file mode 100644
index 1a6d904..0000000
--- a/update/org.eclipse.update.tests.core/webserver/WEB-INF/web.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>

-

-

-<!DOCTYPE web-app

-    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"

-    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">

-

-<web-app>

-    

-</web-app>

diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSite/features/com.example.bundle.feature_1.0.0.jar b/update/org.eclipse.update.tests.core/webserver/bundleSite/features/com.example.bundle.feature_1.0.0.jar
deleted file mode 100644
index 20d3589..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSite/features/com.example.bundle.feature_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.budle.fragment.ui_1.0.0.jar b/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.budle.fragment.ui_1.0.0.jar
deleted file mode 100644
index d79d2cd..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.budle.fragment.ui_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.fragment_1.0.0.jar b/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.fragment_1.0.0.jar
deleted file mode 100644
index edb02bb..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.fragment_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.plugin.ui_2.0.0.jar b/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.plugin.ui_2.0.0.jar
deleted file mode 100644
index 32ec02c..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.plugin.ui_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.plugin_1.0.0.jar b/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.plugin_1.0.0.jar
deleted file mode 100644
index 2b1b693..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.plugin_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSite/site.xml b/update/org.eclipse.update.tests.core/webserver/bundleSite/site.xml
deleted file mode 100644
index bab1332..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSite/site.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/com.example.bundle.feature_1.0.0.jar" id="com.example.bundle.feature" version="1.0.0">
-      <category name="BundleFeature"/>
-   </feature>
-   <category-def name="BundleFeature" label="Feature with Bundles"/>
-</site>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.classpath b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.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/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.project b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.project
deleted file mode 100644
index 8e20903..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.project
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>com.example.budle.fragment.ui</name>
-	<comment></comment>
-	<projects>
-		<project>com.example.bundle.plugin</project>
-		<project>com.example.bundle.plugin.ui</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.ui</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.template b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.template
deleted file mode 100644
index f3bcd41..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.template
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<form>

-   <p/><p><b>Tips on working with this plug-in project</b></p><li>For the view of the new plug-in at a glance, go to the <img href="pageImage"/><a href="OverviewPage">Overview</a>.</li><li>You can test the contributions of this plug-in by launching another instance of the workbench. On the <b>Run</b> menu, click <b>Run As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.run">Run-time Workbench</a> from the available choices.</li><li>You can add more functionality to this plug-in by adding extensions using the <a href="action.newExtension">New Extension Wizard</a>.</li><li>The plug-in project contains Java code that you can debug. Place breakpoints in Java classes. On the <b>Run</b> menu, select <b>Debug As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.debug">Run-time Workbench</a> from the available choices.</li>

-</form>

diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 2ad686f..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,8 +0,0 @@
-Generated-from: 1077062974451

-Bundle-Name: Ui Fragment

-Bundle-Version: 1.0.0

-Bundle-SymbolicName: com.example.budle.fragment.ui

-Bundle-Vendor: Eclipse.org

-Bundle-ClassPath: ui.jar

-Legacy: true

-Fragment-Host: com.example.bundle.plugin.ui; bundle-version=2.0.0

diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/build.properties b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/build.properties
deleted file mode 100644
index 9adc643..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/build.properties
+++ /dev/null
@@ -1,15 +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 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
-###############################################################################
-source.ui.jar = src/
-output.ui.jar = bin/
-bin.includes = fragment.xml,\
-               META-INF/,\
-               ui.jar
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/fragment.xml b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/fragment.xml
deleted file mode 100644
index 3c484b3..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/fragment.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<fragment
-   id="com.example.budle.fragment.ui"
-   name="Ui Fragment"
-   version="1.0.0"
-   provider-name="Eclipse.org"
-   plugin-id="com.example.bundle.plugin.ui"
-   plugin-version="2.0.0"
-   match="greaterOrEqual">
-
-   <runtime>
-      <library name="ui.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-
-</fragment>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/.project b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/.project
deleted file mode 100644
index 8f3e4bc..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>com.example.bundle.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/build.properties b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/build.properties
deleted file mode 100644
index 8be2b5a..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/build.properties
+++ /dev/null
@@ -1,11 +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 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
-###############################################################################
-bin.includes = feature.xml
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/feature.xml b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/feature.xml
deleted file mode 100644
index bb41043..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/feature.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="com.example.bundle.feature"
-      label="com.example.bundle.feature"
-      version="1.0.0"
-      provider-name="Eclipse.org">
-
-   <license>
-      A placeholder license for the feature.
-   </license>
-
-   <install-handler/>
-
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.runtime"/>
-   </requires>
-
-   <plugin
-         id="com.example.bundle.plugin"
-         download-size="0"
-         install-size="0"
-         version="1.0.0"/>
-
-   <plugin
-         id="com.example.budle.fragment.ui"
-         download-size="0"
-         install-size="0"
-         version="1.0.0"
-         fragment="true"/>
-
-   <plugin
-         id="com.example.bundle.fragment"
-         download-size="0"
-         install-size="0"
-         version="1.0.0"
-         fragment="true"/>
-
-   <plugin
-         id="com.example.bundle.plugin.ui"
-         download-size="0"
-         install-size="0"
-         version="2.0.0"/>
-
-</feature>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.classpath b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.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/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.project b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.project
deleted file mode 100644
index 06d0c21..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>com.example.bundle.fragment</name>
-	<comment></comment>
-	<projects>
-		<project>com.example.bundle.plugin</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.ui</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.template b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.template
deleted file mode 100644
index f3bcd41..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.template
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<form>

-   <p/><p><b>Tips on working with this plug-in project</b></p><li>For the view of the new plug-in at a glance, go to the <img href="pageImage"/><a href="OverviewPage">Overview</a>.</li><li>You can test the contributions of this plug-in by launching another instance of the workbench. On the <b>Run</b> menu, click <b>Run As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.run">Run-time Workbench</a> from the available choices.</li><li>You can add more functionality to this plug-in by adding extensions using the <a href="action.newExtension">New Extension Wizard</a>.</li><li>The plug-in project contains Java code that you can debug. Place breakpoints in Java classes. On the <b>Run</b> menu, select <b>Debug As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.debug">Run-time Workbench</a> from the available choices.</li>

-</form>

diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/META-INF/MANIFEST.MF
deleted file mode 100644
index 9d66480..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,8 +0,0 @@
-Generated-from: 1077062909487

-Bundle-Name: Fragment Fragment

-Bundle-Version: 1.0.0

-Bundle-SymbolicName: com.example.bundle.fragment

-Bundle-Vendor: Eclipse.org

-Bundle-ClassPath: fragment.jar

-Legacy: true

-Fragment-Host: com.example.bundle.plugin; bundle-version=1.0.0

diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/build.properties b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/build.properties
deleted file mode 100644
index a9f2221..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/build.properties
+++ /dev/null
@@ -1,15 +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 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
-###############################################################################
-source.fragment.jar = src/
-output.fragment.jar = bin/
-bin.includes = fragment.xml,\
-               META-INF/,\
-               fragment.jar
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/fragment.xml b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/fragment.xml
deleted file mode 100644
index 2a5cd6e..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/fragment.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<fragment
-   id="com.example.bundle.fragment"
-   name="Fragment Fragment"
-   version="1.0.0"
-   provider-name="Eclipse.org"
-   plugin-id="com.example.bundle.plugin"
-   plugin-version="1.0.0">
-
-   <runtime>
-      <library name="fragment.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-
-</fragment>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.classpath b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.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/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.project b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.project
deleted file mode 100644
index 83c3553..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>com.example.bundle.plugin.ui</name>
-	<comment></comment>
-	<projects>
-		<project>com.example.bundle.plugin</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.ui</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.template b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.template
deleted file mode 100644
index f3bcd41..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.template
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<form>

-   <p/><p><b>Tips on working with this plug-in project</b></p><li>For the view of the new plug-in at a glance, go to the <img href="pageImage"/><a href="OverviewPage">Overview</a>.</li><li>You can test the contributions of this plug-in by launching another instance of the workbench. On the <b>Run</b> menu, click <b>Run As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.run">Run-time Workbench</a> from the available choices.</li><li>You can add more functionality to this plug-in by adding extensions using the <a href="action.newExtension">New Extension Wizard</a>.</li><li>The plug-in project contains Java code that you can debug. Place breakpoints in Java classes. On the <b>Run</b> menu, select <b>Debug As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.debug">Run-time Workbench</a> from the available choices.</li>

-</form>

diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index e3507a9..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Generated-from: 1077062999827

-Bundle-Name: Ui Plug-in

-Bundle-Version: 2.0.0

-Bundle-SymbolicName: com.example.bundle.plugin.ui

-Bundle-Vendor: Eclipse.org

-Bundle-ClassPath: ui.jar

-Legacy: true

-Bundle-Activator: com.example.bundle.plugin.ui.UiPlugin

-Require-Bundle: 

- org.eclipse.core.runtime,

- org.eclipse.ui,

- com.example.bundle.plugin; bundle-version=1.0.0;version-match=perfect

diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/bin/com/example/bundle/plugin/ui/UiPlugin.class b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/bin/com/example/bundle/plugin/ui/UiPlugin.class
deleted file mode 100644
index 5f73189..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/bin/com/example/bundle/plugin/ui/UiPlugin.class
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/build.properties b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/build.properties
deleted file mode 100644
index 0577e11..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/build.properties
+++ /dev/null
@@ -1,15 +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 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
-###############################################################################
-source.ui.jar = src/
-output.ui.jar = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               ui.jar
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/plugin.xml b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/plugin.xml
deleted file mode 100644
index aeffdef..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="com.example.bundle.plugin.ui"
-   name="Ui Plug-in"
-   version="2.0.0"
-   provider-name="Eclipse.org"
-   class="com.example.bundle.plugin.ui.UiPlugin">
-
-   <runtime>
-      <library name="ui.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="com.example.bundle.plugin" version="1.0.0" match="perfect"/>
-   </requires>
-
-
-</plugin>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/src/com/example/bundle/plugin/ui/UiPlugin.java b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/src/com/example/bundle/plugin/ui/UiPlugin.java
deleted file mode 100644
index a9549db..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/src/com/example/bundle/plugin/ui/UiPlugin.java
+++ /dev/null
@@ -1,79 +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 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 com.example.bundle.plugin.ui;
-
-import org.eclipse.ui.plugin.*;
-import org.osgi.framework.BundleContext;
-import java.util.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class UiPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static UiPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	
-	/**
-	 * The constructor.
-	 */
-	public UiPlugin() {
-		super();
-		plugin = this;
-		try {
-			resourceBundle = ResourceBundle.getBundle("com.example.bundle.plugin.ui.UiPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static UiPlugin 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 = UiPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-}
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.classpath b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.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/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.project b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.project
deleted file mode 100644
index 1719d73..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>com.example.bundle.plugin</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.ui</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.template b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.template
deleted file mode 100644
index f3bcd41..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.template
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<form>

-   <p/><p><b>Tips on working with this plug-in project</b></p><li>For the view of the new plug-in at a glance, go to the <img href="pageImage"/><a href="OverviewPage">Overview</a>.</li><li>You can test the contributions of this plug-in by launching another instance of the workbench. On the <b>Run</b> menu, click <b>Run As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.run">Run-time Workbench</a> from the available choices.</li><li>You can add more functionality to this plug-in by adding extensions using the <a href="action.newExtension">New Extension Wizard</a>.</li><li>The plug-in project contains Java code that you can debug. Place breakpoints in Java classes. On the <b>Run</b> menu, select <b>Debug As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.debug">Run-time Workbench</a> from the available choices.</li>

-</form>

diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/META-INF/MANIFEST.MF b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/META-INF/MANIFEST.MF
deleted file mode 100644
index fc1adaf..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Generated-from: 1077062603708

-Bundle-Name: Plugin Plug-in

-Bundle-Version: 1.0.0

-Bundle-SymbolicName: com.example.bundle.plugin

-Bundle-Vendor: EXAMPLE

-Bundle-ClassPath: plugin.jar

-Legacy: true

-Bundle-Activator: com.example.bundle.plugin.PluginPlugin

-Require-Bundle: 

- org.eclipse.core.runtime,

- org.eclipse.ui

diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/bin/com/example/bundle/plugin/PluginPlugin.class b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/bin/com/example/bundle/plugin/PluginPlugin.class
deleted file mode 100644
index 76caf03..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/bin/com/example/bundle/plugin/PluginPlugin.class
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/build.properties b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/build.properties
deleted file mode 100644
index 44de1ca..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/build.properties
+++ /dev/null
@@ -1,15 +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 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
-###############################################################################
-source.plugin.jar = src/
-output.plugin.jar = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               plugin.jar
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/plugin.xml b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/plugin.xml
deleted file mode 100644
index 297bc76..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/plugin.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="com.example.bundle.plugin"
-   name="Plugin Plug-in"
-   version="1.0.0"
-   provider-name="Eclipse.org"
-   class="com.example.bundle.plugin.PluginPlugin">
-
-   <runtime>
-      <library name="plugin.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.runtime"/>
-   </requires>
-
-
-</plugin>
diff --git a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/src/com/example/bundle/plugin/PluginPlugin.java b/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/src/com/example/bundle/plugin/PluginPlugin.java
deleted file mode 100644
index a8a69f6..0000000
--- a/update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/src/com/example/bundle/plugin/PluginPlugin.java
+++ /dev/null
@@ -1,79 +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 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 com.example.bundle.plugin;
-
-import org.eclipse.ui.plugin.*;
-import org.osgi.framework.BundleContext;
-import java.util.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class PluginPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static PluginPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	
-	/**
-	 * The constructor.
-	 */
-	public PluginPlugin() {
-		super();
-		plugin = this;
-		try {
-			resourceBundle = ResourceBundle.getBundle("com.example.bundle.plugin.PluginPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static PluginPlugin 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 = PluginPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-}
diff --git a/update/org.eclipse.update.ui.forms/.classpath b/update/org.eclipse.update.ui.forms/.classpath
deleted file mode 100644
index 4848249..0000000
--- a/update/org.eclipse.update.ui.forms/.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/update/org.eclipse.update.ui.forms/.cvsignore b/update/org.eclipse.update.ui.forms/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/update/org.eclipse.update.ui.forms/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.forms/.project b/update/org.eclipse.update.ui.forms/.project
deleted file mode 100644
index 8540f9e..0000000
--- a/update/org.eclipse.update.ui.forms/.project
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.update.ui.forms</name>

-	<comment></comment>

-	<projects>

-		<project>org.eclipse.core.boot</project>

-		<project>org.eclipse.core.runtime.compatibility</project>

-		<project>org.eclipse.ui</project>

-		<project>org.eclipse.ui.ide</project>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/update/org.eclipse.update.ui.forms/about.html b/update/org.eclipse.update.ui.forms/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/update/org.eclipse.update.ui.forms/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.forms/build.properties b/update/org.eclipse.update.ui.forms/build.properties
deleted file mode 100644
index 14fda25..0000000
--- a/update/org.eclipse.update.ui.forms/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-bin.includes = plugin.properties,\

-               *.jar,\

-               plugin.xml,\

-               about.html

-source.forms.jar = src/

-src.includes = about.html

diff --git a/update/org.eclipse.update.ui.forms/plugin.properties b/update/org.eclipse.update.ui.forms/plugin.properties
deleted file mode 100644
index 2699472..0000000
--- a/update/org.eclipse.update.ui.forms/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2003 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

-###############################################################################

-#

-# plugin.xml properties

-#

-

-name = Install/Update Forms

-provider-name = Eclipse.org

-

diff --git a/update/org.eclipse.update.ui.forms/plugin.xml b/update/org.eclipse.update.ui.forms/plugin.xml
deleted file mode 100644
index ab2a167..0000000
--- a/update/org.eclipse.update.ui.forms/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.0"?>

-<plugin

-   id="org.eclipse.update.ui.forms"

-   name="%name"

-   version="3.0.0"

-   provider-name="%provider-name"

-   class="org.eclipse.update.ui.forms.internal.FormsPlugin">

-

-   <runtime>

-      <library name="forms.jar">

-         <export name="*"/>

-         <packages prefixes="org.eclipse.update.ui.forms.internal"/>

-      </library>

-   </runtime>

-   <requires>

-      <import plugin="org.eclipse.core.runtime.compatibility"/>

-      <import plugin="org.eclipse.ui"/>

-   </requires>

-

-

-</plugin>

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/AbstractForm.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/AbstractForm.java
deleted file mode 100644
index c125441..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/AbstractForm.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.jface.preference.*;

-import org.eclipse.jface.preference.IPreferenceStore;

-import org.eclipse.jface.resource.*;

-import org.eclipse.jface.util.*;

-import org.eclipse.ui.actions.*;

-

-/**

- * This class implements IForm interface and

- * provides some common services to its subclasses.

- * It handles some common properties like heading

- * text, image and colors, as well as

- * font change processing.

- */

-

-public abstract class AbstractForm implements IForm, IPropertyChangeListener {

-	protected FormWidgetFactory factory;

-	protected Color headingBackground;

-	protected Color headingForeground;

-	protected boolean headingVisible = true;

-	protected Image headingImage;

-	protected String headingText;

-	protected Font titleFont;

-	private IPropertyChangeListener hyperlinkColorListener;

-

-	public AbstractForm() {

-		factory = new FormWidgetFactory();

-		titleFont = JFaceResources.getHeaderFont();

-		JFaceResources.getFontRegistry().addListener(this);

-		IPreferenceStore pstore = JFacePreferences.getPreferenceStore();

-		hyperlinkColorListener = new IPropertyChangeListener() {

-			public void propertyChange(PropertyChangeEvent e) {

-				if (e.getProperty().equals(JFacePreferences.HYPERLINK_COLOR)

-					|| e.getProperty().equals(

-						JFacePreferences.ACTIVE_HYPERLINK_COLOR)) {

-					updateHyperlinkColors();

-				}

-			}

-		};

-		pstore.addPropertyChangeListener(hyperlinkColorListener);

-	}

-	

-	protected void updateHyperlinkColors() {

-		factory.updateHyperlinkColors();

-	}

-

-	/**

-	 * @see IForm#commitChanges(boolean)

-	 */

-	public void commitChanges(boolean onSave) {

-	}

-

-	/**

-	 * @see IForm#createControl(Composite)

-	 */

-	public abstract Control createControl(Composite parent);

-

-	/**

-	 * @see IForm#dispose()

-	 */

-	public void dispose() {

-		factory.dispose();

-		JFaceResources.getFontRegistry().removeListener(this);

-		IPreferenceStore pstore = JFacePreferences.getPreferenceStore();

-		pstore.removePropertyChangeListener(this);

-		pstore.removePropertyChangeListener(hyperlinkColorListener);

-	}

-

-	/**

-	 * @see IForm#doGlobalAction(String)

-	 */

-	public boolean doGlobalAction(String actionId) {

-		return false;

-	}

-

-	/**

-	 * @see IForm#expandTo(Object)

-	 */

-	public void expandTo(Object object) {

-	}

-

-	/**

-	 * @see IForm#getControl()

-	 */

-	public abstract Control getControl();

-

-	/**

-	 * @see IForm#getFactory()

-	 */

-	public FormWidgetFactory getFactory() {

-		return factory;

-	}

-

-	/**

-	 * @see IForm#getHeadingBackground()

-	 */

-	public Color getHeadingBackground() {

-		return headingBackground;

-	}

-

-	/**

-	 * @see IForm#getHeadingForeground()

-	 */

-	public Color getHeadingForeground() {

-		return headingForeground;

-	}

-

-	/**

-	 * @see IForm#getHeadingImage()

-	 */

-	public Image getHeadingImage() {

-		return headingImage;

-	}

-

-	/**

-	 * @see IForm#getHeading()

-	 */

-	public String getHeadingText() {

-		if (headingText == null)

-			return "";

-		return headingText;

-	}

-

-	/**

-	 * @see IForm#initialize(Object)

-	 */

-	public void initialize(Object model) {

-	}

-

-	/**

-	 * @see IForm#isHeadingVisible()

-	 */

-	public boolean isHeadingVisible() {

-		return headingVisible;

-	}

-

-	/**

-	 * @see IForm#registerSection(FormSection)

-	 */

-	public void registerSection(FormSection section) {

-	}

-

-	/**

-	 * @see IForm#setFocus()

-	 */

-	public void setFocus() {

-	}

-

-	/**

-	 * @see IForm#setHeadingBackground(Color)

-	 */

-	public void setHeadingBackground(Color newHeadingBackground) {

-		this.headingBackground = newHeadingBackground;

-	}

-

-	/**

-	 * @see IForm#setHeadingForeground(Color)

-	 */

-	public void setHeadingForeground(Color newHeadingForeground) {

-		this.headingForeground = newHeadingForeground;

-	}

-

-	/**

-	 * @see IForm#setHeadingImage(Image)

-	 */

-	public void setHeadingImage(Image headingImage) {

-		this.headingImage = headingImage;

-	}

-

-	/**

-	 * @see IForm#setHeadingVisible(boolean)

-	 */

-	public void setHeadingVisible(boolean newHeadingVisible) {

-		this.headingVisible = newHeadingVisible;

-	}

-

-	/**

-	 * @see IForm#setHeading(String)

-	 */

-	public void setHeadingText(String headingText) {

-		this.headingText = headingText;

-	}

-

-	/**

-	 * @see IForm#update()

-	 */

-	public void update() {

-	}

-

-	protected boolean canPerformDirectly(String id, Control control) {

-		if (control instanceof Text) {

-			Text text = (Text) control;

-			if (id.equals(ActionFactory.CUT.getId())) {

-				text.cut();

-				return true;

-			}

-			if (id.equals(ActionFactory.COPY.getId())) {

-				text.copy();

-				return true;

-			}

-			if (id.equals(ActionFactory.PASTE.getId())) {

-				text.paste();

-				return true;

-			}

-			if (id.equals(ActionFactory.SELECT_ALL.getId())) {

-				text.selectAll();

-				return true;

-			}

-			if (id.equals(ActionFactory.DELETE.getId())) {

-				int count = text.getSelectionCount();

-				if (count == 0) {

-					int caretPos = text.getCaretPosition();

-					text.setSelection(caretPos, caretPos + 1);

-				}

-				text.insert("");

-				return true;

-			}

-		}

-		return false;

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/AbstractSectionForm.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/AbstractSectionForm.java
deleted file mode 100644
index 02903ca..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/AbstractSectionForm.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-import java.util.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.dnd.Clipboard;

-import org.eclipse.swt.custom.ScrolledComposite;

-import org.eclipse.swt.graphics.*;

-

-/**

- * This form class understands form sections.

- * It assumes that they are part of the form

- * and it offers life cycle handling of sections

- * once they are registered.

- */

-

-public abstract class AbstractSectionForm extends AbstractForm {

-	public static final int H_SCROLL_INCREMENT = 5;

-	public static final int V_SCROLL_INCREMENT = 64;

-	protected Vector sections = null;

-

-	public void registerSection(FormSection section) {

-		if (sections == null)

-			sections = new Vector();

-		if (!sections.contains(section))

-			sections.add(section);

-	}

-

-	public void unregisterSection(FormSection section) {

-		if (sections != null && sections.contains(section))

-			sections.remove(section);

-	}

-

-	public void initialize(Object model) {

-		if (sections != null) {

-			for (Iterator iter = sections.iterator(); iter.hasNext();) {

-				FormSection section = (FormSection) iter.next();

-				section.initialize(model);

-			}

-		}

-	}

-

-	public void setFocus() {

-		if (sections != null && sections.size() > 0) {

-			FormSection firstSection = (FormSection) sections.firstElement();

-			firstSection.setFocus();

-		}

-	}

-

-	public void update() {

-		if (sections != null) {

-			for (Iterator iter = sections.iterator(); iter.hasNext();) {

-				FormSection section = (FormSection) iter.next();

-				section.update();

-			}

-		}

-	}

-

-	public void commitChanges(boolean onSave) {

-		if (sections != null) {

-			for (Iterator iter = sections.iterator(); iter.hasNext();) {

-				FormSection section = (FormSection) iter.next();

-				if (section.isDirty())

-					section.commitChanges(onSave);

-			}

-		}

-	}

-

-	public boolean doGlobalAction(String actionId) {

-		Control focusControl = getFocusControl();

-		if (focusControl == null)

-			return false;

-

-		if (canPerformDirectly(actionId, focusControl))

-			return true;

-		Composite parent = focusControl.getParent();

-		FormSection targetSection = null;

-		while (parent != null) {

-			Object data = parent.getData();

-			if (data != null && data instanceof FormSection) {

-				targetSection = (FormSection) data;

-				break;

-			}

-			parent = parent.getParent();

-		}

-		if (targetSection != null) {

-			return targetSection.doGlobalAction(actionId);

-		}

-		return false;

-	}

-

-	protected Control getFocusControl() {

-		Control control = getControl();

-		if (control == null || control.isDisposed())

-			return null;

-		Display display = control.getDisplay();

-		Control focusControl = display.getFocusControl();

-		if (focusControl == null || focusControl.isDisposed())

-			return null;

-		return focusControl;

-	}

-

-	public boolean canPaste(Clipboard clipboard) {

-		Control focusControl = getFocusControl();

-		if (focusControl == null)

-			return false;

-		Composite parent = focusControl.getParent();

-		FormSection targetSection = null;

-		while (parent != null) {

-			Object data = parent.getData();

-			if (data != null && data instanceof FormSection) {

-				targetSection = (FormSection) data;

-				break;

-			}

-			parent = parent.getParent();

-		}

-		if (targetSection != null) {

-			return targetSection.canPaste(clipboard);

-		}

-		return false;

-	}

-

-	public void dispose() {

-		if (sections != null) {

-			for (Iterator iter = sections.iterator(); iter.hasNext();) {

-				FormSection section = (FormSection) iter.next();

-				section.dispose();

-			}

-		}

-		super.dispose();

-	}

-

-	public static void ensureVisible(ScrolledComposite scomp, Control control) {

-		Point controlSize = control.getSize();

-		Point controlOrigin = getControlLocation(scomp, control);

-		ensureVisible(scomp, controlOrigin, controlSize);

-	}

-

-	public static void ensureVisible(ScrolledComposite scomp, Point controlOrigin, Point controlSize) {

-		Point area = scomp.getContent().getSize();

-		Point scompOrigin = scomp.getOrigin();

-

-		int x = scompOrigin.x;

-		int y = scompOrigin.y;

-

-		if (controlOrigin.x + controlSize.x > scompOrigin.x + area.x) {

-			x = controlOrigin.x + controlSize.x - area.x;

-		}		

-		if (controlOrigin.x < x ) {

-			 x = controlOrigin.x;

-		 }         

-		

-		if (controlOrigin.y + controlSize.y > scompOrigin.y + area.y) {

-			y = controlOrigin.y + controlSize.y - area.y;

-		}

-		if (controlOrigin.y < y ) {

-			 y = controlOrigin.y;

-		 }         

-		scomp.setOrigin(x, y);

-	}

-	

-	public static Point getControlLocation(ScrolledComposite scomp, Control control) {

-		int x = 0;

-		int y = 0;

-		Control currentControl = control;

-		for (;;) {

-			if (currentControl == scomp)

-				break;

-			if (currentControl.getLocation().x > 0)

-				x += currentControl.getLocation().x;

-			if (currentControl.getLocation().y > 0)

-				y += currentControl.getLocation().y;

-			currentControl = currentControl.getParent();

-		}

-		return new Point(x, y);

-	}

-	

-	public static void scrollVertical(ScrolledComposite scomp, boolean up) {

-		scroll(scomp, 0, up ? -V_SCROLL_INCREMENT : V_SCROLL_INCREMENT);

-	}

-	public static void scrollHorizontal(ScrolledComposite scomp, boolean left) {

-		scroll(scomp, left ? -H_SCROLL_INCREMENT : H_SCROLL_INCREMENT, 0);

-	}

-	public static void scrollPage(ScrolledComposite scomp, boolean up) {

-		Rectangle clientArea = scomp.getClientArea();

-		int increment = up ? -clientArea.height : clientArea.height;

-		scroll(scomp, 0, increment);

-	}

-	private static void scroll(ScrolledComposite scomp, int xoffset, int yoffset) {

-		Point origin = scomp.getOrigin();

-		Point contentSize = scomp.getContent().getSize();

-		int xorigin = origin.x + xoffset;

-		int yorigin = origin.y + yoffset;

-		xorigin = Math.max(xorigin, 0);

-		xorigin = Math.min(xorigin, contentSize.x - 1);

-		yorigin = Math.max(yorigin, 0);

-		yorigin = Math.min(yorigin, contentSize.y - 1);

-		scomp.setOrigin(xorigin, yorigin);

-	}

-

-	public static void updatePageIncrement(ScrolledComposite scomp) {

-		ScrollBar vbar = scomp.getVerticalBar();

-		if (vbar != null) {

-			Rectangle clientArea = scomp.getClientArea();

-			int increment = clientArea.height - 5;

-			vbar.setPageIncrement(increment);

-		}

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/CustomWorkbook.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/CustomWorkbook.java
deleted file mode 100644
index f88ebcc..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/CustomWorkbook.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import java.util.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.*;

-import org.eclipse.swt.custom.*;

-

-

-public class CustomWorkbook implements IFormWorkbook {

-	private Hashtable pages;

-	private boolean firstPageSelected=true;

-	private CTabFolder tabFolder;

-	private Vector listeners=new Vector();

-	private IFormPage currentPage;

-

-public CustomWorkbook() {

-	pages = new Hashtable();

-}

-public void addFormSelectionListener(IFormSelectionListener listener) {

-	listeners.addElement(listener);

-}

-public void addPage(IFormPage page) {

-	CTabItem item = new CTabItem(tabFolder, SWT.NULL);

-	item.setText(page.getLabel());

-	item.setToolTipText(page.getTitle());

-	item.setData(page);

-	pages.put(page, item);

-	

-	if (firstPageSelected && currentPage == null)

-		selectPage(page, true);

-}

-public void createControl(Composite parent) {

-	tabFolder = new CTabFolder(parent, SWT.BOTTOM);

-	tabFolder.addSelectionListener(new SelectionAdapter() {

-		public void widgetSelected(SelectionEvent e) {

-			CTabItem item = (CTabItem) e.item;

-			IFormPage page = (IFormPage) item.getData();

-			if (page != null)

-				selectPage(page, true);

-		}

-	});

-	// listener to resize visible components

-	tabFolder.addListener(SWT.Resize, new Listener() {

-		public void handleEvent(Event e) {

-			if (currentPage != null)

-				setControlSize(currentPage.getControl());

-		}

-	});

-}

-private void fireSelectionChanged(IFormPage page, boolean setFocus) {

-	for (Iterator iter = listeners.iterator(); iter.hasNext();) {

-		IFormSelectionListener listener = (IFormSelectionListener) iter.next();

-		listener.formSelected(page, setFocus);

-	}

-}

-public Control getControl() {

-	return tabFolder;

-}

-public IFormPage getCurrentPage() {

-	return currentPage;

-}

-public boolean isFirstPageSelected() {

-	return firstPageSelected;

-}

-public void removeFormSelectionListener(IFormSelectionListener listener) {

-	listeners.removeElement(listener);

-}

-public void removePage(IFormPage page) {

-	CTabItem item = (CTabItem) pages.get(page);

-	if (item != null)

-		item.dispose();

-}

-private void reselectPage(final IFormPage page) {

-	tabFolder.getDisplay().asyncExec(new Runnable() {

-		public void run() {

-		selectPage(page, true);

-		}

-	});

-}

-public void selectPage(final IFormPage page, final boolean setFocus) {

-	final IFormPage oldPage = currentPage;

-	currentPage = page;

-

-	// It may take a while

-	BusyIndicator.showWhile(tabFolder.getDisplay(), new Runnable() {

-		public void run() {

-			switchPages(oldPage, page, setFocus);

-		}

-	});

-}

-private void setControlSize(Control control) {

-	Rectangle bounds = tabFolder.getBounds();

-	Rectangle offset = tabFolder.getClientArea();

-	bounds.x += offset.x;

-	bounds.y += offset.y;

-	bounds.width = offset.width;

-	bounds.height = offset.height;

-	control.setBounds(bounds);

-	control.moveAbove(tabFolder);

-}

-private void setControlVisible(Control control) {

-	if (control == null)

-		return;

-	setControlSize(control);

-	control.setVisible(true);

-}

-public void setFirstPageSelected(boolean newFirstPageSelected) {

-	firstPageSelected = newFirstPageSelected;

-}

-private void switchPages(IFormPage oldPage, IFormPage newPage, boolean setFocus) {

-	if (oldPage != null && oldPage!=newPage) {

-		boolean okToSwitch = oldPage.becomesInvisible(newPage);

-		if (!okToSwitch) {

-			// We must try to go back to the source page

-			reselectPage(oldPage);

-			return;

-		}

-	}

-	if (newPage.getControl() == null)

-		newPage.createControl(tabFolder);

-	tabFolder.setSelection((CTabItem) pages.get(newPage));

-	if (oldPage != null && oldPage != newPage) {

-		Control oldControl = oldPage.getControl();

-		if (oldControl!=null) oldControl.setVisible(false);

-	}

-	Control newControl = newPage.getControl();

-	newPage.becomesVisible(oldPage);

-	setControlVisible(newControl);

-	fireSelectionChanged(newPage, setFocus);

-}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ExpandableGroup.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ExpandableGroup.java
deleted file mode 100644
index edb5f8a..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ExpandableGroup.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.*;

-

-public abstract class ExpandableGroup {

-	private String text;

-	private boolean expanded;

-	private Composite expansion;

-	protected SelectableFormLabel textLabel;

-	private Composite control;

-	private boolean expandable=true;

-	

-class ExpandableLayout extends Layout {

-	protected void layout(Composite parent, boolean changed) {

-		Rectangle clientArea = parent.getClientArea();

-		Point size = textLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);

-		int x = 0;

-		int y = 1;

-		

-		if (expandable) {

-			x = 8 + 8;

-		}

-		textLabel.setBounds(x, y, size.x, size.y);

-	

-		if (expandable)

-		   y = Math.max(size.y, 8) + 2 + 2;

-		else

-		   y = size.y + 2;

-		if (expanded) {

-			int areaWidth = clientArea.width - x;

-			size = expansion.computeSize(areaWidth, SWT.DEFAULT, changed);

-			expansion.setBounds(x, y, size.x, size.y);

-		}

-	}

-

-	protected Point computeSize(Composite parent, int wHint, int hHint, boolean changed) {

-		int width = 0, height = 0;

-		Point size = textLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);

-		width = size.x;

-		height = size.y + 2 + 2;

-		if (expanded) {

-			size = expansion.computeSize(wHint, SWT.DEFAULT, changed);

-			width = Math.max(width, size.x);

-			height += size.y;

-		}

-		if (expandable) {

-			height = Math.max(height, 8);

-			width += 8 + 8;

-		}

-		return new Point(width, height);

-	}

-}

-

-	public ExpandableGroup() {

-	}

-	

-	public ExpandableGroup(int style) {

-		//this.style = style;

-	}

-	

-	public Control getControl() {

-		return control;

-	}

-	

-	public void createControl(Composite parent, final FormWidgetFactory factory) {

-		final Canvas container = new Canvas(parent, SWT.NULL);

-		container.setBackground(factory.getBackgroundColor());

-		container.setLayout(new ExpandableLayout());

-		container.addPaintListener(new PaintListener() {

-			public void paintControl(PaintEvent e) {

-				if (expandable) repaint(e);

-			}

-		});

-		container.addMouseListener(new MouseAdapter() {

-			public void mouseUp(MouseEvent e) {

-				Rectangle box = getBoxBounds(null);

-				if (box.contains(e.x, e.y)) {

-					container.setCursor(factory.getBusyCursor());

-					setExpanded(!isExpanded());

-					container.setCursor(null);

-				}

-			}

-		});

-		textLabel = createTextLabel(container, factory);

-		getHyperlinkHandler(factory).registerHyperlink(textLabel, new HyperlinkAdapter () {

-			public void linkActivated(Control link) {

-				ExpandableGroup.this.linkActivated();

-				if (expandable) setExpanded(!isExpanded());

-			}

-		});

-		textLabel.addFocusListener(factory.visibilityHandler);

-		textLabel.addKeyListener(factory.keyboardHandler);		

-		if (text!=null) textLabel.setText(text);

-		expansion = factory.createComposite(container);

-		fillExpansion(expansion, factory);

-		this.control = container;

-	}

-	

-	protected SelectableFormLabel createTextLabel(Composite parent, FormWidgetFactory factory) {

-		SelectableFormLabel text = new SelectableFormLabel(parent, SWT.WRAP);

-		text.setBackground(factory.getBackgroundColor());

-		return text;

-	}

-	

-	protected HyperlinkHandler getHyperlinkHandler(FormWidgetFactory factory) {

-		return factory.getHyperlinkHandler();

-	}

-	

-	public abstract void fillExpansion(Composite expansion, FormWidgetFactory factory);

-	

-	public void setText(String text) {

-		this.text = text;

-		if (textLabel!=null)

-		   textLabel.setText(text);

-	}

-	

-	public String getText() {

-		return text;

-	}

-	

-	public boolean isExpanded() {

-		return expanded;

-	}

-	

-	public void setExpandable(boolean expandable) {

-		this.expandable = expandable;

-	}

-	

-	public boolean isExpandable() {

-		return expandable;

-	}

-	

-	public void setExpanded(boolean expanded) {

-		if (this.expanded != expanded) {

-			if (expanded) {

-				aboutToExpand();

-			}

-			else {

-				aboutToCollapse();

-			}

-			this.expanded = expanded;

-			expansion.setVisible(expanded);

-			control.layout();

-			if (expanded) {

-				this.expanded();

-			}

-			else {

-				collapsed();

-			}

-		}

-	}

-	

-	private void repaint(PaintEvent e) {

-		GC gc = e.gc;

-		Rectangle box = getBoxBounds(gc);

-		gc.setForeground(control.getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));

-		gc.drawRectangle(box);

-		gc.setForeground(control.getDisplay().getSystemColor(SWT.COLOR_LIST_FOREGROUND));

-		gc.drawLine(box.x+2, box.y+4, box.x+6, box.y+4);

-		if (!isExpanded()) {

-			gc.drawLine(box.x+4, box.y+2, box.x+4, box.y+6);

-		}

-	}

-	

-	private Rectangle getBoxBounds(GC gc) {

-		int x = 0;

-		int y = 0;

-		boolean noGC = false;

-	

-		if (gc==null) {

-			gc = new GC(control);

-			noGC = true;

-		}

-		gc.setFont(textLabel.getFont());

-		int height = gc.getFontMetrics().getHeight();

-		y = height/2 - 4 +1;

-		y = Math.max(y, 0);

-		if (noGC) gc.dispose();

-		return new Rectangle(x, y, 8, 8);

-	}

-	

-	protected void updateLayout() {

-		control.layout();

-	}

-	

-	protected void aboutToExpand() {

-	}

-	

-	protected void aboutToCollapse() {

-	}

-	

-	protected void expanded() {

-	}

-	protected void collapsed() {

-	}

-	protected void linkActivated() {

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormButton.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormButton.java
deleted file mode 100644
index c307edf..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormButton.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.graphics.*;

-

-public class FormButton {

-	private Button button;

-	private Image image;

-	private FormWidgetFactory factory;

-	private Image hoverImage;

-	private boolean inside;

-	private Image disabledImage;

-

-public FormButton(Button button, FormWidgetFactory factory) {

-	this.button = button;

-	this.factory = factory;

-	button.addMouseTrackListener(new MouseTrackAdapter() {

-		public void mouseEnter(MouseEvent e) {

-			inside=true;

-			updateImage();

-		}

-		public void mouseExit(MouseEvent e) {

-			inside=false;

-			updateImage();

-		}

-	});

-}

-public Button getButton() {

-	return button;

-}

-public Image getDisabledImage() {

-	return disabledImage;

-}

-public Image getHoverImage() {

-	return hoverImage;

-}

-public Image getImage() {

-	return image;

-}

-public void setDisabledImage(Image newDisabledImage) {

-	disabledImage = newDisabledImage;

-}

-public void setEnabled(boolean enabled) {

-	button.setEnabled(enabled);

-	updateImage();

-}

-public void setHoverImage(Image newHoverImage) {

-	hoverImage = newHoverImage;

-}

-public void setImage(Image newImage) {

-	image = newImage;

-	if (hoverImage==null) hoverImage = image;

-	if (disabledImage==null) disabledImage = image;

-	updateImage();

-}

-public void updateImage() {

-	boolean enabled = button.isEnabled();

-	if (enabled == false) {

-		button.setImage(disabledImage);

-	} else {

-		if (inside) {

-			button.setCursor(factory.getHyperlinkCursor());

-			button.setImage(hoverImage);

-		} else {

-			button.setCursor(null);

-			button.setImage(image);

-		}

-	}

-}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormEntry.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormEntry.java
deleted file mode 100644
index a5e7e14..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormEntry.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.widgets.*;

-import java.util.*;

-

-public class FormEntry {

-	private Text text;

-	private String value;

-	private boolean dirty;

-	private Vector listeners=new Vector();

-	boolean ignoreModify=false;

-

-public FormEntry(Text text) {

-	this.text = text;

-	this.value = text.getText();

-	addListeners();

-}

-public void addFormTextListener(IFormTextListener listener) {

-	listeners.addElement(listener);

-}

-private void addListeners() {

-	text.addKeyListener(new KeyAdapter() {

-		public void keyReleased(KeyEvent e) {

-			keyReleaseOccured(e);

-		}

-	});

-	text.addModifyListener(new ModifyListener() {

-		public void modifyText(ModifyEvent e) {

-			editOccured(e);

-		}

-	});

-	text.addFocusListener (new FocusAdapter() {

-		public void focusLost(FocusEvent e) {

-			if (dirty) commit();

-		}

-	});

-}

-public void commit() {

-	if (dirty) {

-		value = text.getText();

-		//notify

-		for (Iterator iter = listeners.iterator(); iter.hasNext();) {

-			((IFormTextListener) iter.next()).textValueChanged(this);

-		}

-	}

-	dirty = false;

-}

-protected void editOccured(ModifyEvent e) {

-	if (ignoreModify) return;

-	dirty = true;

-	for (Iterator iter = listeners.iterator(); iter.hasNext();) {

-		((IFormTextListener) iter.next()).textDirty(this);

-	}

-}

-

-public Text getControl() {

-	return text;

-}

-public java.lang.String getValue() {

-	return value;

-}

-public boolean isDirty() {

-	return dirty;

-}

-protected void keyReleaseOccured(KeyEvent e) {

-	if (e.character == '\r') {

-		// commit value

-		if (dirty) commit();

-	}

-	else if (e.character == '\u001b') { // Escape character

-		text.setText(value!=null?value:""); // restore old

-		dirty= false;

-	}

-}

-public void removeFormTextListener(IFormTextListener listener) {

-	listeners.removeElement(listener);

-}

-public void setDirty(boolean newDirty) {

-	dirty = newDirty;

-}

-public void setValue(String value) {

-	if (text!=null) text.setText(value!=null?value:"");

-	this.value = value;

-}

-

-public void setValue(String value, boolean blockNotification) {

-	ignoreModify = blockNotification;

-	setValue(value);

-	ignoreModify = false;

-}

-

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormLabel.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormLabel.java
deleted file mode 100644
index 965e1e8..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormLabel.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import java.text.BreakIterator;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.accessibility.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-/**

- * FormText is a windowless control that

- * draws text in the provided context.

- */

-public class FormLabel extends Canvas {

-	private String text = "";

-	protected int textMarginWidth = 5;

-	protected int textMarginHeight = 5;

-	private boolean underlined;

-

-	public FormLabel(Composite parent, int style) {

-		super(parent, style);

-		addPaintListener(new PaintListener() {

-			public void paintControl(PaintEvent e) {

-				paint(e);

-			}

-		});

-		initAccessible();

-	}

-	public String getText() {

-		return text;

-	}

-	public void setText(String text) {

-		if (text != null)

-			this.text = text;

-		else

-			text = "";

-	}

-

-	protected void initAccessible() {

-		Accessible accessible = getAccessible();

-		accessible.addAccessibleListener(new AccessibleAdapter() {

-			public void getName(AccessibleEvent e) {

-				e.result = getText();

-			}

-

-			public void getHelp(AccessibleEvent e) {

-				e.result = getToolTipText();

-			}

-		});

-

-		accessible

-			.addAccessibleControlListener(new AccessibleControlAdapter() {

-			public void getChildAtPoint(AccessibleControlEvent e) {

-				Point pt = toControl(new Point(e.x, e.y));

-				e.childID =

-					(getBounds().contains(pt))

-						? ACC.CHILDID_SELF

-						: ACC.CHILDID_NONE;

-			}

-

-			public void getLocation(AccessibleControlEvent e) {

-				Rectangle location = getBounds();

-				Point pt = toDisplay(new Point(location.x, location.y));

-				e.x = pt.x;

-				e.y = pt.y;

-				e.width = location.width;

-				e.height = location.height;

-			}

-

-			public void getChildCount(AccessibleControlEvent e) {

-				e.detail = 0;

-			}

-

-			public void getRole(AccessibleControlEvent e) {

-				e.detail = ACC.ROLE_LABEL;

-			}

-

-			public void getState(AccessibleControlEvent e) {

-				e.detail = ACC.STATE_READONLY;

-			}

-		});

-	}

-

-	public void setUnderlined(boolean underlined) {

-		this.underlined = underlined;

-	}

-

-	public boolean isUnderlined() {

-		return underlined;

-	}

-

-	public Point computeSize(int wHint, int hHint, boolean changed) {

-		checkWidget();

-		int innerWidth = wHint;

-		if (innerWidth != SWT.DEFAULT)

-			innerWidth -= textMarginWidth * 2;

-		Point textSize = computeTextSize(innerWidth, hHint);

-		int textWidth = textSize.x + 2 * textMarginWidth;

-		int textHeight = textSize.y + 2 * textMarginHeight;

-		return new Point(textWidth, textHeight);

-	}

-

-	public static int computeWrapHeight(GC gc, String text, int width) {

-		BreakIterator wb = BreakIterator.getWordInstance();

-		wb.setText(text);

-		FontMetrics fm = gc.getFontMetrics();

-		int lineHeight = fm.getHeight();

-

-		int saved = 0;

-		int last = 0;

-		int height = lineHeight;

-

-		for (int loc = wb.first();

-			loc != BreakIterator.DONE;

-			loc = wb.next()) {

-			String word = text.substring(saved, loc);

-			Point extent = gc.textExtent(word);

-			if (extent.x > width) {

-				// overflow

-				saved = last;

-				height += extent.y;

-			}

-			last = loc;

-		}

-		return height;

-	}

-

-	private Point computeTextSize(int wHint, int hHint) {

-		Point extent;

-		GC gc = new GC(this);

-

-		gc.setFont(getFont());

-		if ((getStyle() & SWT.WRAP) != 0 && wHint != SWT.DEFAULT) {

-			int height = computeWrapHeight(gc, text, wHint);

-			extent = new Point(wHint, height);

-		} else {

-			extent = gc.textExtent(getText());

-		}

-		gc.dispose();

-		return extent;

-	}

-

-	public static void paintWrapText(

-		GC gc,

-		Point size,

-		String text,

-		int marginWidth,

-		int marginHeight) {

-		paintWrapText(gc, size, text, marginWidth, marginHeight, false);

-	}

-

-	public static void paintWrapText(

-		GC gc,

-		Point size,

-		String text,

-		int marginWidth,

-		int marginHeight,

-		boolean underline) {

-		BreakIterator wb = BreakIterator.getWordInstance();

-		wb.setText(text);

-		FontMetrics fm = gc.getFontMetrics();

-		int lineHeight = fm.getHeight();

-		int descent = fm.getDescent();

-

-		int saved = 0;

-		int last = 0;

-		int y = marginHeight;

-		int width = size.x - marginWidth * 2;

-

-		for (int loc = wb.first();

-			loc != BreakIterator.DONE;

-			loc = wb.next()) {

-			String line = text.substring(saved, loc);

-			Point extent = gc.textExtent(line);

-			if (extent.x > width) {

-				// overflow

-				String prevLine = text.substring(saved, last);

-				gc.drawString(prevLine, marginWidth, y, true);

-				if (underline) {

-					Point prevExtent = gc.textExtent(prevLine);

-					int lineY = y + lineHeight - descent + 1;

-					gc.drawLine(marginWidth, lineY, prevExtent.x, lineY);

-				}

-

-				saved = last;

-				y += lineHeight;

-			}

-			last = loc;

-		}

-		// paint the last line

-		String lastLine = text.substring(saved, last);

-		gc.drawString(lastLine, marginWidth, y, true);

-		if (underline) {

-			int lineY = y + lineHeight - descent + 1;

-			Point lastExtent = gc.textExtent(lastLine);

-			gc.drawLine(marginWidth, lineY, marginWidth + lastExtent.x, lineY);

-		}

-	}

-

-	protected void paint(PaintEvent e) {

-		GC gc = e.gc;

-		Point size = getSize();

-		gc.setFont(getFont());

-		gc.setForeground(getForeground());

-		if ((getStyle() & SWT.WRAP) != 0) {

-			paintWrapText(

-				gc,

-				size,

-				text,

-				textMarginWidth,

-				textMarginHeight,

-				underlined);

-		} else {

-			gc.drawText(getText(), textMarginWidth, textMarginHeight, true);

-			if (underlined) {

-				FontMetrics fm = gc.getFontMetrics();

-				int descent = fm.getDescent();

-				int lineY = size.y - textMarginHeight - descent + 1;

-				gc.drawLine(

-					textMarginWidth,

-					lineY,

-					size.x - textMarginWidth,

-					lineY);

-			}

-		}

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormSection.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormSection.java
deleted file mode 100644
index 742231d..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormSection.java
+++ /dev/null
@@ -1,531 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.layout.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.*;

-import org.eclipse.jface.util.*;

-import org.eclipse.jface.resource.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.dnd.Clipboard;

-

-public abstract class FormSection implements IPropertyChangeListener {

-	public static final int SELECTION = 1;

-	private String headerColorKey = FormWidgetFactory.DEFAULT_HEADER_COLOR;

-	private String headerText;

-	private Control client;

-	protected Label header;

-	protected Control separator;

-	private SectionChangeManager sectionManager;

-	private String description;

-	private boolean dirty;

-	protected Label descriptionLabel;

-	private ToggleControl toggle;

-	private boolean readOnly;

-	private boolean addSeparator = true;

-	private boolean descriptionPainted = true;

-	private boolean headerPainted = true;

-	private boolean collapsable = false;

-	private boolean collapsed = false;

-	private int widthHint = SWT.DEFAULT;

-	private int heightHint = SWT.DEFAULT;

-	private Composite control;

-	public boolean compactMode=false;

-

-	/*

-	 * This is a special layout for the section. Both the

-	 * header and the description labels will wrap and

-	 * they will use client's size to calculate needed

-	 * height. This kind of behaviour is not possible

-	 * with stock grid layout.

-	 */

-	class SectionLayout extends Layout implements ILayoutExtension {

-		int vspacing = 3;

-		int sepHeight = 2;

-

-		public int getMinimumWidth(Composite parent, boolean flush) {

-			return 30;

-		}

-

-		public int getMaximumWidth(Composite parent, boolean flush) {

-			int maxWidth = 0;

-			if (client != null) {

-				if (client instanceof Composite) {

-					Layout cl = ((Composite) client).getLayout();

-					if (cl instanceof ILayoutExtension)

-						maxWidth =

-							((ILayoutExtension) cl).getMaximumWidth(

-								(Composite) client,

-								flush);

-				}

-				if (maxWidth == 0) {

-					Point csize =

-						client.computeSize(SWT.DEFAULT, SWT.DEFAULT, flush);

-					maxWidth = csize.x;

-				}

-			}

-			if (headerPainted && header != null) {

-				Point hsize =

-					header.computeSize(SWT.DEFAULT, SWT.DEFAULT, flush);

-				maxWidth = Math.max(maxWidth, hsize.x);

-			}

-			if (descriptionPainted && descriptionLabel != null) {

-				Point dsize =

-					descriptionLabel.computeSize(

-						SWT.DEFAULT,

-						SWT.DEFAULT,

-						flush);

-				maxWidth = Math.max(maxWidth, dsize.x);

-			}

-			return maxWidth;

-		}

-

-		protected Point computeSize(

-			Composite parent,

-			int wHint,

-			int hHint,

-			boolean flush) {

-			int width = 0;

-			int height = 0;

-			int cwidth = 0;

-			int collapsedHeight = 0;

-

-			if (wHint != SWT.DEFAULT)

-				width = wHint;

-			if (hHint != SWT.DEFAULT)

-				height = hHint;

-

-			cwidth = width;

-

-			if (client != null && !client.isDisposed()) {

-				if (toggle != null && toggle.getSelection() && compactMode) {

-				}

-				else {

-				//Point csize = client.computeSize(SWT.DEFAULT, SWT.DEFAULT, flush);

-				Point csize = client.computeSize(wHint, SWT.DEFAULT);

-				if (width == 0) {

-					width = csize.x;

-					cwidth = width;

-				}

-				if (height == 0)

-					height = csize.y;

-				}

-			}

-

-			Point toggleSize = null;

-

-			if (collapsable && toggle != null)

-				toggleSize =

-					toggle.computeSize(SWT.DEFAULT, SWT.DEFAULT, flush);

-

-			if (hHint == SWT.DEFAULT && headerPainted && header != null) {

-				int hwidth = cwidth;

-				if (toggleSize != null)

-					hwidth = cwidth - toggleSize.x - 5;

-				Point hsize = header.computeSize(hwidth, SWT.DEFAULT, flush);

-				height += hsize.y;

-				collapsedHeight = hsize.y;

-				height += vspacing;

-			}

-

-			if (hHint == SWT.DEFAULT && addSeparator) {

-				height += sepHeight;

-				height += vspacing;

-				collapsedHeight += vspacing + sepHeight;

-			}

-			if (hHint == SWT.DEFAULT

-				&& descriptionPainted

-				&& descriptionLabel != null) {

-				Point dsize =

-					descriptionLabel.computeSize(cwidth, SWT.DEFAULT, flush);

-				height += dsize.y;

-				height += vspacing;

-			}

-			if (toggle != null && toggle.getSelection()) {

-				// collapsed state

-				height = collapsedHeight;

-			}

-			return new Point(width, height);

-		}

-		protected void layout(Composite parent, boolean flush) {

-			int width = parent.getClientArea().width;

-			int height = parent.getClientArea().height;

-			int y = 0;

-			Point toggleSize = null;

-

-			if (collapsable) {

-				toggleSize =

-					toggle.computeSize(SWT.DEFAULT, SWT.DEFAULT, flush);

-			}

-			if (headerPainted && header != null) {

-				Point hsize;

-

-				int availableWidth = width;

-				if (toggleSize != null)

-					availableWidth = width - toggleSize.x - 5;

-				hsize = header.computeSize(availableWidth, SWT.DEFAULT, flush);

-				int hx = 0;

-				if (toggle != null) {

-					int ty = y + hsize.y - toggleSize.y;

-					toggle.setBounds(0, ty, toggleSize.x, toggleSize.y);

-					hx = toggleSize.x; // + 5;

-				}

-				header.setBounds(hx, y, availableWidth, hsize.y);

-

-				y += hsize.y + vspacing;

-			}

-			if (addSeparator && separator != null) {

-				separator.setBounds(0, y, width, 2);

-				y += sepHeight + vspacing;

-			}

-			if (toggle != null && toggle.getSelection()) {

-				return;

-			}

-			if (descriptionPainted && descriptionLabel != null) {

-				Point dsize =

-					descriptionLabel.computeSize(width, SWT.DEFAULT, flush);

-				descriptionLabel.setBounds(0, y, width, dsize.y);

-				y += dsize.y + vspacing;

-			}

-			if (client != null) {

-				client.setBounds(0, y, width, height - y);

-			}

-		}

-	}

-

-	/**

-	 * @return

-	 */

-	public boolean isCompactMode() {

-		return compactMode;

-	}

-

-	/**

-	 * @param compactMode

-	 */

-	public void setCompactMode(boolean compactMode) {

-		this.compactMode = compactMode;

-	}

-

-	public FormSection() {

-		/*

-		// Description causes problems re word wrapping

-		// and causes bad layout in schema and

-		// feature editors when in Motif - turning off

-		if (SWT.getPlatform().equals("motif")) {

-			descriptionPainted = false;

-		}

-		*/

-		JFaceResources.getFontRegistry().addListener(this);

-	}

-	public void commitChanges(boolean onSave) {

-	}

-	public abstract Composite createClient(

-		Composite parent,

-		FormWidgetFactory factory);

-	public final Control createControl(

-		Composite parent,

-		final FormWidgetFactory factory) {

-		Composite section = factory.createComposite(parent);

-		SectionLayout slayout = new SectionLayout();

-		section.setLayout(slayout);

-		section.setData(this);

-

-		if (headerPainted) {

-			Color headerColor = factory.getColor(getHeaderColorKey());

-			header =

-				factory.createHeadingLabel(

-					section,

-					getHeaderText(),

-					headerColor,

-					SWT.WRAP);

-			if (collapsable) {

-				toggle = new ToggleControl(section, SWT.NULL);

-				toggle.setSelection(collapsed);

-				toggle.setBackground(factory.getBackgroundColor());

-				toggle.setActiveDecorationColor(factory.getHyperlinkColor());

-				toggle.setDecorationColor(

-					factory.getColor(

-						FormWidgetFactory.COLOR_COMPOSITE_SEPARATOR));

-				toggle.setActiveCursor(factory.getHyperlinkCursor());

-				toggle.addFocusListener(factory.visibilityHandler);

-				toggle.addKeyListener(factory.keyboardHandler);

-				toggle.addSelectionListener(new SelectionAdapter() {

-					public void widgetSelected(SelectionEvent e) {

-						doToggle();

-					}

-				});

-				header.addMouseListener(new MouseAdapter() {

-					public void mouseDown(MouseEvent e) {

-						toggle.setSelection(!toggle.getSelection());

-						toggle.redraw();

-						doToggle();

-					}

-				});

-				header.addMouseTrackListener(new MouseTrackAdapter() {

-					public void mouseEnter(MouseEvent e) {

-						header.setCursor(factory.getHyperlinkCursor());

-					}

-					public void mouseExit(MouseEvent e) {

-						header.setCursor(null);

-					}

-				});

-			}

-		}

-

-		if (addSeparator) {

-			//separator = factory.createSeparator(section, SWT.HORIZONTAL);

-			separator = factory.createCompositeSeparator(section);

-		}

-

-		if (descriptionPainted && description != null) {

-			descriptionLabel =

-				factory.createLabel(section, description, SWT.WRAP);

-		}

-		client = createClient(section, factory);

-		section.setData(this);

-		control = section;

-		return section;

-	}

-

-	private void doToggle() {

-		collapsed = toggle.getSelection();

-		reflow();

-		if (descriptionLabel != null)

-			descriptionLabel.setVisible(!collapsed);

-		if (client != null)

-			client.setVisible(!collapsed);

-	}

-

-	protected void reflow() {

-		control.setRedraw(false);

-		control.getParent().setRedraw(false);

-		control.layout(true);

-		control.getParent().layout(true);

-		control.setRedraw(true);

-		control.getParent().setRedraw(true);

-	}

-

-	protected Text createText(

-		Composite parent,

-		String label,

-		FormWidgetFactory factory) {

-		return createText(parent, label, factory, 1);

-	}

-	protected Text createText(

-		Composite parent,

-		String label,

-		FormWidgetFactory factory,

-		int span) {

-		factory.createLabel(parent, label);

-		Text text = factory.createText(parent, "");

-		int hfill =

-			span == 1

-				? GridData.FILL_HORIZONTAL

-				: GridData.HORIZONTAL_ALIGN_FILL;

-		GridData gd = new GridData(hfill | GridData.VERTICAL_ALIGN_CENTER);

-		gd.horizontalSpan = span;

-		text.setLayoutData(gd);

-		return text;

-	}

-	protected Text createText(

-		Composite parent,

-		String label,

-		FormWidgetFactory factory,

-		int span,

-		int style) {

-		Label l = factory.createLabel(parent, label);

-		if ((style & SWT.MULTI) != 0) {

-			GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);

-			l.setLayoutData(gd);

-		}

-		Text text = factory.createText(parent, "", style);

-		int hfill =

-			span == 1

-				? GridData.FILL_HORIZONTAL

-				: GridData.HORIZONTAL_ALIGN_FILL;

-		GridData gd = new GridData(hfill | GridData.VERTICAL_ALIGN_CENTER);

-		gd.horizontalSpan = span;

-		text.setLayoutData(gd);

-		return text;

-	}

-	protected Text createText(

-		Composite parent,

-		FormWidgetFactory factory,

-		int span) {

-		Text text = factory.createText(parent, "");

-		int hfill =

-			span == 1

-				? GridData.FILL_HORIZONTAL

-				: GridData.HORIZONTAL_ALIGN_FILL;

-		GridData gd = new GridData(hfill | GridData.VERTICAL_ALIGN_CENTER);

-		//gd.grabExcessHorizontalSpace = true;

-		gd.horizontalSpan = span;

-		text.setLayoutData(gd);

-		return text;

-	}

-	public void dispose() {

-		JFaceResources.getFontRegistry().removeListener(this);

-	}

-	public boolean doGlobalAction(String actionId) {

-		return false;

-	}

-	public void expandTo(Object object) {

-	}

-	public final void fireChangeNotification(

-		int changeType,

-		Object changeObject) {

-		if (sectionManager == null)

-			return;

-		sectionManager.dispatchNotification(this, changeType, changeObject);

-	}

-	public final void fireSelectionNotification(Object changeObject) {

-		fireChangeNotification(SELECTION, changeObject);

-	}

-	public java.lang.String getDescription() {

-		return description;

-	}

-	public java.lang.String getHeaderColorKey() {

-		return headerColorKey;

-	}

-	public java.lang.String getHeaderText() {

-		return headerText;

-	}

-	public int getHeightHint() {

-		return heightHint;

-	}

-	public int getWidthHint() {

-		return widthHint;

-	}

-	public void initialize(Object input) {

-	}

-	public boolean isAddSeparator() {

-		return addSeparator;

-	}

-	public boolean isDescriptionPainted() {

-		return descriptionPainted;

-	}

-	public boolean isDirty() {

-		return dirty;

-	}

-	public boolean isHeaderPainted() {

-		return headerPainted;

-	}

-	public boolean isReadOnly() {

-		return readOnly;

-	}

-	public void sectionChanged(

-		FormSection source,

-		int changeType,

-		Object changeObject) {

-	}

-	public void setAddSeparator(boolean newAddSeparator) {

-		addSeparator = newAddSeparator;

-	}

-

-	private String trimNewLines(String text) {

-		StringBuffer buff = new StringBuffer();

-		for (int i = 0; i < text.length(); i++) {

-			char c = text.charAt(i);

-			if (c == '\n')

-				buff.append(' ');

-			else

-				buff.append(c);

-		}

-		return buff.toString();

-	}

-

-	public void setDescription(java.lang.String newDescription) {

-		// we will trim the new lines so that we can

-		// use layout-based word wrapping instead

-		// of hard-coded one

-		description = trimNewLines(newDescription);

-		//description = newDescription;

-		if (descriptionLabel != null)

-			descriptionLabel.setText(newDescription);

-	}

-	public void setDescriptionPainted(boolean newDescriptionPainted) {

-		descriptionPainted = newDescriptionPainted;

-	}

-	public void setDirty(boolean newDirty) {

-		dirty = newDirty;

-	}

-	public void setFocus() {

-		if (toggle != null)

-			toggle.setFocus();

-	}

-	public void setHeaderColorKey(java.lang.String newHeaderColorKey) {

-		headerColorKey = newHeaderColorKey;

-	}

-	public void setHeaderPainted(boolean newHeaderPainted) {

-		headerPainted = newHeaderPainted;

-	}

-	public void setHeaderText(java.lang.String newHeaderText) {

-		headerText = newHeaderText;

-		if (header != null)

-			header.setText(headerText);

-	}

-	public void setHeightHint(int newHeightHint) {

-		heightHint = newHeightHint;

-	}

-	void setManager(SectionChangeManager manager) {

-		this.sectionManager = manager;

-	}

-	public void setReadOnly(boolean newReadOnly) {

-		readOnly = newReadOnly;

-	}

-

-	public void setWidthHint(int newWidthHint) {

-		widthHint = newWidthHint;

-	}

-

-	public void update() {

-	}

-

-	public void propertyChange(PropertyChangeEvent arg0) {

-		if (control != null && header != null && !control.isDisposed() && !header.isDisposed()) {

-			header.setFont(JFaceResources.getBannerFont());

-			control.layout(true);

-		}

-	}

-

-	/**

-	 * Gets the collapsable.

-	 * @return Returns a boolean

-	 */

-	public boolean getCollapsable() {

-		return collapsable;

-	}

-

-	/**

-	 * Sets the collapsable.

-	 * @param collapsable The collapsable to set

-	 */

-	public void setCollapsable(boolean collapsable) {

-		this.collapsable = collapsable;

-	}

-

-	public void setCollapsed(boolean collapsed) {

-		this.collapsed = collapsed;

-	}

-	

-	public boolean isCollapsed() {

-		return collapsed;

-	}

-

-	public boolean canPaste(Clipboard clipboard) {

-		return false;

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormWidgetFactory.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormWidgetFactory.java
deleted file mode 100644
index 74b9cd7..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormWidgetFactory.java
+++ /dev/null
@@ -1,435 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.graphics.*;

-import java.util.*;

-import org.eclipse.swt.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.jface.resource.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.custom.*;

-import org.eclipse.ui.actions.*;

-import org.eclipse.update.ui.forms.internal.engine.FormEngine;

-

-public class FormWidgetFactory {

-	public static final String KEY_DRAW_BORDER = "FormWidgetFactory.drawBorder";

-	public static final String TREE_BORDER = "treeBorder";

-	public static final String DEFAULT_HEADER_COLOR = "__default__header__";

-	public static final String COLOR_BORDER = "__border";

-	public static final String COLOR_COMPOSITE_SEPARATOR = "__compSep";

-

-	private Hashtable colorRegistry = new Hashtable();

-	private Color backgroundColor;

-	private KeyListener deleteListener;

-	private Color foregroundColor;

-	private Display display;

-	public static final int BORDER_STYLE = SWT.NONE; //SWT.BORDER;

-	private BorderPainter borderPainter;

-	private Color borderColor;

-	private HyperlinkHandler hyperlinkHandler;

-	/* default */ VisibilityHandler visibilityHandler;

-	/* default */ KeyboardHandler keyboardHandler;

-

-	class BorderPainter implements PaintListener {

-		public void paintControl(PaintEvent event) {

-			Composite composite = (Composite) event.widget;

-			Control[] children = composite.getChildren();

-			for (int i = 0; i < children.length; i++) {

-				Control c = children[i];

-				boolean inactiveBorder=false;

-				if (c.getEnabled() == false && !(c instanceof CCombo))

-					continue;

-				if (c instanceof SelectableFormLabel)

-					continue;

-				Object flag = c.getData(KEY_DRAW_BORDER);

-				if (flag!=null) {

-					if (flag.equals(Boolean.FALSE)) continue;

-					if (flag.equals(TREE_BORDER)) inactiveBorder=true;

-				}

-				 

-				if (!inactiveBorder && (c instanceof Text || c instanceof Canvas || c instanceof CCombo)) {

-					Rectangle b = c.getBounds();

-					GC gc = event.gc;

-					gc.setForeground(c.getBackground());

-					gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1, b.height + 1);

-					gc.setForeground(foregroundColor);

-					if (c instanceof CCombo)

-						gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1, b.height + 1);

-					else 

-						gc.drawRectangle(b.x - 1, b.y - 2, b.width + 1, b.height + 3);

-				} else if (inactiveBorder ||c instanceof Table || c instanceof Tree || c instanceof TableTree) {

-					Rectangle b = c.getBounds();

-					GC gc = event.gc;

-					gc.setForeground(borderColor);

-					//gc.drawRectangle(b.x - 2, b.y - 2, b.width + 3, b.height + 3);

-					gc.drawRectangle(b.x - 1, b.y - 1, b.width + 2, b.height + 2);

-				}

-			}

-		}

-	}

-

-	class VisibilityHandler extends FocusAdapter {

-		public void focusGained(FocusEvent e) {

-			Widget w = e.widget;

-			if (w instanceof Control) {

-				ensureVisible((Control) w);

-			}

-		}

-	}

-

-	class KeyboardHandler extends KeyAdapter {

-		public void keyPressed(KeyEvent e) {

-			Widget w = e.widget;

-			if (w instanceof Control) {

-				processKey(e.keyCode, (Control) w);

-			}

-		}

-	}

-

-	public FormWidgetFactory() {

-		this(Display.getCurrent());

-	}

-

-	public FormWidgetFactory(Display display) {

-		this.display = display;

-		initialize();

-	}

-

-	public static ScrolledComposite getScrolledComposite(Control c) {

-		Composite parent = c.getParent();

-

-		while (parent != null) {

-			if (parent instanceof ScrolledComposite) {

-				return (ScrolledComposite) parent;

-			}

-			parent = parent.getParent();

-		}

-		return null;

-	}

-

-	public static void ensureVisible(Control c) {

-		ScrolledComposite scomp = getScrolledComposite(c);

-		if (scomp != null) {

-			AbstractSectionForm.ensureVisible(scomp, c);

-		}

-	}

-

-	public static void processKey(int keyCode, Control c) {

-		ScrolledComposite scomp = getScrolledComposite(c);

-		if (scomp != null) {

-			switch (keyCode) {

-				case SWT.ARROW_DOWN :

-					AbstractSectionForm.scrollVertical(scomp, false);

-					break;

-				case SWT.ARROW_UP :

-					AbstractSectionForm.scrollVertical(scomp, true);

-					break;

-				case SWT.ARROW_LEFT :

-					AbstractSectionForm.scrollHorizontal(scomp, true);

-					break;

-				case SWT.ARROW_RIGHT :

-					AbstractSectionForm.scrollHorizontal(scomp, false);

-					break;

-				case SWT.PAGE_UP :

-					AbstractSectionForm.scrollPage(scomp, true);

-					break;

-				case SWT.PAGE_DOWN :

-					AbstractSectionForm.scrollPage(scomp, false);

-					break;

-			}

-		}

-	}

-

-	public Button createButton(Composite parent, String text, int style) {

-		int flatStyle = BORDER_STYLE == SWT.BORDER ? SWT.NULL : SWT.FLAT;

-		//int flatStyle = SWT.NULL;

-		Button button = new Button(parent, style | flatStyle);

-		button.setBackground(backgroundColor);

-		button.setForeground(foregroundColor);

-		if (text != null)

-			button.setText(text);

-		button.addFocusListener(visibilityHandler);

-		return button;

-	}

-	public Composite createComposite(Composite parent) {

-		return createComposite(parent, SWT.NULL);

-	}

-	public Composite createComposite(Composite parent, int style) {

-		Composite composite = new Composite(parent, style);

-		composite.setBackground(backgroundColor);

-		composite.addMouseListener(new MouseAdapter() {

-			public void mousePressed(MouseEvent e) {

-				((Control) e.widget).setFocus();

-			}

-		});

-		composite.setMenu(parent.getMenu());

-		return composite;

-	}

-	public Composite createCompositeSeparator(Composite parent) {

-		final Composite composite = new Composite(parent, SWT.NONE);

-		composite.addListener(SWT.Paint, new Listener() {

-			public void handleEvent(Event e) {

-				if (composite.isDisposed()) return;

-				Rectangle bounds = composite.getBounds();

-				GC gc = e.gc;

-				gc.setForeground(getColor(COLOR_COMPOSITE_SEPARATOR));

-				gc.setBackground(getBackgroundColor());

-				gc.fillGradientRectangle(0, 0, bounds.width, bounds.height, false);	

-			}

-		});

-		return composite;

-	}

-

-	public Label createHeadingLabel(Composite parent, String text) {

-		return createHeadingLabel(parent, text, null, SWT.NONE);

-	}

-

-	public Label createHeadingLabel(Composite parent, String text, int style) {

-		return createHeadingLabel(parent, text, null, style);

-	}

-

-	public Label createHeadingLabel(Composite parent, String text, Color bg) {

-		return createHeadingLabel(parent, text, bg, SWT.NONE);

-	}

-

-	public Label createHeadingLabel(

-		Composite parent,

-		String text,

-		Color bg,

-		int style) {

-		Label label = new Label(parent, style);

-		if (text != null)

-			label.setText(text);

-		label.setBackground(backgroundColor);

-		label.setForeground(foregroundColor);

-		label.setFont(JFaceResources.getFontRegistry().get(JFaceResources.BANNER_FONT));

-		return label;

-	}

-

-	public Label createHyperlinkLabel(

-		Composite parent,

-		String text,

-		IHyperlinkListener listener) {

-		return createHyperlinkLabel(parent, text, listener, SWT.NULL);

-	}

-	public Label createHyperlinkLabel(

-		Composite parent,

-		String text,

-		IHyperlinkListener listener,

-		int style) {

-		Label label = createLabel(parent, text, style);

-		turnIntoHyperlink(label, listener);

-		return label;

-	}

-	public Label createLabel(Composite parent, String text) {

-		return createLabel(parent, text, SWT.NONE);

-	}

-	public Label createLabel(Composite parent, String text, int style) {

-		Label label = new Label(parent, style);

-		if (text != null)

-			label.setText(text);

-		label.setBackground(backgroundColor);

-		label.setForeground(foregroundColor);

-		return label;

-	}

-

-	public SelectableFormLabel createSelectableLabel(

-		Composite parent,

-		String text) {

-		return createSelectableLabel(parent, text, SWT.NONE);

-	}

-

-	public SelectableFormLabel createSelectableLabel(

-		Composite parent,

-		String text,

-		int style) {

-		SelectableFormLabel label = new SelectableFormLabel(parent, style);

-		if (text != null)

-			label.setText(text);

-		label.setBackground(backgroundColor);

-		label.setForeground(foregroundColor);

-		label.addFocusListener(visibilityHandler);

-		label.addKeyListener(keyboardHandler);

-		return label;

-	}

-

-	public FormEngine createFormEngine(Composite parent) {

-		return createFormEngine(parent, false);

-	}

-	

-	public FormEngine createFormEngine(Composite parent, boolean trackFocus) {

-		FormEngine engine = new FormEngine(parent, SWT.WRAP);

-		engine.setBackground(backgroundColor);

-		engine.setForeground(foregroundColor);

-		engine.marginWidth = 1;

-		engine.marginHeight = 0;

-		engine.setHyperlinkSettings(getHyperlinkHandler());

-		if (trackFocus) engine.addFocusListener(visibilityHandler);

-		engine.addKeyListener(keyboardHandler);

-		engine.setMenu(parent.getMenu());

-		return engine;

-	}

-	

-	public Label createSeparator(Composite parent, int style) {

-		Label label = new Label(parent, SWT.SEPARATOR | style);

-		label.setBackground(backgroundColor);

-		label.setForeground(borderColor);

-		return label;

-	}

-	public Table createTable(Composite parent, int style) {

-		Table table = new Table(parent, BORDER_STYLE | style);

-		table.setBackground(backgroundColor);

-		table.setForeground(foregroundColor);

-		hookDeleteListener(table);

-		return table;

-	}

-	public Text createText(Composite parent, String value) {

-		return createText(parent, value, BORDER_STYLE | SWT.SINGLE);

-	}

-	public Text createText(Composite parent, String value, int style) {

-		Text text = new Text(parent, style);

-		if (value != null)

-			text.setText(value);

-		text.setBackground(backgroundColor);

-		text.setForeground(foregroundColor);

-		text.addFocusListener(visibilityHandler);

-		return text;

-	}

-	public Tree createTree(Composite parent, int style) {

-		Tree tree = new Tree(parent, BORDER_STYLE | style);

-		tree.setBackground(backgroundColor);

-		tree.setForeground(foregroundColor);

-		hookDeleteListener(tree);

-		return tree;

-	}

-	private void deleteKeyPressed(Widget widget) {

-		if (!(widget instanceof Control))

-			return;

-		Control control = (Control) widget;

-		for (Control parent = control.getParent();

-			parent != null;

-			parent = parent.getParent()) {

-			if (parent.getData() instanceof FormSection) {

-				FormSection section = (FormSection) parent.getData();

-				section.doGlobalAction(ActionFactory.DELETE.getId());

-				break;

-			}

-		}

-	}

-	public void dispose() {

-		Enumeration colors = colorRegistry.elements();

-		while (colors.hasMoreElements()) {

-			Color c = (Color) colors.nextElement();

-			c.dispose();

-		}

-		hyperlinkHandler.dispose();

-		colorRegistry = null;

-	}

-	public Color getBackgroundColor() {

-		return backgroundColor;

-	}

-	public Color getBorderColor() {

-		return borderColor;

-	}

-	public Cursor getBusyCursor() {

-		return hyperlinkHandler.getBusyCursor();

-	}

-	public Color getColor(String key) {

-		return (Color) colorRegistry.get(key);

-	}

-	public Color getForegroundColor() {

-		return foregroundColor;

-	}

-	public HyperlinkHandler getHyperlinkHandler() {

-		return hyperlinkHandler;

-	}

-	public Cursor getHyperlinkCursor() {

-		return hyperlinkHandler.getHyperlinkCursor();

-	}

-	public Color getHyperlinkColor() {

-		return hyperlinkHandler.getForeground();

-	}

-	public Color getHyperlinkHoverColor() {

-		return hyperlinkHandler.getActiveForeground();

-	}

-	public int getHyperlinkUnderlineMode() {

-		return hyperlinkHandler.getHyperlinkUnderlineMode();

-	}

-	public void hookDeleteListener(Control control) {

-		if (deleteListener == null) {

-			deleteListener = new KeyAdapter() {

-				public void keyPressed(KeyEvent event) {

-					if (event.character == SWT.DEL && event.stateMask == 0) {

-						deleteKeyPressed(event.widget);

-					}

-				}

-			};

-		}

-		control.addKeyListener(deleteListener);

-	}

-	private void initialize() {

-		backgroundColor = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);

-		registerColor(COLOR_BORDER, 195, 191, 179);

-		registerColor(COLOR_COMPOSITE_SEPARATOR, 152, 170, 203);

-		registerColor(DEFAULT_HEADER_COLOR, 0x48, 0x70, 0x98);

-		if (isWhiteBackground())

-			borderColor = getColor(COLOR_BORDER);

-		else

-			borderColor = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);

-		foregroundColor = display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);

-		hyperlinkHandler = new HyperlinkHandler();

-		hyperlinkHandler.setBackground(backgroundColor);

-		updateHyperlinkColors();

-		visibilityHandler = new VisibilityHandler();

-		keyboardHandler = new KeyboardHandler();

-	}

-	

-	public boolean isWhiteBackground() {

-		return backgroundColor.getRed()==255 && backgroundColor.getGreen()==255 &&

-			backgroundColor.getBlue()==255;

-	}

-

-	public void updateHyperlinkColors() {

-		Color hyperlinkColor = JFaceColors.getHyperlinkText(display);

-		Color activeHyperlinkColor = JFaceColors.getActiveHyperlinkText(display);

-		hyperlinkHandler.setForeground(hyperlinkColor);

-		hyperlinkHandler.setActiveForeground(activeHyperlinkColor);

-	}

-

-	public void paintBordersFor(Composite parent) {

-		if (BORDER_STYLE == SWT.BORDER)

-			return;

-		if (borderPainter == null)

-			borderPainter = new BorderPainter();

-		parent.addPaintListener(borderPainter);

-	}

-	public Color registerColor(String key, int r, int g, int b) {

-		Color c = new Color(display, r, g, b);

-		colorRegistry.put(key, c);

-		return c;

-	}

-	public void setBackgroundColor(Color color) {

-		backgroundColor = color;

-	}

-	public void setHyperlinkColor(Color color) {

-		hyperlinkHandler.setForeground(color);

-	}

-	public void setHyperlinkHoverColor(org.eclipse.swt.graphics.Color hoverColor) {

-		hyperlinkHandler.setActiveForeground(hoverColor);

-	}

-	public void setHyperlinkUnderlineMode(int newHyperlinkUnderlineMode) {

-		hyperlinkHandler.setHyperlinkUnderlineMode(newHyperlinkUnderlineMode);

-	}

-	public void turnIntoHyperlink(Control control, IHyperlinkListener listener) {

-		hyperlinkHandler.registerHyperlink(control, listener);

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormsPlugin.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormsPlugin.java
deleted file mode 100644
index 5448093..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormsPlugin.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.*;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-public class FormsPlugin extends AbstractUIPlugin {
-	private static FormsPlugin instance;
-	private ResourceBundle resourceBundle;
-
-	/**
-	 * Constructor for FormsPlugin.
-	 * @param descriptor
-	 */
-	public FormsPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-		instance = this;
-		try {
-			resourceBundle =
-				ResourceBundle.getBundle(
-					"org.eclipse.update.ui.forms.internal.FormsPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		FormsPlugin inst = FormsPlugin.getDefault();
-		if (inst==null) return key;
-		ResourceBundle bundle = FormsPlugin.getDefault().getResourceBundle();
-		try {
-			return bundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	public static String getFormattedMessage(String key, String[] args) {
-		String text = getResourceString(key);
-		return java.text.MessageFormat.format(text, args);
-	}
-
-	public static String getFormattedMessage(String key, String arg) {
-		String text = getResourceString(key);
-		return java.text.MessageFormat.format(text, new Object[] { arg });
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-
-	public static FormsPlugin getDefault() {
-		return instance;
-	}
-
-	public static IWorkbenchPage getActivePage() {
-		return getDefault().internalGetActivePage();
-	}
-
-	private IWorkbenchPage internalGetActivePage() {
-		return getWorkbench().getActiveWorkbenchWindow().getActivePage();
-	}
-
-	public static Shell getActiveWorkbenchShell() {
-		return getActiveWorkbenchWindow().getShell();
-	}
-
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return getDefault().getWorkbench().getActiveWorkbenchWindow();
-	}
-
-	public static String getPluginId() {
-		return getDefault().getDescriptor().getUniqueIdentifier();
-	}
-
-	public static void logException(Throwable e) {
-		logException(e, true);
-	}
-
-	public static void logException(Throwable e, boolean showErrorDialog) {
-		if (e instanceof InvocationTargetException) {
-			e = ((InvocationTargetException) e).getTargetException();
-		}
-
-		IStatus status = null;
-		if (e instanceof CoreException) {
-			status = ((CoreException) e).getStatus();
-		} else {
-			String message = e.getMessage();
-			if (message == null)
-				message = e.toString();
-			status =
-				new Status(
-					IStatus.ERROR,
-					getPluginId(),
-					IStatus.OK,
-					message,
-					e);
-		}
-		log(status, showErrorDialog);
-	}
-
-	public static void log(IStatus status, boolean showErrorDialog) {
-		if (showErrorDialog)
-			ErrorDialog.openError(
-				getActiveWorkbenchShell(),
-				null,
-				null,
-				status);
-		Platform.getPlugin("org.eclipse.core.runtime").getLog().log(status);
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormsPluginResources.properties b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormsPluginResources.properties
deleted file mode 100644
index 6d45e06..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/FormsPluginResources.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 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
-###############################################################################
-
-FormEgine.linkPopup.open = &Open
-FormEgine.linkPopup.copyShortcut = &Copy as Shortcut
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HTMLTableLayout.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HTMLTableLayout.java
deleted file mode 100644
index 0dd2126..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HTMLTableLayout.java
+++ /dev/null
@@ -1,678 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-import java.util.Vector;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-/**

- * This implementation of the layout algorithm attempts to position controls in

- * the composite using a two-pass autolayout HTML table altorithm recommeded by

- * HTML 4.01 W3C specification. The main differences with GridLayout is that it

- * has two passes and that width and height are not calculated in the same

- * pass.

- * <p>

- * The advantage of the algorithm over GridLayout is that it is capable of

- * flowing text controls capable of line wrap. These controls do not have

- * natural 'preferred size'. Instead, they are capable of providing the

- * required height if the width is set. Consequently, this algorithm first

- * calculates the widths that will be assigned to columns, and then passes

- * those widths to the controls to calculate the height. When a composite with

- * this layout is a child of the scrolling composite, they should interact in

- * such a way that reduction in the scrolling composite width results in the

- * reflow and increase of the overall height.

- * <p>

- * If none of the columns contain expandable and wrappable controls, the

- * end-result will be similar to the one provided by GridLayout. The difference

- * will show up for layouts that contain controls whose minimum and maximum

- * widths are not the same.

- */

-

-public class HTMLTableLayout extends Layout implements ILayoutExtension {

-	public int numColumns = 1;

-	public int leftMargin = 5;

-	public int rightMargin = 5;

-	public int topMargin = 5;

-	public int bottomMargin = 5;

-	public int horizontalSpacing = 5;

-	public int verticalSpacing = 5;

-	public boolean makeColumnsEqualWidth = false;

-

-	private boolean initialLayout = true;

-	private Vector grid = null;

-	private int[] minColumnWidths, maxColumnWidths;

-	private int widestColumnWidth;

-	private int[] growingColumns;

-

-	public int getMinimumWidth(Composite parent, boolean changed) {

-		changed = true;

-		initializeIfNeeded(parent, changed);

-		if (initialLayout) {

-			changed = true;

-			initialLayout = false;

-		}

-		if (grid == null || changed) {

-			changed = true;

-			grid = new Vector();

-			createGrid(parent);

-		}

-		if (minColumnWidths == null)

-			minColumnWidths = new int[numColumns];

-		for (int i = 0; i < numColumns; i++) {

-			minColumnWidths[i] = 0;

-		}

-		return internalGetMinimumWidth(parent, changed);

-	}

-

-	public int getMaximumWidth(Composite parent, boolean changed) {

-		changed = true;

-		initializeIfNeeded(parent, changed);

-		if (initialLayout) {

-			changed = true;

-			initialLayout = false;

-		}

-		if (grid == null || changed) {

-			changed = true;

-			grid = new Vector();

-			createGrid(parent);

-		}

-		if (maxColumnWidths == null)

-			maxColumnWidths = new int[numColumns];

-		for (int i = 0; i < numColumns; i++) {

-			maxColumnWidths[i] = 0;

-		}

-		return internalGetMaximumWidth(parent, changed);

-	}

-

-	/**

-	 * @see Layout#layout(Composite, boolean)

-	 */

-	protected void layout(Composite parent, boolean changed) {

-		Rectangle clientArea = parent.getClientArea();

-		Control[] children = parent.getChildren();

-		if (children.length == 0)

-			return;

-		int parentWidth = clientArea.width;

-		changed = true;

-		initializeIfNeeded(parent, changed);

-		if (initialLayout) {

-			changed = true;

-			initialLayout = false;

-		}

-		if (grid == null || changed) {

-			changed = true;

-			grid = new Vector();

-			createGrid(parent);

-		}

-		resetColumnWidths();

-		int minWidth = internalGetMinimumWidth(parent, changed);

-		int maxWidth = internalGetMaximumWidth(parent, changed);

-

-		int tableWidth = parentWidth;

-

-		int[] columnWidths;

-

-		if (parentWidth < minWidth) {

-			tableWidth = minWidth;

-			if (makeColumnsEqualWidth) {

-				columnWidths = new int[numColumns];

-				for (int i = 0; i < numColumns; i++) {

-					columnWidths[i] = widestColumnWidth;

-				}

-			} else

-				columnWidths = minColumnWidths;

-		} else if (parentWidth > maxWidth) {

-			if (growingColumns.length == 0) {

-				tableWidth = maxWidth;

-				columnWidths = maxColumnWidths;

-			} else {

-				columnWidths = new int[numColumns];

-				int colSpace = tableWidth - leftMargin - rightMargin;

-				colSpace -= (numColumns - 1) * horizontalSpacing;

-				int extra = parentWidth - maxWidth;

-				int colExtra = extra / growingColumns.length;

-				for (int i = 0; i < numColumns; i++) {

-					columnWidths[i] = maxColumnWidths[i];

-

-					if (isGrowingColumn(i)) {

-						columnWidths[i] += colExtra;

-					}

-				}

-			}

-		} else {

-			columnWidths = new int[numColumns];

-			if (makeColumnsEqualWidth) {

-				int colSpace = tableWidth - leftMargin - rightMargin;

-				colSpace -= (numColumns - 1) * horizontalSpacing;

-				int col = colSpace / numColumns;

-				for (int i = 0; i < numColumns; i++) {

-					columnWidths[i] = col;

-				}

-			} else {

-				int[] extraSpace =

-					calculateExtraSpace(tableWidth, maxWidth, minWidth);

-				for (int i = 0; i < numColumns; i++) {

-					int minCWidth = minColumnWidths[i];

-					columnWidths[i] = minCWidth + extraSpace[i];

-				}

-			}

-		}

-		int x = 0;

-		int y = topMargin;

-		// assign widths

-		for (int i = 0; i < grid.size(); i++) {

-			TableData[] row = (TableData[]) grid.elementAt(i);

-			// assign widths, calculate heights

-			int rowHeight = 0;

-			x = leftMargin;

-			for (int j = 0; j < numColumns; j++) {

-				TableData td = row[j];

-				if (td.isItemData == false) {

-					continue;

-				}

-				Control child = children[td.childIndex];

-				int span = td.colspan;

-				int cwidth = 0;

-				for (int k = j; k < j + span; k++) {

-					cwidth += columnWidths[k];

-					if (k < j + span - 1)

-						cwidth += horizontalSpacing;

-				}

-				Point size = computeSize(child, cwidth, changed);

-				td.compWidth = cwidth;

-				if (td.heightHint != SWT.DEFAULT) {

-					size = new Point(size.x, td.heightHint);

-				}

-				td.compSize = size;

-				rowHeight = Math.max(rowHeight, size.y);

-			}

-			for (int j = 0; j < numColumns; j++) {

-				TableData td = row[j];

-				if (td.isItemData == false) {

-					continue;

-				}

-				Control child = children[td.childIndex];

-				placeControl(child, td, x, y, rowHeight);

-				x += td.compWidth;

-				if (j < numColumns - 1)

-					x += horizontalSpacing;

-			}

-			y += rowHeight + verticalSpacing;

-		}

-	}

-

-	boolean isGrowingColumn(int col) {

-		if (growingColumns == null)

-			return false;

-		for (int i = 0; i < growingColumns.length; i++) {

-			if (col == growingColumns[i])

-				return true;

-		}

-		return false;

-	}

-

-	int[] calculateExtraSpace(int tableWidth, int maxWidth, int minWidth) {

-		int fixedPart =

-			leftMargin + rightMargin + (numColumns - 1) * horizontalSpacing;

-		int D = maxWidth - minWidth;

-

-		int W = tableWidth - fixedPart - minWidth;

-

-		int extraSpace[] = new int[numColumns];

-

-		int rem = 0;

-		for (int i = 0; i < numColumns; i++) {

-			int cmin = minColumnWidths[i];

-			int cmax = maxColumnWidths[i];

-			int d = cmax - cmin;

-			int extra = D != 0 ? (d * W) / D : 0;

-			if (i < numColumns - 1) {

-				extraSpace[i] = extra;

-				rem += extra;

-			} else {

-				extraSpace[i] = W - rem;

-			}

-		}

-		return extraSpace;

-	}

-

-	Point computeSize(Control child, int width, boolean changed) {

-		int widthArg = width;

-		if (!isWrap(child))

-			widthArg = SWT.DEFAULT;

-		Point size = child.computeSize(widthArg, SWT.DEFAULT, changed);

-		return size;

-	}

-

-	void placeControl(

-		Control control,

-		TableData td,

-		int x,

-		int y,

-		int rowHeight) {

-		int xloc = x + td.indent;

-		int yloc = y;

-		int width = td.compSize.x;

-		int height = td.compSize.y;

-		int colWidth = td.compWidth;

-

-		// align horizontally

-		if (td.align == TableData.CENTER) {

-			xloc = x + colWidth / 2 - width / 2;

-		} else if (td.align == TableData.RIGHT) {

-			xloc = x + colWidth - width;

-		} else if (td.align == TableData.FILL) {

-			width = colWidth;

-		}

-		// align vertically

-		if (td.valign == TableData.MIDDLE) {

-			yloc = y + rowHeight / 2 - height / 2;

-		} else if (td.valign == TableData.BOTTOM) {

-			yloc = y + rowHeight - height;

-		} else if (td.valign == TableData.FILL) {

-			height = rowHeight;

-		}

-		control.setBounds(xloc, yloc, width, height);

-	}

-

-	void createGrid(Composite composite) {

-		int row, column, rowFill, columnFill;

-		Control[] children;

-		TableData spacerSpec;

-		Vector growingCols = new Vector();

-

-		// 

-		children = composite.getChildren();

-		if (children.length == 0)

-			return;

-

-		// 

-		grid.addElement(createEmptyRow());

-		row = 0;

-		column = 0;

-

-		// Loop through the children and place their associated layout specs in

-		// the

-		// grid. Placement occurs left to right, top to bottom (i.e., by row).

-		for (int i = 0; i < children.length; i++) {

-			// Find the first available spot in the grid.

-			Control child = children[i];

-			TableData spec = (TableData) child.getLayoutData();

-			while (((TableData[]) grid.elementAt(row))[column] != null) {

-				column = column + 1;

-				if (column >= numColumns) {

-					row = row + 1;

-					column = 0;

-					if (row >= grid.size()) {

-						grid.addElement(createEmptyRow());

-					}

-				}

-			}

-			// See if the place will support the widget's horizontal span. If

-			// not, go to the

-			// next row.

-			if (column + spec.colspan - 1 >= numColumns) {

-				grid.addElement(createEmptyRow());

-				row = row + 1;

-				column = 0;

-			}

-

-			// The vertical span for the item will be at least 1. If it is > 1,

-			// add other rows to the grid.

-			for (int j = 2; j <= spec.rowspan; j++) {

-				if (row + j > grid.size()) {

-					grid.addElement(createEmptyRow());

-				}

-			}

-

-			// Store the layout spec. Also cache the childIndex. NOTE: That we

-			// assume the children of a

-			// composite are maintained in the order in which they are created

-			// and added to the composite.

-			 ((TableData[]) grid.elementAt(row))[column] = spec;

-			spec.childIndex = i;

-

-			if (spec.grabHorizontal) {

-				updateGrowingColumns(growingCols, spec, column);

-			}

-

-			// Put spacers in the grid to account for the item's vertical and

-			// horizontal

-			// span.

-			rowFill = spec.rowspan - 1;

-			columnFill = spec.colspan - 1;

-			for (int r = 1; r <= rowFill; r++) {

-				for (int c = 0; c < spec.colspan; c++) {

-					spacerSpec = new TableData();

-					spacerSpec.isItemData = false;

-					((TableData[]) grid.elementAt(row + r))[column + c] =

-						spacerSpec;

-				}

-			}

-			for (int c = 1; c <= columnFill; c++) {

-				for (int r = 0; r < spec.rowspan; r++) {

-					spacerSpec = new TableData();

-					spacerSpec.isItemData = false;

-					((TableData[]) grid.elementAt(row + r))[column + c] =

-						spacerSpec;

-				}

-			}

-			column = column + spec.colspan - 1;

-		}

-

-		// Fill out empty grid cells with spacers.

-		for (int k = column + 1; k < numColumns; k++) {

-			spacerSpec = new TableData();

-			spacerSpec.isItemData = false;

-			((TableData[]) grid.elementAt(row))[k] = spacerSpec;

-		}

-		for (int k = row + 1; k < grid.size(); k++) {

-			spacerSpec = new TableData();

-			spacerSpec.isItemData = false;

-			((TableData[]) grid.elementAt(k))[column] = spacerSpec;

-		}

-		growingColumns = new int[growingCols.size()];

-		for (int i = 0; i < growingCols.size(); i++) {

-			growingColumns[i] = ((Integer) growingCols.get(i)).intValue();

-		}

-	}

-

-	private void updateGrowingColumns(

-		Vector growingColumns,

-		TableData spec,

-		int column) {

-		int affectedColumn = column + spec.colspan - 1;

-		for (int i = 0; i < growingColumns.size(); i++) {

-			Integer col = (Integer) growingColumns.get(i);

-			if (col.intValue() == affectedColumn)

-				return;

-		}

-		growingColumns.add(new Integer(affectedColumn));

-	}

-

-	private TableData[] createEmptyRow() {

-		TableData[] row = new TableData[numColumns];

-		for (int i = 0; i < numColumns; i++)

-			row[i] = null;

-		return row;

-	}

-

-	/**

-	 * @see Layout#computeSize(Composite, int, int, boolean)

-	 */

-	protected Point computeSize(

-		Composite parent,

-		int wHint,

-		int hHint,

-		boolean changed) {

-		Control[] children = parent.getChildren();

-		if (children.length == 0) {

-			return new Point(0, 0);

-		}

-		int parentWidth = wHint;

-		changed = true;

-		initializeIfNeeded(parent, changed);

-		if (initialLayout) {

-			changed = true;

-			initialLayout = false;

-		}

-		if (grid == null || changed) {

-			changed = true;

-			grid = new Vector();

-			createGrid(parent);

-		}

-		resetColumnWidths();

-		int minWidth = internalGetMinimumWidth(parent, changed);

-		int maxWidth = internalGetMaximumWidth(parent, changed);

-

-		int tableWidth = parentWidth;

-

-		int[] columnWidths;

-

-		if (parentWidth < minWidth) {

-			tableWidth = minWidth;

-			if (makeColumnsEqualWidth) {

-				columnWidths = new int[numColumns];

-				for (int i = 0; i < numColumns; i++) {

-					columnWidths[i] = widestColumnWidth;

-				}

-			} else

-				columnWidths = minColumnWidths;

-		} else if (parentWidth > maxWidth) {

-			if (makeColumnsEqualWidth) {

-				columnWidths = new int[numColumns];

-				int colSpace = parentWidth - leftMargin - rightMargin;

-				colSpace -= (numColumns - 1) * horizontalSpacing;

-				int col = colSpace / numColumns;

-				for (int i = 0; i < numColumns; i++) {

-					columnWidths[i] = col;

-				}

-			} else {

-				tableWidth = maxWidth;

-				columnWidths = maxColumnWidths;

-			}

-		} else {

-			columnWidths = new int[numColumns];

-			if (makeColumnsEqualWidth) {

-				int colSpace = tableWidth - leftMargin - rightMargin;

-				colSpace -= (numColumns - 1) * horizontalSpacing;

-				int col = colSpace / numColumns;

-				for (int i = 0; i < numColumns; i++) {

-					columnWidths[i] = col;

-				}

-			} else {

-				int[] extraSpace =

-					calculateExtraSpace(tableWidth, maxWidth, minWidth);

-				for (int i = 0; i < numColumns; i++) {

-					int minCWidth = minColumnWidths[i];

-					columnWidths[i] = minCWidth + extraSpace[i];

-				}

-			}

-		}

-		int totalHeight = 0;

-		int y = topMargin;

-		// compute widths

-		for (int i = 0; i < grid.size(); i++) {

-			TableData[] row = (TableData[]) grid.elementAt(i);

-			// assign widths, calculate heights

-			int rowHeight = 0;

-			for (int j = 0; j < numColumns; j++) {

-				TableData td = row[j];

-				if (td.isItemData == false) {

-					continue;

-				}

-				Control child = children[td.childIndex];

-				int span = td.colspan;

-				int cwidth = 0;

-				for (int k = j; k < j + span; k++) {

-					if (k > j)

-						cwidth += horizontalSpacing;

-					cwidth += columnWidths[k];

-				}

-				int cy = td.heightHint;

-				if (cy == SWT.DEFAULT) {

-					Point size = computeSize(child, cwidth, changed);

-					cy = size.y;

-				}

-				rowHeight = Math.max(rowHeight, cy);

-			}

-			y += rowHeight + verticalSpacing;

-		}

-		totalHeight = y + bottomMargin;

-		return new Point(tableWidth, totalHeight);

-	}

-

-	int internalGetMinimumWidth(Composite parent, boolean changed) {

-		if (changed)

-			calculateMinimumColumnWidths(parent, true);

-		int minimumWidth = 0;

-

-		widestColumnWidth = 0;

-

-		if (makeColumnsEqualWidth) {

-			for (int i = 0; i < numColumns; i++) {

-				widestColumnWidth =

-					Math.max(widestColumnWidth, minColumnWidths[i]);

-			}

-		}

-		for (int i = 0; i < numColumns; i++) {

-			if (i > 0)

-				minimumWidth += horizontalSpacing;

-			if (makeColumnsEqualWidth)

-				minimumWidth += widestColumnWidth;

-			else

-				minimumWidth += minColumnWidths[i];

-		}

-		// add margins

-		minimumWidth += leftMargin + rightMargin;

-		return minimumWidth;

-	}

-

-	int internalGetMaximumWidth(Composite parent, boolean changed) {

-		if (changed)

-			calculateMaximumColumnWidths(parent, true);

-		int maximumWidth = 0;

-		for (int i = 0; i < numColumns; i++) {

-			if (i > 0)

-				maximumWidth += horizontalSpacing;

-			maximumWidth += maxColumnWidths[i];

-		}

-		// add margins

-		maximumWidth += leftMargin + rightMargin;

-		return maximumWidth;

-	}

-

-	void resetColumnWidths() {

-		if (minColumnWidths == null)

-			minColumnWidths = new int[numColumns];

-		if (maxColumnWidths == null)

-			maxColumnWidths = new int[numColumns];

-		for (int i = 0; i < numColumns; i++) {

-			minColumnWidths[i] = 0;

-		}

-		for (int i = 0; i < numColumns; i++) {

-			maxColumnWidths[i] = 0;

-		}

-	}

-

-	void calculateMinimumColumnWidths(Composite parent, boolean changed) {

-		Control[] children = parent.getChildren();

-

-		for (int i = 0; i < grid.size(); i++) {

-			TableData[] row = (TableData[]) grid.elementAt(i);

-			for (int j = 0; j < numColumns; j++) {

-				TableData td = row[j];

-				if (td.isItemData == false)

-					continue;

-				Control child = children[td.childIndex];

-				int minWidth = -1;

-				if (child instanceof Composite) {

-					Composite cc = (Composite) child;

-					Layout l = cc.getLayout();

-					if (l instanceof ILayoutExtension) {

-						minWidth =

-							((ILayoutExtension) l).getMinimumWidth(cc, changed);

-					}

-				}

-				if (minWidth == -1) {

-					if (isWrap(child)) {

-						// Should be the width of the

-						// longest word, we'll pick

-						// some small number instead

-						minWidth = 30;

-					} else {

-						Point size =

-							child.computeSize(

-								SWT.DEFAULT,

-								SWT.DEFAULT,

-								changed);

-						minWidth = size.x;

-					}

-				}

-				minWidth += td.indent;

-				minColumnWidths[j] = Math.max(minColumnWidths[j], minWidth);

-			}

-		}

-	}

-

-	boolean isWrap(Control control) {

-		if (control instanceof Composite

-			&& ((Composite) control).getLayout() instanceof ILayoutExtension)

-			return true;

-		return (control.getStyle() & SWT.WRAP) != 0;

-	}

-

-	void calculateMaximumColumnWidths(Composite parent, boolean changed) {

-		Control[] children = parent.getChildren();

-

-		for (int i = 0; i < numColumns; i++) {

-			maxColumnWidths[i] = 0;

-		}

-		for (int i = 0; i < grid.size(); i++) {

-			TableData[] row = (TableData[]) grid.elementAt(i);

-			for (int j = 0; j < numColumns; j++) {

-				TableData td = row[j];

-				if (td.isItemData == false)

-					continue;

-				Control child = children[td.childIndex];

-				int maxWidth = -1;

-				if (child instanceof Composite) {

-					Composite cc = (Composite) child;

-					Layout l = cc.getLayout();

-					if (l instanceof ILayoutExtension) {

-						maxWidth =

-							((ILayoutExtension) l).getMaximumWidth(cc, changed);

-					}

-				}

-				if (maxWidth == -1) {

-					Point size =

-						child.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);

-					maxWidth = size.x;

-				}

-				maxWidth += td.indent;

-				if (td.colspan == 1)

-					maxColumnWidths[j] = Math.max(maxColumnWidths[j], maxWidth);

-				else {

-					// grow the last column

-					int last = j + td.colspan - 1;

-					int rem = 0;

-					for (int k = j; k < j + td.colspan - 1; k++) {

-						rem += maxColumnWidths[k];

-					}

-					int reduced = maxWidth - rem;

-					maxColumnWidths[last] =

-						Math.max(maxColumnWidths[last], reduced);

-				}

-			}

-		}

-	}

-

-	private void initializeIfNeeded(Composite parent, boolean changed) {

-		if (changed)

-			initialLayout = true;

-		if (initialLayout) {

-			initializeLayoutData(parent);

-			initialLayout = false;

-		}

-	}

-

-	void initializeLayoutData(Composite composite) {

-		Control[] children = composite.getChildren();

-		for (int i = 0; i < children.length; i++) {

-			Control child = children[i];

-			if (child.getLayoutData() == null) {

-				child.setLayoutData(new TableData());

-			}

-		}

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkAdapter.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkAdapter.java
deleted file mode 100644
index 8180a2d..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkAdapter.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-public class HyperlinkAdapter implements IHyperlinkListener {

-

-public HyperlinkAdapter() {

-	super();

-}

-public void linkActivated(org.eclipse.swt.widgets.Control linkLabel) {}

-public void linkEntered(org.eclipse.swt.widgets.Control linkLabel) {}

-public void linkExited(org.eclipse.swt.widgets.Control linkLabel) {}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkHandler.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkHandler.java
deleted file mode 100644
index 031aef6..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkHandler.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import java.util.Enumeration;

-import java.util.Hashtable;

-

-import org.eclipse.swt.events.MouseEvent;

-import org.eclipse.swt.events.MouseListener;

-import org.eclipse.swt.events.MouseTrackListener;

-import org.eclipse.swt.events.PaintEvent;

-import org.eclipse.swt.events.PaintListener;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.events.SelectionListener;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.swt.graphics.GC;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.graphics.Rectangle;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Label;

-

-public class HyperlinkHandler

-	extends HyperlinkSettings

-	implements MouseListener, MouseTrackListener, SelectionListener, PaintListener {

-	private Hashtable hyperlinkListeners;

-	private Control lastActivated;

-	private Control lastEntered;

-

-	public HyperlinkHandler() {

-		hyperlinkListeners = new Hashtable();

-	}

-

-	public Control getLastLink() {

-		return lastActivated;

-	}

-

-	public void mouseDoubleClick(MouseEvent e) {

-	}

-

-	public void mouseDown(MouseEvent e) {

-		if (e.button == 1)

-			return;

-		lastActivated = (Control) e.widget;

-	}

-	public void mouseEnter(MouseEvent e) {

-		Control control = (Control) e.widget;

-		linkEntered(control);

-	}

-	public void mouseExit(MouseEvent e) {

-		Control control = (Control) e.widget;

-		linkExited(control);

-	}

-	public void mouseHover(MouseEvent e) {

-	}

-

-	public void mouseUp(MouseEvent e) {

-		if (e.button != 1)

-			return;

-		Control linkControl = (Control) e.widget;

-		Point size = linkControl.getSize();

-		// Filter out mouse up events outside

-		// the link. This can happen when mouse is

-		// clicked, dragged outside the link, then

-		// released.

-		if (e.x < 0)

-			return;

-		if (e.y < 0)

-			return;

-		if (e.x >= size.x)

-			return;

-		if (e.y >= size.y)

-			return;

-		linkActivated(linkControl);

-	}

-

-	public void widgetDefaultSelected(SelectionEvent e) {

-		Control link = (Control) e.widget;

-		linkActivated(link);

-	}

-

-	public void widgetSelected(SelectionEvent e) {

-		Control link = (Control) e.widget;

-		SelectableFormLabel l = (SelectableFormLabel) link;

-		if (l.getSelection())

-			linkEntered(link);

-		else

-			linkExited(link);

-	}

-

-	private void linkActivated(Control link) {

-		IHyperlinkListener action =

-			(IHyperlinkListener) hyperlinkListeners.get(link);

-		if (action != null) {

-			link.setCursor(getBusyCursor());

-			action.linkActivated(link);

-			if (!link.isDisposed())

-				link.setCursor(

-					isHyperlinkCursorUsed() ? getHyperlinkCursor() : null);

-		}

-	}

-

-	private void linkEntered(Control link) {

-		if (lastEntered != null

-			&& lastEntered instanceof SelectableFormLabel) {

-			SelectableFormLabel fl = (SelectableFormLabel) lastEntered;

-			linkExited(fl);

-		}

-		if (isHyperlinkCursorUsed())

-			link.setCursor(getHyperlinkCursor());

-		if (activeBackground != null)

-			link.setBackground(activeBackground);

-		if (activeForeground != null)

-			link.setForeground(activeForeground);

-		if (hyperlinkUnderlineMode == UNDERLINE_ROLLOVER)

-			underline(link, true);

-

-		IHyperlinkListener action =

-			(IHyperlinkListener) hyperlinkListeners.get(link);

-		if (action != null)

-			action.linkEntered(link);

-		lastEntered = link;

-	}

-

-	private void linkExited(Control link) {

-		if (isHyperlinkCursorUsed())

-			link.setCursor(null);

-		if (hyperlinkUnderlineMode == UNDERLINE_ROLLOVER)

-			underline(link, false);

-		if (background != null)

-			link.setBackground(background);

-		if (foreground != null)

-			link.setForeground(foreground);

-		IHyperlinkListener action =

-			(IHyperlinkListener) hyperlinkListeners.get(link);

-		if (action != null)

-			action.linkExited(link);

-		if (lastEntered == link)

-			lastEntered = null;

-	}

-

-	public void paintControl(PaintEvent e) {

-		Control label = (Control) e.widget;

-		if (hyperlinkUnderlineMode == UNDERLINE_ALWAYS)

-			HyperlinkHandler.underline(label, true);

-	}

-

-	public void registerHyperlink(

-		Control control,

-		IHyperlinkListener listener) {

-		if (background != null)

-			control.setBackground(background);

-		if (foreground != null)

-			control.setForeground(foreground);

-		control.addMouseListener(this);

-		control.addMouseTrackListener(this);

-

-		if (hyperlinkUnderlineMode == UNDERLINE_ALWAYS

-			&& control instanceof Label)

-			control.addPaintListener(this);

-		if (control instanceof SelectableFormLabel) {

-			SelectableFormLabel sl = (SelectableFormLabel) control;

-			sl.addSelectionListener(this);

-			if (hyperlinkUnderlineMode == UNDERLINE_ALWAYS)

-				sl.setUnderlined(true);

-		}

-		hyperlinkListeners.put(control, listener);

-		removeDisposedLinks();

-	}

-

-	private void removeDisposedLinks() {

-		for (Enumeration keys = hyperlinkListeners.keys();

-			keys.hasMoreElements();

-			) {

-			Control control = (Control) keys.nextElement();

-			if (control.isDisposed()) {

-				hyperlinkListeners.remove(control);

-			}

-		}

-	}

-

-	public void reset() {

-		hyperlinkListeners.clear();

-	}

-

-	public static void underline(Control control, boolean inside) {

-		if (control instanceof SelectableFormLabel) {

-			SelectableFormLabel l = (SelectableFormLabel) control;

-			l.setUnderlined(inside);

-			l.redraw();

-			return;

-		}

-		if (!(control instanceof Label))

-			return;

-		Composite parent = control.getParent();

-		Rectangle bounds = control.getBounds();

-		GC gc = new GC(parent);

-		Color color =

-			inside ? control.getForeground() : control.getBackground();

-		gc.setForeground(color);

-		int y = bounds.y + bounds.height;

-		gc.drawLine(bounds.x, y, bounds.x + bounds.width, y);

-		gc.dispose();

-	}

-

-	public void setForeground(Color color) {

-		super.setForeground(color);

-		removeDisposedLinks();

-		for (Enumeration links = hyperlinkListeners.keys();

-			links.hasMoreElements();

-			) {

-			Control control = (Control) links.nextElement();

-			control.setForeground(color);

-		}

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkSettings.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkSettings.java
deleted file mode 100644
index 3a1c6a0..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/HyperlinkSettings.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.*;

-

-public class HyperlinkSettings {

-	public static final int UNDERLINE_NEVER = 1;

-	public static final int UNDERLINE_ROLLOVER = 2;

-	public static final int UNDERLINE_ALWAYS = 3;

-

-	protected boolean hyperlinkCursorUsed = true;

-	protected int hyperlinkUnderlineMode = UNDERLINE_ALWAYS;

-	protected Color background;

-	protected Color foreground;

-	protected Color activeBackground;

-	protected Color activeForeground;

-	protected static Cursors cursors = new Cursors();

-

-	static class Cursors {

-		Cursor hyperlinkCursor;

-		Cursor busyCursor;

-		Cursor textCursor;

-		int counter = 0;

-

-		public void allocate() {

-			if (counter == 0) {

-				hyperlinkCursor =

-					new Cursor(Display.getCurrent(), SWT.CURSOR_HAND);

-				busyCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_WAIT);

-				textCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_IBEAM);

-			}

-			counter++;

-		}

-		public void dispose() {

-			counter--;

-			if (counter == 0) {

-				hyperlinkCursor.dispose();

-				busyCursor.dispose();

-				textCursor.dispose();

-				hyperlinkCursor = null;

-				busyCursor = null;

-				textCursor = null;

-			}

-		}

-	}

-

-	public HyperlinkSettings() {

-		cursors.allocate();

-	}

-

-	public void dispose() {

-		if (cursors != null)

-			cursors.dispose();

-	}

-

-	public Color getActiveBackground() {

-		return activeBackground;

-	}

-	public Color getActiveForeground() {

-		return activeForeground;

-	}

-	public Color getBackground() {

-		return background;

-	}

-	public Cursor getBusyCursor() {

-		return cursors.busyCursor;

-	}

-	public Cursor getTextCursor() {

-		return cursors.textCursor;

-	}

-	public Color getForeground() {

-		return foreground;

-	}

-	public Cursor getHyperlinkCursor() {

-		return cursors.hyperlinkCursor;

-	}

-	public int getHyperlinkUnderlineMode() {

-		return hyperlinkUnderlineMode;

-	}

-

-	public boolean isHyperlinkCursorUsed() {

-		return hyperlinkCursorUsed;

-	}

-

-	public void setActiveBackground(Color newActiveBackground) {

-		activeBackground = newActiveBackground;

-	}

-	public void setActiveForeground(Color newActiveForeground) {

-		activeForeground = newActiveForeground;

-	}

-	public void setBackground(Color newBackground) {

-		background = newBackground;

-	}

-	public void setForeground(Color newForeground) {

-		foreground = newForeground;

-	}

-	public void setHyperlinkCursorUsed(boolean newHyperlinkCursorUsed) {

-		hyperlinkCursorUsed = newHyperlinkCursorUsed;

-	}

-	public void setHyperlinkUnderlineMode(int newHyperlinkUnderlineMode) {

-		hyperlinkUnderlineMode = newHyperlinkUnderlineMode;

-	}

-

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IForm.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IForm.java
deleted file mode 100644
index 1661485..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IForm.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.graphics.*;

-

-public interface IForm {

-public void commitChanges(boolean onSave);

-public Control createControl(Composite parent);

-public void dispose();

-public boolean doGlobalAction(String actionId);

-public void expandTo(Object object);

-public Control getControl();

-public FormWidgetFactory getFactory();

-public Color getHeadingBackground();

-public Color getHeadingForeground();

-public Image getHeadingImage();

-public String getHeadingText();

-public void initialize(Object model);

-public boolean isHeadingVisible();

-public void registerSection(FormSection section);

-public void setFocus();

-public void setHeadingBackground(Color newHeadingBackground);

-public void setHeadingForeground(Color newHeadingForeground);

-public void setHeadingImage(Image headingImage);

-public void setHeadingVisible(boolean newHeadingVisible);

-public void setHeadingText(String heading);

-public void update();

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormPage.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormPage.java
deleted file mode 100644
index 8839598..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormPage.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.widgets.*;

-

-public interface IFormPage {

-

-boolean becomesInvisible(IFormPage newPage);

-void becomesVisible(IFormPage previousPage);

-void createControl(Composite parent);

-Control getControl();

-String getLabel();

-String getTitle();

-boolean isSource();

-boolean isVisible();

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormSelectionListener.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormSelectionListener.java
deleted file mode 100644
index a334d41..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormSelectionListener.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-public interface IFormSelectionListener {

-	public void formSelected(IFormPage page, boolean setFocus);

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormTextListener.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormTextListener.java
deleted file mode 100644
index 237f714..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormTextListener.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-public interface IFormTextListener {

-	public void textValueChanged(FormEntry text);

-	public void textDirty(FormEntry text);

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormWorkbook.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormWorkbook.java
deleted file mode 100644
index 9fe78ab..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IFormWorkbook.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.widgets.*;

-

-public interface IFormWorkbook {

-

-	void addFormSelectionListener(IFormSelectionListener listener);

-	public void addPage(IFormPage page);

-	public void createControl(Composite parent);

-	Control getControl();

-	public IFormPage getCurrentPage();

-	boolean isFirstPageSelected();

-	void removeFormSelectionListener(IFormSelectionListener listener);

-	public void removePage(IFormPage page);

-	public void selectPage(final IFormPage page, boolean setFocus);

-	void setFirstPageSelected(boolean selected);

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IHyperlinkListener.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IHyperlinkListener.java
deleted file mode 100644
index d69af34..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/IHyperlinkListener.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.widgets.*;

-

-public interface IHyperlinkListener {

-

-public void linkActivated(Control linkLabel);

-public void linkEntered(Control linkLabel);

-public void linkExited(Control linkLabel);

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ILayoutExtension.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ILayoutExtension.java
deleted file mode 100644
index c6d947b..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ILayoutExtension.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;
-
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Classes that extend abstract class Layout and implement
- * this interface can take part in layout computation of
- * the HTMLTableLayout manager. The said layout uses
- * alternative algorithm that computes columns before rows.
- * It allows it to 'flow' wrapped text proportionally
- * (as in the popular web browsers). Custom layout managers
- * that implement this interface allow recursive reflow
- * to be performed.
- */
-public interface ILayoutExtension {
-	public int getMinimumWidth(Composite parent, boolean changed);
-	public int getMaximumWidth(Composite parent, boolean changed); 
-}
diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/NoTabsWorkbook.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/NoTabsWorkbook.java
deleted file mode 100644
index 8355501..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/NoTabsWorkbook.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import java.util.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.*;

-import org.eclipse.ui.part.*;

-import org.eclipse.swt.custom.*;

-

-public class NoTabsWorkbook implements IFormWorkbook {

-	private Vector pages;

-	private boolean firstPageSelected = true;

-	private PageBook pageBook;

-	private Vector listeners = new Vector();

-	private IFormPage currentPage;

-

-	public NoTabsWorkbook() {

-		pages = new Vector();

-	}

-	public void addFormSelectionListener(IFormSelectionListener listener) {

-		listeners.addElement(listener);

-	}

-	public void addPage(IFormPage page) {

-		pages.add(page);

-

-		if (firstPageSelected && currentPage == null)

-			selectPage(page, true);

-	}

-

-	public void createControl(Composite parent) {

-		pageBook = new PageBook(parent, SWT.NULL);

-	}

-

-	private void fireSelectionChanged(IFormPage page, boolean setFocus) {

-		for (Iterator iter = listeners.iterator(); iter.hasNext();) {

-			IFormSelectionListener listener = (IFormSelectionListener) iter.next();

-			listener.formSelected(page, setFocus);

-		}

-	}

-	

-	public IFormPage [] getPages() {

-		return (IFormPage[])pages.toArray(new IFormPage[pages.size()]);

-	}

-

-	public Control getControl() {

-		return pageBook;

-	}

-

-	public IFormPage getCurrentPage() {

-		return currentPage;

-	}

-

-	public boolean isFirstPageSelected() {

-		return firstPageSelected;

-	}

-	public void removeFormSelectionListener(IFormSelectionListener listener) {

-		listeners.removeElement(listener);

-	}

-

-	public void removePage(IFormPage page) {

-		if (pages.contains(page)) {

-			Control c = page.getControl();

-			if (c!=null && !c.isDisposed())

-				c.dispose();

-			pages.remove(page);

-		}

-	}

-

-	public void selectPage(final IFormPage page, final boolean setFocus) {

-		final IFormPage oldPage = currentPage;

-		currentPage = page;

-

-		if (pageBook != null) {

-

-			// It may take a while

-			BusyIndicator.showWhile(pageBook.getDisplay(), new Runnable() {

-				public void run() {

-					switchPages(oldPage, page, setFocus);

-				}

-			});

-		}

-	}

-

-	public void setFirstPageSelected(boolean newFirstPageSelected) {

-		firstPageSelected = newFirstPageSelected;

-	}

-

-	private void switchPages(IFormPage oldPage, IFormPage newPage, boolean setFocus) {

-		if (oldPage != null && oldPage != newPage) {

-			oldPage.becomesInvisible(newPage);

-		}

-		if (newPage.getControl() == null)

-			newPage.createControl(pageBook);

-		pageBook.showPage(newPage.getControl());

-

-		newPage.becomesVisible(oldPage);

-		fireSelectionChanged(newPage, setFocus);

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ScrollableSectionForm.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ScrollableSectionForm.java
deleted file mode 100644
index 8abd1ff..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ScrollableSectionForm.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.custom.*;

-import org.eclipse.swt.layout.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.*;

-

-/**

- * This version of the section form adds scrolling

- * capability. However, scrolling can be disabled

- * using 'setScrollable' method. For this reason,

- * this class can be used instead of the SectionForm.

- */

-

-public class ScrollableSectionForm extends SectionForm {

-	private Composite container;

-	private boolean verticalFit;

-	private boolean scrollable = true;

-

-	public ScrollableSectionForm() {

-	}

-	public Control createControl(Composite parent) {

-		container = createParent(parent);

-		Control formControl = super.createControl(container);

-		if (container instanceof ScrolledComposite) {

-			ScrolledComposite sc = (ScrolledComposite) container;

-			sc.setContent(formControl);

-		}

-		GridData gd = new GridData(GridData.FILL_BOTH);

-		formControl.setLayoutData(gd);

-		container.setBackground(formControl.getBackground());

-		return container;

-	}

-	protected Composite createParent(Composite parent) {

-		Composite result = null;

-		if (isScrollable()) {

-			ScrolledComposite scomp =

-				new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL);

-			if (isVerticalFit()) {

-				scomp.setExpandHorizontal(true);

-				scomp.setExpandVertical(true);

-			}

-			initializeScrollBars(scomp);

-			result = scomp;

-		} else {

-			result = new Composite(parent, SWT.NONE);

-			GridLayout layout = new GridLayout();

-			layout.marginHeight = 0;

-			layout.marginWidth = 0;

-			result.setLayout(layout);

-		}

-		result.setMenu(parent.getMenu());

-		return result;

-	}

-	public boolean isScrollable() {

-		return scrollable;

-	}

-	public boolean isVerticalFit() {

-		return verticalFit;

-	}

-	public void setScrollable(boolean newScrollable) {

-		scrollable = newScrollable;

-	}

-

-	public void setVerticalFit(boolean newVerticalFit) {

-		verticalFit = newVerticalFit;

-	}

-

-	private void initializeScrollBars(ScrolledComposite scomp) {

-		ScrollBar hbar = scomp.getHorizontalBar();

-		if (hbar != null) {

-			hbar.setIncrement(H_SCROLL_INCREMENT);

-		}

-		ScrollBar vbar = scomp.getVerticalBar();

-		if (vbar != null) {

-			vbar.setIncrement(V_SCROLL_INCREMENT);

-		}

-		updatePageIncrement(scomp);

-	}

-

-	public void update() {

-		super.update();

-		if (container instanceof ScrolledComposite) {

-			updateScrolledComposite();

-		} else {

-			container.layout(true);

-		}

-	}

-	public void updateScrollBars() {

-		if (container instanceof ScrolledComposite) {

-			updateScrolledComposite();

-		}

-	}

-	public void updateScrolledComposite() {

-		ScrolledComposite sc = (ScrolledComposite) container;

-		Control formControl = getControl();

-		Point newSize = formControl.computeSize(SWT.DEFAULT, SWT.DEFAULT);

-		formControl.setSize(newSize);

-		sc.setMinSize(newSize);

-		updatePageIncrement(sc);

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SectionChangeManager.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SectionChangeManager.java
deleted file mode 100644
index 52d301b..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SectionChangeManager.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import java.util.*;

-

-public class SectionChangeManager {

-	Hashtable sources = new Hashtable();

-

-	public SectionChangeManager() {

-		super();

-	}

-	public void dispatchNotification(

-		FormSection source,

-		int type,

-		Object changeObject) {

-		Vector targets = (Vector) sources.get(source);

-		if (targets != null) {

-			for (Iterator iter = targets.iterator(); iter.hasNext();) {

-				FormSection section = (FormSection) iter.next();

-				section.sectionChanged(source, type, changeObject);

-			}

-		}

-	}

-	public void linkSections(FormSection source, FormSection target) {

-		source.setManager(this);

-		Vector targets = null;

-

-		targets = (Vector) sources.get(source);

-		if (targets == null) {

-			targets = new Vector();

-			sources.put(source, targets);

-		}

-		targets.addElement(target);

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SectionForm.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SectionForm.java
deleted file mode 100644
index be28b6c..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SectionForm.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.jface.resource.*;

-import org.eclipse.jface.util.PropertyChangeEvent;

-

-/**

- * This form implementation assumes that it contains

- * form sections and that they fill up the screen.

- * Typically, the form client will use up the entire

- * parent area below the heading. Sections must

- * be able to return their preferred size in both

- * dimensions. If they contain wrappable text,

- * WebForm should be used instead.

- */

-

-public class SectionForm extends AbstractSectionForm implements PaintListener {

-	private Composite control;

-	private int TITLE_HMARGIN = 10;

-	private int TITLE_VMARGIN = 5;

-

-	class FormLayout extends Layout {

-		protected Point computeSize(

-			Composite composite,

-			int wHint,

-			int hHint,

-			boolean flushCache) {

-			if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT)

-				return new Point(wHint, hHint);

-			Control client = composite.getChildren()[0];

-			Point csize = client.computeSize(widthHint, heightHint, flushCache);

-			if (headingVisible)

-				csize.y += getTitleHeight();

-			return csize;

-		}

-		protected void layout(Composite composite, boolean flushCache) {

-			Rectangle clientArea = composite.getClientArea();

-			Control client = composite.getChildren()[0];

-			if (client != null && !client.isDisposed()) {

-				int theight = headingVisible ? getTitleHeight() : 0;

-				client.setBounds(

-					clientArea.x,

-					clientArea.y + theight,

-					clientArea.width,

-					clientArea.height - theight);

-			}

-		}

-	}

-	private int widthHint = SWT.DEFAULT;

-	private int heightHint = SWT.DEFAULT;

-

-	public SectionForm() {

-	}

-

-	public Control createControl(Composite parent) {

-		Composite canvas = new Composite(parent, SWT.NONE);

-		canvas.setBackground(factory.getBackgroundColor());

-		canvas.setForeground(factory.getForegroundColor());

-		canvas.addPaintListener(this);

-		canvas.setLayout(new FormLayout());

-		canvas.setMenu(parent.getMenu());

-		Composite formParent = factory.createComposite(canvas);

-		createFormClient(formParent);

-		this.control = canvas;

-		//canvas.setFocus();

-		return canvas;

-	}

-

-	protected void createFormClient(Composite parent) {

-		factory.createComposite(parent);

-	}

-

-	public Control getControl() {

-		return control;

-	}

-

-	private int getTitleHeight() {

-		int imageHeight = 0;

-		if (headingImage != null

-			&& SWT.getPlatform().equals("motif") == false) {

-			imageHeight = headingImage.getBounds().height;

-		}

-		GC gc = new GC(control);

-		gc.setFont(titleFont);

-		FontMetrics fm = gc.getFontMetrics();

-		int fontHeight = fm.getHeight();

-		gc.dispose();

-

-		int height = fontHeight + TITLE_VMARGIN + TITLE_VMARGIN;

-		return Math.max(height, imageHeight);

-	}

-

-	private void paint(Control form, GC gc) {

-		Rectangle bounds = form.getBounds();

-		int height = getTitleHeight();

-		if (headingImage != null) {

-			Rectangle imageBounds = headingImage.getBounds();

-			int x = bounds.width - imageBounds.width;

-			int y = 0;

-			//x = Math.max(x, 0);

-			x = 0;

-			if (headingBackground != null) {

-				gc.setBackground(headingBackground);

-				gc.fillRectangle(0, 0, bounds.width, height);

-			}

-			if (SWT.getPlatform().equals("motif") == false) {

-				gc.drawImage(headingImage, x, y);

-			}

-			if (headingForeground != null)

-				gc.setForeground(headingForeground);

-			else

-				gc.setForeground(factory.getForegroundColor());

-			gc.setFont(titleFont);

-			gc.drawText(getHeadingText(), TITLE_HMARGIN, TITLE_VMARGIN, true);

-		} else {

-			gc.setFont(titleFont);

-			gc.setBackground(factory.getColor(FormWidgetFactory.DEFAULT_HEADER_COLOR));

-			//gc.fillRectangle(TITLE_HMARGIN, TITLE_VMARGIN, bounds.width-TITLE_HMARGIN*2, height-TITLE_VMARGIN*2);

-			gc.setForeground(factory.getForegroundColor());

-			gc.drawText(getHeadingText(), TITLE_HMARGIN, TITLE_VMARGIN, true);

-		}

-	}

-

-	public final void paintControl(PaintEvent event) {

-		if (!headingVisible)

-			return;

-		GC gc = event.gc;

-		Control form = (Control) event.widget;

-		paint(form, gc);

-	}

-

-	public void setHeadingVisible(boolean newHeadingVisible) {

-		super.setHeadingVisible(newHeadingVisible);

-		if (control != null)

-			control.layout(true);

-	}

-	public void setHeadingText(String headingText) {

-		super.setHeadingText(headingText);

-		if (control != null) {

-			control.layout(true);

-			control.redraw();

-		}

-	}

-

-	public void propertyChange(PropertyChangeEvent event) {

-		titleFont = JFaceResources.getHeaderFont();

-		if (control != null && !control.isDisposed()) {

-			control.layout(true);

-			control.redraw();

-		}

-	}

-

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SelectableControl.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SelectableControl.java
deleted file mode 100644
index 8479133..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SelectableControl.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.*;

-

-/**

- * FormText is a windowless control that

- * draws text in the provided context.

- */

-public abstract class SelectableControl extends Canvas {

-	private boolean hasFocus;

-

-	public SelectableControl(Composite parent, int style) {

-		super(parent, style);

-		addPaintListener(new PaintListener() {

-			public void paintControl(PaintEvent e) {

-				paint(e);

-			}

-		});

-		addMouseListener(new MouseAdapter () {

-			public void mouseUp(MouseEvent e) {

-				notifyListeners(SWT.Selection);

-			}

-		});

-		addKeyListener(new KeyAdapter() {

-			public void keyPressed(KeyEvent e) {

-				if (e.character == '\r') {

-					// Activation

-					notifyListeners(SWT.Selection);

-				}

-			}

-		});

-		addListener(SWT.Traverse, new Listener () {

-			public void handleEvent(Event e) {

-				if (e.detail != SWT.TRAVERSE_RETURN)

-					e.doit = true;

-			}

-		});

-		addFocusListener(new FocusListener() {

-			public void focusGained(FocusEvent e) {

-				if (!hasFocus) {

-				   hasFocus=true;

-				   redraw();

-				}

-			}

-			public void focusLost(FocusEvent e) {

-				if (hasFocus) {

-					hasFocus=false;

-					redraw();

-				}

-			}

-		});

-	}

-

-	protected void paint(PaintEvent e) {

-		GC gc = e.gc;

-		Point size = getSize();

-	   	gc.setFont(getFont());

-	   	paint(gc);

-		if (hasFocus) {

-	   		gc.setForeground(getForeground());

-	   		gc.drawFocus(0, 0, size.x, size.y);

-		}

-	}

-	

-	protected abstract void paint(GC gc);

-	

-	private void notifyListeners(int eventType) {

-		Event event = new Event();

-		event.type = eventType;

-		event.widget = this;

-		notifyListeners(eventType, event);

-	}

-	

-	public void addSelectionListener(SelectionListener listener) {

-		checkWidget ();

-		if (listener == null) return;

-		TypedListener typedListener = new TypedListener (listener);

-		addListener (SWT.Selection,typedListener);

-	}

-	

-	public void removeSelectionListener(SelectionListener listener) {

-		checkWidget ();

-		if (listener == null) return;

-		removeListener (SWT.Selection, listener);

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SelectableFormLabel.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SelectableFormLabel.java
deleted file mode 100644
index ea5d5c4..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/SelectableFormLabel.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.accessibility.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-public class SelectableFormLabel extends FormLabel {

-	private boolean hasFocus;

-

-	public boolean getSelection() {

-		return hasFocus;

-	}

-	

-	/**

-	 * Constructor for SelectableFormLabel

-	 */

-	public SelectableFormLabel(Composite parent, int style) {

-		super(parent, style);

-		addKeyListener(new KeyAdapter() {

-			public void keyPressed(KeyEvent e) {

-				if (e.character == '\r') {

-					// Activation

-					notifyListeners(SWT.DefaultSelection);

-				}

-			}

-		});

-		addListener(SWT.Traverse, new Listener () {

-			public void handleEvent(Event e) {

-				switch (e.detail) {

-					case SWT.TRAVERSE_PAGE_NEXT:

-					case SWT.TRAVERSE_PAGE_PREVIOUS:

-					case SWT.TRAVERSE_ARROW_NEXT:

-					case SWT.TRAVERSE_ARROW_PREVIOUS:

-					case SWT.TRAVERSE_RETURN:

-					e.doit = false;

-					return;

-				}

-				e.doit = true;

-			}

-		});

-		addFocusListener(new FocusListener() {

-			public void focusGained(FocusEvent e) {

-				if (!hasFocus) {

-				   hasFocus=true;

-				   notifyListeners(SWT.Selection);

-				   redraw();

-				}

-			}

-			public void focusLost(FocusEvent e) {

-				if (hasFocus) {

-					hasFocus=false;

-					notifyListeners(SWT.Selection);

-					redraw();

-				}

-			}

-		});

-		textMarginWidth = 1;

-		textMarginHeight = 1;

-	}

-	

-	protected void initAccessible() {

-		Accessible accessible = getAccessible();

-		accessible.addAccessibleListener(new AccessibleAdapter() {

-			public void getName(AccessibleEvent e) {

-				e.result = getText();

-			}

-

-			public void getHelp(AccessibleEvent e) {

-				e.result = getToolTipText();

-			}

-		});

-

-		accessible

-			.addAccessibleControlListener(new AccessibleControlAdapter() {

-			public void getChildAtPoint(AccessibleControlEvent e) {

-				Point pt = toControl(new Point(e.x, e.y));

-				e.childID =

-					(getBounds().contains(pt))

-						? ACC.CHILDID_SELF

-						: ACC.CHILDID_NONE;

-			}

-

-			public void getLocation(AccessibleControlEvent e) {

-				Rectangle location = getBounds();

-				Point pt = toDisplay(new Point(location.x, location.y));

-				e.x = pt.x;

-				e.y = pt.y;

-				e.width = location.width;

-				e.height = location.height;

-			}

-

-			public void getChildCount(AccessibleControlEvent e) {

-				e.detail = 0;

-			}

-

-			public void getRole(AccessibleControlEvent e) {

-				e.detail = ACC.ROLE_PUSHBUTTON;

-			}

-

-			public void getState(AccessibleControlEvent e) {

-				e.detail = SelectableFormLabel.this.getSelection()?ACC.STATE_SELECTED:ACC.STATE_NORMAL;

-			}

-		});

-	}

-	

-	private void notifyListeners(int eventType) {

-		Event event = new Event();

-		event.type = eventType;

-		event.widget = this;

-		notifyListeners(eventType, event);

-	}

-

-	protected void paint(PaintEvent e) {

-		super.paint(e);

-	   	if (hasFocus) {

-	   		GC gc = e.gc;

-	   		Point size = getSize();

-	   		gc.setForeground(getForeground());

-	   		gc.drawFocus(0, 0, size.x, size.y);

-		}

-	}

-

-	public void addSelectionListener(SelectionListener listener) {

-		checkWidget ();

-		if (listener == null) return;

-		TypedListener typedListener = new TypedListener (listener);

-		addListener (SWT.Selection,typedListener);

-		addListener (SWT.DefaultSelection,typedListener);

-	}

-	

-	public void removeSelectionListener(SelectionListener listener) {

-		checkWidget ();

-		if (listener == null) return;

-		removeListener (SWT.Selection, listener);

-		removeListener (SWT.DefaultSelection, listener);

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/TableData.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/TableData.java
deleted file mode 100644
index bd3cfc4..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/TableData.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Point;

-

-/**

- * 

- * @author dejan

- *

- * To change the template for this generated type comment go to

- * Window - Preferences - Java - Code Generation - Code and Comments

- */

-

-public class TableData {

-	public static final int LEFT = 1;

-	public static final int CENTER = 2;

-	public static final int RIGHT = 3;

-	public static final int TOP = 4;

-	public static final int MIDDLE = 5;

-	public static final int BOTTOM = 6;

-	public static final int FILL = 7;

-	public int colspan=1;

-	public int rowspan=1;

-	public int align = LEFT;

-	public int valign = TOP;

-	public int indent = 0;

-	public int maxWidth = SWT.DEFAULT;

-	public int maxHeight = SWT.DEFAULT;

-	public int heightHint = SWT.DEFAULT;

-	public boolean grabHorizontal=false;

-	

-	//private

-	int childIndex;

-	boolean isItemData=true; 

-	int compWidth;

-	Point compSize;

-		

-	public TableData() {

-	}

-	

-	public TableData(int align, int valign) {

-		this(align, valign, 1, 1);

-	}

-	

-	public TableData(int align, int valign, int rowspan, int colspan) {

-		this.align = align;

-		this.valign = valign;

-		this.rowspan = rowspan;

-		this.colspan = colspan;

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/TableLayoutTest.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/TableLayoutTest.java
deleted file mode 100644
index 417e4e2..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/TableLayoutTest.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-import org.eclipse.jface.action.StatusLineManager;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.custom.ScrolledComposite;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.graphics.Rectangle;

-import org.eclipse.swt.layout.FillLayout;

-import org.eclipse.swt.layout.RowLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Listener;

-import org.eclipse.swt.widgets.Shell;

-

-public class TableLayoutTest {

-

-public static void main (String [] args) {

-     Display display = new Display ();

-     Shell shell = new Shell (display);

-     shell.setLayout(new FillLayout());

-     final ScrolledComposite sc = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL);

-    // sc.setAlwaysShowScrollBars(true);

-     sc.setBackground(sc.getDisplay().getSystemColor(SWT.COLOR_WHITE));

-     final Composite c = new Composite(sc, SWT.NONE);

-     //c.setBackground(c.getDisplay().getSystemColor(SWT.COLOR_RED));

-     sc.setContent(c);

-     sc.addListener (SWT.Resize,  new Listener () {

-		public void handleEvent (Event e) {

-			Rectangle ssize = sc.getClientArea();

-			int swidth = ssize.width;

-			HTMLTableLayout layout = (HTMLTableLayout)c.getLayout();

-			Point size = layout.computeSize(c, swidth, SWT.DEFAULT, true);

-			//if (size.x < swidth) size.x = swidth;

-			Rectangle trim = c.computeTrim(0, 0, size.x, size.y);

-			size = new Point(trim.width, trim.height);

-			/*

-			Point size = c.computeSize(swidth, SWT.DEFAULT, true);

-			*/

-			//System.out.println("in: "+swidth+", out: "+size.x);

-			c.setSize(size);

-		}

-	});

-     c.setBackground(c.getDisplay().getSystemColor(SWT.COLOR_WHITE));

-     HTMLTableLayout layout = new HTMLTableLayout();

-     layout.numColumns = 2;

-     //layout.horizontalSpacing = 0;

-     layout.leftMargin = 0;

-     layout.rightMargin = 0;

-     layout.makeColumnsEqualWidth=false;

-     //layout.marginWidth = layout.marginHeight = 0;

-     //layout.horizontalSpacing = 0;

-     c.setLayout(layout);

-     

-     Label label;

-     Button b;

-     TableData td;

-/*     

-     label = new Label(c, SWT.NULL);

-     label.setText("Single line1");

-     

-     //label = new Label(c, SWT.WRAP);

-     Text text = new Text(c, SWT.MULTI | SWT.WRAP);

-     text.setEditable(false);

-     text.setText("This is a much longer text that I want wrapped,"+

-     " but depending on the window size it can be rendered completely.");

-     

-     b = new Button(c, SWT.PUSH);

-     b.setText("Simple button");

-     

-     label = new Label(c, SWT.WRAP);

-     label.setText("Another text that may or may not be wrapped");

-

-     label = new Label(c, SWT.NULL);

-     td = new TableData(TableData.RIGHT, TableData.BOTTOM);

-     label.setLayoutData(td);

-     label.setText("Fixed label");

-     

-     Composite nested = new Composite(c, SWT.NULL);

-     layout = new HTMLTableLayout();

-     layout.numColumns = 2;

-     nested.setLayout(layout);

-     b = new Button(nested, SWT.PUSH);

-     b.setText("Button2");

-     label = new Label(nested, SWT.WRAP);

-     td = new TableData(TableData.LEFT, TableData.MIDDLE);

-     label.setLayoutData(td);

-     label.setText("Some text in the nested label that can be wrapped");

-*/     

-     label = new Label(c, SWT.NULL);

-     label.setText("Text in the left column");

-     

-     b = new Button(c, SWT.CHECK);

-     b.setText("Checkbox in the right column");

-

-     

-     label = new Label(c, SWT.WRAP);

-     label.setText("This assignment step is then repeated for nested tables using the minimum and maximum widths derived for all such tables in the first pass. In this case, the width of the parent table cell plays the role of the current window size in the above description. This process is repeated recursively for all nested tables. The topmost table is then rendered using the assigned widths. Nested tables are subsequently rendered as part of the parent table's cell contents.");

-     td = new TableData();

-     td.colspan = 2;

-     td.align = TableData.FILL;

-     label.setLayoutData(td);

-     

-     ExpandableGroup exp = new ExpandableGroup (SWT.WRAP) {

-     	public void fillExpansion(Composite container, FormWidgetFactory factory) {

-     		HTMLTableLayout layout = new HTMLTableLayout();

-     		container.setLayout(layout);

-     		layout.leftMargin = layout.rightMargin = 0;

-     		Button button = factory.createButton(container, null, SWT.PUSH);

-     		button.setText("Button");

-    	}

-     	public void expanded() {

-     		c.layout(true);

-     		updateSize(sc, c);

-     	}

-     	public void collapsed() {

-     		c.layout(true);

-     		updateSize(sc, c);

-     	}

-     };

-     exp.setText("Expandable Section");

-     //exp.setExpandable(false);

-     FormWidgetFactory factory = new FormWidgetFactory();

-     exp.createControl(c, factory);

-     //exp.getControl().setBackground(label.getDisplay().getSystemColor(SWT.COLOR_GREEN));

-     td = new TableData();

-     td.colspan = 2;

-     td.align = TableData.FILL;

-     exp.getControl().setLayoutData(td);

-     

-	 StatusLineManager manager = new StatusLineManager();

-     //addFormEngine(c, factory, manager);

-     //addFormEngine(c, factory, manager);

-     //addFormEngine(c, factory, manager);

-     

-     addRow(c);

- 

-     Control mcontrol = manager.createControl(c);

-     td = new TableData();

-     td.colspan = 2;

-     td.align = TableData.FILL;

-     mcontrol.setLayoutData(td);

-     

-     factory.setHyperlinkUnderlineMode(HyperlinkHandler.UNDERLINE_ROLLOVER);

-     

-     SelectableFormLabel ft = new SelectableFormLabel(c, SWT.WRAP);

-     ft.setText("Some text in the form text that should also wrap");

-     factory.turnIntoHyperlink(ft, new IHyperlinkListener() {

-     	public void linkEntered(Control link) {

-     		System.out.println("Link entered");

-     	}

-     	public void linkExited(Control link) {

-    		System.out.println("Link exited");

-     	}

-     	public void linkActivated(Control link) {

-     		System.out.println("Link activated");

-     	}

-     });

-

-     ft = new SelectableFormLabel(c, SWT.WRAP);

-     ft.setText("Some more form text here");

-     factory.turnIntoHyperlink(ft, new IHyperlinkListener() {

-     	public void linkEntered(Control link) {

-     		System.out.println("Link entered");

-     	}

-     	public void linkExited(Control link) {

-    		System.out.println("Link exited");

-     	}

-     	public void linkActivated(Control link) {

-     		System.out.println("Link activated");

-     	}

-     });

-   

-     shell.open ();

-     while (!shell.isDisposed ()) {

-          if (!display.readAndDispatch ()) display.sleep ();

-     }

-     display.dispose ();

-}

-

-/*

-

-public static void addFormEngine(Composite c, FormWidgetFactory factory, IStatusLineManager manager) {

-     new Label(c, SWT.NULL);

-     RichText html = new RichText(c, SWT.WRAP);

-     html.setHyperlinkSettings(factory.getHyperlinkHandler());

-     RichTextHTTPAction action = new RichTextHTTPAction(manager);

-     URL i1URL = TableLayoutTest.class.getResource("image1.gif");

-     ImageDescriptor id1 = ImageDescriptor.createFromURL(i1URL);

-     html.registerTextObject("urlHandler", action);

-     html.registerTextObject("image1", id1.createImage());

-     //html.setBackground(factory.getBackgroundColor());

-     html.setForeground(factory.getForegroundColor());

-     InputStream is = TableLayoutTest.class.getResourceAsStream("index.xml");

-     //html.setParagraphsSeparated(false);

-     html.setContents(is, true);

-     TableData td = new TableData();

-     td.colspan = 1;

-     td.align = TableData.FILL;

-     html.setLayoutData(td);

-}

-*/

-

-public static void addRow(Composite c) {

-	Composite row = new Composite(c, SWT.WRAP);

-	RowLayout layout = new RowLayout();

-	layout.wrap = true;

-	row.setLayout(layout);

-	

-	for (int i=0; i<10; i++) {

-		Button button = new Button(row, SWT.PUSH);

-		button.setText("Button that should be wrapped");

-	}

-	TableData td = new TableData();

-	td.colspan = 2;

-	td.align = TableData.FILL;

-	td.grabHorizontal = true;

-	row.setLayoutData(td);

-}

-

-private static void updateSize(ScrolledComposite sc, Composite c) {

-	Rectangle ssize = sc.getClientArea();

-	int swidth = ssize.width;

-	HTMLTableLayout layout = (HTMLTableLayout)c.getLayout();

-	Point size = layout.computeSize(c, swidth, SWT.DEFAULT, true);

-	Rectangle trim = c.computeTrim(0, 0, size.x, size.y);

-	size = new Point(trim.width, trim.height);

-	c.setSize(size);

-}

-

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ToggleControl.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ToggleControl.java
deleted file mode 100644
index f4a127e..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/ToggleControl.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.accessibility.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.Composite;

-

-public class ToggleControl extends SelectableControl {

-	private boolean selection;

-	private Color decorationColor;

-	private Color activeColor;

-	private Cursor activeCursor;

-	private boolean hover=false;

-	private static final int marginWidth = 2;

-	private static final int marginHeight = 2;

-	private static final int WIDTH = 9;

-	private static final int HEIGHT = 9;

-	private static final int [] offPoints = { 0,2, 8,2, 4,6 };

-	private static final int [] onPoints = { 2, -1, 2,8, 6,4 };	

-

-	public ToggleControl(Composite parent, int style) {

-		super(parent, style);

-		addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(SelectionEvent e) {

-				selection = !selection;

-				redraw();

-			}

-		});

-

-		addMouseTrackListener(new MouseTrackAdapter() {

-			public void mouseEnter(MouseEvent e) {

-				hover = true;

-				if (activeCursor!=null)

-				   setCursor(activeCursor);

-				redraw();

-			}

-			public void mouseExit(MouseEvent e) {

-				hover = false;

-				if (activeCursor!=null)

-				   setCursor(null);

-				redraw();

-			}

-		});

-		initAccessible();

-	}

-	void initAccessible() {

-		getAccessible().addAccessibleListener(new AccessibleAdapter() {

-			public void getHelp(AccessibleEvent e) {

-				e.result = getToolTipText();

-			}

-		});

-		

-		getAccessible().addAccessibleControlListener(new AccessibleControlAdapter() {

-			public void getChildAtPoint(AccessibleControlEvent e) {

-				Point testPoint = toControl(new Point(e.x, e.y));

-				if (getBounds().contains(testPoint)) {

-					e.childID = ACC.CHILDID_SELF;

-				}

-			}

-		

-			public void getLocation(AccessibleControlEvent e) {

-				Rectangle location = getBounds();

-				Point pt = toDisplay(new Point(location.x, location.y));

-				e.x = pt.x;

-				e.y = pt.y;

-				e.width = location.width;

-				e.height = location.height;

-			}

-		

-			public void getChildCount(AccessibleControlEvent e) {

-				e.detail = 0;

-			}

-		

-			public void getRole(AccessibleControlEvent e) {

-				e.detail = ACC.ROLE_TREE;

-			}

-		

-			public void getState(AccessibleControlEvent e) {

-				e.detail = ToggleControl.this.getSelection()?ACC.STATE_EXPANDED:ACC.STATE_COLLAPSED;

-			}

-

-			public void getValue(AccessibleControlEvent e) {

-				e.result = ToggleControl.this.getSelection()?"1":"0";

-			}

-		});

-	}

-	

-	public void setDecorationColor(Color decorationColor) {

-		this.decorationColor = decorationColor;

-	}

-	

-	public Color getDecorationColor() {

-		return decorationColor;

-	}

-	

-	public void setActiveDecorationColor(Color activeColor) {

-		this.activeColor = activeColor;

-	}

-	

-	public void setActiveCursor(Cursor activeCursor) {

-		this.activeCursor = activeCursor;

-	}

-	

-	public Color getActiveDecorationColor() {

-		return activeColor;

-	}

-	

-	public Point computeSize(int wHint, int hHint, boolean changed) {

-		int width, height;

-		

-		if (wHint!=SWT.DEFAULT) width = wHint; 

-		else 

-		   width = WIDTH + 2*marginWidth;

-		if (hHint!=SWT.DEFAULT) height = hHint;

-		else height = HEIGHT + 2*marginHeight;

-		return new Point(width, height);

-	}

-

-	/*

-	 * @see SelectableControl#paint(GC)

-	 */

-	protected void paint(GC gc) {

-		if (hover && activeColor!=null)

-			gc.setBackground(activeColor);

-		else if (decorationColor!=null)

-	   	   gc.setBackground(decorationColor);

-	   	else

-	   			gc.setBackground(getForeground());

-		int [] data;

-		Point size = getSize();

-		int x = (size.x - 9)/2;

-		int y = (size.y - 9)/2;

-		if (selection)

-			data = translate(onPoints, x, y);

-		else 

-			data = translate(offPoints, x, y);

-		gc.fillPolygon(data);

-		gc.setBackground(getBackground());

-	}

-	

-	private int [] translate(int [] data, int x, int y) {

-		int [] target = new int [data.length];

-		for (int i=0; i<data.length; i+=2) {

-			target[i] = data[i]+ x;

-		}

-		for (int i=1; i<data.length; i+=2) {

-			target[i] = data[i]+y;

-		}

-		return target;

-	}

-

-	public boolean getSelection() {

-		return selection;

-	}

-	

-	public void setSelection(boolean selection) {

-		this.selection = selection;

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/WebForm.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/WebForm.java
deleted file mode 100644
index ee6c76e..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/WebForm.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal;

-

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.jface.resource.*;

-import org.eclipse.jface.util.PropertyChangeEvent;

-import org.eclipse.swt.custom.*;

-

-/**

- * This form implementation assumes that it contains

- * children that do not have independent dimensions.

- * In other words, these widgets are not capable

- * of answering their preferred size. Instead,

- * desired width must be supplied to get the

- * preferred height. These forms are layed out

- * top to bottom, left to right and use

- * a layout algorithm very similar to

- * HTML tables. Scrolling is not optional

- * for this type of presentation - 

- * scroll bars will show up when needed.

- */

-

-public class WebForm extends AbstractSectionForm {

-	protected ScrolledComposite scrollComposite;

-	private Composite control;

-	private Composite client;

-	private final static int HMARGIN = 5;

-	private final static int VMARGIN = 5;

-	private Image headingUnderlineImage;

-

-	class WebFormLayout extends Layout {

-

-		protected void layout(Composite parent, boolean changed) {

-			Rectangle bounds = parent.getClientArea();

-			int x = 0;

-			int y = 0;

-			if (isHeadingVisible()) {

-				y = getHeadingHeight(parent);

-			}

-			Point csize;

-

-			Layout layout = client.getLayout();

-			if (layout != null && layout instanceof HTMLTableLayout) {

-				HTMLTableLayout hlayout = (HTMLTableLayout) layout;

-				csize = hlayout.computeSize(client, bounds.width, SWT.DEFAULT, true);

-				if (csize.x < bounds.width)

-					csize.x = bounds.width;

-				Rectangle trim = control.computeTrim(0, 0, csize.x, csize.y);

-				csize = new Point(trim.width, trim.height);

-			} else {

-				csize = client.computeSize(bounds.width, SWT.DEFAULT, changed);

-			}

-			client.setBounds(x, y, csize.x, csize.y);

-		}

-

-		protected Point computeSize(

-			Composite parent,

-			int wHint,

-			int hHint,

-			boolean changed) {

-			int width = wHint;

-			int height = 0;

-			if (isHeadingVisible()) {

-				height = getHeadingHeight(parent);

-			}

-			Point csize;

-			Layout layout = client.getLayout();

-

-			if (layout != null && layout instanceof HTMLTableLayout) {

-				HTMLTableLayout hlayout = (HTMLTableLayout) layout;

-				csize = hlayout.computeSize(client, width, SWT.DEFAULT, true);

-				if (csize.x < width)

-					csize.x = width;

-				Rectangle trim = control.computeTrim(0, 0, csize.x, csize.y);

-				csize = new Point(trim.width, trim.height);

-			} else {

-				csize = client.computeSize(width, SWT.DEFAULT, changed);

-			}

-			width = csize.x;

-			height += csize.y;

-			return new Point(width, height);

-		}

-	}

-

-	public WebForm() {

-	}

-

-	public Control createControl(Composite parent) {

-		scrollComposite = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL);

-		scrollComposite.setBackground(factory.getBackgroundColor());

-		scrollComposite.setMenu(parent.getMenu());

-		final Composite form = factory.createComposite(scrollComposite);

-

-		scrollComposite.setContent(form);

-		scrollComposite.addListener(SWT.Resize, new Listener() {

-			public void handleEvent(Event e) {

-				updateSize();

-			}

-		});

-		WebFormLayout layout = new WebFormLayout();

-		form.setLayout(layout);

-		form.addPaintListener(new PaintListener() {

-			public void paintControl(PaintEvent e) {

-				paint(e);

-			}

-		});

-		this.control = form;

-		client = factory.createComposite(form);

-		createContents(client);

-		initializeScrollBars(scrollComposite);

-		//form.setFocus();

-		return scrollComposite;

-	}

-	private void initializeScrollBars(ScrolledComposite scomp) {

-		ScrollBar hbar = scomp.getHorizontalBar();

-		if (hbar != null) {

-			hbar.setIncrement(H_SCROLL_INCREMENT);

-		}

-		ScrollBar vbar = scomp.getVerticalBar();

-		if (vbar != null) {

-			vbar.setIncrement(V_SCROLL_INCREMENT);

-		}

-		updatePageIncrement(scomp);

-	}

-

-	public int getHeadingHeight(Composite parent) {

-		int width = parent.getSize().x;

-		int height = 0;

-		int imageHeight = 0;

-		if (getHeadingImage() != null) {

-			Rectangle ibounds = getHeadingImage().getBounds();

-			imageHeight = ibounds.height;

-		}

-		GC gc = new GC(parent);

-		gc.setFont(titleFont);

-		int textWidth = width - 2 * HMARGIN;

-		height = FormLabel.computeWrapHeight(gc, getHeadingText(), textWidth);

-		height += 2 * VMARGIN;

-		height = Math.max(height, imageHeight);

-		if (headingUnderlineImage != null) {

-			Rectangle ibounds = headingUnderlineImage.getBounds();

-			height += ibounds.height;

-		}

-		gc.dispose();

-		return height;

-	}

-

-	protected void createContents(Composite parent) {

-	}

-

-	public Control getControl() {

-		return control;

-	}

-

-	public void setHeadingVisible(boolean newHeadingVisible) {

-		super.setHeadingVisible(newHeadingVisible);

-		if (control != null)

-			control.layout();

-	}

-

-	public Image getHeadingUnderlineImage() {

-		return headingUnderlineImage;

-	}

-

-	public void setHeadingUnderlineImage(Image image) {

-		this.headingUnderlineImage = image;

-	}

-

-	public void propertyChange(PropertyChangeEvent event) {

-		titleFont = JFaceResources.getHeaderFont();

-		if (control != null && !control.isDisposed()) {

-			control.layout();

-		}

-	}

-	

-	protected void updateHyperlinkColors() {

-		factory.updateHyperlinkColors();

-		if (control != null && !control.isDisposed()) {

-			control.redraw();

-		}

-	}

-

-	public void updateSize() {

-		Rectangle ssize = scrollComposite.getClientArea();

-		int swidth = ssize.width;

-		WebFormLayout layout = (WebFormLayout) control.getLayout();

-		Point size = layout.computeSize(control, swidth, SWT.DEFAULT, true);

-		if (size.x < swidth)

-			size.x = swidth;

-		Rectangle trim = control.computeTrim(0, 0, size.x, size.y);

-		size = new Point(trim.width, trim.height);

-		control.setSize(size);

-		updatePageIncrement(scrollComposite);

-	}

-

-	private void paint(PaintEvent e) {

-		if (isHeadingVisible() == false)

-			return;

-		GC gc = e.gc;

-		if (headingImage != null) {

-			gc.drawImage(headingImage, 0, 0);

-		}

-		Point size = control.getSize();

-		if (getHeadingBackground() != null)

-			gc.setBackground(getHeadingBackground());

-		if (getHeadingForeground() != null)

-			gc.setForeground(getHeadingForeground());

-		gc.setFont(titleFont);

-		FormLabel.paintWrapText(gc, size, getHeadingText(), HMARGIN, VMARGIN);

-		if (headingUnderlineImage != null) {

-			int y =

-				getHeadingHeight(control)

-					- headingUnderlineImage.getBounds().height;

-			gc.drawImage(headingUnderlineImage, 0, y);

-		}

-	}

-	public void setHeadingText(String headingText) {

-		super.setHeadingText(headingText);

-		if (control!=null)

-			control.redraw();

-	}

-

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/BulletParagraph.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/BulletParagraph.java
deleted file mode 100644
index de3f838..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/BulletParagraph.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;
-
-import org.eclipse.swt.graphics.GC;
-import java.util.Hashtable;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Color;
-
-public class BulletParagraph extends Paragraph implements IBulletParagraph {
-	private int style = CIRCLE;
-	private String text;
-	private int CIRCLE_DIAM = 5;
-	private int SPACING = 10;
-	private int indent = -1;
-	/**
-	 * Constructor for BulletParagraph.
-	 * @param addVerticalSpace
-	 */
-	public BulletParagraph(boolean addVerticalSpace) {
-		super(addVerticalSpace);
-	}
-
-	public int getIndent() {
-		if (indent != -1)
-			return indent;
-		switch (style) {
-			case CIRCLE :
-				return CIRCLE_DIAM + SPACING;
-		}
-		return 20;
-	}
-
-	/*
-	 * @see IBulletParagraph#getBulletStyle()
-	 */
-	public int getBulletStyle() {
-		return style;
-	}
-
-	public void setBulletStyle(int style) {
-		this.style = style;
-	}
-
-	public void setBulletText(String text) {
-		this.text = text;
-	}
-
-	public void setIndent(int indent) {
-		this.indent = indent;
-	}
-
-	/*
-	 * @see IBulletParagraph#getBulletText()
-	 */
-	public String getBulletText() {
-		return text;
-	}
-
-	public void paint(
-		GC gc,
-		int width,
-		Locator loc,
-		int lineHeight,
-		Hashtable objectTable,
-		IHyperlinkSegment selectedLink) {
-		paintBullet(gc, loc, lineHeight, objectTable);
-		super.paint(gc, width, loc, lineHeight, objectTable, selectedLink);
-	}
-
-	public void paintBullet(
-		GC gc,
-		Locator loc,
-		int lineHeight,
-		Hashtable objectTable) {
-		int x = loc.x - getIndent();
-		if (style == CIRCLE) {
-			int y = loc.y + lineHeight / 2 - CIRCLE_DIAM / 2;
-			Color bg = gc.getBackground();
-			Color fg = gc.getForeground();
-			gc.setBackground(fg);
-			gc.fillRectangle(x, y + 1, 5, 3);
-			gc.fillRectangle(x + 1, y, 3, 5);
-			gc.setBackground(bg);
-		} else if (style == TEXT && text != null) {
-			gc.drawText(text, x, loc.y);
-		} else if (style == IMAGE && text != null) {
-			Image image = (Image) objectTable.get(text);
-			if (image != null) {
-				int y = loc.y + lineHeight / 2 - image.getBounds().height / 2;
-				gc.drawImage(image, x, y);
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/FormEngine.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/FormEngine.java
deleted file mode 100644
index 53c8c7f..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/FormEngine.java
+++ /dev/null
@@ -1,560 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import java.io.InputStream;

-import java.util.Hashtable;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.jface.action.*;

-import org.eclipse.jface.action.IMenuManager;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.accessibility.*;

-import org.eclipse.swt.accessibility.Accessible;

-import org.eclipse.swt.custom.ScrolledComposite;

-import org.eclipse.swt.dnd.*;

-import org.eclipse.swt.dnd.Clipboard;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.update.ui.forms.internal.*;

-

-public class FormEngine extends Canvas {

-	public static final String URL_HANDLER_ID = "urlHandler";

-	boolean hasFocus;

-	boolean paragraphsSeparated = true;

-	TextModel model;

-	Hashtable objectTable = new Hashtable();

-	public int marginWidth = 0;

-	public int marginHeight = 1;

-	IHyperlinkSegment entered;

-	boolean mouseDown = false;

-	Point dragOrigin;

-	private Action openAction;

-	private Action copyShortcutAction;

-	private boolean loading=true;

-	private String loadingText="Loading...";

-

-	public boolean getFocus() {

-		return hasFocus;

-	}

-	

-	public boolean isLoading() {

-		return loading;

-	}

-	

-	public String getLoadingText() {

-		return loadingText;

-	}

-	

-	public void setLoadingText(String loadingText) {

-		this.loadingText = loadingText;

-	}

-

-	public int getParagraphSpacing(int lineHeight) {

-		return lineHeight / 2;

-	}

-

-	public void setParagraphsSeparated(boolean value) {

-		paragraphsSeparated = value;

-	}

-

-	/**

-	 * Constructor for SelectableFormLabel

-	 */

-	public FormEngine(Composite parent, int style) {

-		super(parent, style);

-		setLayout(new FormEngineLayout());

-		model = new TextModel();

-

-		addDisposeListener(new DisposeListener() {

-			public void widgetDisposed(DisposeEvent e) {

-				model.dispose();

-			}

-		});

-		addPaintListener(new PaintListener() {

-			public void paintControl(PaintEvent e) {

-				paint(e);

-			}

-		});

-		addListener(SWT.KeyDown, new Listener() {

-			public void handleEvent(Event e) {

-				if (e.character == '\r') {

-					activateSelectedLink();

-					return;

-				}

-			}

-		});

-		addListener(SWT.Traverse, new Listener() {

-			public void handleEvent(Event e) {

-				switch (e.detail) {

-					case SWT.TRAVERSE_PAGE_NEXT :

-					case SWT.TRAVERSE_PAGE_PREVIOUS :

-					case SWT.TRAVERSE_ARROW_NEXT :

-					case SWT.TRAVERSE_ARROW_PREVIOUS :

-						e.doit = false;

-						return;

-				}

-				if (!model.hasFocusSegments()) {

-					e.doit = true;

-					return;

-				}

-				if (e.detail == SWT.TRAVERSE_TAB_NEXT)

-					e.doit = advance(true);

-				else if (e.detail == SWT.TRAVERSE_TAB_PREVIOUS)

-					e.doit = advance(false);

-				else if (e.detail != SWT.TRAVERSE_RETURN)

-					e.doit = true;

-			}

-		});

-		addFocusListener(new FocusListener() {

-			public void focusGained(FocusEvent e) {

-				if (!hasFocus) {

-					hasFocus = true;

-					handleFocusChange();

-				}

-			}

-			public void focusLost(FocusEvent e) {

-				if (hasFocus) {

-					hasFocus = false;

-					handleFocusChange();

-				}

-			}

-		});

-		addMouseListener(new MouseListener() {

-			public void mouseDoubleClick(MouseEvent e) {

-			}

-			public void mouseDown(MouseEvent e) {

-				// select a link

-				handleMouseClick(e, true);

-			}

-			public void mouseUp(MouseEvent e) {

-				// activate a link

-				handleMouseClick(e, false);

-			}

-		});

-		addMouseTrackListener(new MouseTrackListener() {

-			public void mouseEnter(MouseEvent e) {

-				handleMouseMove(e);

-			}

-			public void mouseExit(MouseEvent e) {

-				if (entered != null) {

-					exitLink(entered);

-					paintLinkHover(entered, false);

-					entered = null;

-					setCursor(null);

-				}

-			}

-			public void mouseHover(MouseEvent e) {

-				handleMouseHover(e);

-			}

-		});

-		addMouseMoveListener(new MouseMoveListener() {

-			public void mouseMove(MouseEvent e) {

-				handleMouseMove(e);

-			}

-		});

-		initAccessible();

-		makeActions();

-	}

-

-	private void makeActions() {

-		openAction = new Action() {

-			public void run() {

-				activateSelectedLink();

-			}

-		};

-		openAction.setText(

-			FormsPlugin.getResourceString("FormEgine.linkPopup.open"));

-		copyShortcutAction = new Action() {

-			public void run() {

-				copyShortcut(getSelectedLink());

-			}

-		};

-		copyShortcutAction.setText(

-			FormsPlugin.getResourceString("FormEgine.linkPopup.copyShortcut"));

-	}

-

-	private String getAcessibleText() {

-		return model.getAccessibleText();

-	}

-

-	private void initAccessible() {

-		Accessible accessible = getAccessible();

-		accessible.addAccessibleListener(new AccessibleAdapter() {

-			public void getName(AccessibleEvent e) {

-				e.result = getAcessibleText();

-			}

-

-			public void getHelp(AccessibleEvent e) {

-				e.result = getToolTipText();

-			}

-		});

-

-		accessible

-			.addAccessibleControlListener(new AccessibleControlAdapter() {

-			public void getChildAtPoint(AccessibleControlEvent e) {

-				Point pt = toControl(new Point(e.x, e.y));

-				e.childID =

-					(getBounds().contains(pt))

-						? ACC.CHILDID_SELF

-						: ACC.CHILDID_NONE;

-			}

-

-			public void getLocation(AccessibleControlEvent e) {

-				Rectangle location = getBounds();

-				Point pt = toDisplay(new Point(location.x, location.y));

-				e.x = pt.x;

-				e.y = pt.y;

-				e.width = location.width;

-				e.height = location.height;

-			}

-

-			public void getChildCount(AccessibleControlEvent e) {

-				e.detail = 0;

-			}

-

-			public void getRole(AccessibleControlEvent e) {

-				e.detail = ACC.ROLE_TEXT;

-			}

-

-			public void getState(AccessibleControlEvent e) {

-				e.detail = ACC.STATE_READONLY;

-			}

-		});

-	}

-

-	private void handleMouseClick(MouseEvent e, boolean down) {

-		if (down) {

-			// select a hyperlink

-			IHyperlinkSegment segmentUnder = model.findHyperlinkAt(e.x, e.y);

-			if (segmentUnder != null) {

-				IHyperlinkSegment oldLink = model.getSelectedLink();

-				model.selectLink(segmentUnder);

-				enterLink(segmentUnder);

-				paintFocusTransfer(oldLink, segmentUnder);

-			}

-			mouseDown = true;

-			dragOrigin = new Point(e.x, e.y);

-		} else {

-			if (e.button == 1) {

-				IHyperlinkSegment segmentUnder =

-					model.findHyperlinkAt(e.x, e.y);

-				if (segmentUnder != null) {

-					activateLink(segmentUnder);

-				}

-			}

-			mouseDown = false;

-		}

-	}

-	private void handleMouseHover(MouseEvent e) {

-	}

-	private void handleMouseMove(MouseEvent e) {

-		if (mouseDown) {

-			handleDrag(e);

-			return;

-		}

-		ITextSegment segmentUnder = model.findSegmentAt(e.x, e.y);

-

-		if (segmentUnder == null) {

-			if (entered != null) {

-				exitLink(entered);

-				paintLinkHover(entered, false);

-				entered = null;

-			}

-			setCursor(null);

-		} else {

-			if (segmentUnder instanceof IHyperlinkSegment) {

-				IHyperlinkSegment linkUnder = (IHyperlinkSegment) segmentUnder;

-				if (entered == null) {

-					entered = linkUnder;

-					enterLink(linkUnder);

-					paintLinkHover(entered, true);

-					setCursor(

-						model.getHyperlinkSettings().getHyperlinkCursor());

-				}

-			} else {

-				if (entered != null) {

-					exitLink(entered);

-					paintLinkHover(entered, false);

-					entered = null;

-				}

-				setCursor(model.getHyperlinkSettings().getTextCursor());

-			}

-		}

-	}

-

-	private void handleDrag(MouseEvent e) {

-	}

-

-	public HyperlinkSettings getHyperlinkSettings() {

-		return model.getHyperlinkSettings();

-	}

-

-	public void setHyperlinkSettings(HyperlinkSettings settings) {

-		model.setHyperlinkSettings(settings);

-	}

-

-	private boolean advance(boolean next) {

-		IHyperlinkSegment current = model.getSelectedLink();

-		if (current != null)

-			exitLink(current);

-

-		boolean valid = model.traverseLinks(next);

-		

-		IHyperlinkSegment newLink = model.getSelectedLink();

-

-		if (valid)

-			enterLink(newLink);

-		paintFocusTransfer(current, newLink);

-		if (newLink!=null) ensureVisible(newLink);

-		return !valid;

-	}

-

-	public IHyperlinkSegment getSelectedLink() {

-		return model.getSelectedLink();

-	}

-

-	private void handleFocusChange() {

-		if (hasFocus) {

-			model.traverseLinks(true);

-			enterLink(model.getSelectedLink());

-			paintFocusTransfer(null, model.getSelectedLink());

-		} else {

-			paintFocusTransfer(model.getSelectedLink(), null);

-			model.selectLink(null);

-		}

-	}

-

-	private void enterLink(IHyperlinkSegment link) {

-		if (link == null)

-			return;

-		HyperlinkAction action = link.getAction(objectTable);

-		if (action != null)

-			action.linkEntered(link);

-	}

-

-	private void exitLink(IHyperlinkSegment link) {

-		if (link == null)

-			return;

-		HyperlinkAction action = link.getAction(objectTable);

-		if (action != null)

-			action.linkExited(link);

-	}

-

-	private void paintLinkHover(IHyperlinkSegment link, boolean hover) {

-		GC gc = new GC(this);

-

-		HyperlinkSettings settings = getHyperlinkSettings();

-

-		gc.setForeground(

-			hover ? settings.getActiveForeground() : settings.getForeground());

-		gc.setBackground(getBackground());

-		gc.setFont(getFont());

-		boolean selected = (link == getSelectedLink());

-		link.repaint(gc, hover);

-		if (selected) {

-			link.paintFocus(gc, getBackground(), getForeground(), false);

-			link.paintFocus(gc, getBackground(), getForeground(), true);

-		}

-		gc.dispose();

-	}

-

-	private void activateSelectedLink() {

-		IHyperlinkSegment link = model.getSelectedLink();

-		if (link != null)

-			activateLink(link);

-	}

-

-	private void activateLink(IHyperlinkSegment link) {

-		setCursor(model.getHyperlinkSettings().getBusyCursor());

-		HyperlinkAction action = link.getAction(objectTable);

-		if (action != null)

-			action.linkActivated(link);

-		if (!isDisposed())

-			setCursor(model.getHyperlinkSettings().getHyperlinkCursor());

-	}

-

-	protected void paint(PaintEvent e) {

-		int width = getClientArea().width;

-

-		GC gc = e.gc;

-		gc.setFont(getFont());

-		gc.setForeground(getForeground());

-		gc.setBackground(getBackground());

-

-		Locator loc = new Locator();

-		loc.marginWidth = marginWidth;

-		loc.marginHeight = marginHeight;

-		loc.x = marginWidth;

-		loc.y = marginHeight;

-

-		FontMetrics fm = gc.getFontMetrics();

-		int lineHeight = fm.getHeight();

-		

-		if (loading) {

-			int textWidth = gc.textExtent(loadingText).x;

-			gc.drawText(loadingText, width/2-textWidth/2, getClientArea().height/2-lineHeight/2);

-			return;

-		}

-		

-		IParagraph[] paragraphs = model.getParagraphs();

-

-		IHyperlinkSegment selectedLink = model.getSelectedLink();

-

-		for (int i = 0; i < paragraphs.length; i++) {

-			IParagraph p = paragraphs[i];

-

-			if (i > 0 && paragraphsSeparated && p.getAddVerticalSpace())

-				loc.y += getParagraphSpacing(lineHeight);

-

-			loc.indent = p.getIndent();

-			loc.resetCaret();

-			loc.rowHeight = 0;

-			p.paint(gc, width, loc, lineHeight, objectTable, selectedLink);

-		}

-	}

-

-	public void registerTextObject(String key, Object value) {

-		objectTable.put(key, value);

-	}

-

-	public void load(String text, boolean parseTags, boolean expandURLs) {

-		try {

-			if (parseTags)

-				model.parseTaggedText(text, expandURLs);

-			else

-				model.parseRegularText(text, expandURLs);

-		} catch (CoreException e) {

-			FormsPlugin.logException(e);

-		}

-		finally {

-			loading = false;

-		}

-	}

-	public void load(InputStream is, boolean expandURLs) {

-		try {

-			model.parseInputStream(is, expandURLs);

-		} catch (CoreException e) {

-			FormsPlugin.logException(e);

-		}

-		finally {

-			loading = false;

-		}

-	}

-

-	public boolean setFocus() {

-		/*

-		if (!model.hasFocusSegments())

-			return false;

-		*/

-		return super.setFocus();

-	}

-

-	private void paintFocusTransfer(

-		IHyperlinkSegment oldLink,

-		IHyperlinkSegment newLink) {

-		GC gc = new GC(this);

-		Color bg = getBackground();

-		Color fg = getForeground();

-

-		gc.setFont(getFont());

-

-		if (oldLink != null) {

-			gc.setBackground(bg);

-			gc.setForeground(fg);

-			oldLink.paintFocus(gc, bg, fg, false);

-		}

-		if (newLink != null) {

-			//ensureVisible(newLink);

-			gc.setBackground(bg);

-			gc.setForeground(fg);

-			newLink.paintFocus(gc, bg, fg, true);

-		}

-		gc.dispose();

-	}

-	/**

-	 * Gets the marginWidth.

-	 * @return Returns a int

-	 */

-	public int getMarginWidth() {

-		return marginWidth;

-	}

-

-	/**

-	 * Sets the marginWidth.

-	 * @param marginWidth The marginWidth to set

-	 */

-	public void setMarginWidth(int marginWidth) {

-		this.marginWidth = marginWidth;

-	}

-

-	/**

-	 * Gets the marginHeight.

-	 * @return Returns a int

-	 */

-	public int getMarginHeight() {

-		return marginHeight;

-	}

-

-	/**

-	 * Sets the marginHeight.

-	 * @param marginHeight The marginHeight to set

-	 */

-	public void setMarginHeight(int marginHeight) {

-		this.marginHeight = marginHeight;

-	}

-

-	public void contextMenuAboutToShow(IMenuManager manager) {

-		IHyperlinkSegment link = getSelectedLink();

-		if (link != null)

-			contributeLinkActions(manager, link);

-	}

-

-	private void contributeLinkActions(

-		IMenuManager manager,

-		IHyperlinkSegment link) {

-		manager.add(openAction);

-		manager.add(copyShortcutAction);

-		manager.add(new Separator());

-	}

-

-	private void copyShortcut(IHyperlinkSegment link) {

-		String text = link.getText();

-		Clipboard clipboard = new Clipboard(getDisplay());

-		clipboard.setContents(

-			new Object[] { text },

-			new Transfer[] { TextTransfer.getInstance()});

-	}

-

-	private void ensureVisible(IHyperlinkSegment segment) {

-		Rectangle bounds = segment.getBounds();

-		ScrolledComposite scomp = getScrolledComposite();

-		if (scomp == null)

-			return;

-		Point origin = AbstractSectionForm.getControlLocation(scomp, this);

-		origin.x += bounds.x;

-		origin.y += bounds.y;

-		AbstractSectionForm.ensureVisible(

-			scomp,

-			origin,

-			new Point(bounds.width, bounds.height));

-	}

-	ScrolledComposite getScrolledComposite() {

-		Composite parent = getParent();

-		while (parent != null) {

-			if (parent instanceof ScrolledComposite)

-				return (ScrolledComposite) parent;

-			parent = parent.getParent();

-		}

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/FormEngineLayout.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/FormEngineLayout.java
deleted file mode 100644
index ecaee4d..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/FormEngineLayout.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.update.ui.forms.internal.ILayoutExtension;

-

-/**

- * @version 	1.0

- * @author

- */

-public class FormEngineLayout extends Layout implements ILayoutExtension {

-

-	public int getMaximumWidth(Composite parent, boolean changed) {

-		return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;

-	}

-

-	public int getMinimumWidth(Composite parent, boolean changed) {

-		return 30;

-	}

-

-	/*

-	 * @see Layout#computeSize(Composite, int, int, boolean)

-	 */

-

-	public Point computeSize(

-		Composite composite,

-		int wHint,

-		int hHint,

-		boolean changed) {

-		FormEngine engine = (FormEngine) composite;

-		int innerWidth = wHint;

-		if (engine.isLoading()) {

-			return computeLoading(engine);

-		}

-		if (innerWidth != SWT.DEFAULT)

-			innerWidth -= engine.marginWidth * 2;

-		Point textSize = computeTextSize(engine, innerWidth);

-		int textWidth = textSize.x + 2 * engine.marginWidth;

-		int textHeight = textSize.y + 2 * engine.marginHeight;

-		Point result = new Point(textWidth, textHeight);

-		return result;

-	}

-	

-	private Point computeLoading(FormEngine engine) {

-		GC gc = new GC(engine);

-		gc.setFont(engine.getFont());

-		String loadingText = engine.getLoadingText();

-		Point size = gc.textExtent(loadingText);

-		gc.dispose();

-		size.x += 2 * engine.marginWidth;

-		size.y += 2 * engine.marginHeight;

-		return size;

-	}

-

-	private Point computeTextSize(FormEngine engine, int wHint) {

-		IParagraph[] paragraphs = engine.model.getParagraphs();

-

-		GC gc = new GC(engine);

-		gc.setFont(engine.getFont());

-

-		Locator loc = new Locator();

-

-		int width = wHint != SWT.DEFAULT ? wHint : 0;

-

-		FontMetrics fm = gc.getFontMetrics();

-		int lineHeight = fm.getHeight();

-

-		for (int i = 0; i < paragraphs.length; i++) {

-			IParagraph p = paragraphs[i];

-

-			if (i > 0 && engine.paragraphsSeparated && p.getAddVerticalSpace())

-				loc.y += engine.getParagraphSpacing(lineHeight);

-

-			loc.rowHeight = 0;

-			loc.indent = p.getIndent();

-			loc.x = p.getIndent();

-

-			IParagraphSegment[] segments = p.getSegments();

-			if (segments.length > 0) {

-				for (int j = 0; j < segments.length; j++) {

-					IParagraphSegment segment = segments[j];

-					segment.advanceLocator(gc, wHint, loc, engine.objectTable);

-					width = Math.max(width, loc.width);

-				}

-				loc.y += loc.rowHeight;

-			} else {

-				// empty new line

-				loc.y += lineHeight;

-			}

-		}

-		gc.dispose();

-		return new Point(width, loc.y);

-	}

-

-	/*

-	 * @see Layout#layout(Composite, boolean)

-	 */

-	protected void layout(Composite composite, boolean flushCache) {

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HTTPAction.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HTTPAction.java
deleted file mode 100644
index cd3d0b5..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HTTPAction.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-import org.eclipse.swt.program.Program;

-

-/**

- * @version 	1.0

- * @author

- */

-public class HTTPAction extends HyperlinkAction {

-	public HTTPAction () {

-	}

-	

-	public void linkActivated(IHyperlinkSegment link) {

-		Program.launch(link.getText());

-	}

-	

-	public void linkEntered(IHyperlinkSegment link) {

-		setDescription(link.getText());

-		super.linkEntered(link);

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HyperlinkAction.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HyperlinkAction.java
deleted file mode 100644
index 3b11a68..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HyperlinkAction.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import org.eclipse.jface.action.IStatusLineManager;

-

-/**

- * @version 	1.0

- * @author

- */

-public class HyperlinkAction {

-	IStatusLineManager manager;

-	private String description;

-	

-	public HyperlinkAction() {

-	}

-	

-	public void linkActivated(final IHyperlinkSegment link) {

-	}

-	

-	public void linkEntered(IHyperlinkSegment link) {

-		if (manager!=null && description!=null) {

-			manager.setMessage(description);

-		}

-	}

-

-	public void linkExited(IHyperlinkSegment link) {

-		if (manager!=null && description!=null) {

-			manager.setMessage(null);

-		}

-	}

-	

-	public void setStatusLineManager(IStatusLineManager manager) {

-		this.manager = manager;

-	}

-	

-	public String getDescription() {

-		return description;

-	}

-	public void setDescription(String description) {

-		this.description = description;

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HyperlinkSegment.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HyperlinkSegment.java
deleted file mode 100644
index 2c41587..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/HyperlinkSegment.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import java.util.Hashtable;

-import org.eclipse.update.ui.forms.internal.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.graphics.GC;

-

-/**

- * @version 	1.0

- * @author

- */

-public class HyperlinkSegment

-	extends TextSegment

-	implements IHyperlinkSegment {

-	private String actionId;

-	private String arg;

-	private HyperlinkSettings settings;

-	

-	public HyperlinkSegment(String text, HyperlinkSettings settings, String fontId) {

-		super(text, fontId);

-		this.settings = settings;

-		underline = settings.getHyperlinkUnderlineMode()==HyperlinkSettings.UNDERLINE_ALWAYS;

-	}

-	

-	/*

-	 * @see IHyperlinkSegment#getListener(Hashtable)

-	 */

-	public HyperlinkAction getAction(Hashtable objectTable) {

-		if (actionId==null) return null;

-		Object obj = objectTable.get(actionId);

-		if (obj==null) return null;

-		if (obj instanceof HyperlinkAction) return (HyperlinkAction)obj;

-		return null;

-	}

-	

-	/*

-	 * @see IObjectReference#getObjectId()

-	 */

-	public String getObjectId() {

-		return actionId;

-	}

-	

-	void setActionId(String id) {

-		this.actionId = id;

-	}

-	public void paint(GC gc, int width, Locator locator, Hashtable objectTable, boolean selected) {

-		setColor(settings.getForeground());

-		super.paint(gc, width, locator, objectTable, selected);

-	}

-	

-	public void repaint(GC gc, boolean hover) {

-		FontMetrics fm = gc.getFontMetrics();

-		int lineHeight = fm.getHeight();

-		int descent = fm.getDescent();

-		boolean rolloverMode = settings.getHyperlinkUnderlineMode()==HyperlinkSettings.UNDERLINE_ROLLOVER;

-		for (int i=0; i<areaRectangles.size(); i++) {

-			AreaRectangle areaRectangle = (AreaRectangle)areaRectangles.get(i);

-			Rectangle rect = areaRectangle.rect;

-			String text = areaRectangle.getText();

-			Point extent = gc.textExtent(text);

-			int textX = rect.x + 1;

-			gc.drawString(text, textX, rect.y, true);

-			if (underline || hover || rolloverMode) {

-				int lineY = rect.y + lineHeight - descent + 1;

-				Color saved=null;

-				if (rolloverMode && !hover) {

-					saved = gc.getForeground();

-					gc.setForeground(gc.getBackground());

-				}

-				gc.drawLine(textX, lineY, textX+extent.x, lineY);

-				if (saved!=null)

-					gc.setForeground(saved);

-			}

-		}

-	}

-	/**

-	 * @return

-	 */

-	public String getArg() {

-		return arg;

-	}

-

-	/**

-	 * @param string

-	 */

-	public void setArg(String string) {

-		arg = string;

-	}

-

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IBulletParagraph.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IBulletParagraph.java
deleted file mode 100644
index 55f3383..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IBulletParagraph.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;
-
-import org.eclipse.swt.graphics.GC;
-import java.util.Hashtable;
-
-public interface IBulletParagraph extends IParagraph {
-	int CIRCLE = 0;
-	int TEXT = 1;
-	int IMAGE = 2;
-	public int getBulletStyle();
-	public String getBulletText();
-
-	public void paintBullet(GC gc, Locator loc, int lineHeight, Hashtable objectTable);
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IHyperlinkSegment.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IHyperlinkSegment.java
deleted file mode 100644
index ea5b58a..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IHyperlinkSegment.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import java.util.Hashtable;

-

-import org.eclipse.swt.graphics.GC;

-

-/**

- * @version 	1.0

- * @author

- */

-public interface IHyperlinkSegment extends ITextSegment, IObjectReference {

-	HyperlinkAction getAction(Hashtable objectTable);

-	

-	boolean contains(int x, int y);

-	

-	String getArg();

-	

-	public void repaint(GC gc, boolean hover);

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IImageSegment.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IImageSegment.java
deleted file mode 100644
index 1e9bd56..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IImageSegment.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-import org.eclipse.swt.graphics.Image;

-import java.util.Hashtable;

-

-/**

- * @version 	1.0

- * @author

- */

-public interface IImageSegment extends IParagraphSegment, IObjectReference {

-	public static final int TOP = 1;

-	public static final int MIDDLE = 2;

-	public static final int BOTTOM = 3;

-	

-	public int getVerticalAlignment();

-

-	Image getImage(Hashtable objectTable);

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IObjectReference.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IObjectReference.java
deleted file mode 100644
index f12a7eb..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IObjectReference.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-/**

- * @version 	1.0

- * @author

- */

-public interface IObjectReference {

-	public String getObjectId();

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IParagraph.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IParagraph.java
deleted file mode 100644
index fb336eb..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IParagraph.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-

-import org.eclipse.swt.graphics.GC;

-import java.util.Hashtable;

-

-/**

- * @version 	1.0

- * @author

- */

-public interface IParagraph {

-	public int getIndent();

-	public IParagraphSegment [] getSegments();

-	public void addSegment(IParagraphSegment segment);

-	public boolean getAddVerticalSpace();

-	public ITextSegment findSegmentAt(int x, int y);

-	public void paint(GC gc, int width, Locator loc, int lineHeight, Hashtable objectTable, IHyperlinkSegment selectedLink);

-	public String getAccessibleText();

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IParagraphSegment.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IParagraphSegment.java
deleted file mode 100644
index 9217105..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/IParagraphSegment.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import org.eclipse.swt.graphics.GC;

-import java.util.Hashtable;

-

-/**

- * @version 	1.0

- * @author

- */

-public interface IParagraphSegment {

-	

-	public void advanceLocator(GC gc, int wHint, Locator loc, Hashtable objectTable);

-	

-	public void paint(GC gc, int width, Locator loc, Hashtable objectTable, boolean selected);

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ITextModel.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ITextModel.java
deleted file mode 100644
index 4071ad2..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ITextModel.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import org.eclipse.core.runtime.CoreException;

-

-/**

- * @version 	1.0

- * @author

- */

-public interface ITextModel {

-	IParagraph [] getParagraphs();

-	public void parseTaggedText(String taggedText, boolean expandURLs) throws CoreException;

-	public void parseRegularText(String regularText, boolean expandURLs) throws CoreException;

-	public void dispose();

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ITextSegment.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ITextSegment.java
deleted file mode 100644
index 47e5fb0..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ITextSegment.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import org.eclipse.swt.graphics.*;

-

-/**

- * @version 	1.0

- * @author

- */

-public interface ITextSegment extends IParagraphSegment {

-	String getText();

-	Color getColor();

-	Font getFont();

-	boolean isWordWrapAllowed();

-	boolean isSelectable();

-	boolean contains(int x, int y);

-	Rectangle getBounds();

-	void paintFocus(GC gc, Color bg, Color fg, boolean selected);

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ImageSegment.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ImageSegment.java
deleted file mode 100644
index 4c84cb9..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ImageSegment.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import org.eclipse.swt.graphics.*;

-import java.util.Hashtable;

-import org.eclipse.swt.SWT;

-

-/**

- * @version 	1.0

- * @author

- */

-public class ImageSegment extends ParagraphSegment implements IImageSegment {

-	private int alignment = BOTTOM;

-	private String imageId;

-	

-	public int getVerticalAlignment() {

-		return alignment;

-	}

-	

-	void setVerticalAlignment(int alignment) {

-		this.alignment = alignment;

-	}

-	

-	public Image getImage(Hashtable objectTable) {

-		if (imageId==null) return null;

-		Object obj = objectTable.get(imageId);

-		if (obj==null) return null;

-		if (obj instanceof Image) return (Image)obj;

-		return null;

-	}

-	

-	public String getObjectId() {

-		return imageId;

-	}

-	

-	void setObjectId(String imageId) {

-		this.imageId = imageId;

-	}

-	

-	public void advanceLocator(GC gc, int wHint, Locator loc, Hashtable objectTable) {

-		Image image = getImage(objectTable);

-		int iwidth = 0;

-		int iheight = 0;

-		if (image!=null) {

-			Rectangle rect = image.getBounds();

-			iwidth = rect.width;

-			iheight = rect.height;

-		}

-		if (wHint != SWT.DEFAULT && loc.x + iwidth > wHint) {

-			// new line

-			loc.x = loc.indent + iwidth;

-			loc.width = loc.x;

-			loc.y += loc.rowHeight;

-			loc.rowHeight = iheight;

-		}

-		else {

-			loc.x += iwidth;

-			loc.rowHeight = Math.max(loc.rowHeight, iheight);

-		}

-	}

-

-	public void paint(GC gc, int width, Locator loc, Hashtable objectTable, boolean selected) {

-		Image image = getImage(objectTable);

-		int iwidth = 0;

-		int iheight = 0;

-		if (image!=null) {

-			Rectangle rect = image.getBounds();

-			iwidth = rect.width;

-			iheight = rect.height;

-		}

-		else return;

-		loc.width = iwidth;

-		loc.height = iheight;

-		

-		int ix = loc.x;

-		int iy = loc.y;

-		

-		if (ix + iwidth > width) {

-			// new row

-			ix = loc.indent + loc.marginWidth;

-			iy += loc.rowHeight;

-			loc.rowHeight = 0;

-		}

-		

-		gc.drawImage(image, ix, iy);

-		loc.x = ix + iwidth;

-		loc.y = iy;

-		loc.rowHeight = Math.max(loc.rowHeight, iheight);

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Locator.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Locator.java
deleted file mode 100644
index 350154b..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Locator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-/**

- * @version 	1.0

- * @author

- */

-public class Locator { 

-	public int indent;

-	public int x, y;

-	public int width, height;

-	public int rowHeight;

-	public int marginWidth;

-	public int marginHeight;

-	

-	public void newLine() {

-		resetCaret();

-		y += rowHeight;

-		rowHeight = 0;

-	}

-	

-	public void resetCaret() {

-		x = marginWidth + indent;

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Paragraph.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Paragraph.java
deleted file mode 100644
index a9a4352..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Paragraph.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import java.io.*;

-import java.util.*;

-

-import org.eclipse.swt.graphics.GC;

-import org.eclipse.update.ui.forms.internal.HyperlinkSettings;

-

-/**

- * @version 	1.0

- * @author

- */

-public class Paragraph implements IParagraph {

-	public static final String HTTP = "http://";

-	private Vector segments;

-	private boolean addVerticalSpace = true;

-

-	public Paragraph(boolean addVerticalSpace) {

-		this.addVerticalSpace = addVerticalSpace;

-	}

-

-	public int getIndent() {

-		return 0;

-	}

-

-	public boolean getAddVerticalSpace() {

-		return addVerticalSpace;

-	}

-

-	/*

-	 * @see IParagraph#getSegments()

-	 */

-	public IParagraphSegment[] getSegments() {

-		if (segments == null)

-			return new IParagraphSegment[0];

-		return (IParagraphSegment[]) segments.toArray(

-			new IParagraphSegment[segments.size()]);

-	}

-

-	public void addSegment(IParagraphSegment segment) {

-		if (segments == null)

-			segments = new Vector();

-		segments.add(segment);

-	}

-

-	public void parseRegularText(

-		String text,

-		boolean expandURLs,

-		HyperlinkSettings settings,

-		String fontId) {

-		if (text.length() == 0)

-			return;

-		if (expandURLs) {

-			int loc = text.indexOf(HTTP);

-

-			if (loc == -1)

-				addSegment(new TextSegment(text, fontId));

-			else {

-				int textLoc = 0;

-				while (loc != -1) {

-					addSegment(new TextSegment(text.substring(textLoc, loc), fontId));

-					boolean added = false;

-					for (textLoc = loc; textLoc < text.length(); textLoc++) {

-						char c = text.charAt(textLoc);

-						if (Character.isSpaceChar(c)) {

-							addHyperlinkSegment(text.substring(loc, textLoc), settings, fontId);

-							added = true;

-							break;

-						}

-					}

-					if (!added) {

-						// there was no space - just end of text

-						addHyperlinkSegment(text.substring(loc), settings, fontId);

-						break;

-					}

-					loc = text.indexOf(HTTP, textLoc);

-				}

-				if (textLoc < text.length()) {

-					addSegment(new TextSegment(text.substring(textLoc), fontId));

-				}

-			}

-		} else {

-			addSegment(new TextSegment(text, fontId));

-		}

-	}

-

-	private void addHyperlinkSegment(

-		String text,

-		HyperlinkSettings settings,

-		String fontId) {

-		HyperlinkSegment hs = new HyperlinkSegment(text, settings, fontId);

-		hs.setWordWrapAllowed(false);

-		hs.setActionId(FormEngine.URL_HANDLER_ID);

-		addSegment(hs);

-	}

-

-	public void paint(

-		GC gc,

-		int width,

-		Locator loc,

-		int lineHeight,

-		Hashtable objectTable,

-		IHyperlinkSegment selectedLink) {

-		IParagraphSegment [] segments = getSegments();

-		if (segments.length > 0) {

-			if (segments[0] instanceof ITextSegment

-				&& ((ITextSegment) segments[0]).isSelectable())

-				loc.x += 1;

-			for (int j = 0; j < segments.length; j++) {

-				IParagraphSegment segment = segments[j];

-				boolean doSelect = false;

-				if (selectedLink != null && segment.equals(selectedLink))

-					doSelect = true;

-				segment.paint(gc, width, loc, objectTable, doSelect);

-			}

-			loc.y += loc.rowHeight;

-		} else {

-			loc.y += lineHeight;

-		}

-	}

-	public String getAccessibleText() {

-		IParagraphSegment [] segments = getSegments();

-		StringWriter swriter = new StringWriter();

-		PrintWriter writer = new PrintWriter(swriter);

-		for (int i = 0; i < segments.length; i++) {

-			IParagraphSegment segment = segments[i];

-			if (segment instanceof ITextSegment) {

-				String text = ((ITextSegment)segment).getText();

-				writer.print(text);

-			}

-		}

-		writer.println();

-		swriter.flush();

-		return swriter.toString();

-	}

-	public ITextSegment findSegmentAt(int x, int y) {

-		if (segments!=null) {

-			for (int i=0; i<segments.size(); i++) {

-				IParagraphSegment segment = (IParagraphSegment)segments.get(i);

-				if (segment instanceof ITextSegment) {

-					ITextSegment textSegment = (ITextSegment)segment;

-					if (textSegment.contains(x, y))

-						return textSegment;

-				}

-			}

-		}

-		return null;

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ParagraphSegment.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ParagraphSegment.java
deleted file mode 100644
index 7d16aac..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/ParagraphSegment.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-/**

- * @version 	1.0

- * @author

- */

-public abstract class ParagraphSegment implements IParagraphSegment {

-

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/TextModel.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/TextModel.java
deleted file mode 100644
index 0ec9682..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/TextModel.java
+++ /dev/null
@@ -1,457 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import java.io.*;

-import java.util.*;

-import javax.xml.parsers.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.jface.resource.*;

-import org.eclipse.update.ui.forms.internal.*;

-import org.w3c.dom.*;

-import org.xml.sax.*;

-

-/**

- * @version 	1.0

- * @author

- */

-public class TextModel implements ITextModel {

-	private static final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();

-

-	Vector paragraphs;

-	IHyperlinkListener urlListener;

-	IHyperlinkSegment[] hyperlinks;

-	int selectedLinkIndex = -1;

-	HyperlinkSettings hyperlinkSettings;

-	

-	public TextModel() {

-		reset();

-	}

-

-	class LocalHyperlinkSettings extends HyperlinkSettings {

-	}

-

-	/*

-	 * @see ITextModel#getParagraphs()

-	 */

-	public IParagraph[] getParagraphs() {

-		if (paragraphs == null)

-			return new IParagraph[0];

-		return (IParagraph[]) paragraphs.toArray(

-			new IParagraph[paragraphs.size()]);

-	}

-	

-	public String getAccessibleText() {

-		if (paragraphs == null)

-			return "";

-		StringBuffer sbuf = new StringBuffer();

-		for (int i=0; i<paragraphs.size(); i++) {

-			IParagraph paragraph  = (IParagraph)paragraphs.get(i);

-			String text = paragraph.getAccessibleText();

-			sbuf.append(text);

-		}

-		return sbuf.toString();

-	}

-

-	/*

-	 * @see ITextModel#parse(String)

-	 */

-	public void parseTaggedText(String taggedText, boolean expandURLs)

-		throws CoreException {

-		if (taggedText==null) {

-			reset();

-			return;

-		}

-		try {

-			InputStream stream =

-				new ByteArrayInputStream(taggedText.getBytes("UTF8"));

-			parseInputStream(stream, expandURLs);

-		} catch (UnsupportedEncodingException e) {

-		}

-	}

-

-	public void parseInputStream(InputStream is, boolean expandURLs)

-		throws CoreException {

-			

-		documentBuilderFactory.setNamespaceAware(true);

-	

-		reset();

-		try {

-			DocumentBuilder parser = documentBuilderFactory.newDocumentBuilder();

-			InputSource source = new InputSource(is);

-			Document doc = parser.parse(source);

-			processDocument(doc, expandURLs);

-		} catch (ParserConfigurationException e) {

-			FormsPlugin.logException(e);

-		} catch (SAXException e) {

-			FormsPlugin.logException(e);

-		} catch (IOException e) {

-			FormsPlugin.logException(e);

-		}

-	}

-

-	private void processDocument(Document doc, boolean expandURLs) {

-		Node root = doc.getDocumentElement();

-		NodeList children = root.getChildNodes();

-		for (int i = 0; i < children.getLength(); i++) {

-			Node child = children.item(i);

-			if (child.getNodeType() == Node.TEXT_NODE) {

-				// Make an implicit paragraph

-				String text = child.getNodeValue();

-				if (text != null && !isIgnorableWhiteSpace(text, true)) {

-					Paragraph p = new Paragraph(true);

-					p.parseRegularText(

-						text,

-						expandURLs,

-						getHyperlinkSettings(),

-						null);

-					paragraphs.add(p);

-				}

-			} else if (child.getNodeType() == Node.ELEMENT_NODE) {

-				String tag = child.getNodeName().toLowerCase();

-				if (tag.equals("p")) {

-					IParagraph p = processParagraph(child, expandURLs);

-					if (p != null)

-						paragraphs.add(p);

-				} else if (tag.equals("li")) {

-					IParagraph p = processListItem(child, expandURLs);

-					if (p != null)

-						paragraphs.add(p);

-				}

-			}

-		}

-	}

-	private IParagraph processParagraph(Node paragraph, boolean expandURLs) {

-		NodeList children = paragraph.getChildNodes();

-		NamedNodeMap atts = paragraph.getAttributes();

-		Node addSpaceAtt = atts.getNamedItem("addVerticalSpace");

-		boolean addSpace = true;

-

-		if (addSpaceAtt != null) {

-			String value = addSpaceAtt.getNodeValue();

-			addSpace = value.equalsIgnoreCase("true");

-		}

-		Paragraph p = new Paragraph(addSpace);

-

-		processSegments(p, children, expandURLs);

-		return p;

-	}

-	private IParagraph processListItem(Node listItem, boolean expandURLs) {

-		NodeList children = listItem.getChildNodes();

-		NamedNodeMap atts = listItem.getAttributes();

-		Node addSpaceAtt = atts.getNamedItem("addVerticalSpace");

-		Node styleAtt = atts.getNamedItem("style");

-		Node valueAtt = atts.getNamedItem("value");

-		Node indentAtt = atts.getNamedItem("indent");

-		int style = IBulletParagraph.CIRCLE;

-		int indent = -1;

-		String text = null;

-		boolean addSpace = true;

-

-		if (addSpaceAtt != null) {

-			String value = addSpaceAtt.getNodeValue();

-			addSpace = value.equalsIgnoreCase("true");

-		}

-		if (styleAtt != null) {

-			String value = styleAtt.getNodeValue();

-			if (value.equalsIgnoreCase("text")) {

-				style = IBulletParagraph.TEXT;

-			} else if (value.equalsIgnoreCase("image")) {

-				style = IBulletParagraph.IMAGE;

-			}

-		}

-		if (valueAtt != null) {

-			text = valueAtt.getNodeValue();

-		}

-		if (indentAtt != null) {

-			String value = indentAtt.getNodeValue();

-			try {

-				indent = Integer.parseInt(value);

-			} catch (NumberFormatException e) {

-			}

-		}

-

-		BulletParagraph p = new BulletParagraph(addSpace);

-		p.setIndent(indent);

-		p.setBulletStyle(style);

-		p.setBulletText(text);

-

-		processSegments(p, children, expandURLs);

-		return p;

-	}

-

-	private void processSegments(

-		Paragraph p,

-		NodeList children,

-		boolean expandURLs) {

-		for (int i = 0; i < children.getLength(); i++) {

-			Node child = children.item(i);

-			IParagraphSegment segment = null;

-

-			if (child.getNodeType() == Node.TEXT_NODE) {

-				String value = child.getNodeValue();

-

-				if (value != null && !isIgnorableWhiteSpace(value, false)) {

-					p.parseRegularText(

-						value,

-						expandURLs,

-						getHyperlinkSettings(),

-						null);

-				}

-			} else if (child.getNodeType() == Node.ELEMENT_NODE) {

-				String name = child.getNodeName();

-				if (name.equalsIgnoreCase("img")) {

-					segment = processImageSegment(child);

-				} else if (name.equalsIgnoreCase("a")) {

-					segment =

-						processHyperlinkSegment(child, getHyperlinkSettings());

-				} else if (name.equalsIgnoreCase("text")) {

-					processTextSegment(p, expandURLs, child);

-				} else if (name.equalsIgnoreCase("b")) {

-					String text = getNodeText(child).trim();

-					String fontId = JFaceResources.BANNER_FONT;

-					p.parseRegularText(

-						text,

-						expandURLs,

-						getHyperlinkSettings(),

-						fontId);

-				}

-			}

-			if (segment != null) {

-				p.addSegment(segment);

-			}

-		}

-	}

-

-	private boolean isIgnorableWhiteSpace(String text, boolean ignoreSpaces) {

-		for (int i = 0; i < text.length(); i++) {

-			char c = text.charAt(i);

-			if (ignoreSpaces && c == ' ')

-				continue;

-			if (c == '\n' || c == '\r' || c == '\f')

-				continue;

-			return false;

-		}

-		return true;

-	}

-

-	private IParagraphSegment processImageSegment(Node image) {

-		ImageSegment segment = new ImageSegment();

-		NamedNodeMap atts = image.getAttributes();

-		Node id = atts.getNamedItem("href");

-		Node align = atts.getNamedItem("align");

-		if (id != null) {

-			String value = id.getNodeValue();

-			segment.setObjectId(value);

-		}

-		if (align != null) {

-			String value = align.getNodeValue().toLowerCase();

-			if (value.equals("top"))

-				segment.setVerticalAlignment(ImageSegment.TOP);

-			else if (value.equals("middle"))

-				segment.setVerticalAlignment(ImageSegment.MIDDLE);

-			else if (value.equals("bottom"))

-				segment.setVerticalAlignment(ImageSegment.BOTTOM);

-		}

-		return segment;

-	}

-

-	private String getNodeText(Node node) {

-		NodeList children = node.getChildNodes();

-		String text = "";

-		for (int i = 0; i < children.getLength(); i++) {

-			Node child = children.item(i);

-			if (child.getNodeType() == Node.TEXT_NODE) {

-				text += child.getNodeValue();

-			}

-		}

-		return text;

-	}

-

-	private IParagraphSegment processHyperlinkSegment(

-		Node link,

-		HyperlinkSettings settings) {

-		String text = getNodeText(link);

-		HyperlinkSegment segment = new HyperlinkSegment(text, settings, null);

-		NamedNodeMap atts = link.getAttributes();

-		Node href = atts.getNamedItem("href");

-		if (href != null) {

-			String value = href.getNodeValue();

-			segment.setActionId(value);

-		}

-		Node arg = atts.getNamedItem("arg");

-		if (arg != null) {

-			String value = arg.getNodeValue();

-			segment.setArg(value);

-		}

-		return segment;

-	}

-

-	private void processTextSegment(

-		Paragraph p,

-		boolean expandURLs,

-		Node textNode) {

-		String text = getNodeText(textNode).trim();

-

-		NamedNodeMap atts = textNode.getAttributes();

-		Node font = atts.getNamedItem("font");

-		String fontId = null;

-		if (font != null) {

-			fontId = font.getNodeValue();

-		}

-		p.parseRegularText(text, expandURLs, getHyperlinkSettings(), fontId);

-	}

-

-	public void parseRegularText(String regularText, boolean convertURLs)

-		throws CoreException {

-		reset();

-		

-		if (regularText==null) return;

-

-		Paragraph p = new Paragraph(true);

-		paragraphs.add(p);

-		int pstart = 0;

-

-		for (int i = 0; i < regularText.length(); i++) {

-			char c = regularText.charAt(i);

-			if (p == null) {

-				p = new Paragraph(true);

-				paragraphs.add(p);

-			}

-			if (c == '\n') {

-				String text = regularText.substring(pstart, i);

-				pstart = i + 1;

-				p.parseRegularText(

-					text,

-					convertURLs,

-					getHyperlinkSettings(),

-					null);

-				p = null;

-			}

-		}

-		if (p != null) {

-			// no new line

-			String text = regularText.substring(pstart);

-			p.parseRegularText(text, convertURLs, getHyperlinkSettings(), null);

-		}

-	}

-

-	public HyperlinkSettings getHyperlinkSettings() {

-		if (hyperlinkSettings == null) {

-			hyperlinkSettings = new LocalHyperlinkSettings();

-		}

-		return hyperlinkSettings;

-	}

-

-	public void setHyperlinkSettings(HyperlinkSettings settings) {

-		this.hyperlinkSettings = settings;

-	}

-

-	public void setURLListener(IHyperlinkListener urlListener) {

-		this.urlListener = urlListener;

-	}

-

-	private void reset() {

-		if (paragraphs == null)

-			paragraphs = new Vector();

-		paragraphs.clear();

-		selectedLinkIndex = -1;

-		hyperlinks = null;

-	}

-

-	IHyperlinkSegment[] getHyperlinks() {

-		if (hyperlinks != null || paragraphs == null)

-			return hyperlinks;

-		Vector result = new Vector();

-		for (int i = 0; i < paragraphs.size(); i++) {

-			IParagraph p = (IParagraph) paragraphs.get(i);

-			IParagraphSegment[] segments = p.getSegments();

-			for (int j = 0; j < segments.length; j++) {

-				if (segments[j] instanceof IHyperlinkSegment)

-					result.add(segments[j]);

-			}

-		}

-		hyperlinks =

-			(IHyperlinkSegment[]) result.toArray(

-				new IHyperlinkSegment[result.size()]);

-		return hyperlinks;

-	}

-

-	public IHyperlinkSegment findHyperlinkAt(int x, int y) {

-		IHyperlinkSegment[] links = getHyperlinks();

-		for (int i = 0; i < links.length; i++) {

-			if (links[i].contains(x, y))

-				return links[i];

-		}

-		return null;

-	}

-	public ITextSegment findSegmentAt(int x, int y) {

-		for (int i = 0; i < paragraphs.size(); i++) {

-			IParagraph p = (IParagraph) paragraphs.get(i);

-			ITextSegment segment = p.findSegmentAt(x, y);

-			if (segment != null)

-				return segment;

-		}

-		return null;

-	}

-

-	public IHyperlinkSegment getSelectedLink() {

-		if (selectedLinkIndex == -1)

-			return null;

-		return hyperlinks[selectedLinkIndex];

-	}

-

-	public boolean traverseLinks(boolean next) {

-		IHyperlinkSegment[] links = getHyperlinks();

-		if (links == null)

-			return false;

-		int size = links.length;

-		if (next) {

-			selectedLinkIndex++;

-		} else

-			selectedLinkIndex--;

-

-		if (selectedLinkIndex < 0 || selectedLinkIndex > size - 1) {

-			selectedLinkIndex = -1;

-		}

-		return selectedLinkIndex != -1;

-	}

-

-	public void selectLink(IHyperlinkSegment link) {

-		if (link == null)

-			selectedLinkIndex = -1;

-		else {

-			IHyperlinkSegment[] links = getHyperlinks();

-			selectedLinkIndex = -1;

-			if (links == null)

-				return;

-			for (int i = 0; i < links.length; i++) {

-				if (links[i].equals(link)) {

-					selectedLinkIndex = i;

-					break;

-				}

-			}

-		}

-	}

-

-	public boolean hasFocusSegments() {

-		IHyperlinkSegment[] links = getHyperlinks();

-		if (links.length > 0)

-			return true;

-		return false;

-	}

-

-	public void dispose() {

-		if (hyperlinkSettings instanceof LocalHyperlinkSettings)

-			hyperlinkSettings.dispose();

-	}

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/TextSegment.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/TextSegment.java
deleted file mode 100644
index 49ec5d1..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/TextSegment.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.ui.forms.internal.engine;

-

-import org.eclipse.swt.graphics.*;

-import org.eclipse.jface.resource.JFaceResources;

-import java.util.Hashtable;

-import org.eclipse.swt.SWT;

-import java.text.BreakIterator;

-import java.util.Vector;

-

-/**

- * @version 	1.0

- * @author

- */

-public class TextSegment extends ParagraphSegment implements ITextSegment {

-	private Color color;

-	private String fontId;

-	private String text;

-	protected boolean underline;

-	private boolean wrapAllowed = true;

-	protected Vector areaRectangles = new Vector();

-	

-	class AreaRectangle {

-		Rectangle rect;

-		int from, to;

-		public AreaRectangle(Rectangle rect, int from, int to) {

-			this.rect = rect;

-			this.from = from;

-			this.to = to;

-		}

-		public boolean contains(int x, int y) {

-			return rect.contains(x, y);

-		}

-		public String getText() {

-			if (from==0 && to== -1)

-				return TextSegment.this.getText();

-			if (from >0 && to == -1)

-				return TextSegment.this.getText().substring(from);

-			return TextSegment.this.getText().substring(from, to);

-		}

-	}

-	

-	public TextSegment(String text, String fontId) {

-		this.text = cleanup(text);

-		this.fontId = fontId;

-	}

-

-	private String cleanup(String text) {

-		StringBuffer buf = new StringBuffer();

-		for (int i = 0; i < text.length(); i++) {

-			char c = text.charAt(i);

-			if (c == '\n' || c == '\r' || c=='\f') {

-				if (i > 0)

-					buf.append(' ');

-			} else

-				buf.append(c);

-		}

-		return buf.toString();

-	}

-

-	public void setWordWrapAllowed(boolean value) {

-		wrapAllowed = value;

-	}

-

-	public boolean isWordWrapAllowed() {

-		return wrapAllowed;

-	}

-	

-	public boolean isSelectable() {

-		return false;

-	}

-

-	public Color getColor() {

-		return color;

-	}

-

-	public Font getFont() {

-		if (fontId == null)

-			return JFaceResources.getDefaultFont();

-		else

-			return JFaceResources.getFontRegistry().get(fontId);

-	}

-

-	public String getText() {

-		return text;

-	}

-

-	void setText(String text) {

-		this.text = cleanup(text);

-	}

-

-	void setColor(Color color) {

-		this.color = color;

-	}

-

-	void setFontId(String fontId) {

-		this.fontId = fontId;

-	}

-

-	public boolean contains(int x, int y) {

-		for (int i = 0; i < areaRectangles.size(); i++) {

-			AreaRectangle ar = (AreaRectangle) areaRectangles.get(i);

-			if (ar.contains(x, y))

-				return true;

-		}

-		return false;

-	}

-	

-	public Rectangle getBounds() {

-		int x=0, y=0;

-		int width = 0, height = 0;

-		

-		for (int i=0; i<areaRectangles.size(); i++) {

-			AreaRectangle ar = (AreaRectangle)areaRectangles.get(i);

-			if (i==0) y = ar.rect.y;

-			x = Math.min(ar.rect.x, x);

-			width = Math.max(ar.rect.width, width);

-			height += ar.rect.height;

-		}

-		return new Rectangle(x, y, width, height);

-	}

-

-	public void advanceLocator(

-		GC gc,

-		int wHint,

-		Locator locator,

-		Hashtable objectTable) {

-		Font oldFont = null;

-		if (fontId != null) {

-			oldFont = gc.getFont();

-			gc.setFont(getFont());

-		}

-		FontMetrics fm = gc.getFontMetrics();

-		int lineHeight = fm.getHeight();

-

-		if (wHint == SWT.DEFAULT || !wrapAllowed) {

-			Point extent = gc.textExtent(text);

-

-			if (locator.x + extent.x > wHint) {

-				// new line

-				locator.x = isSelectable()?locator.indent+1:locator.indent;

-				locator.y += locator.rowHeight;

-				locator.rowHeight = 0;

-			}

-			int width = extent.x;

-			if (isSelectable()) width+=2;

-			locator.x += width;

-			locator.width = width;

-			locator.height = extent.y;

-			locator.rowHeight = Math.max(locator.rowHeight, extent.y);

-			return;

-		}

-

-		BreakIterator wb = BreakIterator.getLineInstance();

-		wb.setText(text);

-

-		int saved = 0;

-		int last = 0;

-

-		int width = 0;

-

-		Point lastExtent = null;

-

-		for (int loc = wb.first(); loc != BreakIterator.DONE; loc = wb.next()) {

-			String word = text.substring(saved, loc);

-			Point extent = gc.textExtent(word);

-

-			if (locator.x + extent.x > wHint) {

-				// overflow

-				String savedWord = text.substring(saved, last);

-				if (lastExtent==null)

-				   lastExtent = gc.textExtent(savedWord);

-				int lineWidth = locator.x + lastExtent.x;

-				if (isSelectable()) lineWidth+=2;

-

-				saved = last;

-				locator.rowHeight = Math.max(locator.rowHeight, lastExtent.y);

-				locator.x = isSelectable()?locator.indent+1:locator.indent;

-				locator.y += locator.rowHeight;

-				locator.rowHeight = 0;

-				width = Math.max(width, lineWidth);

-			}

-			last = loc;

-			lastExtent = extent;

-		}

-		String lastString = text.substring(saved, last);

-		Point extent = gc.textExtent(lastString);

-		int lineWidth = extent.x;

-		if (isSelectable()) lineWidth += 2;

-		locator.x += lineWidth;

-		locator.width = width;

-		locator.height = lineHeight;

-		locator.rowHeight = Math.max(locator.rowHeight, extent.y);

-		if (oldFont != null) {

-			gc.setFont(oldFont);

-		}

-	}

-	

-	public void paint(

-		GC gc,

-		int width,

-		Locator locator,

-		Hashtable objectTable,

-		boolean selected) {

-		Font oldFont = null;

-		Color oldColor = null;

-

-		areaRectangles.clear();

-

-		if (fontId != null) {

-			oldFont = gc.getFont();

-			gc.setFont(getFont());

-		}

-		if (color != null) {

-			oldColor = gc.getForeground();

-			gc.setForeground(color);

-		}

-		FontMetrics fm = gc.getFontMetrics();

-		int lineHeight = fm.getHeight();

-		int descent = fm.getDescent();

-

-		if (!wrapAllowed) {

-			Point extent = gc.textExtent(text);

-			int ewidth = extent.x;

-			if (isSelectable()) ewidth += 2;

-

-			if (locator.x + ewidth > width) {

-				// new line

-				locator.resetCaret();

-				if (isSelectable()) locator.x += 1;

-				locator.y += locator.rowHeight;

-				locator.rowHeight = 0;

-			}

-			gc.drawString(text, locator.x, locator.y);

-			if (underline) {

-				int lineY = locator.y + lineHeight - descent + 1;

-				gc.drawLine(locator.x, lineY, locator.x + extent.x, lineY);

-			}

-			Rectangle br =

-				new Rectangle(locator.x - 1, locator.y, extent.x + 2, lineHeight - descent + 3);

-			areaRectangles.add(new AreaRectangle(br, 0, -1));

-			if (selected) {

-				if (color != null)

-					gc.setForeground(oldColor);

-				gc.drawFocus(br.x, br.y, br.width, br.height);

-			}

-

-			locator.x += ewidth;

-			locator.width = ewidth;

-			locator.height = lineHeight;

-			locator.rowHeight = Math.max(locator.rowHeight, extent.y);

-			if (oldFont != null) {

-				gc.setFont(oldFont);

-			}

-			if (oldColor != null) {

-				gc.setForeground(oldColor);

-			}

-			return;

-		}

-

-		BreakIterator wb = BreakIterator.getLineInstance();

-		wb.setText(text);

-

-		int saved = 0;

-		int last = 0;

-

-		for (int loc = wb.first(); loc != BreakIterator.DONE; loc = wb.next()) {

-			if (loc == 0)

-				continue;

-			String word = text.substring(saved, loc);

-			Point extent = gc.textExtent(word);

-			int ewidth = extent.x;

-			if (isSelectable()) ewidth += 2;

-

-			if (locator.x + ewidth > width) {

-				// overflow

-				String prevLine = text.substring(saved, last);

-				gc.drawString(prevLine, locator.x, locator.y, true);

-				Point prevExtent = gc.textExtent(prevLine);

-				int prevWidth = prevExtent.x;

-				if (isSelectable()) prevWidth += 2;

-

-				if (underline) {

-					int lineY = locator.y + lineHeight - descent + 1;

-					gc.drawLine(locator.x, lineY, locator.x + prevWidth, lineY);

-				}

-				Rectangle br =

-					new Rectangle(

-						locator.x - 1,

-						locator.y,

-						prevExtent.x + 2,

-						lineHeight - descent + 3);

-				if (selected) {

-					if (color != null)

-						gc.setForeground(oldColor);

-					gc.drawFocus(br.x, br.y, br.width, br.height);

-					if (color != null)

-						gc.setForeground(color);

-				}

-				areaRectangles.add(new AreaRectangle(br, saved, last));

-				

-				locator.rowHeight = Math.max(locator.rowHeight, prevExtent.y);

-				locator.resetCaret();

-				if (isSelectable()) locator.x +=1;

-				locator.y += locator.rowHeight;

-				locator.rowHeight = 0;

-				saved = last;

-			}

-			last = loc;

-		}

-		// paint the last line

-		String lastLine = text.substring(saved, last);

-		gc.drawString(lastLine, locator.x, locator.y, true);

-		Point lastExtent = gc.textExtent(lastLine);

-		int lastWidth = lastExtent.x;

-		if (isSelectable()) lastWidth += 2;

-		Rectangle br =

-			new Rectangle(

-				locator.x - 1,

-				locator.y,

-				lastExtent.x + 2,

-				lineHeight - descent + 3);

-		areaRectangles.add(new AreaRectangle(br, saved, last));

-		if (underline) {

-			int lineY = locator.y + lineHeight - descent + 1;

-			gc.drawLine(locator.x, lineY, locator.x + lastExtent.x, lineY);

-		}

-		if (selected) {

-			if (color != null)

-				gc.setForeground(oldColor);

-			gc.drawFocus(br.x, br.y, br.width, br.height);

-		}

-		locator.x += lastWidth;

-		locator.rowHeight = Math.max(locator.rowHeight, lastExtent.y);

-		if (oldFont != null) {

-			gc.setFont(oldFont);

-		}

-		if (oldColor != null) {

-			gc.setForeground(oldColor);

-		}

-	}

-	

-	public void paintFocus(GC gc, Color bg, Color fg, boolean selected) {

-		if (areaRectangles==null) return;

-		for (int i=0; i<areaRectangles.size(); i++) {

-			AreaRectangle areaRectangle = (AreaRectangle)areaRectangles.get(i);

-			Rectangle br = areaRectangle.rect;

-			if (selected) {

-				gc.setBackground(bg);

-				gc.setForeground(fg);

-				gc.drawFocus(br.x, br.y, br.width, br.height);

-			}

-			else {

-				gc.setForeground(bg);

-				gc.drawRectangle(br.x, br.y, br.width-1, br.height-1);

-			}

-		}

-	}	

-}

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/image1.gif b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/image1.gif
deleted file mode 100644
index c5c94ee..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/image1.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/index.xml b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/index.xml
deleted file mode 100644
index 4732f87..0000000
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/index.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<form>

-<p>

-To check for updates for features you have installed, 

-go to the <a href="action1">My Eclipse 1</a> and select 

-<b>Available Updates</b> folder. <b>Search page</b> will 

-be shown allowing you to initiate and customize the search. 

-Now we <b>will</b> add an 

-<img href="image1"/> 

-image here. Just

- to show how wrapping should apply to images when they are 

- larger than the regular text.

-</p>

-<li style="text" value="1.">To check for updates for features you have installed, 

-go to the <a href="action2">My Eclipse 2</a> and select 

-<b>Available Updates</b> folder. <b>Search page</b> will 

-be shown allowing you to initiate and customize the search.</li>

-<li style="text" value="2.">This is the item number 2.</li>

-<li style="text" value="3.">This is the item number 3.</li>

-<li>This is the bullet item.</li>

-<li>This is another bullet item.</li>

-</form>
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.win32/.classpath b/update/org.eclipse.update.ui.win32/.classpath
deleted file mode 100644
index 314d270..0000000
--- a/update/org.eclipse.update.ui.win32/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-    <classpathentry kind="src" path="src/"/>

-    <classpathentry kind="src" path="/org.eclipse.core.resources"/>

-    <classpathentry kind="src" path="/org.eclipse.ui"/>

-    <classpathentry kind="src" path="/org.eclipse.update.ui.forms"/>

-    <classpathentry kind="src" path="/org.eclipse.help"/>

-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>

-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>

-    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

-    <classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/update/org.eclipse.update.ui.win32/.cvsignore b/update/org.eclipse.update.ui.win32/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/update/org.eclipse.update.ui.win32/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/update/org.eclipse.update.ui.win32/.project b/update/org.eclipse.update.ui.win32/.project
deleted file mode 100644
index eb41f90..0000000
--- a/update/org.eclipse.update.ui.win32/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.update.ui.win32</name>

-	<comment></comment>

-	<projects>

-		<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.ui</project>

-		<project>org.eclipse.update.ui.forms</project>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/update/org.eclipse.update.ui.win32/about.html b/update/org.eclipse.update.ui.win32/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/update/org.eclipse.update.ui.win32/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.win32/build.properties b/update/org.eclipse.update.ui.win32/build.properties
deleted file mode 100644
index a31730b..0000000
--- a/update/org.eclipse.update.ui.win32/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-bin.includes = plugin.properties,\
-               icons/,\
-               *.jar,\
-               plugin.xml,\
-               about.html
-src.includes = about.html
-source.updateui32.jar = src/
diff --git a/update/org.eclipse.update.ui.win32/icons/full/clcl16/backward_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/clcl16/backward_nav.gif
deleted file mode 100644
index 740419b..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/clcl16/backward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/clcl16/forward_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/clcl16/forward_nav.gif
deleted file mode 100644
index 7a1511d..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/clcl16/forward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/clcl16/go_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/clcl16/go_nav.gif
deleted file mode 100644
index bb20d88..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/clcl16/go_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/clcl16/hierarchicalLayout.gif b/update/org.eclipse.update.ui.win32/icons/full/clcl16/hierarchicalLayout.gif
deleted file mode 100644
index e597c3d..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/clcl16/hierarchicalLayout.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/clcl16/home_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/clcl16/home_nav.gif
deleted file mode 100644
index 949c2db..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/clcl16/home_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/clcl16/refresh_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/clcl16/refresh_nav.gif
deleted file mode 100644
index a063c23..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/clcl16/refresh_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/clcl16/show_unconf.gif b/update/org.eclipse.update.ui.win32/icons/full/clcl16/show_unconf.gif
deleted file mode 100644
index 4c75f55..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/clcl16/show_unconf.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/clcl16/stop_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/clcl16/stop_nav.gif
deleted file mode 100644
index 4eb53ec..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/clcl16/stop_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/cview16/browser.gif b/update/org.eclipse.update.ui.win32/icons/full/cview16/browser.gif
deleted file mode 100644
index fd70277..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/cview16/browser.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/backward_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/dlcl16/backward_nav.gif
deleted file mode 100644
index e2179ad..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/backward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/forward_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/dlcl16/forward_nav.gif
deleted file mode 100644
index 0c5af08..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/forward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/go_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/dlcl16/go_nav.gif
deleted file mode 100644
index 472f005..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/go_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/hierarchicalLayout.gif b/update/org.eclipse.update.ui.win32/icons/full/dlcl16/hierarchicalLayout.gif
deleted file mode 100644
index 76f3360..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/hierarchicalLayout.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/home_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/dlcl16/home_nav.gif
deleted file mode 100644
index 3c80080..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/home_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/refresh_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/dlcl16/refresh_nav.gif
deleted file mode 100644
index b2281b4..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/refresh_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/show_unconf.gif b/update/org.eclipse.update.ui.win32/icons/full/dlcl16/show_unconf.gif
deleted file mode 100644
index 493f498..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/show_unconf.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/stop_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/dlcl16/stop_nav.gif
deleted file mode 100644
index 7f0f9b9..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/dlcl16/stop_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/elcl16/backward_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/elcl16/backward_nav.gif
deleted file mode 100644
index 85188b7..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/elcl16/backward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/elcl16/collapseall.gif b/update/org.eclipse.update.ui.win32/icons/full/elcl16/collapseall.gif
deleted file mode 100644
index 72c7ca2..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/elcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/elcl16/forward_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/elcl16/forward_nav.gif
deleted file mode 100644
index dc28ee1..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/elcl16/forward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/elcl16/go_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/elcl16/go_nav.gif
deleted file mode 100644
index 7683327..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/elcl16/go_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/elcl16/hierarchicalLayout.gif b/update/org.eclipse.update.ui.win32/icons/full/elcl16/hierarchicalLayout.gif
deleted file mode 100644
index b50b2c3..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/elcl16/hierarchicalLayout.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/elcl16/home_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/elcl16/home_nav.gif
deleted file mode 100644
index bf2ba86..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/elcl16/home_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/elcl16/refresh_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/elcl16/refresh_nav.gif
deleted file mode 100644
index 919423d..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/elcl16/refresh_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/elcl16/show_unconf.gif b/update/org.eclipse.update.ui.win32/icons/full/elcl16/show_unconf.gif
deleted file mode 100644
index bdf381a..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/elcl16/show_unconf.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/elcl16/stop_nav.gif b/update/org.eclipse.update.ui.win32/icons/full/elcl16/stop_nav.gif
deleted file mode 100644
index a519f44..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/elcl16/stop_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/eview16/browser.gif b/update/org.eclipse.update.ui.win32/icons/full/eview16/browser.gif
deleted file mode 100644
index 33935b1..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/eview16/browser.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/forms/def_provider.jpg b/update/org.eclipse.update.ui.win32/icons/full/forms/def_provider.jpg
deleted file mode 100644
index a43cbeb..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/forms/def_provider.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/forms/form_banner.gif b/update/org.eclipse.update.ui.win32/icons/full/forms/form_banner.gif
deleted file mode 100644
index aebc0b2..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/forms/form_banner.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/forms/form_banner.jpg b/update/org.eclipse.update.ui.win32/icons/full/forms/form_banner.jpg
deleted file mode 100644
index 253e2d2..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/forms/form_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/forms/form_underline.jpg b/update/org.eclipse.update.ui.win32/icons/full/forms/form_underline.jpg
deleted file mode 100644
index 0ff3d0b..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/forms/form_underline.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/forms/form_underline2.jpg b/update/org.eclipse.update.ui.win32/icons/full/forms/form_underline2.jpg
deleted file mode 100644
index 57414f7..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/forms/form_underline2.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/full/forms/topic.gif b/update/org.eclipse.update.ui.win32/icons/full/forms/topic.gif
deleted file mode 100644
index 10137e9..0000000
--- a/update/org.eclipse.update.ui.win32/icons/full/forms/topic.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/icons/sample.gif b/update/org.eclipse.update.ui.win32/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/update/org.eclipse.update.ui.win32/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui.win32/plugin.properties b/update/org.eclipse.update.ui.win32/plugin.properties
deleted file mode 100644
index 5288763..0000000
--- a/update/org.eclipse.update.ui.win32/plugin.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-pluginName = Welcome Portal for Windows
-providerName = Eclipse.org
-views.webBrowser.label = Web Browser
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.win32/plugin.xml b/update/org.eclipse.update.ui.win32/plugin.xml
deleted file mode 100644
index 1b0b77a..0000000
--- a/update/org.eclipse.update.ui.win32/plugin.xml
+++ /dev/null
@@ -1,192 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.update.ui.win32"
-   name="%pluginName"
-   version="2.1.0"
-   provider-name="%providerName"
-   class="org.eclipse.welcome.internal.WelcomePortal">
-
-   <runtime>
-      <library name="updateui32.jar">
-         <export name="*"/>
-         <packages prefixes="org.eclipse.welcome.internal"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.core.runtime.compatibility"/>
-      <import plugin="org.eclipse.ui.ide"/>
-      <import plugin="org.eclipse.ui.views"/>
-      <import plugin="org.eclipse.jface.text"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor"/>
-      <import plugin="org.eclipse.ui.editors"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.update.ui.forms"/>
-      <import plugin="org.eclipse.help"/>
-   </requires>
-
-
-   <extension-point id="welcomePages" name="Welcome Pages" schema="schema/welcomePages.exsd"/>
-   <extension-point id="welcomeSections" name="Welcome Sections" schema="schema/welcomeSections.exsd"/>
-
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="Sample Action Set"
-            visible="true"
-            id="org.eclipse.update.ui.win32.actionSet">
-         <action
-               label="Open Home Page"
-               icon="icons/sample.gif"
-               tooltip="Open Home Page"
-               class="org.eclipse.welcome.internal.ShowWelcomePageAction"
-               menubarPath="help/helpEnd"
-               id="org.eclipse.welcome.internal.ShowWelcomePageAction">
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="org.eclipse.ui.resourcePerspective">
-         <actionSet
-               id="org.eclipse.update.ui.win32.actionSet">
-         </actionSet>
-      </perspectiveExtension>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="Web Browser"
-            icon="icons/sample.gif"
-            contributorClass="org.eclipse.welcome.internal.webbrowser.WebBrowserEditorContributor"
-            class="org.eclipse.welcome.internal.webbrowser.WebBrowserEditor"
-            id="org.eclipse.welcome.webbrowser">
-      </editor>
-      <editor
-            name="Welcome Page"
-            icon="icons/sample.gif"
-            class="org.eclipse.welcome.internal.portal.WelcomePortalEditor"
-            id="org.eclipse.welcome.portal">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.elementFactories">
-      <factory
-            class="org.eclipse.welcome.internal.webbrowser.WebBrowserEditorInputFactory"
-            id="org.eclipse.welcome.internal.webbrowser.WebBrowserEditorInputFactory">
-      </factory>
-      <factory
-            class="org.eclipse.welcome.internal.portal.WelcomePortalEditorInputFactory"
-            id="org.eclipse.welcome.internal.portal.WelcomePortalEditorInputFactory">
-      </factory>
-   </extension>
-   <extension
-         point="org.eclipse.update.ui.win32.welcomePages">
-      <page
-            name="Home"
-            numColumns="2"
-            id="org.eclipse.update.ui.win32.homePage">
-         <section
-               span="2"
-               id="community.news.remote">
-         </section>
-         <section
-               id="search">
-         </section>
-         <section
-               id="tasks.softwareUpdates">
-         </section>
-         <section
-               id="quickStart">
-         </section>
-         <section
-               id="tipsAndTricks">
-         </section>
-      </page>
-      <page
-            name="News"
-            id="org.eclipse.update.ui.win32.news">
-      </page>
-      <page
-            name="Community"
-            numColumns="1"
-            id="org.eclipse.update.ui.win32.community">
-         <section
-               id="community.links">
-         </section>
-         <section
-               id="community.articles">
-         </section>
-      </page>
-      <page
-            name="Samples"
-            id="org.eclipse.update.ui.win32.samples">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.update.ui.win32.welcomeSections">
-      <section
-            name="Software Updates"
-            id="tasks.softwareUpdates">
-         <form>
-            &lt;p&gt;
-&lt;a href=&quot;action&quot; arg=&quot;org.eclipse.update.ui:org.eclipse.update.internal.ui.InstallWizardAction&quot;&gt;
-Find updates for the currently installed features
-&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;
-&lt;a href=&quot;action&quot; arg=&quot;org.eclipse.update.ui:org.eclipse.update.internal.ui.ConfigurationManagerAction&quot;&gt;
-Manage my workbench configuration&lt;/a&gt;&lt;/p&gt;
-         </form>
-      </section>
-      <section
-            name="Eclipse Community Sites"
-            id="community.links">
-         <form>
-            &lt;li&gt;&lt;a href=&quot;url&quot; arg=&quot;http://www.eclipse.org&quot;&gt;Eclipse.org&lt;/a&gt;&lt;/li&gt;
-         </form>
-      </section>
-      <section
-            name="New Eclipse Articles"
-            id="community.articles">
-         <form
-               url="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/welcome-articles.xml"
-               type="remote">
-         </form>
-      </section>
-      <section
-            name="Headlines"
-            id="community.news.remote">
-         <form
-               url="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/welcome-news.xml"
-               type="remote">
-         </form>
-      </section>
-      <section
-            name="Get Help"
-            id="search">
-         <form
-               type="custom"
-               class="org.eclipse.welcome.internal.portal.HelpSection">
-         </form>
-      </section>
-      <section
-            name="Quick Start"
-            id="quickStart">
-         <form
-               type="dynamic"
-               class="org.eclipse.welcome.internal.actions.WelcomeContentProvider">
-         </form>
-      </section>
-      <section
-            name="Tips and Tricks"
-            id="tipsAndTricks">
-         <form
-               type="dynamic"
-               class="org.eclipse.welcome.internal.actions.TipsAndTricksContentProvider">
-         </form>
-      </section>
-   </extension>
-
-</plugin>
diff --git a/update/org.eclipse.update.ui.win32/schema/welcomePages.exsd b/update/org.eclipse.update.ui.win32/schema/welcomePages.exsd
deleted file mode 100644
index 7e43f1b..0000000
--- a/update/org.eclipse.update.ui.win32/schema/welcomePages.exsd
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.update.ui.win32">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.update.ui.win32" id="welcomePages" name="Welcome Pages"/>

-      </appInfo>

-      <documentation>

-         [Enter description of this extension point.]

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="page" minOccurs="1" maxOccurs="unbounded"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="page">

-      <complexType>

-         <sequence>

-            <element ref="section" minOccurs="0" maxOccurs="unbounded"/>

-         </sequence>

-         <attribute name="id" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="numColumns" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="section">

-      <complexType>

-         <attribute name="id" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="span" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="since"/>

-      </appInfo>

-      <documentation>

-         [Enter the first release in which this extension point appears.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="examples"/>

-      </appInfo>

-      <documentation>

-         [Enter extension point usage example here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         [Enter API information here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="implementation"/>

-      </appInfo>

-      <documentation>

-         [Enter information about supplied implementation of this extension point.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="copyright"/>

-      </appInfo>

-      <documentation>

-         

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/update/org.eclipse.update.ui.win32/schema/welcomeSections.exsd b/update/org.eclipse.update.ui.win32/schema/welcomeSections.exsd
deleted file mode 100644
index 9c4b5e2..0000000
--- a/update/org.eclipse.update.ui.win32/schema/welcomeSections.exsd
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.update.ui.win32">

-<annotation>

-      <appInfo>

-         <meta.schema plugin="org.eclipse.update.ui.win32" id="welcomeSections" name="Welcome Sections"/>

-      </appInfo>

-      <documentation>

-         [Enter description of this extension point.]

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <complexType>

-         <sequence>

-            <element ref="section" minOccurs="0" maxOccurs="unbounded"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="section">

-      <complexType>

-         <sequence>

-            <element ref="form" minOccurs="0" maxOccurs="unbounded"/>

-         </sequence>

-         <attribute name="id" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="class" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appInfo>

-                  <meta.attribute kind="java" basedOn="org.eclipse.welcome.internal.portal.IPortalSection"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="form">

-      <complexType>

-         <attribute name="type" use="default" value="local">

-            <annotation>

-               <documentation>

-                  Forms are loaded depending on the &lt;samp&gt;type&lt;/samp&gt; attribute:

-&lt;ul&gt;

-&lt;li&gt;&lt;b&gt;local&lt;/b&gt; - the content of the form will be loaded from the body text of the element.&lt;/li&gt;

-&lt;li&gt;&lt;b&gt;remote&lt;/b&gt; - the content of the form will be downloaded using the specified URL.&lt;/li&gt;

-&lt;li&gt;&lt;b&gt;custom&lt;/b&gt; - the form will be created by loading the class specified by the &lt;samp&gt;class&lt;/samp&gt; attribute that implements IPortalSection interface.&lt;/li&gt;

-&lt;li&gt;&lt;b&gt;dynamic&lt;/b&gt; - the form will be created by loading the class specified by the &lt;samp&gt;class&lt;/samp&gt; attribute that implements IFormContentProvider interface.&lt;/li&gt;

-&lt;/ul&gt;

-               </documentation>

-            </annotation>

-            <simpleType>

-               <restriction base="string">

-                  <enumeration value="local">

-                  </enumeration>

-                  <enumeration value="remote">

-                  </enumeration>

-                  <enumeration value="custom">

-                  </enumeration>

-                  <enumeration value="dynamic">

-                  </enumeration>

-               </restriction>

-            </simpleType>

-         </attribute>

-         <attribute name="url" type="string">

-            <annotation>

-               <documentation>

-                  If &lt;samp&gt;type&lt;/samp&gt; is &lt;samp&gt;remote&lt;/samp&gt;, the content of the form will be downloaded from the specified URL.

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="class" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appInfo>

-                  <meta.attribute kind="java" basedOn="org.eclipse.welcome.internal.portal.IPortalSection"/>

-               </appInfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="since"/>

-      </appInfo>

-      <documentation>

-         [Enter the first release in which this extension point appears.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="examples"/>

-      </appInfo>

-      <documentation>

-         [Enter extension point usage example here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         [Enter API information here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="implementation"/>

-      </appInfo>

-      <documentation>

-         [Enter information about supplied implementation of this extension point.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appInfo>

-         <meta.section type="copyright"/>

-      </appInfo>

-      <documentation>

-         

-      </documentation>

-   </annotation>

-

-</schema>

diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/ShowWelcomePageAction.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/ShowWelcomePageAction.java
deleted file mode 100644
index 70ec5ba..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/ShowWelcomePageAction.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.welcome.internal;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.*;
-import org.eclipse.welcome.internal.portal.WelcomePortalEditorInput;
-
-/**
- * Our sample action implements workbench action delegate.
- * The action proxy will be created by the workbench and
- * shown in the UI. When the user tries to use the action,
- * this delegate will be created and execution will be 
- * delegated to it.
- * @see IWorkbenchWindowActionDelegate
- */
-public class ShowWelcomePageAction implements IWorkbenchWindowActionDelegate {
-	private IWorkbenchWindow window;
-	/**
-	 * The constructor.
-	 */
-	public ShowWelcomePageAction() {
-	}
-
-	/**
-	 * The action has been activated. The argument of the
-	 * method represents the 'real' action sitting
-	 * in the workbench UI.
-	 * @see IWorkbenchWindowActionDelegate#run
-	 */
-	public void run(IAction action) {
-		try {
-			WelcomePortal.getActivePage().openEditor(
-				new WelcomePortalEditorInput(),
-				"org.eclipse.welcome.portal");
-		} catch (PartInitException e) {
-			WelcomePortal.logException(e);
-		}
-	}
-
-	/**
-	 * Selection in the workbench has been changed. We 
-	 * can change the state of the 'real' action here
-	 * if we want, but this can only happen after 
-	 * the delegate has been created.
-	 * @see IWorkbenchWindowActionDelegate#selectionChanged
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-	}
-
-	/**
-	 * We can use this method to dispose of any system
-	 * resources we previously allocated.
-	 * @see IWorkbenchWindowActionDelegate#dispose
-	 */
-	public void dispose() {
-	}
-
-	/**
-	 * We will cache window object in order to
-	 * be able to provide parent shell for the message dialog.
-	 * @see IWorkbenchWindowActionDelegate#init
-	 */
-	public void init(IWorkbenchWindow window) {
-		this.window = window;
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortal.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortal.java
deleted file mode 100644
index 06a2f00..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortal.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.welcome.internal;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.*;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.welcome.internal.webbrowser.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class WelcomePortal extends AbstractUIPlugin {
-	public static final String PLUGIN_ID = "org.eclipse.update.ui.win32";
-	public static final String ID_BROWSER = PLUGIN_ID + "WebBrowser";
-	
-	//The shared instance.
-	private static WelcomePortal plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IStartup#earlyStartup()
-	 */
-	public static void showURL(String name, String url) {
-		try {
-			WelcomePortal.getActivePage().openEditor(
-				new WebBrowserEditorInput(name, url),
-				"org.eclipse.welcome.webbrowser");
-		} catch (PartInitException e) {
-			WelcomePortal.logException(e);
-		}
-	}
-
-	/**
-	 * The constructor.
-	 */
-	public WelcomePortal(IPluginDescriptor descriptor) {
-		super(descriptor);
-		plugin = this;
-		try {
-			resourceBundle =
-				ResourceBundle.getBundle(
-					"org.eclipse.welcome.internal.WelcomePortalResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static WelcomePortal getDefault() {
-		return plugin;
-	}
-
-	public static IWorkbenchPage getActivePage() {
-		return getDefault().internalGetActivePage();
-	}
-
-	private IWorkbenchPage internalGetActivePage() {
-		IWorkbenchWindow window = getWorkbench().getActiveWorkbenchWindow();
-		if (window != null)
-			return window.getActivePage();
-		return null;
-	}
-
-	public static Shell getActiveWorkbenchShell() {
-		IWorkbenchWindow window = getActiveWorkbenchWindow();
-		return window != null ? window.getShell() : null;
-	}
-
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return getDefault().getWorkbench().getActiveWorkbenchWindow();
-	}
-
-	public static String getPluginId() {
-		return getDefault().getDescriptor().getUniqueIdentifier();
-	}
-
-	/**
-	 * 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 getString(String key) {
-		ResourceBundle bundle = WelcomePortal.getDefault().getResourceBundle();
-		try {
-			return bundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	public static String getFormattedMessage(String key, String[] args) {
-		String text = getString(key);
-		return java.text.MessageFormat.format(text, args);
-	}
-
-	public static String getFormattedMessage(String key, String arg) {
-		String text = getString(key);
-		return java.text.MessageFormat.format(text, new String[] { arg });
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-
-	public void startup() throws CoreException {
-	}
-
-	public void shutdown() throws CoreException {
-	}
-
-	public static void logException(Throwable e) {
-		logException(e, true);
-	}
-
-	public static void logException(Throwable e, boolean showErrorDialog) {
-		if (e instanceof InvocationTargetException) {
-			e = ((InvocationTargetException) e).getTargetException();
-		}
-
-		IStatus status = null;
-		if (e instanceof CoreException) {
-			status = ((CoreException) e).getStatus();
-		} else {
-			String message = e.getMessage();
-			if (message == null)
-				message = e.toString();
-			status =
-				new Status(
-					IStatus.ERROR,
-					getPluginId(),
-					IStatus.OK,
-					message,
-					e);
-		}
-		log(status, showErrorDialog);
-	}
-
-	public static void log(IStatus status, boolean showErrorDialog) {
-		if (status.getSeverity() != IStatus.INFO) {
-			if (showErrorDialog)
-				ErrorDialog.openError(
-					getActiveWorkbenchShell(),
-					null,
-					null,
-					status);
-			//ResourcesPlugin.getPlugin().getLog().log(status);
-			Platform.getPlugin("org.eclipse.core.runtime").getLog().log(status);
-		} else {
-			MessageDialog.openInformation(
-				getActiveWorkbenchShell(),
-				null,
-				status.getMessage());
-		}
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortalImages.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortalImages.java
deleted file mode 100644
index 3675f4b..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortalImages.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.welcome.internal;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Bundle of all images used by the PDE plugin.
- */
-public class WelcomePortalImages {
-
-
-	private static final String NAME_PREFIX= WelcomePortal.getPluginId()+".";
-
-	private final static URL BASE_URL = WelcomePortal.getDefault().getDescriptor().getInstallURL();
-
-
-	private static ImageRegistry PLUGIN_REGISTRY;
-	
-	public final static String ICONS_PATH = "icons/full/";
-
-	/**
-	 * Set of predefined Image Descriptors.
-	 */
-	
-	private static final String PATH_OBJ= ICONS_PATH+"obj16/";
-	private static final String PATH_VIEW = ICONS_PATH+"cview16/";
-	private static final String PATH_LCL= ICONS_PATH+"elcl16/";
-	private static final String PATH_LCL_HOVER= ICONS_PATH+"clcl16/";
-	private static final String PATH_LCL_DISABLED= ICONS_PATH+"dlcl16/";
-	private static final String PATH_TOOL = ICONS_PATH + "etool16/";
-	private static final String PATH_TOOL_HOVER = ICONS_PATH + "ctool16/";
-	private static final String PATH_TOOL_DISABLED = ICONS_PATH + "dtool16/";
-	private static final String PATH_OVR = ICONS_PATH + "ovr16/";
-	private static final String PATH_WIZBAN = ICONS_PATH + "wizban/";
-	public static final String PATH_FORMS = ICONS_PATH + "forms/";
-
-
-	/**
-	 * Frequently used images
-	 */
-	public static final String IMG_FORM_BANNER = NAME_PREFIX+"FORM_BANNER";
-	public static final String IMG_FORM_BANNER_SHORT = NAME_PREFIX+"FORM_BANNER_SHORT";
-	public static final String IMG_FORM_UNDERLINE = NAME_PREFIX + "FORM_UNDERLINE";
-
-	/**
-	 * OBJ16
-	 */
-	public static final ImageDescriptor DESC_APP_OBJ = create(PATH_OBJ, "app_obj.gif");
-	public static final ImageDescriptor DESC_BFOLDER_OBJ = create(PATH_OBJ, "bfolder_obj.gif");
-	public static final ImageDescriptor DESC_CATEGORY_OBJ = create(PATH_OBJ, "category_obj.gif");
-	public static final ImageDescriptor DESC_CD_OBJ = create(PATH_OBJ, "cd_obj.gif");
-	public static final ImageDescriptor DESC_COMPUTER_OBJ = create(PATH_OBJ, "computer_obj.gif");
-	public static final ImageDescriptor DESC_CONFIG_OBJ = create(PATH_OBJ, "config_obj.gif");
-	public static final ImageDescriptor DESC_FEATURE_OBJ = create(PATH_OBJ, "feature_obj.gif");
-	public static final ImageDescriptor DESC_EFIX_OBJ = create(PATH_OBJ, "efix2_obj.gif");
-	public static final ImageDescriptor DESC_FLOPPY_OBJ = create(PATH_OBJ, "floppy_obj.gif");
-	public static final ImageDescriptor DESC_HISTORY_OBJ = create(PATH_OBJ, "history_obj.gif");
-	public static final ImageDescriptor DESC_LSITE_OBJ = create(PATH_OBJ, "lsite_obj.gif");
-	public static final ImageDescriptor DESC_PSITE_OBJ = create(PATH_OBJ, "psite_obj.gif");
-	public static final ImageDescriptor DESC_ESITE_OBJ = create(PATH_OBJ, "esite_obj.gif");
-	public static final ImageDescriptor DESC_SITE_OBJ = create(PATH_OBJ, "site_obj.gif");
-	public static final ImageDescriptor DESC_WEB_SITE_OBJ = create(PATH_OBJ, "web_bkmrk_obj.gif");
-	public static final ImageDescriptor DESC_PLACES_OBJ = create(PATH_OBJ, "places_obj.gif");
-	public static final ImageDescriptor DESC_SAVED_OBJ = create(PATH_OBJ, "saved_obj.gif");
-	public static final ImageDescriptor DESC_UNCONF_FEATURE_OBJ = create(PATH_OBJ, "unconf_feature_obj.gif");
-	public static final ImageDescriptor DESC_UPDATES_OBJ = create(PATH_OBJ, "updates_obj.gif");
-	public static final ImageDescriptor DESC_VFIXED_OBJ = create(PATH_OBJ, "vfixed_obj.gif");
-	public static final ImageDescriptor DESC_VREMOTE_OBJ = create(PATH_OBJ, "vremote_obj.gif");
-	public static final ImageDescriptor DESC_VREMOVABLE_OBJ = create(PATH_OBJ, "vremovable_obj.gif");
-	public static final ImageDescriptor DESC_NOTINST_FEATURE_OBJ = create(PATH_OBJ, "notinstalled_feature_obj.gif");	
-	public static final ImageDescriptor DESC_SHOW_SEARCH = create(PATH_OBJ, "tsearch_obj.gif");
-	public static final ImageDescriptor DESC_ERR_ST_OBJ = create(PATH_OBJ, "error_st_obj.gif");
-	public static final ImageDescriptor DESC_OK_ST_OBJ = create(PATH_OBJ, "ok_st_obj.gif");
-
-	
-	/**
-	 * OVR16
-	 */
-	public static final ImageDescriptor DESC_LINKED_CO   = create(PATH_OVR, "linked_co.gif");
-	public static final ImageDescriptor DESC_UPDATED_CO   = create(PATH_OVR, "updated_co.gif");
-	public static final ImageDescriptor DESC_INSTALLABLE_CO = create(PATH_OVR, "installable_co.gif");
-	public static final ImageDescriptor DESC_CURRENT_CO = create(PATH_OVR, "current_co.gif");
-	public static final ImageDescriptor DESC_ERROR_CO = create(PATH_OVR, "error_co.gif");
-	public static final ImageDescriptor DESC_WARNING_CO = create(PATH_OVR, "warning_co.gif");
-	public static final ImageDescriptor DESC_MOD_CO = create(PATH_OVR, "mod_co.gif");
-	public static final ImageDescriptor DESC_ADD_CO = create(PATH_OVR, "add_stat.gif");
-	public static final ImageDescriptor DESC_DEL_CO = create(PATH_OVR, "del_stat.gif");
-	public static final ImageDescriptor DESC_UNCONF_CO = create(PATH_OVR, "unconfigured_co.gif");
-
-	/**
-	 * VIEW16
-	 */
-
-	public static final ImageDescriptor DESC_CONFIGS_VIEW = create(PATH_VIEW, "configs.gif");
-	public static final ImageDescriptor DESC_SITES_VIEW = create(PATH_VIEW, "updates.gif");
-	public static final ImageDescriptor DESC_SELECTED_UPDATES_VIEW = create(PATH_VIEW, "selected_updates.gif");
-
-	/**
-	 * LCL
-	 */
-	public static final ImageDescriptor DESC_BACKWARD_NAV = create(PATH_LCL, "backward_nav.gif");
-	public static final ImageDescriptor DESC_BACKWARD_NAV_H = create(PATH_LCL_HOVER, "backward_nav.gif");
-	public static final ImageDescriptor DESC_BACKWARD_NAV_D = create(PATH_LCL_DISABLED, "backward_nav.gif");
-	public static final ImageDescriptor DESC_FORWARD_NAV = create(PATH_LCL, "forward_nav.gif");
-	public static final ImageDescriptor DESC_FORWARD_NAV_H = create(PATH_LCL_HOVER, "forward_nav.gif");
-	public static final ImageDescriptor DESC_FORWARD_NAV_D = create(PATH_LCL_DISABLED, "forward_nav.gif");
-	public static final ImageDescriptor DESC_HOME_NAV = create(PATH_LCL, "home_nav.gif");
-	public static final ImageDescriptor DESC_HOME_NAV_H = create(PATH_LCL_HOVER, "home_nav.gif");
-	public static final ImageDescriptor DESC_HOME_NAV_D = create(PATH_LCL_DISABLED, "home_nav.gif");
-	public static final ImageDescriptor DESC_REFRESH_NAV = create(PATH_LCL, "refresh_nav.gif");
-	public static final ImageDescriptor DESC_REFRESH_NAV_H = create(PATH_LCL_HOVER, "refresh_nav.gif");
-	public static final ImageDescriptor DESC_REFRESH_NAV_D = create(PATH_LCL_DISABLED, "refresh_nav.gif");
-	public static final ImageDescriptor DESC_STOP_NAV = create(PATH_LCL, "stop_nav.gif");
-	public static final ImageDescriptor DESC_STOP_NAV_H = create(PATH_LCL_HOVER, "stop_nav.gif");
-	public static final ImageDescriptor DESC_STOP_NAV_D = create(PATH_LCL_DISABLED, "stop_nav.gif");
-	public static final ImageDescriptor DESC_GO_NAV = create(PATH_LCL, "go_nav.gif");
-	public static final ImageDescriptor DESC_GO_NAV_H = create(PATH_LCL_HOVER, "go_nav.gif");
-	public static final ImageDescriptor DESC_GO_NAV_D = create(PATH_LCL_DISABLED, "go_nav.gif");
-	public static final ImageDescriptor DESC_SHOW_UNCONF = create(PATH_LCL, "show_unconf.gif");
-	public static final ImageDescriptor DESC_SHOW_UNCONF_H = create(PATH_LCL_HOVER, "show_unconf.gif");
-	public static final ImageDescriptor DESC_SHOW_UNCONF_D = create(PATH_LCL_DISABLED, "show_unconf.gif");
-	public static final ImageDescriptor DESC_COLLAPSE_ALL = create(PATH_LCL, "collapseall.gif");
-	public static final ImageDescriptor DESC_SHOW_HIERARCHY = create(PATH_LCL, "hierarchicalLayout.gif");
-	public static final ImageDescriptor DESC_SHOW_HIERARCHY_H = create(PATH_LCL_HOVER, "hierarchicalLayout.gif");
-	public static final ImageDescriptor DESC_SHOW_HIERARCHY_D = create(PATH_LCL_DISABLED, "hierarchicalLayout.gif");
-
-	/**
-	 * WIZ
-	 */
-	public static final ImageDescriptor DESC_INSTALL_WIZ  = create(PATH_WIZBAN, "install_wiz.gif");
-	public static final ImageDescriptor DESC_UPDATE_WIZ  = create(PATH_WIZBAN, "update_wiz.gif");
-	public static final ImageDescriptor DESC_CONFIG_WIZ  = create(PATH_WIZBAN, "config_wiz.gif");
-	public static final ImageDescriptor DESC_UNINSTALL_WIZ  = create(PATH_WIZBAN, "uninstall_wiz.gif");
-	public static final ImageDescriptor DESC_INSTALL_BANNER  = create(PATH_WIZBAN, "def_wizban.jpg");
-	public static final ImageDescriptor DESC_FORM_BANNER  = create(PATH_FORMS, "form_banner.jpg");
-	public static final ImageDescriptor DESC_FORM_BANNER_SHORT  = create(PATH_FORMS, "form_banner.gif");
-	public static final ImageDescriptor DESC_FORM_UNDERLINE  = create(PATH_FORMS, "form_underline2.jpg");
-	public static final ImageDescriptor DESC_PROVIDER = create(PATH_FORMS, "def_provider.jpg");
-	public static final ImageDescriptor DESC_ITEM = create(PATH_FORMS, "topic.gif");
-	public static final ImageDescriptor DESC_NEW_BOOKMARK  = create(PATH_WIZBAN, "new_bookmark_wiz.gif");
-	public static final ImageDescriptor DESC_NEW_FOLDER  = create(PATH_WIZBAN, "new_folder_wiz.gif");
-	public static final ImageDescriptor DESC_NEW_SEARCH  = create(PATH_WIZBAN, "new_search_wiz.gif");
-
-	private static ImageDescriptor create(String prefix, String name) {
-		return ImageDescriptor.createFromURL(makeImageURL(prefix, name));
-	}
-
-
-	public static Image get(String key) {
-		if (PLUGIN_REGISTRY==null) initialize();
-		return PLUGIN_REGISTRY.get(key);
-	}
-
-
-public static ImageDescriptor getImageDescriptorFromPlugin(
-	IPluginDescriptor pluginDescriptor, 
-	String subdirectoryAndFilename) {
-	URL installURL = pluginDescriptor.getInstallURL();
-	try {
-		URL newURL = new URL(installURL, subdirectoryAndFilename);
-		return ImageDescriptor.createFromURL(newURL);
-	}
-	catch (MalformedURLException e) {
-	}
-	return null;
-}
-
-
-public static Image getImageFromPlugin(
-	IPluginDescriptor pluginDescriptor,
-	String subdirectoryAndFilename) {
-	URL installURL = pluginDescriptor.getInstallURL();
-	Image image = null;
-	try {
-		URL newURL = new URL(installURL, subdirectoryAndFilename);
-		String key = newURL.toString();
-		if (PLUGIN_REGISTRY==null) initialize();
-		image = PLUGIN_REGISTRY.get(key);
-		if (image==null) {
-			ImageDescriptor desc = ImageDescriptor.createFromURL(newURL);
-			image = desc.createImage();
-			PLUGIN_REGISTRY.put(key, image);
-		}
-	}
-	catch (MalformedURLException e) {
-	}
-	return image;
-}
-/* package */
-private static final void initialize() {
-	PLUGIN_REGISTRY = new ImageRegistry();
-	manage(IMG_FORM_BANNER_SHORT, DESC_FORM_BANNER_SHORT);
-	manage(IMG_FORM_BANNER, DESC_FORM_BANNER);
-	manage(IMG_FORM_UNDERLINE, DESC_FORM_UNDERLINE);
-}
-
-
-private static URL makeImageURL(String prefix, String name) {
-	String path = prefix + name;
-	URL url = null;
-	try {
-		url = new URL(BASE_URL, path);
-	}
-	catch (MalformedURLException e) {
-		return null;
-	}
-	return url;
-}
-
-public static Image manage(String key, ImageDescriptor desc) {
-	Image image = desc.createImage();
-	PLUGIN_REGISTRY.put(key, image);
-	return image;
-}
-
-public static URL getDefaultProviderImageURL() {
-	URL url = makeImageURL(PATH_FORMS, "def_provider.jpg");
-	try {
-		url = Platform.resolve(url);
-	}
-	catch (IOException e) {
-	}
-	return url; 
-}
-
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortalResources.properties b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortalResources.properties
deleted file mode 100644
index 491ee42..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/WelcomePortalResources.properties
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 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
-###############################################################################
-# 
-#
-#
-
-BrowserPage.address = Address:
-BrowserPage.stop = Stop
-BrowserPage.go = Go
-BrowserPage.refresh = Refresh
-
-WebBrowserView.notAvailable = Embedded Web browser is not available. \
-Requiests for opening URLs are processed using Web browser registered to handle \
-Web pages on your system.
-WebBrowserView.address = Address:
-WebBrowserView.stop = Stop
-WebBrowserView.go = Go
-WebBrowserView.home = Go Home
-WebBrowserView.refresh = Refresh
-WebBrowserView.backward = Go Back
-WebBrowserView.forward = Go Forward
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/actions/TipsAndTricksContentProvider.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/actions/TipsAndTricksContentProvider.java
deleted file mode 100644
index 65b3b9a..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/actions/TipsAndTricksContentProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Created on Jun 20, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.actions;
-
-import java.io.*;
-import java.util.ArrayList;
-
-import org.eclipse.ui.internal.*;
-import org.eclipse.welcome.internal.WelcomePortal;
-import org.eclipse.welcome.internal.portal.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class TipsAndTricksContentProvider implements IFormContentProvider {
-	private IFormContentObserver observer;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.welcome.internal.portal.IFormContentProvider#getContent()
-	 */
-	public String getContent() {
-		/*
-		// Ask the user to select a feature
-		AboutInfo[] features = ((Workbench) WelcomePortal.getDefault().getWorkbench()).getConfigurationInfo().getFeaturesInfo();
-		ArrayList welcomeFeatures = new ArrayList();
-		StringWriter swriter = new StringWriter();
-		PrintWriter writer = new PrintWriter(swriter);
-		writer.println("<form>");
-		for (int i = 0; i < features.length; i++) {
-			AboutInfo feature = features[i];
-			if (feature.getWelcomePageURL() != null) {
-				addFeatureLink(writer, feature);
-			}
-		}
-		writer.println("</form>");
-		writer.close();
-		return swriter.toString();
-		*/
-		return "<form></form>";
-	}
-
-	private void addFeatureLink(PrintWriter writer, AboutInfo feature) {
-		String name = feature.getFeatureLabel();
-		String href = feature.getTipsAndTricksHref();
-		if (href==null) return;
-		writer.print("<li>");
-		writer.print("<a href=\"help\" arg=\""+href+"\">"+name+"</a>");
-		writer.println("</li>");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.welcome.internal.portal.IFormContentProvider#setContentObserver(org.eclipse.welcome.internal.portal.IFormContentObserver)
-	 */
-	public void setContentObserver(IFormContentObserver observer) {
-		this.observer = observer;
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/actions/WelcomeContentProvider.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/actions/WelcomeContentProvider.java
deleted file mode 100644
index 59c2d79..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/actions/WelcomeContentProvider.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Created on Jun 20, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.actions;
-
-import java.io.*;
-import java.net.URL;
-import java.util.ArrayList;
-
-import org.eclipse.ui.internal.*;
-import org.eclipse.welcome.internal.WelcomePortal;
-import org.eclipse.welcome.internal.portal.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class WelcomeContentProvider implements IFormContentProvider {
-	private IFormContentObserver observer;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.welcome.internal.portal.IFormContentProvider#getContent()
-	 */
-	public String getContent() {
-		/*
-		// Ask the user to select a feature
-		AboutInfo[] features = ((Workbench) WelcomePortal.getDefault().getWorkbench()).getConfigurationInfo().getFeaturesInfo();
-		ArrayList welcomeFeatures = new ArrayList();
-		StringWriter swriter = new StringWriter();
-		PrintWriter writer = new PrintWriter(swriter);
-		writer.println("<form>");
-		for (int i = 0; i < features.length; i++) {
-			AboutInfo feature = features[i];
-			if (feature.getWelcomePageURL() != null) {
-				addFeatureLink(writer, feature);
-			}
-		}
-		writer.println("</form>");
-		/*
-
-		if (perspectiveId != null) {
-			try {
-				page = (WorkbenchPage) window.getWorkbench().showPerspective(perspectiveId, window);
-			} catch (WorkbenchException e) {
-				return;
-			}
-		}
-
-		page.setEditorAreaVisible(true);
-
-		// create input
-		WelcomeEditorInput input = new WelcomeEditorInput(feature);
-
-		// see if we already have a welcome editor
-		IEditorPart editor = page.findEditor(input);
-		if (editor != null) {
-			page.activate(editor);
-			return;
-		}
-
-		try {
-			page.openEditor(input, EDITOR_ID);
-		} catch (PartInitException e) {
-			IStatus status = new Status(IStatus.ERROR, WorkbenchPlugin.PI_WORKBENCH, 1, WorkbenchMessages.getString("QuickStartAction.openEditorException"), e); //$NON-NLS-1$
-			ErrorDialog.openError(
-				window.getShell(),
-				WorkbenchMessages.getString("Workbench.openEditorErrorDialogTitle"),  //$NON-NLS-1$
-				WorkbenchMessages.getString("Workbench.openEditorErrorDialogMessage"), //$NON-NLS-1$
-				status);
-		}
-		writer.close();
-		return swriter.toString();
-		*/
-		return "<form></form>";
-	}
-
-	private void addFeatureLink(PrintWriter writer, AboutInfo feature) {
-		String name = feature.getFeatureLabel();
-		URL welcomeURL = feature.getWelcomePageURL();
-		String action = "";
-		writer.print("<li>");
-		writer.print("<a href=\"action\">"+name+"</a>");
-		writer.println("</li>");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.welcome.internal.portal.IFormContentProvider#setContentObserver(org.eclipse.welcome.internal.portal.IFormContentObserver)
-	 */
-	public void setContentObserver(IFormContentObserver observer) {
-		this.observer = observer;
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/HelpSection.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/HelpSection.java
deleted file mode 100644
index 393de2b..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/HelpSection.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Created on Jun 20, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.update.ui.forms.internal.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class HelpSection implements IPortalSectionForm {
-	private Text phraseText;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.welcome.internal.portal.IPortalSection#init(org.eclipse.update.ui.forms.internal.IFormPage)
-	 */
-	public void init(IFormPage page) {
-	}
-	
-	public void dispose() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.welcome.internal.portal.IPortalSection#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createControl(Composite parent, FormWidgetFactory factory) {
-		Composite container = factory.createComposite(parent);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		layout.marginWidth = 0;
-		container.setLayout(layout);
-		factory.createLabel(container, "Phrase:");
-		phraseText = factory.createText(container, "");
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		phraseText.setLayoutData(gd);
-		final Button button = factory.createButton(container, "Go", SWT.PUSH);
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				doSearch(phraseText.getText());
-			}
-		});
-		button.setEnabled(false);
-		phraseText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				String text=phraseText.getText();
-				button.setEnabled(text.length()>0);
-			}
-		});
-		phraseText.addKeyListener(new KeyAdapter() {
-			public void keyReleased(KeyEvent e) {
-				if (e.character=='\r') {
-					if (button.isEnabled())
-						doSearch(phraseText.getText());
-				}
-			}
-		});
-		factory.paintBordersFor(container);
-		return container;
-	}
-	private void doSearch(String phrase) {
-		try {
-			String ephrase = URLEncoder.encode(phrase, "UTF-8");
-			String query = "tab=search&searchWord="+ephrase;
-			WorkbenchHelp.getHelpSupport().displayHelpResource(query);
-		}
-		catch (UnsupportedEncodingException e) {
-			System.out.println(e);
-		}
-	} 
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IFormContentObserver.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IFormContentObserver.java
deleted file mode 100644
index ba7801b..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IFormContentObserver.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Created on Jun 20, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public interface IFormContentObserver {
-	public void contentChanged(IFormContentProvider provider);
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IFormContentProvider.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IFormContentProvider.java
deleted file mode 100644
index 15e85ee..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IFormContentProvider.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Created on Jun 20, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public interface IFormContentProvider {
-	String getContent();
-	void setContentObserver(IFormContentObserver observer);
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IPortalSectionForm.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IPortalSectionForm.java
deleted file mode 100644
index a7d77a6..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/IPortalSectionForm.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Created on Jun 19, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.ui.forms.internal.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public interface IPortalSectionForm {
-	void init(IFormPage page);
-	Control createControl(Composite parent, FormWidgetFactory factory);
-	void dispose();
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/PortalSection.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/PortalSection.java
deleted file mode 100644
index b25eaa2..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/PortalSection.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Created on Jun 19, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-import java.io.*;
-import java.net.*;
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.update.ui.forms.internal.*;
-import org.eclipse.update.ui.forms.internal.engine.*;
-import org.eclipse.welcome.internal.WelcomePortal;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class PortalSection extends FormSection  {
-	private SectionDescriptor desc;
-	private WelcomePortalForm form;
-	private HyperlinkAction eclipseAction;
-	private HTTPAction httpAction;
-	private HyperlinkAction helpAction;
-	private Composite formContainer;
-	private Hashtable eclipseActions;
-
-	class ActionWrapper extends Action {
-		IActionDelegate delegate;
-
-		public ActionWrapper(String arg, IActionDelegate delegate) {
-			super(arg);
-			this.delegate = delegate;
-			if (delegate instanceof IWorkbenchWindowActionDelegate)
-				((IWorkbenchWindowActionDelegate) delegate).init(
-					WelcomePortal.getActiveWorkbenchWindow());
-		}
-		public void run() {
-			delegate.run(this);
-		}
-	}
-
-	public PortalSection(SectionDescriptor desc, WelcomePortalForm form) {
-		this.desc = desc;
-		this.form = form;
-		setDescriptionPainted(false);
-		setCollapsable(true);
-		setHeaderText(desc.getName());
-		makeHyperlinkActions();
-	}
-
-	private void makeHyperlinkActions() {
-		IActionBars bars =
-			form.getPortal().getEditor().getEditorSite().getActionBars();
-		httpAction = new HTTPAction() {
-			public void linkActivated(IHyperlinkSegment link) {
-				String url = link.getArg();
-				if (url != null)
-					WelcomePortal.showURL(link.getText(), url);
-			}
-		};
-		httpAction.setStatusLineManager(bars.getStatusLineManager());
-		eclipseAction = new HyperlinkAction() {
-			public void linkActivated(IHyperlinkSegment link) {
-				String arg = link.getArg();
-				if (arg != null)
-					runEclipseAction(arg);
-			}
-		};
-		eclipseAction.setStatusLineManager(bars.getStatusLineManager());
-		helpAction = new HyperlinkAction() {
-			public void linkActivated(IHyperlinkSegment link) {
-				String arg = link.getArg();
-				if (arg != null)
-					openEclipseHelp(arg);
-			}
-		};
-		helpAction.setStatusLineManager(bars.getStatusLineManager());
-	}
-	public Composite createClient(
-		Composite parent,
-		FormWidgetFactory factory) {
-		IConfigurationElement config = desc.getConfig();
-		formContainer = factory.createComposite(parent);
-		HTMLTableLayout layout = new HTMLTableLayout();
-		formContainer.setLayout(layout);
-		layout.topMargin = layout.bottomMargin = 0;
-		layout.leftMargin = layout.rightMargin = 0;
-		IConfigurationElement[] children = config.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			IConfigurationElement child = children[i];
-			if (child.getName().equals("form")) {
-				createForm(formContainer, child, factory);
-			}
-		}
-		return formContainer;
-	}
-
-	private void createForm(
-		final Composite parent,
-		IConfigurationElement config,
-		FormWidgetFactory factory) {
-		String type = config.getAttribute("type");
-		if (type != null && type.equals("custom")) {
-			createCustomForm(parent, config, factory);
-			return;
-		}
-		final FormEngine engine = factory.createFormEngine(parent);
-		//engine.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_CYAN));
-		engine.setHyperlinkSettings(factory.getHyperlinkHandler());
-		TableData td = new TableData(TableData.FILL, TableData.TOP);
-		td.grabHorizontal = true;
-		engine.setLayoutData(td);
-		engine.registerTextObject("url", httpAction);
-		engine.registerTextObject("action", eclipseAction);
-		engine.registerTextObject("help", helpAction);
-		if (type == null || type.equals("local")) {
-			String value = config.getValue();
-			engine.load("<form>" + value + "</form>", true, false);
-		} else if (type.equals("dynamic")) {
-			IFormContentProvider provider = createContentProvider(config);
-			if (provider!=null) {
-				engine.load(provider.getContent(), true, false);
-				provider.setContentObserver(new IFormContentObserver() {
-					public void contentChanged(IFormContentProvider provider) {
-						engine.load(provider.getContent(), true, false);
-						reflow();
-					}
-				});
-			}
-		} else if (type.equals("remote")) {
-			String urlName = config.getAttribute("url");
-			try {
-				final URL url = new URL(urlName);
-				Runnable loader = new Runnable() {
-					public void run() {
-						InputStream is = null;
-						try {
-							is = url.openStream();
-							engine.load(is, false);
-							parent.getDisplay().syncExec(new Runnable() {
-								public void run() {
-									reflow();
-								}
-							});
-						} catch (final IOException e) {
-							parent.getDisplay().syncExec(new Runnable() {
-								public void run() {
-									WelcomePortal.logException(e);
-								}
-							});
-
-						} finally {
-							try {
-								if (is != null)
-									is.close();
-							} catch (IOException e) {
-							}
-						}
-					}
-				};
-				Thread t = new Thread(loader);
-				t.start();
-			} catch (MalformedURLException e) {
-				WelcomePortal.logException(e);
-			}
-		}
-	}
-
-	private void createCustomForm(
-		Composite parent,
-		IConfigurationElement config,
-		FormWidgetFactory factory) {
-		try {
-			Object obj = config.createExecutableExtension("class");
-			if (obj instanceof IPortalSectionForm) {
-				IPortalSectionForm psection = (IPortalSectionForm) obj;
-				//psection.init(form.getPortal());
-				Control control = psection.createControl(parent, factory);
-				TableData td = new TableData(TableData.FILL, TableData.TOP);
-				td.grabHorizontal = true;
-				control.setLayoutData(td);
-			}
-		} catch (CoreException e) {
-			WelcomePortal.logException(e);
-		}
-	}
-	
-	private IFormContentProvider createContentProvider(IConfigurationElement config) {
-		try {
-			Object obj = config.createExecutableExtension("class");
-			if (obj instanceof IFormContentProvider) {
-				return (IFormContentProvider) obj;
-			}
-		} catch (CoreException e) {
-			WelcomePortal.logException(e);
-		}
-		return null;
-	}
-	protected void reflow() {
-		formContainer.layout();
-		super.reflow();
-		form.updateSize();
-	}
-
-	private void runEclipseAction(final String arg) {
-		BusyIndicator
-			.showWhile(form.getControl().getDisplay(), new Runnable() {
-			public void run() {
-				final IAction action = getEclipseAction(arg);
-				if (action != null)
-					action.run();
-			}
-		});
-	}
-
-	private IAction getEclipseAction(String arg) {
-		if (eclipseActions == null) {
-			eclipseActions = new Hashtable();
-		}
-		IAction action = (IAction) eclipseActions.get(arg);
-		if (action != null)
-			return action;
-		// load
-		int col = arg.indexOf(':');
-		String pluginId = arg.substring(0, col);
-		String className = arg.substring(col + 1);
-		IPluginDescriptor desc =
-			Platform.getPluginRegistry().getPluginDescriptor(pluginId);
-		if (desc == null) {
-			logActionLinkError(pluginId, className);
-			return null;
-		}
-		Class actionClass;
-		try {
-			actionClass = desc.getPluginClassLoader().loadClass(className);
-		} catch (ClassNotFoundException e) {
-			logActionLinkError(pluginId, className);
-			return null;
-		}
-		try {
-			Object obj = actionClass.newInstance();
-			if (obj instanceof IAction)
-				action = (IAction) obj;
-			else
-				action = new ActionWrapper(arg, (IActionDelegate) obj);
-		} catch (InstantiationException e) {
-			logActionLinkError(pluginId, className);
-			return null;
-		} catch (IllegalAccessException e) {
-			logActionLinkError(pluginId, className);
-			return null;
-		} catch (ClassCastException e) {
-			logActionLinkError(pluginId, className);
-			return null;
-		}
-		eclipseActions.put(arg, action);
-		return action;
-	}
-
-	private void logActionLinkError(String pluginId, String className) {
-		IStatus status =
-			new Status(
-				IStatus.ERROR,
-				WelcomePortal.getPluginId(),
-				IStatus.OK,
-				"Unable to load class "
-					+ className
-					+ " from plug-in "
-					+ pluginId
-					+ ".",
-				null);
-		WelcomePortal.log(status, true);
-	}
-	
-	private void openEclipseHelp(String arg) {
-		WorkbenchHelp.getHelpSupport().displayHelpResource(arg);
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/SectionDescriptor.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/SectionDescriptor.java
deleted file mode 100644
index 1f497b0..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/SectionDescriptor.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Created on Jun 19, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class SectionDescriptor {
-	private IConfigurationElement config;
-	
-	public SectionDescriptor(IConfigurationElement config) {
-		this.config = config;
-	}
-	
-	public String getId() {
-		return config.getAttribute("id");
-	}
-	
-	public String getName() {
-		return config.getAttribute("name");
-	}
-	public IConfigurationElement getConfig() {
-		return config;
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditor.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditor.java
deleted file mode 100644
index 23412e6..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditor.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Created on Jun 19, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.*;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class WelcomePortalEditor extends EditorPart {
-	private WelcomePortalPart welcomePart;
-	
-	public WelcomePortalEditor() {
-		welcomePart = new WelcomePortalPart(this);
-	}
-
-	public void dispose() {
-		if (welcomePart!=null)
-			welcomePart.dispose();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IEditorPart#gotoMarker(org.eclipse.core.resources.IMarker)
-	 */
-	public void gotoMarker(IMarker marker) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IEditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input)
-		throws PartInitException {
-		if (!(input instanceof WelcomePortalEditorInput))
-			throw new PartInitException("Invalid Input: Must be WelcomePortalEditorInput");
-		setSite(site);
-		setInput(input);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isDirty()
-	 */
-	public boolean isDirty() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		welcomePart.createControl(parent);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditorInput.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditorInput.java
deleted file mode 100644
index 93f1f42..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditorInput.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.welcome.internal.portal;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.*;
-/**
- * A simple editor input for the welcome editor
- */
-public class WelcomePortalEditorInput implements IEditorInput {
-	private final static String FACTORY_ID = "org.eclipse.welcome.internal.portal.WelcomePortalEditorInputFactory"; //$NON-NLS-1$
-	/**
-	 * WelcomeEditorInput constructor comment.
-	 */
-	public WelcomePortalEditorInput() {
-	}
-	public boolean exists() {
-		return false;
-	}
-	public Object getAdapter(Class adapter) {
-		return null;
-	}
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-	public String getName() {
-		return "Welcome";
-	}
-	public boolean equals(Object obj) {
-		if (obj==null) return false;
-		if (obj == this) return true;
-		if (obj instanceof WelcomePortalEditorInput) {
-			WelcomePortalEditorInput wobj = (WelcomePortalEditorInput)obj;
-			return true;
-		}
-		return false;
-	}
-	public IPersistableElement getPersistable() {
-		return new IPersistableElement() {
-			public String getFactoryId() {
-				return FACTORY_ID;
-			}
-			public void saveState(IMemento memento) {
-			}
-		};
-	}
-	public String getToolTipText() {
-		return getName();
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditorInputFactory.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditorInputFactory.java
deleted file mode 100644
index 30c76f3..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalEditorInputFactory.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.welcome.internal.portal;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.*;
-import org.eclipse.ui.IElementFactory;
-
-/**
- */
-public class WelcomePortalEditorInputFactory implements IElementFactory {
-	/**
-	 */
-	public WelcomePortalEditorInputFactory() {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IElementFactory#createElement(org.eclipse.ui.IMemento)
-	 */
-	public IAdaptable createElement(IMemento memento) {
-		return new WelcomePortalEditorInput();
-	}
-
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalForm.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalForm.java
deleted file mode 100644
index e4a44b0..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalForm.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Created on Jun 19, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.ui.forms.internal.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class WelcomePortalForm extends WebForm {
-	private WelcomePortalPart portal;
-	private IConfigurationElement pageConfig;
-
-	public WelcomePortalForm(WelcomePortalPart portal, IConfigurationElement pageConfig) {
-		this.portal = portal;
-		this.pageConfig = pageConfig;
-		setHeadingVisible(false);
-	}
-	
-	public void initialize(Object model) {
-		update();
-	}
-	
-	public WelcomePortalPart getPortal() {
-		return portal;
-	}
-	
-	protected void createContents(Composite parent) {
-		HTMLTableLayout layout = new HTMLTableLayout();
-		parent.setLayout(layout);
-		layout.numColumns = getInteger(pageConfig, "numColumns", 1);
-		layout.topMargin = 0;
-		layout.leftMargin = layout.rightMargin = 10;
-		layout.horizontalSpacing=15;
-		layout.verticalSpacing = 5;
-		//parent.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_GREEN));
-		layout.makeColumnsEqualWidth=true;
-		SelectableFormLabel customize = getFactory().createSelectableLabel(parent, "Customize...");
-		getFactory().turnIntoHyperlink(customize, new HyperlinkAdapter() {
-			public void linkActivated(Control link) {
-			}
-		});
-		TableData td = new TableData();
-		td.align = TableData.CENTER;
-		td.colspan = layout.numColumns;
-		customize.setLayoutData(td);
-		
-		IConfigurationElement [] sectionRefs = pageConfig.getChildren("section");
-		for (int i=0; i<sectionRefs.length; i++) {
-			IConfigurationElement sectionRef = sectionRefs[i];
-			String id = sectionRef.getAttribute("id");
-			SectionDescriptor desc = portal.findSection(id);
-			if (desc==null) continue;
-			PortalSection section = new PortalSection(desc, this);
-			Control control = section.createControl(parent, getFactory());
-			int span = getInteger(sectionRef, "span", 1);
-			td = new TableData(TableData.FILL, TableData.TOP);
-			td.colspan = span;
-			td.grabHorizontal = true;
-			control.setLayoutData(td);
-			registerSection(section);
-		}
-	}
-
-	private int getInteger(IConfigurationElement config, String attName, int def) {
-		String value = config.getAttribute(attName);
-		if (value!=null) {
-			try {
-				return Integer.parseInt(value);
-			}
-			catch (NumberFormatException e) {
-			}
-		}
-		return def;
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalPage.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalPage.java
deleted file mode 100644
index f4334d1..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalPage.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Created on Jun 19, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.ui.forms.internal.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class WelcomePortalPage implements IFormPage {
-	private Control control;
-	private String name;
-	private WelcomePortalPart portal;
-	private WelcomePortalForm form;
-	private IConfigurationElement config;
-	private SelectableFormLabel tab;
-	
-	public WelcomePortalPage(WelcomePortalPart portal, IConfigurationElement config) {
-		this.portal = portal;
-		this.form = new WelcomePortalForm(portal, config);
-		this.name = config.getAttribute("name");
-		this.config = config;
-	}
-	
-	public void setTab(SelectableFormLabel tab) {
-		this.tab = tab;
-	}
-	
-	public SelectableFormLabel getTab() {
-		return tab;
-	}
-
-	public boolean becomesInvisible(IFormPage newPage) {
-		return true;
-	}
-
-	public void becomesVisible(IFormPage previousPage) {
-	}
-
-	public void createControl(Composite parent) {
-		this.control = form.createControl(parent);
-		form.initialize(null);
-	}
-
-	public Control getControl() {
-		return control;
-	}
-
-	public String getLabel() {
-		return name;
-	}
-
-	public String getTitle() {
-		return name;
-	}
-
-	public boolean isSource() {
-		return false;
-	}
-
-	public boolean isVisible() {
-		return portal.isVisible(this);
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalPart.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalPart.java
deleted file mode 100644
index cd36701..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomePortalPart.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Created on Jun 19, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.ui.forms.internal.*;
-import org.eclipse.welcome.internal.WelcomePortal;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class WelcomePortalPart {
-	private static final int TAB_PADDING = 5;
-	private Hashtable sectionDescriptors;
-	class TabListener implements IHyperlinkListener {
-		public void linkActivated(Control linkLabel) {
-			IFormPage page = (IFormPage) linkLabel.getData();
-			workbook.selectPage(page, false);
-		}
-
-		public void linkEntered(Control linkLabel) {
-		}
-
-		public void linkExited(Control linkLabel) {
-			if (linkLabel==selectedTab)
-				highlightTab(selectedTab, true);
-		}
-	}
-
-	private TabListener tabListener = new TabListener();
-	private Composite tabContainer;
-	private FormWidgetFactory factory;
-	private HyperlinkHandler hhandler;
-	private WelcomePortalEditor editor;
-	private Color tabColor;
-	private NoTabsWorkbook workbook;
-	private SelectableFormLabel selectedTab;
-
-	public WelcomePortalPart(WelcomePortalEditor editor) {
-		factory = new FormWidgetFactory();
-		hhandler = new HyperlinkHandler();
-		workbook = new NoTabsWorkbook();
-		this.editor = editor;
-	}
-	
-	public WelcomePortalEditor getEditor() {
-		return editor;
-	}
-
-	public void dispose() {
-		factory.dispose();
-		hhandler.dispose();
-	}
-	
-	public boolean isVisible(IFormPage page) {
-		return workbook.getCurrentPage().equals(page);
-	}
-
-	public void createControl(Composite parent) {
-		Composite container = factory.createComposite(parent);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = layout.marginHeight = 0;
-		layout.numColumns = 2;
-		layout.verticalSpacing = 0;
-		layout.horizontalSpacing = 0;
-		container.setLayout(layout);
-		createTitle(container);
-		createTabs(container);
-		workbook.createControl(container);
-		workbook.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-		workbook.addFormSelectionListener(new IFormSelectionListener() {
-			public void formSelected(IFormPage page, boolean setFocus) {
-				hightlightTab((WelcomePortalPage) page);
-			}
-		});
-		workbook.selectPage(workbook.getPages()[0], true);
-	}
-
-	private void createTitle(Composite parent) {
-		WelcomeTitleArea title = new WelcomeTitleArea(parent, SWT.NULL);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		title.setLayoutData(gd);
-		title.setText("Welcome");
-		title.setBackground(factory.getBackgroundColor());
-		title.setForeground(factory.getForegroundColor());
-		title.setFont(JFaceResources.getHeaderFont());
-	}
-
-	private void createTabs(Composite parent) {
-		tabContainer = factory.createComposite(parent);
-		tabContainer.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				Point size = tabContainer.getSize();
-				Rectangle tabBounds = selectedTab.getBounds();
-				GC gc = e.gc;
-				gc.setBackground(factory.getBackgroundColor());
-				gc.fillRectangle(0, tabBounds.y-TAB_PADDING, size.x, tabBounds.height+TAB_PADDING+TAB_PADDING);
-			}
-		});
-		tabColor =
-			factory.getColor(FormWidgetFactory.COLOR_COMPOSITE_SEPARATOR);
-		tabContainer.setBackground(tabColor);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 10;
-		layout.marginHeight = TAB_PADDING;
-		layout.verticalSpacing = TAB_PADDING + TAB_PADDING;
-		tabContainer.setLayout(layout);
-		GridData gd = new GridData(GridData.FILL_VERTICAL);
-		tabContainer.setLayoutData(gd);
-		hhandler.setBackground(tabColor);
-		hhandler.setForeground(factory.getBackgroundColor());
-		hhandler.setHyperlinkUnderlineMode(
-			HyperlinkSettings.UNDERLINE_ROLLOVER);
-		loadTabs(tabContainer);
-	}
-	
-	private void loadTabs(Composite parent) {
-		IConfigurationElement [] pages = Platform.getPluginRegistry().getConfigurationElementsFor(WelcomePortal.getPluginId(), "welcomePages");
-		for (int i=0; i<pages.length; i++) {
-			createTab(parent, pages[i]);
-		}
-	}
-
-	private void createTab(
-		Composite parent,
-		IConfigurationElement config) {
-		WelcomePortalPage page = new WelcomePortalPage(this, config);
-		SelectableFormLabel tab = factory.createSelectableLabel(parent, page.getTitle());
-		GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-		tab.setBackground(tabColor);
-		tab.setForeground(factory.getBackgroundColor());
-		hhandler.registerHyperlink(tab, tabListener);
-		tab.setFont(JFaceResources.getBannerFont());
-		tab.setLayoutData(gd);
-		tab.setData(page);
-		page.setTab(tab);
-		workbook.addPage(page);
-	}
-
-	private void hightlightTab(WelcomePortalPage page) {
-		if (selectedTab != null)
-			highlightTab(selectedTab, false);
-		SelectableFormLabel tab = page.getTab();
-		highlightTab(tab, true);
-		selectedTab = tab;
-		tabContainer.redraw();
-	}
-
-	private void highlightTab(SelectableFormLabel tab, boolean selected) {
-		Color bg = tabColor;
-		Color fg = factory.getBackgroundColor();
-		tab.setForeground(selected ? bg : fg);
-		tab.setBackground(selected ? fg : bg);
-	}
-
-	public SectionDescriptor findSection(String id) {
-		if (sectionDescriptors==null) {
-			sectionDescriptors=new Hashtable();
-			IConfigurationElement [] sections = Platform.getPluginRegistry().getConfigurationElementsFor(WelcomePortal.getPluginId(), "welcomeSections");
-			for (int i=0; i<sections.length; i++) {
-				SectionDescriptor desc = new SectionDescriptor(sections[i]);
-				sectionDescriptors.put(desc.getId(), desc);
-			}
-		}
-		return (SectionDescriptor)sectionDescriptors.get(id);
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomeTitleArea.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomeTitleArea.java
deleted file mode 100644
index 8c60003..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/portal/WelcomeTitleArea.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Created on Jun 19, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.portal;
-
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.update.ui.forms.internal.FormLabel;
-import org.eclipse.welcome.internal.WelcomePortalImages;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class WelcomeTitleArea extends FormLabel {
-	private Image topImage;
-	private Image bottomImage;
-
-	public WelcomeTitleArea(Composite parent, int style) {
-		super(parent, style);
-		topImage = WelcomePortalImages.get(WelcomePortalImages.IMG_FORM_BANNER);
-		bottomImage = WelcomePortalImages.get(WelcomePortalImages.IMG_FORM_UNDERLINE);
-	}
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		Point textSize = super.computeSize(wHint, hHint, changed);
-		int width = textSize.x;
-		int height = Math.max(textSize.y, topImage.getBounds().height);
-		height += bottomImage.getBounds().height;
-		return new Point(width, height);
-	}
-	protected void paint(PaintEvent e) {
-		GC gc = e.gc;
-		Rectangle bounds = getBounds();
-		gc.drawImage(topImage, bounds.x, bounds.y);
-		int y =	bounds.y + bounds.height - bottomImage.getBounds().height;
-		gc.drawImage(bottomImage, 0, y);
-		super.paint(e);
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/BrowserControlSite.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/BrowserControlSite.java
deleted file mode 100644
index 26b7024..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/BrowserControlSite.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.welcome.internal.webbrowser;
-
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.swt.ole.win32.*;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Needed for the OLE implementation
- */
-public class BrowserControlSite extends OleControlSite {
-
-	protected boolean beenBuilt = false;
-	protected boolean startedDownload = false;
-	// Web Browser
-	private WebBrowser browser;
-	private String presentationURL;
-	private IStatusLineManager statusLineManager;
-	private int workSoFar = 0;
-	private int prevMax = 0;
-
-	public void setStatusLineManager(IStatusLineManager manager) {
-		this.statusLineManager = manager;
-	}
-
-	void setBrowser(WebBrowser browser) {
-		this.browser = browser;
-	}
-
-	public String getPresentationURL() {
-		return presentationURL;
-	}
-
-	/**
-	 * BrowserControlSite constructor
-	 */
-	public BrowserControlSite(Composite parent, int style, String progId) {
-		super(parent, style, progId);
-
-		addEventListener(WebBrowser.DownloadBegin, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				startedDownload = true;
-				//webProgress.setSelection(0);
-				prevMax = -1;
-			}
-		});
-
-		addEventListener(WebBrowser.DownloadComplete, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				startedDownload = false;
-				//webProgress.setSelection(0);
-				if (statusLineManager != null)
-					statusLineManager.getProgressMonitor().done();
-				presentationURL = browser.getLocationURL();
-			}
-		});
-
-		addEventListener(WebBrowser.BeforeNavigate2, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				//Variant urlVar = event.arguments[1];
-				//String strUrl = urlVar.getString();
-			}
-		});
-
-		// Respond to ProgressChange events by updating the Progress bar
-		addEventListener(WebBrowser.ProgressChange, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				if (!startedDownload) {
-					return;
-				}
-
-				Variant progress = event.arguments[0];
-				Variant maxProgress = event.arguments[1];
-
-				if (progress == null || maxProgress == null || progress.getInt() == -1) {
-					return;
-				}
-				/*
-				if (maxProgress.getInt()!=100)
-				   webProgress.setMaximum(maxProgress.getInt());
-				*/
-				if (prevMax != maxProgress.getInt()) {
-					statusLineManager.getProgressMonitor().beginTask("", maxProgress.getInt());
-					prevMax = maxProgress.getInt();
-				}
-				//webProgress.setSelection(progress.getInt());
-				int newValue = progress.getInt();
-				int worked = newValue - workSoFar;
-				workSoFar = newValue;
-				if (statusLineManager != null)
-					statusLineManager.getProgressMonitor().worked(worked);
-			}
-		});
-
-		addEventListener(WebBrowser.StatusTextChange, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				Variant newText = event.arguments[0];
-				String msg = newText.getString();
-
-				if (msg != null) {
-					if (statusLineManager != null)
-						statusLineManager.setMessage(msg);
-				} else {
-					if (statusLineManager != null)
-						statusLineManager.setMessage("");
-				}
-			}
-		});
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/GlobalActionHandler.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/GlobalActionHandler.java
deleted file mode 100644
index efb3c23..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/GlobalActionHandler.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.welcome.internal.webbrowser;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.ui.*;
-import org.eclipse.ui.IWorkbenchActionConstants;
-
-/**
- *
- */
-public class GlobalActionHandler {
-	private boolean active = false;
-	private Combo combo;
-	private ControlListener controlListener;
-
-	private class ControlListener implements Listener {
-		public void handleEvent(Event event) {
-			switch (event.type) {
-				case SWT.Activate :
-					active = true;
-					updateActionsEnableState();
-					break;
-				case SWT.Deactivate :
-					active = false;
-					updateActionsEnableState();
-					break;
-				default :
-					break;
-			}
-		}
-	}
-
-	private class GlobalAction extends Action {
-		private String id;
-
-		public GlobalAction(String id) {
-			this.id = id;
-		}
-
-		public void run() {
-			doGlobalAction(id);
-		}
-	}
-
-	private GlobalAction cutAction;
-	private GlobalAction copyAction;
-	private GlobalAction pasteAction;
-	private GlobalAction deleteAction;
-	private GlobalAction selectAllAction;
-	private GlobalAction undoAction;
-
-	public GlobalActionHandler(IActionBars actionBar, Combo combo) {
-		this.combo = combo;
-		makeActions();
-		actionBar.setGlobalActionHandler(
-			IWorkbenchActionConstants.CUT,
-			cutAction);
-		actionBar.setGlobalActionHandler(
-			IWorkbenchActionConstants.COPY,
-			copyAction);
-		actionBar.setGlobalActionHandler(
-			IWorkbenchActionConstants.PASTE,
-			pasteAction);
-		actionBar.setGlobalActionHandler(
-			IWorkbenchActionConstants.DELETE,
-			deleteAction);
-		actionBar.setGlobalActionHandler(
-			IWorkbenchActionConstants.SELECT_ALL,
-			selectAllAction);
-		actionBar.setGlobalActionHandler(
-			IWorkbenchActionConstants.UNDO,
-			undoAction);
-		controlListener = new ControlListener();
-		combo.addListener(SWT.Activate, controlListener);
-		combo.addListener(SWT.Deactivate, controlListener);
-	}
-
-	public void dispose() {
-		if (!combo.isDisposed()) {
-			combo.removeListener(SWT.Activate, controlListener);
-			combo.removeListener(SWT.Deactivate, controlListener);
-		}
-	}
-
-	private void makeActions() {
-		cutAction = new GlobalAction(IWorkbenchActionConstants.CUT);
-		copyAction = new GlobalAction(IWorkbenchActionConstants.COPY);
-		pasteAction = new GlobalAction(IWorkbenchActionConstants.PASTE);
-		deleteAction = new GlobalAction(IWorkbenchActionConstants.DELETE);
-		selectAllAction =
-			new GlobalAction(IWorkbenchActionConstants.SELECT_ALL);
-		undoAction = new GlobalAction(IWorkbenchActionConstants.UNDO);
-	}
-
-	private void updateActionsEnableState() {
-		if (!active) {
-			cutAction.setEnabled(false);
-			copyAction.setEnabled(false);
-			pasteAction.setEnabled(false);
-			deleteAction.setEnabled(false);
-			selectAllAction.setEnabled(false);
-			undoAction.setEnabled(false);
-		} else {
-			cutAction.setEnabled(true);
-			copyAction.setEnabled(true);
-			pasteAction.setEnabled(true);
-			deleteAction.setEnabled(true);
-			selectAllAction.setEnabled(true);
-			undoAction.setEnabled(true);
-		}
-	}
-
-	private void doGlobalAction(String id) {
-		if (id.equals(IWorkbenchActionConstants.CUT))
-			combo.cut();
-		else if (id.equals(IWorkbenchActionConstants.COPY))
-			combo.copy();
-		else if (id.equals(IWorkbenchActionConstants.PASTE))
-			combo.paste();
-		else if (id.equals(IWorkbenchActionConstants.DELETE))
-			doDelete();
-		else if (id.equals(IWorkbenchActionConstants.SELECT_ALL))
-			doSelectAll();
-	}
-
-	private void doDelete() {
-		String text = combo.getText();
-		Point selection = combo.getSelection();
-		if (selection.x == selection.y)
-			return;
-		String left = text.substring(0, selection.x);
-		String right = text.substring(selection.y + 1);
-		combo.setText(left + right);
-	}
-
-	private void doSelectAll() {
-		String text = combo.getText();
-		Point newSelection = new Point(0, text.length());
-		combo.setSelection(newSelection);
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/IEmbeddedWebBrowser.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/IEmbeddedWebBrowser.java
deleted file mode 100644
index 7a914b4..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/IEmbeddedWebBrowser.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.welcome.internal.webbrowser;
-
-public interface IEmbeddedWebBrowser {
-	public void openTo(String url);
-	public void setListener(IWebBrowserListener listener);
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/IWebBrowserListener.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/IWebBrowserListener.java
deleted file mode 100644
index 2d34243..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/IWebBrowserListener.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Created on Jun 18, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.webbrowser;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public interface IWebBrowserListener {
-	void stateChanged();
-
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowser.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowser.java
deleted file mode 100644
index 18ec8cf..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowser.java
+++ /dev/null
@@ -1,467 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.welcome.internal.webbrowser;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.ole.win32.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * ActiveX based web browser control.
- */
-public class WebBrowser implements OleListener {
-	// Generated from typelib filename: shdocvw.dll
-
-	// Constants for WebBrowser CommandStateChange
-
-	public static final short CSC_UPDATECOMMANDS = -1;
-	public static final short CSC_NAVIGATEFORWARD = 1;
-	public static final short CSC_NAVIGATEBACK = 2;
-
-	// Web Browser Control Events 
-	public static final int BeforeNavigate = 100;
-	// Fired when a new hyperlink is being navigated to.
-	public static final int NavigateComplete = 101;
-	// Fired when the document being navigated to becomes visible and enters the navigation stack.
-	public static final int StatusTextChange = 102;
-	// Statusbar text changed.
-	public static final int ProgressChange = 108;
-	// Fired when download progress is updated.
-	public static final int DownloadComplete = 104;
-	// Download of page complete.
-	public static final int CommandStateChange = 105;
-	// The enabled state of a command changed
-	public static final int DownloadBegin = 106;
-	// Download of a page started.
-	public static final int NewWindow = 107;
-	// Fired when a new window should be created.
-	public static final int TitleChange = 113;
-	// Document title changed.
-	public static final int FrameBeforeNavigate = 200;
-	// Fired when a new hyperlink is being navigated to in a frame.
-	public static final int FrameNavigateComplete = 201;
-	// Fired when a new hyperlink is being navigated to in a frame.
-	public static final int FrameNewWindow = 204;
-	// Fired when a new window should be created.
-	public static final int Quit = 103;
-	// Fired when application is quiting.
-	public static final int WindowMove = 109;
-	// Fired when window has been moved.
-	public static final int WindowResize = 110;
-	// Fired when window has been sized.
-	public static final int WindowActivate = 111;
-	// Fired when window has been activated.
-	public static final int PropertyChange = 112;
-	// Fired when the PutProperty method has been called.
-	public static final int BeforeNavigate2 = 250;
-	// Fired when a new hyperlink is being navigated to.
-	public static final int NewWindow2 = 251;
-	// Fired when a new window should be created.
-	public static final int DocumentComplete = 259;
-	// Fired when the document being navigated to reaches ReadyState_Complete.
-
-	// Web Browser properties
-	public static final int DISPID_READYSTATE = -525;
-
-	// Web Browser state
-	public static final int READYSTATE_UNINITIALIZED = 0;
-	public static final int READYSTATE_LOADING = 1;
-	public static final int READYSTATE_LOADED = 2;
-	public static final int READYSTATE_INTERACTIVE = 3;
-	public static final int READYSTATE_COMPLETE = 4;
-
-	// Keep track of the whether it is possible to navigate in the forward and backward directions
-	private boolean backwardEnabled;
-	private boolean forwardEnabled;
-
-	// The automation object and Control associated with the main OLE control
-	private OleAutomation oleObject;
-	private BrowserControlSite controlSite;
-
-	// The OLE frame (there should only be one)
-	private OleFrame controlFrame;
-
-	//private NestedPrintDelegate aPrintDelegate = null;
-
-	/**
-	 */
-	public WebBrowser(Composite parent) {
-
-		// Create the OLE frame. 
-		controlFrame = createOleFrame(parent);
-
-		// Creates the IE5 OLE Control
-		// The constructor also registers all the necessary OLE listeners.
-		// for now, only catch the execption if creating and activating the 
-		// control fails. No checking if the correct version of the OLE control 
-		// is installed.
-		try {
-			controlSite =
-				new BrowserControlSite(
-					controlFrame,
-					SWT.NONE,
-					"Shell.Explorer");
-			controlSite.setBrowser(this);
-			oleObject = new OleAutomation(controlSite);
-
-			backwardEnabled = false;
-			forwardEnabled = false;
-
-			// Listen for changes to the Command States
-			controlSite.addEventListener(CommandStateChange, this);
-
-			// initialize control
-			controlSite.doVerb(OLE.OLEIVERB_SHOW);
-
-			// create print Delegate (has to be done early, here!).
-			//aPrintDelegate = new NestedPrintDelegate(this, oleObject, controlSite);
-
-		} catch (Exception e) {
-			String id = "org.eclipse.update.ui.win32";
-			IStatus status =
-				new Status(IStatus.ERROR, id, IStatus.OK, e.getMessage(), e);
-			Platform.getPlugin("org.eclipse.core.runtime").getLog().log(status);
-		}
-	}
-	/**
-	 */
-	public int back() {
-
-		if (!backwardEnabled)
-			return OLE.S_FALSE;
-		forwardEnabled = true;
-
-		// dispid=100, type=METHOD, name="GoBack"
-
-		// You can hard code the DISPID if you know it before hand - this is of course the fastest way
-		//int dispIdMember = 100;
-
-		// Alternatively, you can look up the DISPID dynamically
-		int[] rgdispid = oleObject.getIDsOfNames(new String[] { "GoBack" });
-		int dispIdMember = rgdispid[0];
-
-		Variant pVarResult = oleObject.invoke(dispIdMember);
-
-		if (pVarResult == null || pVarResult.getType() == OLE.VT_EMPTY)
-			return 0;
-		return pVarResult.getInt();
-	}
-	/**
-	 */
-	public int copy() {
-		int result = controlSite.queryStatus(OLE.OLECMDID_COPY);
-		if ((result & OLE.OLECMDF_ENABLED) == OLE.OLECMDF_ENABLED) {
-			result =
-				controlSite.exec(
-					OLE.OLECMDID_COPY,
-					OLE.OLECMDEXECOPT_DODEFAULT,
-					null,
-					null);
-		}
-		return result;
-	}
-	protected OleFrame createOleFrame(Composite parent) {
-		if (controlFrame == null) {
-			controlFrame = new OleFrame(parent, SWT.NONE);
-			controlFrame.setLayoutData(
-				new GridData(
-					GridData.GRAB_HORIZONTAL
-						| GridData.GRAB_VERTICAL
-						| GridData.HORIZONTAL_ALIGN_FILL
-						| GridData.VERTICAL_ALIGN_FILL));
-		}
-		return controlFrame;
-
-	}
-	/**
-	 * clean up
-	 */
-	public void dispose() {
-		//** clean up
-		if (oleObject != null)
-			oleObject.dispose();
-		oleObject = null;
-
-		if (controlSite != null)
-			controlSite.dispose();
-		controlSite = null;
-
-		if (controlFrame != null)
-			controlFrame.dispose();
-		controlFrame = null;
-
-	}
-	/**
-	 */
-	public int forward() {
-		if (!forwardEnabled)
-			return OLE.S_FALSE;
-		backwardEnabled = true;
-		// dispid=101, type=METHOD, name="GoForward"
-
-		// You can hard code the DISPID if you know it before hand - this is of course the fastest way
-		//int dispIdMember = 101;
-
-		// Alternatively, you can look up the DISPID dynamically
-		int[] rgdispid = oleObject.getIDsOfNames(new String[] { "GoForward" });
-		int dispIdMember = rgdispid[0];
-
-		Variant pVarResult = oleObject.invoke(dispIdMember);
-		if (pVarResult == null || pVarResult.getType() == OLE.VT_EMPTY)
-			return 0;
-		return pVarResult.getInt();
-	}
-	public Control getControl() {
-		return controlFrame;
-	}
-	/**
-	 */
-	public String getLocationName() {
-		// dispid=210, type=PROPGET, name="LocationName"
-
-		// You can hard code the DISPID if you know it before hand - this is of course the fastest way
-		//int dispIdMember = 210;
-
-		// Alternatively, you can look up the DISPID dynamically
-		int[] rgdispid =
-			oleObject.getIDsOfNames(new String[] { "LocationName" });
-		int dispIdMember = rgdispid[0];
-		Variant pVarResult = oleObject.getProperty(dispIdMember);
-		if (pVarResult == null || pVarResult.getType() == OLE.VT_EMPTY)
-			return null;
-		return pVarResult.getString();
-	}
-	/**
-	 */
-	public String getLocationURL() {
-		// dispid=211, type=PROPGET, name="LocationURL"
-		// You can hard code the DISPID if you know it before hand - this is of course the fastest way
-		//int dispIdMember = 211;
-
-		// Alternatively, you can look up the DISPID dynamically
-		int[] rgdispid =
-			oleObject.getIDsOfNames(new String[] { "LocationURL" });
-		int dispIdMember = rgdispid[0];
-
-		Variant pVarResult = oleObject.getProperty(dispIdMember);
-		if (pVarResult == null || pVarResult.getType() == OLE.VT_EMPTY)
-			return null;
-		return pVarResult.getString();
-	}
-	protected OleFrame getOleFrame() {
-		return controlFrame;
-
-	}
-
-	public BrowserControlSite getControlSite() {
-		return controlSite;
-	}
-	/**
-	 */
-	public int getReadyState() {
-		// dispid=4294966771, type=PROPGET, name="ReadyState"
-		// READYSTATE_UNINITIALIZED = 0;
-		// READYSTATE_LOADING = 1;
-		// READYSTATE_LOADED = 2;
-		// READYSTATE_INTERACTIVE = 3;
-		// READYSTATE_COMPLETE = 4;
-
-		// You can hard code the DISPID if you know it before hand - this is of course the fastest way
-		//int dispIdMember = -525;
-
-		// Alternatively, you can look up the DISPID dynamically
-		int[] rgdispid = oleObject.getIDsOfNames(new String[] { "ReadyState" });
-		int dispIdMember = rgdispid[0];
-
-		Variant pVarResult = oleObject.getProperty(dispIdMember);
-		if (pVarResult == null || pVarResult.getType() == OLE.VT_EMPTY)
-			return -1;
-		return pVarResult.getInt();
-	}
-	/**
-	 */
-	public void handleEvent(OleEvent event) {
-		switch (event.type) {
-			case (CommandStateChange) :
-				int command = 0;
-				boolean enabled = false;
-
-				Variant varResult = event.arguments[0];
-				if (varResult != null && varResult.getType() != OLE.VT_EMPTY) {
-					command = varResult.getInt();
-				}
-
-				varResult = event.arguments[1];
-				if (varResult != null && varResult.getType() != OLE.VT_EMPTY) {
-					enabled = varResult.getBoolean();
-				}
-
-				if (command == CSC_NAVIGATEBACK)
-					backwardEnabled = enabled;
-				if (command == CSC_NAVIGATEFORWARD)
-					forwardEnabled = enabled;
-
-				return;
-
-			case (DocumentComplete) :
-				varResult = event.arguments[0];
-				return;
-		}
-		//throw new OleError(OLE.ERROR_NOT_IMPLEMENTED);
-	}
-	/**
-	 */
-	public int home() {
-		// dispid=102, type=METHOD, name="GoHome"
-
-		// You can hard code the DISPID if you know it before hand - this is of course the fastest way
-		//int dispIdMember = 102;
-
-		// Alternatively, you can look up the DISPID dynamically
-		int[] rgdispid = oleObject.getIDsOfNames(new String[] { "GoHome" });
-		int dispIdMember = rgdispid[0];
-
-		Variant pVarResult = oleObject.invoke(dispIdMember);
-		if (pVarResult == null || pVarResult.getType() == OLE.VT_EMPTY)
-			return 0;
-		return pVarResult.getInt();
-	}
-	/**
-	 */
-	public int navigate(String url) {
-		return navigate(oleObject, url);
-	}
-	/**
-	 */
-	protected int navigate(OleAutomation aOleAutomation, String url) {
-		//if (Logger.DEBUG)
-		//Logger.logDebugMessage("WebBrowser", "navigate to: " + url);
-		// dispid=104, type=METHOD, name="Navigate"
-
-		// You can hard code the DISPID if you know it before hand - this is of course the fastest way
-		//int dispIdMember = 104;
-
-		// Alternatively, you can look up the DISPID dynamically
-		// Here we are looking up the id of the argument as well
-		int[] rgdispid =
-			aOleAutomation.getIDsOfNames(new String[] { "Navigate", "URL" });
-		int dispIdMember = rgdispid[0];
-
-		Variant[] rgvarg = new Variant[1];
-		rgvarg[0] = new Variant(url);
-		int[] rgdispidNamedArgs = new int[1];
-		rgdispidNamedArgs[0] = rgdispid[1]; // identifier of argument
-		Variant pVarResult =
-			aOleAutomation.invoke(dispIdMember, rgvarg, rgdispidNamedArgs);
-		if (pVarResult == null || pVarResult.getType() == OLE.VT_EMPTY)
-			return 0;
-		return pVarResult.getInt();
-
-	}
-	/**
-	 */
-	public int print() {
-		return print(controlSite, true);
-	}
-	/**
-	 */
-	protected int print(BrowserControlSite aControlSite, boolean promptuser) {
-
-		int result = aControlSite.queryStatus(OLE.OLECMDID_PRINT);
-
-		if ((result & OLE.OLECMDF_ENABLED) == OLE.OLECMDF_ENABLED) {
-			if (promptuser)
-				result =
-					aControlSite.exec(
-						OLE.OLECMDID_PRINT,
-						OLE.OLECMDEXECOPT_PROMPTUSER,
-						null,
-						null);
-			else
-				result =
-					aControlSite.exec(
-						OLE.OLECMDID_PRINT,
-						OLE.OLECMDEXECOPT_DONTPROMPTUSER,
-						null,
-						null);
-		}
-
-		//if (Logger.DEBUG)
-		//Logger.logDebugMessage("WebBrowser", "exec returns: " + Integer.toString(result));
-		return result;
-	}
-
-	/**
-	 * Refresh the currently viewed page.
-	 */
-	public void refresh() {
-
-		// dispid= 4294966746, type=METHOD, name="Refresh"
-
-		// You can hard code the DISPID if you know it before hand - this is of course the fastest way
-		//int dispIdMember =  4294966746;
-
-		// Alternatively, you can look up the DISPID dynamically
-		int[] rgdispid = oleObject.getIDsOfNames(new String[] { "Refresh" });
-		int dispIdMember = rgdispid[0];
-
-		oleObject.invokeNoReply(dispIdMember);
-	}
-	/**
-	 */
-	public int search() {
-		// dispid=103, type=METHOD, name="GoSearch"
-
-		// You can hard code the DISPID if you know it before hand - this is of course the fastest way
-		//int dispIdMember = 103;
-
-		// Alternatively, you can look up the DISPID dynamically
-		int[] rgdispid = oleObject.getIDsOfNames(new String[] { "GoSearch" });
-		int dispIdMember = rgdispid[0];
-
-		Variant pVarResult = oleObject.invoke(dispIdMember);
-		if (pVarResult == null || pVarResult.getType() == OLE.VT_EMPTY)
-			return 0;
-		return pVarResult.getInt();
-	}
-	/**
-	 */
-	public void stop() {
-		// dispid=106, type=METHOD, name="Stop"
-
-		// You can hard code the DISPID if you know it before hand - this is of course the fastest way
-		//int dispIdMember = 106;
-
-		// Alternatively, you can look up the DISPID dynamically
-		int[] rgdispid = oleObject.getIDsOfNames(new String[] { "Stop" });
-		int dispIdMember = rgdispid[0];
-
-		//Variant pVarResult = oleObject.invoke(dispIdMember);
-		oleObject.invoke(dispIdMember);
-	}
-	/**
-	 * Gets the forwardEnabled
-	 * @return Returns a boolean
-	 */
-	public boolean isForwardEnabled() {
-		return forwardEnabled;
-	}
-
-	/**
-	 * Gets the backwardEnabled
-	 * @return Returns a boolean
-	 */
-	public boolean isBackwardEnabled() {
-		return backwardEnabled;
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditor.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditor.java
deleted file mode 100644
index 1a7402c..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditor.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.welcome.internal.webbrowser;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.ole.win32.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.part.EditorPart;
-import org.eclipse.welcome.internal.*;
-
-public class WebBrowserEditor extends EditorPart implements IEmbeddedWebBrowser {
-	// NL
-	private static final String KEY_NOT_AVAILABLE =
-		"WebBrowserView.notAvailable";
-	private static final String KEY_ADDRESS = "WebBrowserView.address";
-	private static final String KEY_STOP = "WebBrowserView.stop";
-	private static final String KEY_GO = "WebBrowserView.go";
-	private static final String KEY_REFRESH = "WebBrowserView.refresh";
-	private static final String KEY_BACKWARD = "WebBrowserView.backward";
-	private static final String KEY_FORWARD = "WebBrowserView.forward";
-
-	private int ADDRESS_SIZE = 10;
-	private WebBrowser browser;
-	private Control control;
-	private Combo addressCombo;
-	private Object input;
-	private ToolBarManager toolBarManager;
-	private Action refreshAction;
-	private Action stopAction;
-	private Action goAction;
-	private GlobalActionHandler globalActionHandler;
-	private IWebBrowserListener listener;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IEditorPart#gotoMarker(org.eclipse.core.resources.IMarker)
-	 */
-	public void gotoMarker(IMarker marker) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IEditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input)
-		throws PartInitException {
-		if (!(input instanceof WebBrowserEditorInput))
-			throw new PartInitException("Invalid Input: Must be WelcomeEditorInput");
-		setSite(site);
-		setInput(input);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isDirty()
-	 */
-	public boolean isDirty() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	public WebBrowserEditor() {
-	}
-
-	/**
-	 * @see IFormPage#createControl(Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		control = container;
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.verticalSpacing = 0;
-		container.setLayout(layout);
-
-		Composite navContainer = new Composite(container, SWT.NONE);
-		layout = new GridLayout();
-		layout.numColumns = 3;
-		layout.marginHeight = 1;
-		navContainer.setLayout(layout);
-		createNavBar(navContainer);
-		navContainer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		final WebBrowser winBrowser = new WebBrowser(container);
-		browser = winBrowser;
-
-		Control c = browser.getControl();
-		c.setLayoutData(new GridData(GridData.FILL_BOTH));
-		final BrowserControlSite site = winBrowser.getControlSite();
-		IStatusLineManager smng =
-			getEditorSite().getActionBars().getStatusLineManager();
-		site.setStatusLineManager(smng);
-
-		site.addEventListener(WebBrowser.DownloadComplete, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				String url = winBrowser.getLocationURL();
-				if (url != null) {
-					addressCombo.setText(url);
-					downloadComplete(url);
-				}
-			}
-		});
-		site.addEventListener(WebBrowser.DownloadBegin, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				stopAction.setEnabled(true);
-				refreshAction.setEnabled(false);
-			}
-		});
-		WorkbenchHelp.setHelp(container, "org.eclipse.update.ui.WebBrowserView");
-		WebBrowserEditorInput input = (WebBrowserEditorInput)getEditorInput();
-		openTo(input.getURL());
-	}
-
-	public void openTo(final String url) {
-		addressCombo.setText(url);
-		control.getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				navigate(url);
-			}
-		});
-	}
-
-	private void downloadComplete(String url) {
-		stopAction.setEnabled(false);
-		refreshAction.setEnabled(true);
-		if (listener!=null)
-			listener.stateChanged();
-	}
-	
-	public void setListener(IWebBrowserListener listener) {
-		this.listener = listener;
-	}
-
-	private void createNavBar(Composite parent) {
-		Label addressLabel = new Label(parent, SWT.NONE);
-		addressLabel.setText(WelcomePortal.getString(KEY_ADDRESS));
-
-		addressCombo = new Combo(parent, SWT.DROP_DOWN | SWT.BORDER);
-		addressCombo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				String text = addressCombo.getText();
-				goAction.setEnabled(text.length() > 0);
-			}
-		});
-		addressCombo.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				String text =
-					addressCombo.getItem(addressCombo.getSelectionIndex());
-				if (text.length() > 0)
-					navigate(text);
-			}
-			public void widgetDefaultSelected(SelectionEvent e) {
-				navigate(addressCombo.getText());
-			}
-		});
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		addressCombo.setLayoutData(gd);
-		ToolBar toolbar = new ToolBar(parent, SWT.FLAT | SWT.HORIZONTAL);
-		toolBarManager = new ToolBarManager(toolbar);
-		makeActions();
-		IActionBars bars = getEditorSite().getActionBars();
-		globalActionHandler = new GlobalActionHandler(bars, addressCombo);
-	}
-
-	private void navigate(String url) {
-		browser.navigate(url);
-		String[] items = addressCombo.getItems();
-		int loc = -1;
-		String normURL = getNormalizedURL(url);
-		for (int i = 0; i < items.length; i++) {
-			String normItem = getNormalizedURL(items[i]);
-			if (normURL.equals(normItem)) {
-				// match 
-				loc = i;
-				break;
-			}
-		}
-		if (loc != -1) {
-			addressCombo.remove(loc);
-		}
-		addressCombo.add(url, 0);
-		if (addressCombo.getItemCount() > ADDRESS_SIZE) {
-			addressCombo.remove(addressCombo.getItemCount() - 1);
-		}
-		addressCombo.getParent().layout(true);
-	}
-	
-	void back() {
-		browser.back();
-	}
-	void forward() {
-		browser.forward();
-	}
-	boolean isBackwardEnabled() {
-		return browser.isBackwardEnabled();
-	}
-	boolean isForwardEnabled() {
-		return browser.isForwardEnabled();
-	}
-
-	private void makeActions() {
-		goAction = new Action() {
-			public void run() {
-				navigate(addressCombo.getText());
-			}
-		};
-		goAction.setEnabled(false);
-		goAction.setToolTipText(WelcomePortal.getString(KEY_GO));
-		goAction.setImageDescriptor(WelcomePortalImages.DESC_GO_NAV);
-		goAction.setDisabledImageDescriptor(WelcomePortalImages.DESC_GO_NAV_D);
-		goAction.setHoverImageDescriptor(WelcomePortalImages.DESC_GO_NAV_H);
-
-		stopAction = new Action() {
-			public void run() {
-				browser.stop();
-			}
-		};
-		stopAction.setToolTipText(WelcomePortal.getString(KEY_STOP));
-		stopAction.setImageDescriptor(WelcomePortalImages.DESC_STOP_NAV);
-		stopAction.setDisabledImageDescriptor(
-			WelcomePortalImages.DESC_STOP_NAV_D);
-		stopAction.setHoverImageDescriptor(
-			WelcomePortalImages.DESC_STOP_NAV_H);
-		stopAction.setEnabled(false);
-
-		refreshAction = new Action() {
-			public void run() {
-				browser.refresh();
-			}
-		};
-		refreshAction.setToolTipText(
-			WelcomePortal.getString(KEY_REFRESH));
-		refreshAction.setImageDescriptor(WelcomePortalImages.DESC_REFRESH_NAV);
-		refreshAction.setDisabledImageDescriptor(
-			WelcomePortalImages.DESC_REFRESH_NAV_D);
-		refreshAction.setHoverImageDescriptor(
-			WelcomePortalImages.DESC_REFRESH_NAV_H);
-		refreshAction.setEnabled(false);
-
-		toolBarManager.add(goAction);
-		toolBarManager.add(new Separator());
-		toolBarManager.add(stopAction);
-		toolBarManager.add(refreshAction);
-		toolBarManager.update(true);
-	}
-
-	private String getNormalizedURL(String url) {
-		url = url.toLowerCase();
-		if (url.indexOf("://") == -1) {
-			url = "http://" + url;
-		}
-		return url;
-	}
-
-	public void dispose() {
-		if (browser != null)
-			browser.dispose();
-		globalActionHandler.dispose();
-		super.dispose();
-	}
-
-	public void setFocus() {
-		if (control != null)
-			control.setFocus();
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorContributor.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorContributor.java
deleted file mode 100644
index 54b9039..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorContributor.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Created on Jun 18, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.welcome.internal.webbrowser;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.part.EditorActionBarContributor;
-import org.eclipse.welcome.internal.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class WebBrowserEditorContributor
-	extends EditorActionBarContributor
-	implements IWebBrowserListener {
-	private static final String KEY_NOT_AVAILABLE =
-		"WebBrowserView.notAvailable";
-	private static final String KEY_HOME = "WebBrowserView.home";
-	private static final String KEY_BACKWARD = "WebBrowserView.backward";
-	private static final String KEY_FORWARD = "WebBrowserView.forward";
-
-	private Action homeAction;
-	private Action backwardAction;
-	private Action forwardAction;
-	private WebBrowserEditor editor;
-	
-	public WebBrowserEditorContributor() {
-		makeActions();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.welcome.internal.IWebBrowserListener#stateChanged()
-	 */
-	public void stateChanged() {
-		updateActions();
-	}
-
-	private void makeActions() {
-		homeAction = new Action() {
-			public void run() {
-				WebBrowserEditorInput input = (WebBrowserEditorInput)editor.getEditorInput();
-				editor.openTo(input.getURL());
-			}
-		};
-		homeAction.setEnabled(true);
-		homeAction.setToolTipText(WelcomePortal.getString(KEY_HOME));
-		homeAction.setImageDescriptor(
-			WelcomePortalImages.DESC_HOME_NAV);
-		homeAction.setDisabledImageDescriptor(
-			WelcomePortalImages.DESC_HOME_NAV_D);
-		homeAction.setHoverImageDescriptor(
-			WelcomePortalImages.DESC_HOME_NAV_H);
-
-
-		backwardAction = new Action() {
-			public void run() {
-				editor.back();
-			}
-		};
-		backwardAction.setEnabled(false);
-		backwardAction.setToolTipText(WelcomePortal.getString(KEY_BACKWARD));
-		backwardAction.setImageDescriptor(
-			WelcomePortalImages.DESC_BACKWARD_NAV);
-		backwardAction.setDisabledImageDescriptor(
-			WelcomePortalImages.DESC_BACKWARD_NAV_D);
-		backwardAction.setHoverImageDescriptor(
-			WelcomePortalImages.DESC_BACKWARD_NAV_H);
-
-		forwardAction = new Action() {
-			public void run() {
-				editor.forward();
-			}
-		};
-		forwardAction.setToolTipText(WelcomePortal.getString(KEY_FORWARD));
-		forwardAction.setImageDescriptor(WelcomePortalImages.DESC_FORWARD_NAV);
-		forwardAction.setDisabledImageDescriptor(
-			WelcomePortalImages.DESC_FORWARD_NAV_D);
-		forwardAction.setHoverImageDescriptor(
-			WelcomePortalImages.DESC_FORWARD_NAV_H);
-		forwardAction.setEnabled(false);
-	}
-
-	public void contributeToToolBar(IToolBarManager toolBarManager) {
-		toolBarManager.add(new Separator());
-		toolBarManager.add(homeAction);
-		toolBarManager.add(backwardAction);
-		toolBarManager.add(forwardAction);
-	}
-	public void setActiveEditor(IEditorPart targetEditor) {
-		if (this.editor != null)
-			this.editor.setListener(null);
-		editor = (WebBrowserEditor) targetEditor;
-		if (editor != null) {
-			editor.setListener(this);
-			updateActions();
-		}
-	}
-	private void updateActions() {
-		backwardAction.setEnabled(editor.isBackwardEnabled());
-		forwardAction.setEnabled(editor.isForwardEnabled());
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorInput.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorInput.java
deleted file mode 100644
index a89e087..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorInput.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.welcome.internal.webbrowser;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.*;
-/**
- * A simple editor input for the welcome editor
- */
-public class WebBrowserEditorInput implements IEditorInput {
-	private final static String FACTORY_ID = "org.eclipse.welcome.internal.webbrowser.WebBrowserEditorInputFactory"; //$NON-NLS-1$
-	private String url;
-	private String name;
-	/**
-	 * WelcomeEditorInput constructor comment.
-	 */
-	public WebBrowserEditorInput(String name, String url) {
-		this.name = name;
-		this.url = url;
-	}
-	public boolean exists() {
-		return false;
-	}
-	public Object getAdapter(Class adapter) {
-		return null;
-	}
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-	public String getName() {
-		return name;
-	}
-	public String getURL() {
-		return url;
-	}
-	public boolean equals(Object obj) {
-		if (obj==null) return false;
-		if (obj == this) return true;
-		if (obj instanceof WebBrowserEditorInput) {
-			WebBrowserEditorInput wobj = (WebBrowserEditorInput)obj;
-			return wobj.getURL().equals(getURL());
-		}
-		return false;
-	}
-	public IPersistableElement getPersistable() {
-		return new IPersistableElement() {
-			public String getFactoryId() {
-				return FACTORY_ID;
-			}
-			public void saveState(IMemento memento) {
-				memento.putString("name", name);
-				memento.putString("url", url);
-			}
-		};
-	}
-	public String getToolTipText() {
-		return name;
-	}
-}
diff --git a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorInputFactory.java b/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorInputFactory.java
deleted file mode 100644
index a48055f..0000000
--- a/update/org.eclipse.update.ui.win32/src/org/eclipse/welcome/internal/webbrowser/WebBrowserEditorInputFactory.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.welcome.internal.webbrowser;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.*;
-import org.eclipse.ui.IElementFactory;
-
-/**
- */
-public class WebBrowserEditorInputFactory implements IElementFactory {
-	/**
-	 */
-	public WebBrowserEditorInputFactory() {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IElementFactory#createElement(org.eclipse.ui.IMemento)
-	 */
-	public IAdaptable createElement(IMemento memento) {
-		String name = memento.getString("name");
-		String url = memento.getString("url");
-		return new WebBrowserEditorInput(name, url);
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/.classpath b/update/org.eclipse.update.ui/.classpath
deleted file mode 100644
index 4848249..0000000
--- a/update/org.eclipse.update.ui/.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/update/org.eclipse.update.ui/.cvsignore b/update/org.eclipse.update.ui/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/update/org.eclipse.update.ui/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/update/org.eclipse.update.ui/.project b/update/org.eclipse.update.ui/.project
deleted file mode 100644
index 391169b..0000000
--- a/update/org.eclipse.update.ui/.project
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.update.ui</name>

-	<comment></comment>

-	<projects>

-		<project>org.eclipse.core.boot</project>

-		<project>org.eclipse.core.runtime</project>

-		<project>org.eclipse.help.base</project>

-		<project>org.eclipse.ui</project>

-		<project>org.eclipse.ui.forms</project>

-		<project>org.eclipse.update.configurator</project>

-		<project>org.eclipse.update.core</project>

-		<project>org.eclipse.update.core.linux</project>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/update/org.eclipse.update.ui/Graphics_update.html b/update/org.eclipse.update.ui/Graphics_update.html
deleted file mode 100644
index fdae1a3..0000000
--- a/update/org.eclipse.update.ui/Graphics_update.html
+++ /dev/null
@@ -1,955 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0110)http://design.torolab.ibm.com/aim/WSWB-eclipse/1020_PDE/implementation_icons/org.eclipse.pde/Graphics_pde.html -->
-<HTML><HEAD><TITLE>graphics</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="Greg Adams" name=Author>
-<META content="Microsoft FrontPage 4.0" name=GENERATOR></HEAD>
-<BODY bgColor=white>
-<H2>org.eclipse.update.ui - Graphics Summary</H2><FONT size=-1><STRONG>Competency 
-lead: </STRONG>Vlad Klicnik / TOL <BR><STRONG>Technical lead: </STRONG>Dejan 
-Glozic / TOL <BR><STRONG>UCD designer: </STRONG>Julian Jones / TOL 
-<BR><STRONG>UI designer: </STRONG>Andrée Proulx / TOL <BR><STRONG>ID writer: 
-</STRONG>-</FONT> 
-<HR width="100%" SIZE=1>
-<B><FONT size=-1>History:</FONT></B> 
-<p><font size="-1">April 19, 2002 : Template Submission</font></p>
-<HR width="100%" SIZE=1>
-<!--- Start Here --->
-<TABLE cellSpacing=0 cellPadding=3 width="100%" border=0 height="3147">
-  
-  <TR bgColor=#bfbf7f>
-    <TD colSpan=7><B><FONT size=+2>View</FONT></B></TD></TR>
-  <TR bgColor=#dfdf9f>
-    <TD>&nbsp;</TD>
-    <TD><B><FONT size=-1>Item</FONT></B></TD>
-    <TD><B><FONT size=-1>File Name&nbsp; (.gif)</FONT></B></TD>
-    <TD><B><FONT size=-1>Description/Hoover Help</FONT></B></TD>
-    <TD>
-      <CENTER><B><FONT size=-1>Old</FONT></B> </CENTER></TD>
-    <TD>
-      <CENTER><B><FONT size=-1>New Full</FONT></B> </CENTER></TD>
-    <TD><B><FONT size=-1>Status</FONT></B></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>1</TD>
-    <TD>Configurations</TD>
-    <TD><FONT size=-1>configs</FONT></TD>
-    <TD><FONT size=-1> shows the configurations of the Eclipse-based application</FONT></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/view16/configs.gif" width=16 border=0></TD>
-    <TD><IMG height=16 alt="" 
-      src="icons/full/cview16/configs.gif" width=16 border=0>&nbsp;<IMG height=16 
-      alt="" src="icons/full/eview16/configs.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>2</TD>
-    <TD>Updates</TD>
-    <TD><FONT size=-1>updates</FONT></TD>
-    <TD><FONT size=-1>shows sites an Eclipse app can be updated from</FONT></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/view16/updates.gif" width=16 border=0></TD>
-    <TD><IMG height=16 alt="" 
-      src="icons/full/cview16/updates.gif" width=16 border=0>&nbsp;<IMG height=16 
-      alt="" src="icons/full/eview16/updates.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>3</TD>
-    <TD>Preview</TD>
-    <TD><font size="-1">preview</font></TD>
-    <TD><font size="-1">shows details of the selected object</font></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/view16/preview.gif" width=16 border=0></TD>
-    <TD><IMG height=16 alt="" 
-      src="icons/full/cview16/preview.gif" width=16 border=0>&nbsp;<IMG height=16 
-      alt="" src="icons/full/eview16/preview.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>4</TD>
-    <TD>Web Browser</TD>
-    <TD><font size="-1">browser</font></TD>
-    <TD><font size="-1">a fully-functioning Web browser (hosts IE5 - Windows only)</font></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/view16/browser.gif" width=16 border=0></TD>
-    <TD><IMG height=16 alt="" 
-      src="icons/full/cview16/browser.gif" width=16 border=0>&nbsp;<IMG height=16 
-      alt="" src="icons/full/eview16/browser.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-   <TR bgColor=#ffffff>
-    <TD>5</TD>
-    <TD>Update Perspective</TD>
-    <TD><font size="-1">update_pers</font></TD>
-    <TD><font size="-1">Represents Install/Update
-      perspective in the UI</font></TD>
-    <TD></TD>
-    <TD><IMG height=16 alt="" 
-      src="icons/full/cview16/update_pers.gif" width=16 border=0>&nbsp;<IMG height=16 
-      alt="" src="icons/full/eview16/update_pers.gif" width=16 
-border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD>
-  </TR>
-  
-  <TR bgColor=#bfbf7f>
-    <TD colSpan=7><B><FONT size=+2>Toolbar Wizard</FONT></B></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>1</TD>
-    <TD> </TD>
-    <TD><FONT size=-1>&nbsp;</FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">    description</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;tool tip&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/ctool16/config_wiz.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/etool16/config_wiz.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dtool16/config_wiz.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-	
-  <TR bgColor=#dfdf9f>
-    <TD>2</TD>
-    <TD> </TD>
-    <TD><FONT size=-1></FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">    description</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;tool tip&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/ctool16/install_wiz.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/etool16/install_wiz.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dtool16/install_wiz.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  
-  <TR bgColor=#ffffff>
-    <TD>3</TD>
-    <TD> </TD>
-    <TD><FONT size=-1>&nbsp;</FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">    description</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;tool tip&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/ctool16/new_bookmark_wiz.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/etool16/new_bookmark_wiz.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dtool16/new_bookmark_wiz.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-	
-  <TR bgColor=#dfdf9f>
-    <TD>4</TD>
-    <TD> </TD>
-    <TD><FONT size=-1>&nbsp;</FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">    description</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;tool tip&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/ctool16/new_folder_wiz.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/etool16/new_folder_wiz.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dtool16/new_folder_wiz.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>5</TD>
-    <TD> </TD>
-    <TD><FONT size=-1>&nbsp;</FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">    description</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;tool tip&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/ctool16/new_search_wiz.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/etool16/new_search_wiz.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dtool16/new_search_wiz.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-	
-  <TR bgColor=#dfdf9f>
-    <TD>6</TD>
-    <TD> </TD>
-    <TD><FONT size=-1>&nbsp;</FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">    description</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;tool tip&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/ctool16/uninstall_wiz.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/etool16/uninstall_wiz.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dtool16/uninstall_wiz.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-	<TR bgColor=#ffffff>
-    <TD>7</TD>
-    <TD> </TD>
-    <TD><FONT size=-1>&nbsp;</FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">    description</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;tool tip&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/ctool16/update_wiz.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/etool16/update_wiz.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dtool16/update_wiz.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  
-  
-  <TR bgColor=#bfbf7f>
-    <TD colSpan=7><B><FONT size=+2>Local Toolbar</FONT></B></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>1</TD>
-    <TD>Go Backward</TD>
-    <TD><FONT size=-1>&nbsp;backward_nav</FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">A standard browser 'backward' button</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;Go Backward&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/clcl16/backward_nav.gif" width=16 border=0> <IMG 
-      height=16 alt="" 
-      src="../old.icons/full/elcl16/backward_nav.gif" 
-      width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/dlcl16/backward_nav.gif" 
-      width=16 border=0></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/clcl16/backward_nav.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/elcl16/backward_nav.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dlcl16/backward_nav.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-	
-  <TR bgColor=#dfdf9f>
-    <TD>2</TD>
-    <TD>Go Forward</TD>
-    <TD><FONT size=-1>&nbsp;forward_nav</FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">A standard browser 'forward' button</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;Go Forward&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/clcl16/forward_nav.gif" width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/elcl16/forward_nav.gif" width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/dlcl16/forward_nav.gif" width=16 border=0></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/clcl16/forward_nav.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/elcl16/forward_nav.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dlcl16/forward_nav.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>3</TD>
-    <TD>Go</TD>
-    <TD><FONT size=-1>&nbsp;go_nav</FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">A standard browser button for
-            navigating to a URL.</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;Go&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/clcl16/go_nav.gif" width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/elcl16/go_nav.gif" width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/dlcl16/go_nav.gif" width=16 border=0></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/clcl16/go_nav.gif" width=16 border=0>&nbsp;<IMG height=16 
-      alt="" src="icons/full/elcl16/go_nav.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/dlcl16/go_nav.gif" width=16 
-    border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-	
-  <TR bgColor=#dfdf9f>
-    <TD>4</TD>
-    <TD>Go Home</TD>
-    <TD><FONT size=-1>&nbsp;home_nav</FONT></TD>
-    <TD >
-      <TABLE cellSpacing=2 cellPadding=0 border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">A standard browser button
-            for going to the home location</font></TD>
-          <TD>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;Go Home&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/clcl16/home_nav.gif" width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/elcl16/home_nav.gif" width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/dlcl16/home_nav.gif" width=16 border=0></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/clcl16/home_nav.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/elcl16/home_nav.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" src="icons/full/dlcl16/home_nav.gif" 
-      width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>5</TD>
-    <TD>Refresh</TD>
-    <TD><FONT size=-1>&nbsp;refresh_nav</FONT></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">Refresh the contents of the view</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;Refresh&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/clcl16/refresh_nav.gif" width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/elcl16/refresh_nav.gif" width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/dlcl16/refresh_nav.gif" width=16 border=0></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/clcl16/refresh_nav.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/elcl16/refresh_nav.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dlcl16/refresh_nav.gif" width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#dfdf9f>
-    <TD>6</TD>
-    <TD>Stop</TD>
-    <TD><font size="-1">stop_nav</font></TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">A standard browser button for stopping
-            the navigation in progress</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;Stop&nbsp;&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/clcl16/stop_nav.gif" width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/elcl16/stop_nav.gif" width=16 border=0> <IMG height=16 alt="" 
-      src="../old.icons/full/dlcl16/stop_nav.gif" width=16 border=0></TD>
-    <TD bgColor=#cccccc><IMG height=16 alt="" 
-      src="icons/full/clcl16/stop_nav.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/elcl16/stop_nav.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" src="icons/full/dlcl16/stop_nav.gif" 
-      width=16 border=0>&nbsp;</TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR>
-    <TD>7</TD>
-    <TD>Show Unconfigured Features</TD>
-    <TD>show_unconf</TD>
-    <TD>
-      <TABLE cellSpacing=2 cellPadding=0 width="100%" border=0>
-        
-        <TR>
-          <TD vAlign=top><font size="-1">A toggle button that allows
-            unconfigured features to show in the view</font></TD>
-          <TD vAlign=center align=right>
-            <TABLE>
-              
-              <TR>
-                <TD 
-                style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" 
-                align=middle bgColor=#ffffe1><FONT 
-                  size=-2>&nbsp;Show Unconfigured Features&nbsp;</FONT></TD></TR></TABLE></TD></TR></TABLE></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/clcl16/show_unconf.gif" width=16 border=0> </TD>
-    <TD BGCOLOR=#cccccc><IMG height=16 alt="" 
-      src="icons/full/clcl16/show_unconf.gif" width=16 border=0>&nbsp;<IMG 
-      height=16 alt="" src="icons/full/elcl16/show_unconf.gif" width=16 
-      border=0>&nbsp;<IMG height=16 alt="" 
-      src="icons/full/dlcl16/show_unconf.gif" width=16 border=0></TD>
-    <TD></TD></TR>
-	
-  <TR bgColor=#bfbf7f>
-    <TD colSpan=7><B><FONT size=+2>Model Object</FONT></B></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>1</TD>
-    <TD>&nbsp;Application Configuration</TD>
-    <TD><FONT size=-1>&nbsp;app_obj</FONT></TD>
-    <TD><font size="-1">the current configuration used to load the current
-      application</font></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/app_obj.gif" width=16 
-    align=left border=0></TD>
-    <TD><IMG height=16 alt="" src="icons/full/obj16/app_obj.gif" width=16 border=0></TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-	
-  <TR bgColor=#dfdfb>
-    <TD>2</TD>
-    <TD>My Computer</TD>
-    <TD><FONT size=-1>&nbsp;computer_obj</FONT></TD>
-    <TD><font size="-1">the file system root</font></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/computer_obj.gif" width=16 
-    align=left border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=16 alt="" 
-      src="icons/full/obj16/computer_obj.gif" width=16 border=0>
-      <P></P></TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>3</TD>
-    <TD>&nbsp;Feature</TD>
-    <TD><FONT size=-1>&nbsp;feature_obj</FONT></TD>
-    <TD><font size="-1">feature object</font></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/feature_obj.gif" width=16 
-align=left border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=16 alt="" 
-      src="icons/full/obj16/feature_obj.gif" width=16 border=0>
-      <P></P></TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>4</TD>
-    <TD>Unconfigured Feature</TD>
-    <TD><FONT size=-1>&nbsp;unconf_feature_obj</FONT></TD>
-    <TD><font size="-1">feature that is currently unconfigured (i.e. still
-      present but disabled in the current configuration)</font></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/unconf_feature_obj.gif" width=16 
-    align=left border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=16 alt="" 
-      src="icons/full/obj16/unconf_feature_obj.gif" width=16 border=0>
-      <P></P></TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>5</TD>
-    <TD>Places to Visit</TD>
-    <TD>places_obj</TD>
-    <TD>a folder that contains bookmarks to remote sites that
-      contain cool features</TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/places_obj.gif" width=16 
-align=left border=0></TD>
-    <TD bgColor=#ffffff><IMG height=16 alt="" 
-      src="icons/full/obj16/places_obj.gif" width=16 border=0>
-      &nbsp;</TD>
-    <TD></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>6</TD>
-    <TD>Site</TD>
-    <TD><font size="-1">site_obj&nbsp;</font></TD>
-    <TD><font size="-1">update site object that represent a provider
-      site (site that is set up to act as a source of features)</font></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/site_obj.gif" width=16 
-align=left border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=16 alt="" 
-      src="icons/full/obj16/site_obj.gif" width=16 border=0>
-      <P></P></TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR>
-    <TD>7</TD>
-    <TD><font size="-1">Local Site</font></TD>
-    <TD><font size="-1">lsite_obj</font></TD>
-    <TD>update site object that represents a receiver site (site
-      that is set up to act as a target of the feature installation)</TD>
-    <TD><IMG height=16 
-      alt="" 
-src="../old.icons/full/obj16/lsite_obj.gif" width=16 align=left border=0></TD>
-    <TD bgColor=#ffffff><IMG height=16 alt="" 
-      src="icons/full/obj16/lsite_obj.gif" width=16 border=0>
-      &nbsp;</TD>
-    <TD></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>8</TD>
-    <TD><font size="-1">Feature Category</font></TD>
-    <TD><font size="-1">category_obj</font></TD>
-    <TD>sites can classify features they host into hierarchical
-      categories</TD>
-    <TD>
-      <P align=left><IMG height=16 src="../old.icons/full/obj16/category_obj.gif" width=16 border=0></P></TD>
-    <TD bgColor=#ffffff><IMG height=16 alt="" 
-      src="icons/full/obj16/category_obj.gif" width=16 border=0>
-      &nbsp;</TD>
-    <TD></TD></TR>
-  <TR>
-    <TD>9</TD>
-    <TD><font size="-1">Bookmark Folder</font></TD>
-    <TD><font size="-1">bfolder_obj</font></TD>
-    <TD>folder object in the view that provides for
-      organizing site bookmarks and search objects</TD>
-    <TD>
-      <P align=left><IMG height=16 src="../old.icons/full/obj16/bfolder_obj.gif" width=16 border=0></P></TD>
-    <TD bgColor=#ffffff ><IMG height=16 alt="" 
-      src="icons/full/obj16/bfolder_obj.gif" width=16 border=0>
-      &nbsp;</TD>
-    <TD></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>10</TD>
-    <TD>Text Search</TD>
-    <TD><font size="-1">tsearch_obj</font></TD>
-    <TD><font size="-1">Text search object&nbsp;</font></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/tsearch_obj.gif" width=16 align=left border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=16 alt="" 
-      src="icons/full/obj16/tsearch_obj.gif" width=16 border=0>
-      <P></P></TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR>
-    <TD>11</TD>
-    <TD>Update Search</TD>
-    <TD>usearch_obj</TD>
-    <TD>Available Updates search object</TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/usearch_obj.gif" width=16 align=left border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=16 alt="" 
-      src="icons/full/obj16/usearch_obj.gif" width=16 border=0>
-      <P></P>
-    </TD>
-    <TD></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>12</TD>
-    <TD>Plug-in Search</TD>
-    <TD>psearch_obj</TD>
-    <TD>Plug-in search object</TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/psearch_obj.gif" width=16 align=left border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=16 alt="" 
-      src="icons/full/obj16/psearch_obj.gif" width=16 border=0>
-      <P></P>
-    </TD>
-    <TD></TD></TR>
-  <TR>
-    <TD>13</TD>
-    <TD>Fixed Volume</TD>
-    <TD>vfixed_obj</TD>
-    <TD>Local file system volume that represents a fixed drive (Windows) or
-      folder (Linux)</TD>
-    <TD><IMG height=16 
-      alt="" src="../old.icons/full/obj16/vfixed_obj.gif" width=16 align=left border=0>
-    </TD>
-    <TD bgColor=#ffffff><IMG height=16 alt="" 
-      src="icons/full/obj16/vfixed_obj.gif" width=16 border=0>
-      
-    </TD>
-    <TD></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>14</TD>
-    <TD>Remote Volume</TD>
-    <TD>vremote_obj</TD>
-    <TD>Remote file system volume that represents a shared drive (Window) or
-      mounted volume (Linux)</TD>
-    <TD height =16 
-      alt="" <IMG src="../old.icons/full/obj16/vremote_obj.gif" width=16 align=left border="1" 
-   >
-    </TD>
-    <TD bgColor=#ffffff><IMG height=16 alt="" 
-      src="icons/full/obj16/vremote_obj.gif" width=16 border=0>
-      &nbsp;
-    </TD>
-    <TD></TD></TR>
-  <TR>
-    <TD>15</TD>
-    <TD>Removable Volume</TD>
-    <TD>vremovable_obj</TD>
-    <TD>Removable file system volume that is neither CD-ROM nor Floppy Disk.
-      This image is used for all other removable volumes like DVD-ROM, various
-      PCMCIA cards etc.</TD>
-    <TD><IMG height=16 
-      alt="" src="../old.icons/full/obj16/vremovable_obj.gif" width=16 align=left border=0>
-    </TD>
-    <TD bgColor=#ffffff><IMG height=16 alt="" 
-      src="icons/full/obj16/vremovable_obj.gif" width=16 border=0>
-      &nbsp;
-    </TD>
-    <TD></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>16</TD>
-    <TD>CD-ROM</TD>
-    <TD>cd_obj</TD>
-    <TD>File system volume that represent a CD-ROM drive</TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/cd_obj.gif" width=16 align=left border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=16 alt="" 
-      src="icons/full/obj16/cd_obj.gif" width=16 border=0>
-      <P></P>
-    </TD>
-    <TD></TD></TR>
-  <TR>
-    <TD>17</TD>
-    <TD>Floppy Disk</TD>
-    <TD><font size="-1">floppy_obj</font></TD>
-    <TD><font size="-1">File system volume that represents a 3 1/2 inch floppy
-      disk drive</font></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/obj16/floppy_obj.gif" width=16 align=left border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=16 alt="" 
-      src="icons/full/obj16/floppy_obj.gif" width=16 border=0>
-      <P></P></TD>
-    <TD><FONT size=-1> </FONT></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>18</TD>
-    <TD>Saved Configurations</TD>
-    <TD>saved_obj</TD>
-    <TD><font size="2">Folder that holds past configurations that have been preserved and/or
-      renamed</font></TD>
-    <TD><IMG height=16 
-      alt="" src="../old.icons/full/obj16/saved_obj.gif" width=16 align=left border=0></TD>
-    <TD bgColor=#ffffff ><IMG height=16 alt="" 
-      src="icons/full/obj16/saved_obj.gif" width=16 border=0></TD>
-    <TD></TD></TR>
-  <TR>
-    <TD>19</TD>
-    <TD>Configuration History</TD>
-    <TD>history_obj</TD>
-    <TD>Folder that holds past configurations</TD>
-    <TD><IMG height=16 
-      alt="" src="../old.icons/full/obj16/history_obj.gif" width=16 align=left border=0></TD>
-    <TD bgColor=#ffffff ><IMG height=16 alt="" 
-      src="icons/full/obj16/history_obj.gif" width=16 border=0></TD>
-    <TD></TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>20</TD>
-    <TD>Available Updates</TD>
-    <TD>updates_obj</TD>
-    <TD>Update Search object that is pre-configured to look for
-      available updates of all the installed features. It cannot be removed from
-      the view.</TD>
-    <TD><IMG height=16 
-      alt="" src="../old.icons/full/obj16/updates_obj.gif" width=16 align=left border=0></TD>
-    <TD bgColor=#ffffff ><IMG height=16 alt="" 
-      src="icons/full/obj16/updates_obj.gif" width=16 border=0></TD>
-    <TD></TD></TR>
-  <TR>
-    <TD>21</TD>
-    <TD>Configuration</TD>
-    <TD>config_obj</TD>
-    <TD>A configuration history entry that represents one
-      configuration</TD>
-    <TD><IMG height=16 
-      alt="" src="../old.icons/full/obj16/config_obj.gif" width=16 align=left border=0></TD>
-    <TD bgColor=#ffffff ><IMG height=16 alt="" 
-      src="icons/full/obj16/config_obj.gif" width=16 border=0></TD>
-    <TD></TD></TR>
-	
-	
-	
-  <TR bgColor=#cccccc>
-    <TD colSpan=7><B><FONT size=+2>Object Overlay </FONT></B></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>1</TD>
-    <TD>&nbsp;current</TD>
-    <TD><font size="-1">current_co&nbsp;</font></TD>
-    <TD><FONT size=-1>&nbsp;indicates that the configuration is current i.e. in
-      effect</FONT></TD>
-    <TD><IMG height=8 alt="" 
-      src="../old.icons/full/ovr16/current_co.gif" width=7 border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=8 alt="" 
-      src="icons/full/ovr16/current_co.gif" width=7 border=0>
-      <P></P></TD>
-    <TD> </TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>2</TD>
-    <TD>&nbsp;error</TD>
-    <TD><FONT size=-1>error_co&nbsp;</FONT></TD>
-    <TD><FONT size=-1>will be overlayed over PDE editor objects that are 
-      somehow associated with XML syntax or validation errors&nbsp;</FONT></TD>
-    <TD><IMG height=8 alt="" 
-      src="../old.icons/full/ovr16/error_co.gif" width=7 border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=8 alt="" 
-      src="icons/full/ovr16/error_co.gif" width=7 border=0>
-      <P></P></TD>
-    <TD> </TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>3</TD>
-    <TD>&nbsp;installable</TD>
-    <TD><font size="-1">installable_co&nbsp;</font></TD>
-    <TD><font size="-1">indicates that site can accept features during
-      installation</font></TD>
-    <TD><IMG height=8 alt="" 
-      src="../old.icons/full/ovr16/installable_co.gif" width=7 border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=8 alt="" 
-      src="icons/full/ovr16/installable_co.gif" width=7 border=0>
-      <P></P></TD>
-    <TD> </TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>4</TD>
-    <TD>&nbsp;linked</TD>
-    <TD><font size="-1">linked_co&nbsp;</font></TD>
-    <TD><font size="-1">indicates that the site is only linked to the
-      configuration</font></TD>
-    <TD><IMG height=10 alt="" 
-      src="../old.icons/full/ovr16/linked_co.gif" width=11 border=0></TD>
-    <TD bgColor=#ffffff>
-      <IMG height=8 alt="" 
-      src="icons/full/ovr16/linked_co.gif" width=7 border=0>
-      <P></P></TD>
-    <TD> </TD></TR>
-    <TR bgColor=#ffffff>
-    <TD>5</TD>
-    <TD>unconfigured</TD>
-    <TD><font size="-1">unconfigured_co&nbsp;</font></TD>
-    <TD><font size="-1">      
-      </font></TD>
-    <TD></TD>
-    <TD bgColor=#ffffff>
-      <P></P><IMG height=8 alt="" src="icons/full/ovr16/unconfigured_co.gif" 
-      width=7 border=0></TD>
-    <TD> </TD></TR>
-	
-  
-  
-  <tr bgColor=#cccccc>
-    <TD colSpan=7><b><font size="+2">Forms Artwork</font></b></TD>
-  </tr>
-  <tr>
-    <TD>1</TD>
-    <TD>&nbsp;Topic</TD>
-    <TD><font size="-1">topic&nbsp;</font></TD>
-    <TD><FONT size=-1>&nbsp;an image to be used as a custom bullet for items in
-      a 'Welcome' page</FONT></TD>
-    <TD><IMG height=16 alt="" 
-      src="../old.icons/full/forms/topic.gif" width=16 border=0></TD>
-    <TD bgColor=#ffffff><IMG height=16 alt="" 
-      src="icons/full/forms/topic.gif" width=16 border=0></TD>
-    <TD> </TD>
-  </tr>
-  <tr bgColor=#dfdfb>
-    <TD>2</TD>
-    <TD>Default Provider</TD>
-    <TD><font size="-1">def_provider&nbsp;</font></TD>
-    <TD><font size="-1">an image to be used in a feature description page in 
-      cases where one was not supplied by feature provider (should be JPEG)<IMG 
-      height=48 alt="" src="../old.icons/full/forms/def_provider.gif" width=109 
-      border=0>          
-                 </font></TD>
-    <TD></TD>
-    <TD bgColor=#ffffff><IMG height=150 alt="" 
-      src="icons/full/forms/def_provider.gif" width=190 border=0>&nbsp;</TD>
-    <TD> </TD>
-  </tr>
-  <tr>
-    <TD>3</TD>
-    <TD>&nbsp;Form Banner</TD>
-    <TD><font size="-1">form_banner&nbsp;</font></TD>
-    <TD><font size="-1">a banner image used in all form pages behind the heading
-      (shown here in 1:10 zoom out)</font></TD>
-    <TD><IMG height=3 alt="" 
-      src="../old.icons/full/forms/form_banner.gif" width=60 border=0></TD>
-    <TD bgColor=#ffffff>&nbsp;
-      <P></P></TD>
-    <TD> </TD>
-  </tr>
-  <tr bgColor=#dfdfb>
-    <TD>4</TD>
-    <TD>&nbsp;Form Banner Underline</TD>
-    <TD><font size="-1">form_underline&nbsp;</font></TD>
-    <TD><font size="-1">a second portion of the banner used under the heading
-      text (shown here in 1:10 zoom out)</font></TD>
-    <TD><IMG height=1 alt="" 
-      src="../old.icons/full/forms/form_underline.gif" width=60 border=0></TD>
-    <TD bgColor=#ffffff>&nbsp;
-      <P></P></TD>
-    <TD> </TD>
-  </tr>
-  
-  
-  
-  
-  <TR bgColor=#cccccc>
-    <TD colSpan=7><B><FONT size=+2>Wizard Graphic</FONT></B></TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>1</TD>
-    <TD>New Bookmark wizard</TD>
-    <TD><FONT size=-1>&nbsp;new_bookmark_wiz</FONT></TD>
-    <TD><font size="-1">creates a new update site bookmark</font></TD>
-    <TD><IMG height=58 alt="" 
-      src="../old.icons/full/wizban/new_bookmark_wiz.gif" 
-      width=75 border=0></TD>
-    <TD bgColor=#ffffff><IMG height=58 alt="" 
-      src="icons/full/wizban/new_bookmark_wiz.gif" width=75 border=0>&nbsp;</TD>
-    <TD> </TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>2</TD>
-    <TD>New Folder wizard</TD>
-    <TD><FONT size=-1>&nbsp;new_folder_wiz</FONT></TD>
-    <TD><font size="-1">creates a new bookmark folder</font></TD>
-    <TD><IMG height=58 alt="" 
-      src="../old.icons/full/wizban/new_folder_wiz.gif" 
-      width=75 border=0></TD>
-    <TD bgColor=#ffffff><IMG height=58 alt="" 
-      src="icons/full/wizban/new_folder_wiz.gif" width=75 border=0>&nbsp;</TD>
-    <TD> </TD></TR>
-  <TR bgColor=#ffffff>
-    <TD>3</TD>
-    <TD>New Search wizard</TD>
-    <TD><FONT size=-1>&nbsp;new_search_wiz</FONT></TD>
-    <TD><FONT size=-1>creates a new search object</FONT></TD>
-    <TD><IMG height=58 alt="" 
-      src="../old.icons/full/wizban/new_search_wiz.gif" 
-      width=75 border=0></TD>
-    <TD bgColor=#ffffff><IMG height=58 alt="" 
-      src="icons/full/wizban/new_search_wiz.gif" width=75 border=0>&nbsp;</TD>
-    <TD> </TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>4</TD>
-    <TD>Install Feature wizard</TD>
-    <TD><FONT size=-1>&nbsp;install_wiz</FONT></TD>
-    <TD><font size="-1">installs a new feature into the platform</font></TD>
-    <TD><IMG height=58 alt="" 
-      src="../old.icons/full/wizban/install_wiz.gif" 
-      width=75 border=0></TD>
-    <TD bgColor=#ffffff><IMG height=58 alt="" 
-      src="icons/full/wizban/install_wiz.gif" width=75 border=0>&nbsp;</TD>
-    <TD> </TD></TR>
-  <TR bgColor=#ffffff>
-    <TD >5</TD>
-    <TD>Update Feature wizard</TD>
-    <TD><FONT size=-1>&nbsp;update_wiz</FONT></TD>
-    <TD><font size="-1">installs a newer version of an already installed feature</font></TD>
-    <TD><IMG height=58 alt="" 
-      src="../old.icons/full/wizban/update_wiz.gif" 
-      width=75 border=0></TD>
-    <TD bgColor=#ffffff><IMG height=58 alt="" 
-      src="icons/full/wizban/update_wiz.gif" width=75 border=0>&nbsp;</TD>
-    <TD> </TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD >6</TD>
-    <TD>Configure Feature wizard</TD>
-    <TD><FONT size=-1>&nbsp;config_wiz</FONT></TD>
-    <TD><font size="-1">configures or unconfigures an installed feature</font></TD>
-    <TD><IMG height=58 alt="" 
-      src="../old.icons/full/wizban/config_wiz.gif" 
-      width=75 border=0></TD>
-    <TD bgColor=#ffffff><IMG height=58 alt="" 
-      src="icons/full/wizban/config_wiz.gif" width=75 border=0>&nbsp;</TD>
-    <TD> </TD></TR>
-  <TR>
-    <TD>7</TD>
-    <TD>Uninstall Feature wizard</TD>
-    <TD><FONT size=-1>&nbsp;uninstall_wiz</FONT></TD>
-    <TD><font size="-1">permanently removes a feature from the platform</font></TD>
-    <TD><IMG height=58 alt="" 
-      src="../old.icons/full/wizban/uninstall_wiz.gif" 
-      width=75 border=0></TD>
-    <TD bgColor=#ffffff><IMG height=58 alt="" 
-      src="icons/full/wizban/uninstall_wiz.gif" width=75 border=0>&nbsp;</TD>
-    <TD> </TD></TR>
-  <TR bgColor=#dfdfb>
-    <TD>8</TD>
-    <TD>Default Install Wizard banner</TD>
-    <TD><FONT size=-1>&nbsp;def_wizban</FONT></TD>
-    <TD><font size="-1">a default image shown in install wizard pages when 
-      one is not supplied by feature providers<IMG height=258 alt="" 
-      src="../old.icons/full/wizban/def_wizban.jpg" width=118 
-border=0>         
-           </font></TD>
-    <TD></TD>
-    <TD bgColor=#ffffff><IMG height=258 alt="" 
-      src="icons/full/wizban/def_wizban.jpg" width=118 border=0>&nbsp;</TD>
-    <TD> </TD></TR></TABLE>
-<P></P></BODY></HTML>
diff --git a/update/org.eclipse.update.ui/about.html b/update/org.eclipse.update.ui/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/update/org.eclipse.update.ui/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui/build.properties b/update/org.eclipse.update.ui/build.properties
deleted file mode 100644
index c6e000b..0000000
--- a/update/org.eclipse.update.ui/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-bin.includes = plugin.properties,\

-               icons/,\

-               *.jar,\

-               plugin.xml,\

-               about.html

-jars.compile.order = updateui.jar

-src.includes = about.html,\

-               schema/

-source.updateui.jar = src/

-#jars.extra.classpath = ../org.eclipse.tomcat/servlet.jar

diff --git a/update/org.eclipse.update.ui/icons/dlcl16/collapseall.gif b/update/org.eclipse.update.ui/icons/dlcl16/collapseall.gif
deleted file mode 100644
index 7dc0de5..0000000
--- a/update/org.eclipse.update.ui/icons/dlcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/dlcl16/hierarchicalLayout.gif b/update/org.eclipse.update.ui/icons/dlcl16/hierarchicalLayout.gif
deleted file mode 100644
index 52eeb6d..0000000
--- a/update/org.eclipse.update.ui/icons/dlcl16/hierarchicalLayout.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/dlcl16/show_unconf.gif b/update/org.eclipse.update.ui/icons/dlcl16/show_unconf.gif
deleted file mode 100644
index f8cf96b..0000000
--- a/update/org.eclipse.update.ui/icons/dlcl16/show_unconf.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/dtool16/config_wiz.gif b/update/org.eclipse.update.ui/icons/dtool16/config_wiz.gif
deleted file mode 100644
index 2e8acec..0000000
--- a/update/org.eclipse.update.ui/icons/dtool16/config_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/dtool16/install_wiz.gif b/update/org.eclipse.update.ui/icons/dtool16/install_wiz.gif
deleted file mode 100644
index a89ff29..0000000
--- a/update/org.eclipse.update.ui/icons/dtool16/install_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/dtool16/uninstall_wiz.gif b/update/org.eclipse.update.ui/icons/dtool16/uninstall_wiz.gif
deleted file mode 100644
index 075fcd2..0000000
--- a/update/org.eclipse.update.ui/icons/dtool16/uninstall_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/dtool16/update_wiz.gif b/update/org.eclipse.update.ui/icons/dtool16/update_wiz.gif
deleted file mode 100644
index f59d449..0000000
--- a/update/org.eclipse.update.ui/icons/dtool16/update_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/elcl16/collapseall.gif b/update/org.eclipse.update.ui/icons/elcl16/collapseall.gif
deleted file mode 100644
index a2d80a9..0000000
--- a/update/org.eclipse.update.ui/icons/elcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/elcl16/hierarchicalLayout.gif b/update/org.eclipse.update.ui/icons/elcl16/hierarchicalLayout.gif
deleted file mode 100644
index 2344861..0000000
--- a/update/org.eclipse.update.ui/icons/elcl16/hierarchicalLayout.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/elcl16/show_unconf.gif b/update/org.eclipse.update.ui/icons/elcl16/show_unconf.gif
deleted file mode 100644
index d95b705..0000000
--- a/update/org.eclipse.update.ui/icons/elcl16/show_unconf.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/etool16/config_wiz.gif b/update/org.eclipse.update.ui/icons/etool16/config_wiz.gif
deleted file mode 100644
index 95ac720..0000000
--- a/update/org.eclipse.update.ui/icons/etool16/config_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/etool16/install_wiz.gif b/update/org.eclipse.update.ui/icons/etool16/install_wiz.gif
deleted file mode 100644
index 224c63f..0000000
--- a/update/org.eclipse.update.ui/icons/etool16/install_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/etool16/uninstall_wiz.gif b/update/org.eclipse.update.ui/icons/etool16/uninstall_wiz.gif
deleted file mode 100644
index d333128..0000000
--- a/update/org.eclipse.update.ui/icons/etool16/uninstall_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/etool16/update_wiz.gif b/update/org.eclipse.update.ui/icons/etool16/update_wiz.gif
deleted file mode 100644
index aa84ebe..0000000
--- a/update/org.eclipse.update.ui/icons/etool16/update_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/eview16/configs.gif b/update/org.eclipse.update.ui/icons/eview16/configs.gif
deleted file mode 100644
index c984fba..0000000
--- a/update/org.eclipse.update.ui/icons/eview16/configs.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/eview16/preview.gif b/update/org.eclipse.update.ui/icons/eview16/preview.gif
deleted file mode 100644
index e6bf9cf..0000000
--- a/update/org.eclipse.update.ui/icons/eview16/preview.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/forms/def_provider.jpg b/update/org.eclipse.update.ui/icons/forms/def_provider.jpg
deleted file mode 100644
index bbb03fd..0000000
--- a/update/org.eclipse.update.ui/icons/forms/def_provider.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/forms/form_banner.gif b/update/org.eclipse.update.ui/icons/forms/form_banner.gif
deleted file mode 100644
index aebc0b2..0000000
--- a/update/org.eclipse.update.ui/icons/forms/form_banner.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/forms/form_banner.jpg b/update/org.eclipse.update.ui/icons/forms/form_banner.jpg
deleted file mode 100644
index 253e2d2..0000000
--- a/update/org.eclipse.update.ui/icons/forms/form_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/forms/form_underline.jpg b/update/org.eclipse.update.ui/icons/forms/form_underline.jpg
deleted file mode 100644
index 0ff3d0b..0000000
--- a/update/org.eclipse.update.ui/icons/forms/form_underline.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/forms/topic.gif b/update/org.eclipse.update.ui/icons/forms/topic.gif
deleted file mode 100644
index b5dd4ec..0000000
--- a/update/org.eclipse.update.ui/icons/forms/topic.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/app_obj.gif b/update/org.eclipse.update.ui/icons/obj16/app_obj.gif
deleted file mode 100644
index 753cad7..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/app_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/bfolder_obj.gif b/update/org.eclipse.update.ui/icons/obj16/bfolder_obj.gif
deleted file mode 100644
index 10273e4..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/bfolder_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/category_obj.gif b/update/org.eclipse.update.ui/icons/obj16/category_obj.gif
deleted file mode 100644
index b487d07..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/category_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/config_obj.gif b/update/org.eclipse.update.ui/icons/obj16/config_obj.gif
deleted file mode 100644
index c984fba..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/config_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/efix2_obj.gif b/update/org.eclipse.update.ui/icons/obj16/efix2_obj.gif
deleted file mode 100644
index b138957..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/efix2_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/efix_obj.gif b/update/org.eclipse.update.ui/icons/obj16/efix_obj.gif
deleted file mode 100644
index 57fc499..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/efix_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/error_st_obj.gif b/update/org.eclipse.update.ui/icons/obj16/error_st_obj.gif
deleted file mode 100644
index 0bc6068..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/error_st_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/esite_obj.gif b/update/org.eclipse.update.ui/icons/obj16/esite_obj.gif
deleted file mode 100644
index 25fd07b..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/esite_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/feature_obj.gif b/update/org.eclipse.update.ui/icons/obj16/feature_obj.gif
deleted file mode 100644
index 8706680..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/feature_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/history_obj.gif b/update/org.eclipse.update.ui/icons/obj16/history_obj.gif
deleted file mode 100644
index 289d43a..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/history_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/lsite_obj.gif b/update/org.eclipse.update.ui/icons/obj16/lsite_obj.gif
deleted file mode 100644
index d650bdb..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/lsite_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/notinstalled_feature_obj.gif b/update/org.eclipse.update.ui/icons/obj16/notinstalled_feature_obj.gif
deleted file mode 100644
index f192b84..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/notinstalled_feature_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/ok_st_obj.gif b/update/org.eclipse.update.ui/icons/obj16/ok_st_obj.gif
deleted file mode 100644
index 9cacb96..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/ok_st_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/psite_obj.gif b/update/org.eclipse.update.ui/icons/obj16/psite_obj.gif
deleted file mode 100644
index 58897f1..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/psite_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/site_obj.gif b/update/org.eclipse.update.ui/icons/obj16/site_obj.gif
deleted file mode 100644
index b8568f4..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/site_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/unconf_feature_obj.gif b/update/org.eclipse.update.ui/icons/obj16/unconf_feature_obj.gif
deleted file mode 100644
index 86881fd..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/unconf_feature_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/updates_obj.gif b/update/org.eclipse.update.ui/icons/obj16/updates_obj.gif
deleted file mode 100644
index 16f4f7c..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/updates_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/usearch_obj.gif b/update/org.eclipse.update.ui/icons/obj16/usearch_obj.gif
deleted file mode 100644
index 5080599..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/usearch_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/obj16/web_bkmrk_obj.gif b/update/org.eclipse.update.ui/icons/obj16/web_bkmrk_obj.gif
deleted file mode 100644
index cdbc528..0000000
--- a/update/org.eclipse.update.ui/icons/obj16/web_bkmrk_obj.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/ovr16/add_stat.gif b/update/org.eclipse.update.ui/icons/ovr16/add_stat.gif
deleted file mode 100644
index c123a2b..0000000
--- a/update/org.eclipse.update.ui/icons/ovr16/add_stat.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/ovr16/current_co.gif b/update/org.eclipse.update.ui/icons/ovr16/current_co.gif
deleted file mode 100644
index 13077f9..0000000
--- a/update/org.eclipse.update.ui/icons/ovr16/current_co.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/ovr16/del_stat.gif b/update/org.eclipse.update.ui/icons/ovr16/del_stat.gif
deleted file mode 100644
index ef0207c..0000000
--- a/update/org.eclipse.update.ui/icons/ovr16/del_stat.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/ovr16/error_co.gif b/update/org.eclipse.update.ui/icons/ovr16/error_co.gif
deleted file mode 100644
index 119dccc..0000000
--- a/update/org.eclipse.update.ui/icons/ovr16/error_co.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/ovr16/installable_co.gif b/update/org.eclipse.update.ui/icons/ovr16/installable_co.gif
deleted file mode 100644
index 5e999b6..0000000
--- a/update/org.eclipse.update.ui/icons/ovr16/installable_co.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/ovr16/linked_co.gif b/update/org.eclipse.update.ui/icons/ovr16/linked_co.gif
deleted file mode 100644
index 2f40e1b..0000000
--- a/update/org.eclipse.update.ui/icons/ovr16/linked_co.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/ovr16/mod_co.gif b/update/org.eclipse.update.ui/icons/ovr16/mod_co.gif
deleted file mode 100644
index 2b1b8d6..0000000
--- a/update/org.eclipse.update.ui/icons/ovr16/mod_co.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/ovr16/unconfigured_co.gif b/update/org.eclipse.update.ui/icons/ovr16/unconfigured_co.gif
deleted file mode 100644
index 8a589ce..0000000
--- a/update/org.eclipse.update.ui/icons/ovr16/unconfigured_co.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/ovr16/updated_co.gif b/update/org.eclipse.update.ui/icons/ovr16/updated_co.gif
deleted file mode 100644
index 0d686ab..0000000
--- a/update/org.eclipse.update.ui/icons/ovr16/updated_co.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/ovr16/warning_co.gif b/update/org.eclipse.update.ui/icons/ovr16/warning_co.gif
deleted file mode 100644
index ee2dac4..0000000
--- a/update/org.eclipse.update.ui/icons/ovr16/warning_co.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/wizban/config_wiz.gif b/update/org.eclipse.update.ui/icons/wizban/config_wiz.gif
deleted file mode 100644
index 6a19fbf..0000000
--- a/update/org.eclipse.update.ui/icons/wizban/config_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/wizban/def_wizban.jpg b/update/org.eclipse.update.ui/icons/wizban/def_wizban.jpg
deleted file mode 100644
index 4d7eba6..0000000
--- a/update/org.eclipse.update.ui/icons/wizban/def_wizban.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/wizban/install_wiz.gif b/update/org.eclipse.update.ui/icons/wizban/install_wiz.gif
deleted file mode 100644
index 7eee7c3..0000000
--- a/update/org.eclipse.update.ui/icons/wizban/install_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/wizban/uninstall_wiz.gif b/update/org.eclipse.update.ui/icons/wizban/uninstall_wiz.gif
deleted file mode 100644
index 1223378..0000000
--- a/update/org.eclipse.update.ui/icons/wizban/uninstall_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/icons/wizban/update_wiz.gif b/update/org.eclipse.update.ui/icons/wizban/update_wiz.gif
deleted file mode 100644
index 3b36487..0000000
--- a/update/org.eclipse.update.ui/icons/wizban/update_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/plugin.properties b/update/org.eclipse.update.ui/plugin.properties
deleted file mode 100644
index 5f2189d..0000000
--- a/update/org.eclipse.update.ui/plugin.properties
+++ /dev/null
@@ -1,52 +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 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

-###############################################################################

-#

-# Update UI plugin.xml resources

-#

-pluginName = Install/Update UI

-providerName = Eclipse.org

-fragmentNameWin = Install/Update UI for Windows

-

-updateMenu.label = &Software Updates

-actionSets.softwareUpdates.label = Software Updates

-actionSets.updates.label = &Find and Install...

-actionSets.configManager.label = &Manage Configuration...

-actionSets.webSites.label = &Update Sites (experimental)

-

-searchCategory.name = Search Category

-searchCategories.updates = Available Updates

-searchCategories.updates.desc = <form><p>Search for updates to \

-features currently installed in this application. Updates are \

-features that have the same identifier as the installed features, \

-but newer versions.</p>\

-<p>Use scope settings to control the \

-extent of the search and the update sites that will be visited.</p>\

-<p>Note that the settings in <b>Preferences</b> affect whether the new feature \

-versions will be considered valid as updates.</p></form>

-

-searchCategories.expression = Regular Expressions

-searchCategories.expression.desc = <form><p>Search for features that \

-contain desired text or reqular expression. Use the query settings \

-to configure search options.</p></form>

-

-searchCategories.plugin = Plug-ins in Features

-searchCategories.plugin.desc = <form><p>Look for plug-ins that \

-are packaged in the features. This search category is useful \

-when required plug-ins of the feature you wanted to install \

-were not found in this application.</p></form>

-

-mainPreference.name = Install/Update

-

-properties.general-info.label = General Information

-properties.license.label = License Agreement

-properties.copyright.label = Copyright

-properties.status.label = Status

-properties.currentConfig.activities = Activities

diff --git a/update/org.eclipse.update.ui/plugin.xml b/update/org.eclipse.update.ui/plugin.xml
deleted file mode 100644
index 25271b2..0000000
--- a/update/org.eclipse.update.ui/plugin.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.0"?>

-<plugin

-   id="org.eclipse.update.ui"

-   name="%pluginName"

-   version="3.0.0"

-   provider-name="%providerName"

-   class="org.eclipse.update.internal.ui.UpdateUI">

-

-   <runtime>

-      <library name="updateui.jar">

-         <export name="*"/>

-      </library>

-   </runtime>

-   <requires>

-      <import plugin="org.eclipse.core.runtime"/>

-      <import plugin="org.eclipse.ui"/>

-      <import plugin="org.eclipse.update.core"/>

-      <import plugin="org.eclipse.help.base"/>

-      <import plugin="org.eclipse.update.configurator"/>

-      <import plugin="org.eclipse.ui.forms"/>

-   </requires>

-

-   <extension

-         point="org.eclipse.ui.propertyPages">

-      <page

-            objectClass="org.eclipse.update.internal.ui.model.IFeatureAdapter"

-            name="%properties.general-info.label"

-            class="org.eclipse.update.internal.ui.properties.FeatureGeneralPropertyPage"

-            id="org.eclipse.update.ui.featureGeneralPropertyPage">

-      </page>

-      <page

-            objectClass="org.eclipse.update.internal.ui.model.IFeatureAdapter"

-            name="%properties.license.label"

-            class="org.eclipse.update.internal.ui.properties.FeatureLicensePropertyPage"

-            id="org.eclipse.update.ui.featureLicensePropertyPage">

-      </page>

-      <page

-            objectClass="org.eclipse.update.internal.ui.model.IFeatureAdapter"

-            name="%properties.copyright.label"

-            class="org.eclipse.update.internal.ui.properties.FeatureCopyrightPropertyPage"

-            id="org.eclipse.update.ui.featureCopyrightPropertyPage">

-      </page>

-      <page

-            objectClass="org.eclipse.update.internal.ui.model.ConfiguredFeatureAdapter"

-            name="%properties.status.label"

-            class="org.eclipse.update.internal.ui.properties.FeatureStatusPropertyPage"

-            id="org.eclipse.update.ui.featureStatusPropertyPage">

-      </page>

-      <page

-            objectClass="org.eclipse.update.internal.ui.model.IConfiguredSiteAdapter"

-            name="%properties.general-info.label"

-            class="org.eclipse.update.internal.ui.properties.ConfiguredSitePropertyPage"

-            id="org.eclipse.update.ui.configSite">

-      </page>

-      <page

-            objectClass="org.eclipse.update.internal.core.SiteLocal"

-            name="%properties.general-info.label"

-            class="org.eclipse.update.internal.ui.properties.InstallConfigurationPropertyPage"

-            id="org.eclipse.update.ui.installConfig">

-      </page>

-   </extension>

-   <extension

-         point="org.eclipse.ui.preferencePages">

-      <page

-            name="%mainPreference.name"

-            class="org.eclipse.update.internal.ui.preferences.MainPreferencePage"

-            id="org.eclipse.update.internal.ui.preferences.MainPreferencePage">

-      </page>

-   </extension>

-

-</plugin>

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/ConfigurationManagerWindow.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/ConfigurationManagerWindow.java
deleted file mode 100644
index 27a2fd4..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/ConfigurationManagerWindow.java
+++ /dev/null
@@ -1,182 +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 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.update.internal.ui;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.window.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.ui.views.*;
-
-/**
- * Configuration Manager window.
- */
-public class ConfigurationManagerWindow
-	extends ApplicationWindow
-	{
-	private ConfigurationView view;
-	private GlobalAction propertiesAction;
-	private IAction propertiesActionHandler;
-	
-	class GlobalAction extends Action implements IPropertyChangeListener {
-		private IAction handler;
-
-		public GlobalAction() {
-		}
-
-		public void setActionHandler(IAction action) {
-			if (handler != null) {
-				handler.removePropertyChangeListener(this);
-				handler = null;
-			}
-			if (action != null) {
-				this.handler = action;
-				action.addPropertyChangeListener(this);
-			}
-			if (handler != null) {
-				setEnabled(handler.isEnabled());
-				setChecked(handler.isChecked());
-			}
-		}
-
-		public void propertyChange(PropertyChangeEvent event) {
-			if (event.getProperty().equals(Action.ENABLED)) {
-				Boolean bool = (Boolean) event.getNewValue();
-				setEnabled(bool.booleanValue());
-			} else if (event.getProperty().equals(Action.CHECKED)) {
-				Boolean bool = (Boolean) event.getNewValue();
-				setChecked(bool.booleanValue());
-			}
-		}
-
-		public void run() {
-			if (handler != null)
-				handler.run();
-		}
-	}
-
-	/**
-	 * @param parentShell
-	 */
-	public ConfigurationManagerWindow(Shell parentShell) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.APPLICATION_MODAL);
-		// Setup window.
-		addMenuBar();
-		addActions();
-		addToolBar(SWT.FLAT);
-//		addStatusLine();
-	}
-
-	private void addActions() {
-		IMenuManager menuBar = getMenuBarManager();
-		IMenuManager fileMenu = new MenuManager(UpdateUI.getString("ConfigurationManagerWindow.fileMenu")); //$NON-NLS-1$
-		menuBar.add(fileMenu);
-
-		propertiesAction = new GlobalAction();
-		propertiesAction.setText(UpdateUI.getString("ConfigurationManagerWindow.properties")); //$NON-NLS-1$
-		propertiesAction.setEnabled(false);
-
-		fileMenu.add(propertiesAction);
-		fileMenu.add(new Separator());
-
-		Action closeAction = new Action() {
-			public void run() {
-				close();
-			}
-		};
-		closeAction.setText(UpdateUI.getString("ConfigurationManagerWindow.close")); //$NON-NLS-1$
-		fileMenu.add(closeAction);
-	}
-	
-	private void hookGlobalActions() {
-		if(propertiesActionHandler!=null)
-			propertiesAction.setActionHandler(propertiesActionHandler);
-	}
-	
-	protected Control createContents(Composite parent) {
-		view = new ConfigurationView(this);
-		Composite container = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = layout.marginHeight = 0;
-		layout.verticalSpacing = 0;
-		container.setLayout(layout);
-
-		GridData gd;
-		Label separator = new Label(container, SWT.SEPARATOR | SWT.HORIZONTAL);
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gd.heightHint = 1;
-		separator.setLayoutData(gd);
-
-		view.createPartControl(container);
-		Control viewControl = view.getControl();
-		gd = new GridData(GridData.FILL_BOTH);
-		viewControl.setLayoutData(gd);
-		hookGlobalActions();
-
-		updateActionBars();
-
-		try {
-			ILocalSite localSite = SiteManager.getLocalSite();
-			view.getTreeViewer().setSelection(new StructuredSelection(localSite));
-		}
-		catch (CoreException e) {
-		}
-		
-		UpdateLabelProvider provider = UpdateUI.getDefault().getLabelProvider();
-		getShell().setImage(provider.get(UpdateUIImages.DESC_CONFIGS_VIEW, 0));
-		
-		return container;
-	}
-
-	private void updateActionBars() {
-		getMenuBarManager().updateAll(false);
-		getToolBarManager().update(false);
-//		getStatusLineManager().update(false);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.window.Window#close()
-	 */
-	public boolean close() {
-		if (view != null)
-			view.dispose();
-		return super.close();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.window.Window#create()
-	 */
-	public void create() {
-		super.create();
-		// set the title
-		getShell().setText(UpdateUI.getString("ConfigurationManagerAction.title")); //$NON-NLS-1$
-		getShell().setSize(800, 600);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.window.Window#open()
-	 */
-	public int open() {
-		// update action bars
-		updateActionBars();
-		return super.open();
-	}
-	
-	public void setPropertiesActionHandler(IAction handler){
-		propertiesActionHandler=handler;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/RestartDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/RestartDialog.java
deleted file mode 100644
index ae234d9..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/RestartDialog.java
+++ /dev/null
@@ -1,83 +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 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.update.internal.ui;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.update.operations.*;
-
-/**
- * A dialog which prompts the user to restart after an update operation
- * and provides Yes, No, Continue buttons. 
- */
-public class RestartDialog extends MessageDialog {
-	private static final int CONTINUE = 2;
-	private final static String[] yesNo = new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL};
-	private final static String[] yesNoApply = new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, UpdateUI.getString("ApplyChanges")}; //$NON-NLS-1$
-	
-	private int buttonId = 0;
-	
-	/**
-	 * Creates a new dialog
-	 * @see MessageDialog#MessageDialog(org.eclipse.swt.widgets.Shell, java.lang.String, org.eclipse.swt.graphics.Image, java.lang.String, int, java.lang.String[], int)
-	 */
-	public RestartDialog(Shell parent, String title, String message, boolean restartNeeded) {
-		super(parent,
-				title,
-				null,	// accept the default window icon
-				message,
-				QUESTION,
-				restartNeeded ? yesNo : yesNoApply, 
-				0);		// yes is the default
-	}
-
-	/**
-	 * Convenience method to open the Yes/No/Continue question dialog.
-	 *
-	 * @param parent the parent shell of the dialog, or <code>null</code> if none
-	 * @param restartIsReallyNeeded when false, the changes are applied to the current config
-	 * @return <code>true</code> if the user presses  YES
-	 *    <code>false</code> otherwise
-	 */
-	public static boolean openQuestion(Shell parent, boolean restartIsReallyNeeded) {
-		String title = UpdateUI.getString("RestartTitle"); //$NON-NLS-1$
-		String message = restartIsReallyNeeded ? UpdateUI.getString("RestartMessage"): UpdateUI.getString("OptionalRestartMessage"); //$NON-NLS-1$ //$NON-NLS-2$
-		RestartDialog dialog = new RestartDialog(parent, title,	message, restartIsReallyNeeded);
-		int button= dialog.open();
-		if (button == 2)
-			OperationsManager.applyChangesNow();
-		return button == 0; // Yes
-	}
-	
-	/**
-	 * When a button is pressed, store the preference.
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
-	 */
-	protected void buttonPressed(int id) {
-		if (id == 2) { 
-			buttonId= CONTINUE;
-		} 
-		
-		super.buttonPressed(id);
-	}
-	
-	/**
-	 * Returns the user's selection,
-	 * <code>null</code> if the user hasn't chosen yet.
-	 * 
-	 * @return the user's selection or <code>null</code>
-	 */
-	public int getResult() {
-		return buttonId;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateJob.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateJob.java
deleted file mode 100644
index 0a0431b..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateJob.java
+++ /dev/null
@@ -1,217 +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 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.update.internal.ui;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.operations.*;
-import org.eclipse.update.search.*;
-
-public class UpdateJob extends Job {
-	
-	private class SearchResultCollector implements IUpdateSearchResultCollector {
-		public void accept(IFeature feature) {
-			IInstallFeatureOperation operation =
-				OperationsManager
-					.getOperationFactory()
-					.createInstallOperation(null, feature, null, null, null);
-			updates.add(operation);
-		}
-	}
-	
-	// job family	
-	public static final Object family = new Object();
-	private IUpdateSearchResultCollector resultCollector;
-	private UpdateSearchRequest searchRequest;
-	private ArrayList updates;
-    private boolean isUpdate;
-    private boolean download;
-    private boolean isAutomatic;
-    private IStatus jobStatus = Status.OK_STATUS;
-
-    /**
-     * 
-     * @param isUpdate true if searching for updates
-     * @param isAutomatic true if automatically searching for updates   
-     * @param name the job name
-     * @param download download updates automatically
-     */
-	public UpdateJob( String name, boolean isUpdate, boolean isAutomatic, boolean download ) {
-		super(name);
-        this.isUpdate = isUpdate;
-        this.isAutomatic = isAutomatic;
-        this.download = download;
-		updates = new ArrayList();
-		setPriority(Job.DECORATE);
-	}
-
-    public UpdateJob( String name, UpdateSearchRequest searchRequest ) {
-        super(name);
-        this.searchRequest = searchRequest;
-        updates = new ArrayList();
-        setPriority(Job.DECORATE);
-    }
-
-    public boolean isUpdate() {
-        return isUpdate;
-    }
-    
-	public boolean belongsTo(Object family) {
-		return UpdateJob.family == family;
-	}
-	
-    // will always return ok status, but the jobStatus will keep the actual status
-    public IStatus run(IProgressMonitor monitor) {
-        if (isUpdate)
-            jobStatus = runUpdates(monitor);
-        else
-            jobStatus = runSearchForNew(monitor);
-        return Status.OK_STATUS;
-    }
-    
-    public IStatus runSearchForNew(IProgressMonitor monitor) {
-        if (UpdateCore.DEBUG) {
-            UpdateCore.debug("Search for features started."); //$NON-NLS-1$
-        }
-
-        try {
-            if (resultCollector == null)
-                resultCollector = new ResultCollectorWithMirrors();
-            searchRequest.performSearch(resultCollector, monitor);
-            if (UpdateCore.DEBUG) {
-                UpdateCore.debug("Automatic update search finished - " //$NON-NLS-1$
-                        + updates.size() + " results."); //$NON-NLS-1$
-            }
-            return Status.OK_STATUS;
-        } catch (CoreException e) {
-            return e.getStatus();
-        }
-    }
-    
-
-	public IStatus runUpdates(IProgressMonitor monitor) {
-        ArrayList statusList = new ArrayList();
-        if (UpdateCore.DEBUG) {
-            if (isAutomatic)
-                UpdateCore.debug("Automatic update search started."); //$NON-NLS-1$
-            else
-                UpdateCore.debug("Update search started."); //$NON-NLS-1$
-        }
-        searchRequest = UpdateUtils.createNewUpdatesRequest(null);
-
-        if (resultCollector == null)
-            resultCollector = new ResultCollectorWithMirrors();
-        try {
-            searchRequest.performSearch(resultCollector, monitor);
-        } catch (CoreException e) {
-            statusList.add(e.getStatus());
-        }
-        if (UpdateCore.DEBUG) {
-            UpdateCore.debug("Automatic update search finished - " //$NON-NLS-1$
-                    + updates.size() + " results."); //$NON-NLS-1$
-        }
-        if (updates.size() > 0) {
-            // silently download if download enabled
-            if (download) {
-                if (UpdateCore.DEBUG) {
-                    UpdateCore.debug("Automatic download of updates started."); //$NON-NLS-1$
-                }
-                for (int i = 0; i < updates.size(); i++) {
-                    IInstallFeatureOperation op = (IInstallFeatureOperation) updates
-                            .get(i);
-                    IFeature feature = op.getFeature();
-                    try {
-                        UpdateUtils.downloadFeatureContent(op.getTargetSite(),
-                                feature, null, monitor);
-                    } catch (InstallAbortedException e) {
-                        return Status.CANCEL_STATUS;
-                    } catch (CoreException e) {
-                        statusList.add(e.getStatus());
-                        updates.remove(i);
-                        i -= 1;
-                    }
-                }
-                if (UpdateCore.DEBUG) {
-                    UpdateCore.debug("Automatic download of updates finished."); //$NON-NLS-1$
-                }
-            }
-        }
-        
-        if (statusList.size() == 0)
-            return Status.OK_STATUS;
-        else if (statusList.size() == 1)
-            return (IStatus) statusList.get(0);
-        else {
-            IStatus[] children = (IStatus[]) statusList
-                    .toArray(new IStatus[statusList.size()]);
-            return new MultiStatus("org.eclipse.update.ui", //$NON-NLS-1$
-                    ISite.SITE_ACCESS_EXCEPTION, children, Policy
-                            .bind("Search.networkProblems"), //$NON-NLS-1$
-                    null);
-        }
-    }
-
-    public ArrayList getUpdates() {
-        return updates;
-    }
-    
-    public IStatus getStatus() {
-        return jobStatus;
-    }
-    
-    public UpdateSearchRequest getSearchRequest() {
-        return searchRequest;
-    }
-    
-    private class ResultCollectorWithMirrors extends SearchResultCollector
-            implements IUpdateSearchResultCollectorFromMirror {
-        
-        private HashMap mirrors = new HashMap(0);
-        
-        /* (non-Javadoc)
-         * @see org.eclipse.update.search.IUpdateSearchResultCollectorFromMirror#getMirror(org.eclipse.update.core.ISite, java.lang.String)
-         */
-        public IURLEntry getMirror(final ISiteWithMirrors site, final String siteName) {
-            return null;
-//            if (mirrors.containsKey(site))
-//                return (IURLEntry)mirrors.get(site);
-//            try {
-//                IURLEntry[] mirrorURLs = site.getMirrorSiteEntries();
-//                if (mirrorURLs.length == 0)
-//                    return null;
-//                else {
-//                    // here we need to prompt the user
-//                    final Shell shell = UpdateUI.getActiveWorkbenchShell();
-//                    final IURLEntry[] returnValue = new IURLEntry[1];
-//                    shell.getDisplay().syncExec(new Runnable() {
-//                        public void run() {
-//                            MirrorsDialog dialog = new MirrorsDialog(shell, site, siteName);
-//                            dialog.create();
-//                            dialog.open();
-//                            IURLEntry mirror = dialog.getMirror();
-//                            mirrors.put(site, mirror);
-//                            returnValue[0] = mirror;
-//                        }
-//                    });
-//                    return returnValue[0];
-//                }
-//            } catch (CoreException e) {
-//                return null;
-//            }
-        }
-    }
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateLabelProvider.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateLabelProvider.java
deleted file mode 100644
index 0dd2127..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateLabelProvider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui;
-
-import org.eclipse.jface.resource.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.internal.ui.parts.*;
-
-/**
- * 
- */
-
-public class UpdateLabelProvider extends SharedLabelProvider {
-	/**
-	 * Constructor for UpdateLabelProvider.
-	 */
-	public UpdateLabelProvider() {
-	}
-	
-	public String getText(Object obj) {
-		return super.getText(obj);
-	}
-	
-	public Image getImage(Object obj) {
-		return super.getImage(obj);
-	}
-	
-	public ImageDescriptor getLocalSiteDescriptor(IConfiguredSite csite) {
-		if (csite.isProductSite())
-			return UpdateUIImages.DESC_PSITE_OBJ;
-		if (csite.isExtensionSite())
-			return UpdateUIImages.DESC_ESITE_OBJ;
-		return UpdateUIImages.DESC_LSITE_OBJ;
-	}
-	
-	public Image getLocalSiteImage(IConfiguredSite csite) {
-		ImageDescriptor desc = getLocalSiteDescriptor(csite);
-		return get(desc);
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUI.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUI.java
deleted file mode 100644
index 3e8cea2..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUI.java
+++ /dev/null
@@ -1,416 +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 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.update.internal.ui;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-import java.net.URLEncoder;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.browser.*;
-import org.eclipse.help.internal.browser.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.program.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.plugin.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.internal.ui.security.*;
-import org.osgi.framework.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class UpdateUI extends AbstractUIPlugin {
-	public static final String PLUGIN_ID = "org.eclipse.update.ui"; //$NON-NLS-1$
-	public static final String WEB_APP_ID = "org.eclipse.update"; //$NON-NLS-1$
-	// preference key
-	public static final String P_DISCOVERY_SITES_ENABLED = "discoverySitesEnabled"; //$NON-NLS-1$
-	
-	//The shared instance.
-	private static UpdateUI plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	private UpdateModel model;
-	private UpdateManagerAuthenticator authenticator;
-	private String appServerHost;
-	private int appServerPort;
-	private UpdateLabelProvider labelProvider;
-	private static boolean remindOnCancel = true;
-
-	/**
-	 * The constructor.
-	 */
-	public UpdateUI() {
-
-		plugin = this;
-		try {
-			resourceBundle =
-				ResourceBundle.getBundle(
-					"org.eclipse.update.internal.ui.UpdateUIPluginResources"); //$NON-NLS-1$
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static UpdateUI getDefault() {
-		return plugin;
-	}
-
-	public static IWorkbenchPage getActivePage() {
-		return getDefault().internalGetActivePage();
-	}
-
-	private IWorkbenchPage internalGetActivePage() {
-		IWorkbenchWindow window = getWorkbench().getActiveWorkbenchWindow();
-		if (window != null)
-			return window.getActivePage();
-		return null;
-	}
-
-	public static Shell getActiveWorkbenchShell() {
-		IWorkbenchWindow window = getActiveWorkbenchWindow();
-		return window != null ? window.getShell() : getStandardDisplay().getActiveShell();
-	}
-
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return getDefault().getWorkbench().getActiveWorkbenchWindow();
-	}
-
-	public static String getPluginId() {
-		return getDefault().getBundle().getSymbolicName();
-	}
-
-	public UpdateLabelProvider getLabelProvider() {
-		if (labelProvider == null)
-			labelProvider = new UpdateLabelProvider();
-		return labelProvider;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getString(String key) {
-		ResourceBundle bundle = UpdateUI.getDefault().getResourceBundle();
-		try {
-			return bundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	public static String getFormattedMessage(String key, String[] args) {
-		String text = getString(key);
-		return java.text.MessageFormat.format(text, args);
-	}
-
-	public static String getFormattedMessage(String key, String arg) {
-		String text = getString(key);
-		return java.text.MessageFormat.format(text, new String[] { arg });
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		model = new UpdateModel();
-		authenticator = new UpdateManagerAuthenticator();
-		Authenticator.setDefault(authenticator);
-		int historyPref =
-			getPluginPreferences().getInt(UpdateCore.P_HISTORY_SIZE);
-		if (historyPref > 0) {
-			UpdateCore.DEFAULT_HISTORY = historyPref;
-		}
-	}
-	
-	
-
-	public boolean isWebAppStarted() {
-		return appServerHost != null;
-	}
-
-	public String getAppServerHost() {
-		return appServerHost;
-	}
-
-	public int getAppServerPort() {
-		return appServerPort;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		if (model != null)
-			model.shutdown();
-
-		if (labelProvider != null)
-			labelProvider.dispose();
-		super.stop(context);
-
-	}
-
-	public UpdateModel getUpdateModel() {
-		return model;
-	}
-
-	public static void logException(Throwable e) {
-		logException(e, true);
-	}
-
-	public static void logException(Throwable e, boolean showErrorDialog) {
-		if (e instanceof InvocationTargetException) {
-			e = ((InvocationTargetException) e).getTargetException();
-		}
-
-		IStatus status = null;
-		if (e instanceof CoreException) {
-			status = ((CoreException) e).getStatus();
-		} else {
-			String message = e.getMessage();
-			if (message == null)
-				message = e.toString();
-			status =
-				new Status(
-					IStatus.ERROR,
-					getPluginId(),
-					IStatus.OK,
-					message,
-					e);
-		}
-		log(status, showErrorDialog);
-	}
-
-	public static void log(IStatus status, boolean showErrorDialog) {
-		if (status.getSeverity() != IStatus.INFO) {
-			if (showErrorDialog)
-				ErrorDialog.openError(
-					getActiveWorkbenchShell(),
-					null,
-					null,
-					status);
-			//ResourcesPlugin.getPlugin().getLog().log(status);
-//			 Should log on the update plugin's log
-//			Platform.getPlugin("org.eclipse.core.runtime").getLog().log(status);
-			Bundle bundle = Platform.getBundle("org.eclipse.update.ui");  //$NON-NLS-1$
-			Platform.getLog(bundle).log(status);
-		} else {
-			MessageDialog.openInformation(
-				getActiveWorkbenchShell(),
-				null,
-				status.getMessage());
-		}
-	}
-
-	public static IFeature[] searchSite(
-		String featureId,
-		IConfiguredSite site,
-		boolean onlyConfigured)
-		throws CoreException {
-		IFeatureReference[] references = null;
-
-		if (onlyConfigured)
-			references = site.getConfiguredFeatures();
-		else
-			references = site.getSite().getFeatureReferences();
-		Vector result = new Vector();
-
-		for (int i = 0; i < references.length; i++) {
-			IFeature feature = references[i].getFeature(null);
-			String id = feature.getVersionedIdentifier().getIdentifier();
-			if (featureId.equals(id)) {
-				result.add(feature);
-			}
-		}
-		return (IFeature[]) result.toArray(new IFeature[result.size()]);
-	}
-
-	public static IFeature[] getInstalledFeatures(IFeature feature) {
-		return getInstalledFeatures(feature, true);
-	}
-
-	public static IFeature[] getInstalledFeatures(
-		IFeature feature,
-		boolean onlyConfigured) {
-		Vector features = new Vector();
-		try {
-			ILocalSite localSite = SiteManager.getLocalSite();
-			IInstallConfiguration config = localSite.getCurrentConfiguration();
-			IConfiguredSite[] isites = config.getConfiguredSites();
-			VersionedIdentifier vid = feature.getVersionedIdentifier();
-			String id = vid.getIdentifier();
-
-			for (int i = 0; i < isites.length; i++) {
-				IConfiguredSite isite = isites[i];
-				IFeature[] result =
-					UpdateUI.searchSite(id, isite, onlyConfigured);
-				for (int j = 0; j < result.length; j++) {
-					IFeature installedFeature = result[j];
-					features.add(installedFeature);
-				}
-			}
-		} catch (CoreException e) {
-			UpdateUI.logException(e);
-		}
-		return (IFeature[]) features.toArray(new IFeature[features.size()]);
-	}
-
-
-	/**
-	 * Gets the authenticator.
-	 * @return Returns a UpdateManagerAuthenticator
-	 */
-	public UpdateManagerAuthenticator getAuthenticator() {
-		return authenticator;
-	}
-
-	public static URL getOriginatingURL(String id) {
-		IDialogSettings section = getOriginatingURLSection();
-		String value = section.get(id);
-		if (value != null) {
-			try {
-				return new URL(value);
-			} catch (MalformedURLException e) {
-			}
-		}
-		return null;
-	}
-
-	public static void setOriginatingURL(String id, URL url) {
-		IDialogSettings section = getOriginatingURLSection();
-		section.put(id, url.toString());
-	}
-
-	private static IDialogSettings getOriginatingURLSection() {
-		IDialogSettings settings = getDefault().getDialogSettings();
-		IDialogSettings section = settings.getSection("originatingURLs"); //$NON-NLS-1$
-		if (section == null)
-			section = settings.addNewSection("originatingURLs"); //$NON-NLS-1$
-		return section;
-	}
-
-	
-	/**
-	 * Prompts the user to restart
-	 * @param restartIsReallyNeeded true when a restart is needed, false if the user feels lucky (tm) and wants the changes
-	 * applied to the current config
-	 */
-	public static void requestRestart(boolean restartIsReallyNeeded) {
-		boolean restart =
-			RestartDialog.openQuestion(
-				getActiveWorkbenchShell(),
-				restartIsReallyNeeded);
-		if (restart)
-			PlatformUI.getWorkbench().restart();
-	}
-
-	public static void showURL(String url) {
-		showURL(url, false);
-	}
-	
-	public static void showURL(String url, boolean encodeHostAndPort) {
-		if (encodeHostAndPort)
-			url = encodeHostAndPort(url);
-
-		if (SWT.getPlatform().equals("win32")) { //$NON-NLS-1$
-			Program.launch(url);
-		} else {
-			IBrowser browser = BrowserManager.getInstance().createBrowser();
-			try {
-				browser.displayURL(url);
-			} catch (Exception e) {
-				UpdateUI.logException(e);
-			}
-		}
-	}
-
-	private static String encodeHostAndPort(String urlName) {
-		String callbackURL = getCallbackURLAsString();
-		if (callbackURL == null)
-			return urlName;
-		String callbackParameter = "updateURL=" + callbackURL; //$NON-NLS-1$
-		if (urlName.indexOf('?') != -1)
-			return urlName + "&" + callbackParameter; //$NON-NLS-1$
-		else
-			return urlName + "?" + callbackParameter; //$NON-NLS-1$
-	}
-	
-	private static String getCallbackURLAsString() {
-		String host = getDefault().getAppServerHost();
-		int port = getDefault().getAppServerPort();
-		if (host == null || port == 0)
-			return null;
-		else {
-			String value =
-				"http://" //$NON-NLS-1$
-					+ host
-					+ ":" //$NON-NLS-1$
-					+ port
-					+ "/" //$NON-NLS-1$
-					+ WEB_APP_ID
-					+ "/install"; //$NON-NLS-1$
-			try {
-				value = URLEncoder.encode(value, "UTF-8"); //$NON-NLS-1$
-			} catch (UnsupportedEncodingException e) {
-			}
-			return value;
-		}
-	}
-	
-	public static boolean getRemindOnCancel() {
-		return remindOnCancel;
-	}
-	
-	public static void setRemindOnCancel(boolean remind) {
-		remindOnCancel = remind; 
-	}
-	
-	
-	/**
-	 * Returns the standard display to be used. The method first checks, if
-	 * the thread calling this method has an associated disaply. If so, this
-	 * display is returned. Otherwise the method returns the default display.
-	 */
-	public static Display getStandardDisplay() {
-		Display display;
-		display = Display.getCurrent();
-		if (display == null)
-			display = Display.getDefault();
-		return display;
-	}
-	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences()
-	 */
-	protected void initializeDefaultPluginPreferences() {
-		Preferences store = getPluginPreferences();
-		store.setDefault(P_DISCOVERY_SITES_ENABLED, true);
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIImages.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIImages.java
deleted file mode 100644
index 5f5c9f3..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIImages.java
+++ /dev/null
@@ -1,120 +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 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.update.internal.ui;
-
-import java.net.*;
-
-import org.eclipse.jface.resource.*;
-
-/**
- * Bundle of all images used by the PDE plugin.
- */
-public class UpdateUIImages {
-
-	public final static String ICONS_PATH = "icons/"; //$NON-NLS-1$
-
-	/**
-	 * Set of predefined Image Descriptors.
-	 */
-	
-	private static final String PATH_OBJ= ICONS_PATH+"obj16/"; //$NON-NLS-1$
-	private static final String PATH_VIEW = ICONS_PATH+"eview16/"; //$NON-NLS-1$
-	private static final String PATH_LCL= ICONS_PATH+"elcl16/"; //$NON-NLS-1$
-	private static final String PATH_LCL_DISABLED= ICONS_PATH+"dlcl16/"; //$NON-NLS-1$
-	private static final String PATH_OVR = ICONS_PATH + "ovr16/"; //$NON-NLS-1$
-	private static final String PATH_WIZBAN = ICONS_PATH + "wizban/"; //$NON-NLS-1$
-	public static final String PATH_FORMS = ICONS_PATH + "forms/"; //$NON-NLS-1$
-
-
-	/**
-	 * Frequently used images
-	 */
-
-	/**
-	 * OBJ16
-	 */
-	public static final ImageDescriptor DESC_APP_OBJ = create(PATH_OBJ, "app_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_BFOLDER_OBJ = create(PATH_OBJ, "bfolder_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_CATEGORY_OBJ = create(PATH_OBJ, "category_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_CONFIG_OBJ = create(PATH_OBJ, "config_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_FEATURE_OBJ = create(PATH_OBJ, "feature_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_EFIX_OBJ = create(PATH_OBJ, "efix2_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_HISTORY_OBJ = create(PATH_OBJ, "history_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_LSITE_OBJ = create(PATH_OBJ, "lsite_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_PSITE_OBJ = create(PATH_OBJ, "psite_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_ESITE_OBJ = create(PATH_OBJ, "esite_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_SITE_OBJ = create(PATH_OBJ, "site_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_WEB_SITE_OBJ = create(PATH_OBJ, "web_bkmrk_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_UNCONF_FEATURE_OBJ = create(PATH_OBJ, "unconf_feature_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_UPDATES_OBJ = create(PATH_OBJ, "updates_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_NOTINST_FEATURE_OBJ = create(PATH_OBJ, "notinstalled_feature_obj.gif");	 //$NON-NLS-1$
-	public static final ImageDescriptor DESC_ERR_ST_OBJ = create(PATH_OBJ, "error_st_obj.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_OK_ST_OBJ = create(PATH_OBJ, "ok_st_obj.gif"); //$NON-NLS-1$
-
-	
-	/**
-	 * OVR16
-	 */
-	public static final ImageDescriptor DESC_LINKED_CO   = create(PATH_OVR, "linked_co.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_UPDATED_CO   = create(PATH_OVR, "updated_co.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_INSTALLABLE_CO = create(PATH_OVR, "installable_co.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_CURRENT_CO = create(PATH_OVR, "current_co.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_ERROR_CO = create(PATH_OVR, "error_co.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_WARNING_CO = create(PATH_OVR, "warning_co.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_MOD_CO = create(PATH_OVR, "mod_co.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_ADD_CO = create(PATH_OVR, "add_stat.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_DEL_CO = create(PATH_OVR, "del_stat.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_UNCONF_CO = create(PATH_OVR, "unconfigured_co.gif"); //$NON-NLS-1$
-
-	/**
-	 * VIEW16
-	 */
-
-	public static final ImageDescriptor DESC_CONFIGS_VIEW = create(PATH_VIEW, "configs.gif"); //$NON-NLS-1$
-
-	/**
-	 * LCL
-	 */
-
-//	public static final ImageDescriptor DESC_SHOW_UNCONF = create(PATH_LCL, "show_unconf.gif"); //$NON-NLS-1$
-//	public static final ImageDescriptor DESC_SHOW_UNCONF_H = create(PATH_LCL_HOVER, "show_unconf.gif"); //$NON-NLS-1$
-//	public static final ImageDescriptor DESC_SHOW_UNCONF_D = create(PATH_LCL_DISABLED, "show_unconf.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_COLLAPSE_ALL = create(PATH_LCL, "collapseall.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_SHOW_HIERARCHY = create(PATH_LCL, "hierarchicalLayout.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_SHOW_HIERARCHY_D = create(PATH_LCL_DISABLED, "hierarchicalLayout.gif"); //$NON-NLS-1$
-
-	/**
-	 * WIZ
-	 */
-//	public static final ImageDescriptor DESC_INSTALL_WIZ  = create(PATH_WIZBAN, "install_wiz.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_UPDATE_WIZ  = create(PATH_WIZBAN, "update_wiz.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_CONFIG_WIZ  = create(PATH_WIZBAN, "config_wiz.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_UNINSTALL_WIZ  = create(PATH_WIZBAN, "uninstall_wiz.gif"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_INSTALL_BANNER  = create(PATH_WIZBAN, "def_wizban.jpg"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_PROVIDER = create(PATH_FORMS, "def_provider.jpg"); //$NON-NLS-1$
-	public static final ImageDescriptor DESC_ITEM = create(PATH_FORMS, "topic.gif"); //$NON-NLS-1$
-
-	private static ImageDescriptor create(String prefix, String name) {
-		return ImageDescriptor.createFromURL(makeImageURL(prefix, name));
-	}
-
-
-	private static URL makeImageURL(String prefix, String name) {
-		try {
-			URL base = UpdateUI.getDefault().getBundle().getEntry(prefix);
-			return new URL(base, name);
-		}
-		catch (MalformedURLException e) {
-			return null;
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginResources.properties b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginResources.properties
deleted file mode 100644
index 663da3a..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginResources.properties
+++ /dev/null
@@ -1,441 +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 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

-###############################################################################

-# 

-#

-#

-RestartTitle = Install/Update

-RestartMessage = You will need to restart the workbench for the changes to take effect. \

-Would you like to restart now?

-

-OptionalRestartMessage = It is recommended you restart the workbench for the changes to take effect, \

-but it may be possible to apply the changes to the current configuration without restarting.\

-Would you like to restart now?

-

-ApplyChanges=Apply Changes

-

-

-ConfigurationManagerAction.title=Product Configuration

-ConfigurationManagerWindow.fileMenu=&File

-ConfigurationManagerWindow.properties=&Properties

-ConfigurationManagerWindow.close=&Close

-

-EditBookmarksAction.edit=Edit Bookmarks...

-EditBookmarksAction.title=Bookmarks

-

-InstallWizardAction.title=Install/Update

-InstallWizard.retryTitle = Problem occurred

-InstallWizard.retry = Do you want to retry?

-

-WebBookmarksDialog.label=Current Bookmarks:

-WebBookmarksDialog.add=Add...

-WebBookmarksDialog.new=New Bookmark

-WebBookmarksDialog.edit=Edit...

-WebBookmarksDialog.editTitle=Edit Bookmark

-WebBookmarksDialog.remove=Remove

-

-DiscoveryFolder.name=Sites to Visit

-FeatureAdapter.failure=<failure>

-SiteBookmark.connecting = Connecting to "{0}"...

-SiteBookmark.downloading = Downloading:\ 

-SiteCategory.other.label = Other

-SiteCategory.other.description = Features found under this category are either not categorized or their categories could not be found on server.

-

-MainPreferencePage.checkSignature = Check digital &signatures of downloaded archives

-MainPreferencePage.historySize = &Maximum number of 'History' configurations:

-MainPreferencePage.updateVersions = Valid updates

-MainPreferencePage.updateVersions.equivalent = e&quivalent (1.0.1 -> 1.0.2 - only service increments)

-MainPreferencePage.updateVersions.compatible = &compatible (1.0.9 -> 1.1.0 - service and minor increments)

-MainPreferencePage.updatePolicy = &Update Policy

-MainPreferencePage.updatePolicyURL = Po&licy URL:

-MainPreferencePage.proxyGroup = Proxy settings

-MainPreferencePage.enableHttpProxy = E&nable HTTP proxy connection

-MainPreferencePage.httpProxyHost = &HTTP proxy host address:

-MainPreferencePage.httpProxyPort =  HTTP &proxy host port:

-MainPreferencePage.digitalSignature.title = Digital Signature Check

-MainPreferencePage.digitalSignature.message = You have chosen to disable digital signature \

-checks for downloaded archives. Note that unsigned archives may \

-contain software that can harm your computer.

-MainPreferencePage.invalidPort = Port must be a number in the range 0-65535

-

-UpdateSettingsPreferencePage.description=Settings for automatic feature update

-UpdateSettingsPreferencePage.label=Address &Mappings URL:

-UpdateSettingsPreferencePage.invalid=Invalid mappings URL

-

-ConfigurationActivitiesPropertyPage.label=Activities that caused the creation of this configuration:

-

-ConfiguredSitePropertyPage.path=Location path: 

-ConfiguredSitePropertyPage.type=Location type: 

-ConfiguredSitePropertyPage.enabled=Enabled: 

-ConfiguredSitePropertyPage.yes=yes

-ConfiguredSitePropertyPage.no=no

-ConfiguredSitePropertyPage.private=private

-ConfiguredSitePropertyPage.extension=product extension

-ConfiguredSitePropertyPage.product=product

-ConfiguredSitePropertyPage.unknown=unknown

-

-FeatureCopyrightPropertyPage.showInBrowser=&Show in Browser

-FeatureCopyrightPropertyPage.noCopyright=Feature does not contain a copyright statement

-

-FeatureGeneralPropertyPage.name=Name:

-FeatureGeneralPropertyPage.id=Identifier:

-FeatureGeneralPropertyPage.version=Version:

-FeatureGeneralPropertyPage.provider=Provider:

-FeatureGeneralPropertyPage.size=Size:

-FeatureGeneralPropertyPage.platforms=Supported Platforms

-FeatureGeneralPropertyPage.ws=Windowing System: 

-FeatureGeneralPropertyPage.arch=CPU Architecture: 

-FeatureGeneralPropertyPage.nl=Languages: 

-FeatureGeneralPropertyPage.all=all

-FeatureGeneralPropertyPage.os=Operating System:

-FeatureGeneralPropertyPage.desc=Description

-FeatureGeneralPropertyPage.Kilobytes = KB

-

-FeatureLicensePropertyPage.showInBrowser=&Show in Browser

-FeatureLicensePropertyPage.noLicense=Feature does not contain a license.

-

-FeatureStatusPropertyPage.pendingChanges=The feature has pending changes.  Therefore, its status cannot be determined until you restart the workbench.

-FeatureStatusPropertyPage.reason=Reason:

-FeatureStatusPropertyPage.missingOptional=This optional feature is currently not installed.

-FeatureStatusPropertyPage.missing=Referenced feature not found.

-FeatureStatusPropertyPage.goodConfiguration=The feature is configured properly.

-

-JarVerificationDialog.wtitle = Verification

-JarVerificationDialog.Title= Feature Verification

-JarVerificationDialog.Verification=Verification

-JarVerificationDialog.ComponentNotInstalled=This feature will not be installed.

-

-JarVerificationDialog.AboutToInstall.File=Warning: You are about to install an unsigned feature file.

-JarVerificationDialog.NotDigitallySigned.File= This feature file has not been digitally signed.

-JarVerificationDialog.CannotVerifyProvider.File=The provider of this feature file cannot be verified.

-JarVerificationDialog.CorruptedContent.File=The content of this feature file has been corrupted

-JarVerificationDialog.SignedComponent.File=You are about to install a signed feature file.

-JarVerificationDialog.UnknownCertificate.File=The certificates used to authenticate this feature file are not recognized.

-JarVerificationDialog.UnableToVerifyProvider.File=The provider of this feature file cannot be verified.

-JarVerificationDialog.ProviderKnown.File=The provider of this feature file has been validated by a trusted third party.

-JarVerificationDialog.KnownCertificate.File=One of the certificates used to authenticate this feature file was recognized.

-

-JarVerificationDialog.AboutToInstall.Feature=Warning: You are about to install an unsigned feature.

-JarVerificationDialog.NotDigitallySigned.Feature= This feature has not been digitally signed.

-JarVerificationDialog.CannotVerifyProvider.Feature=The provider of this feature cannot be verified.

-JarVerificationDialog.CorruptedContent.Feature=The content of this feature has been corrupted

-JarVerificationDialog.SignedComponent.Feature=You are about to install a signed feature.

-JarVerificationDialog.UnknownCertificate.Feature=The certificates used to authenticate this feature are not recognized.

-JarVerificationDialog.UnableToVerifyProvider.Feature=The provider of this feature cannot be verified.

-JarVerificationDialog.ProviderKnown.Feature=The provider of this feature has been validated by a trusted third party.

-JarVerificationDialog.KnownCertificate.Feature=One of the certificates used to authenticate this feature was recognized.

-

-JarVerificationDialog.Caution=\r\nCaution: \"{0}\" asserts that the content of this feature is safe. \r\nYou should only install this feature if you trust \"{0}\" to make that assertion

-JarVerificationDialog.FileName=File Identifier:

-JarVerificationDialog.FeatureName=Feature name:

-JarVerificationDialog.FeatureIdentifier=Feature Identifier:

-JarVerificationDialog.Provider=	Provider:

-JarVerificationDialog.MayChooseToInstall=You may choose to install the feature or cancel its installation.

-JarVerificationDialog.MayChooseToContinue=You may choose to continue to install the feature or cancel its installation.

-JarVerificationDialog.Install=&Install

-JarVerificationDialog.InstallAll=Install &All

-JarVerificationDialog.Continue=C&ontinue

-JarVerificationDialog.Cancel=&Cancel

-JarVerificationDialog.RootCA= According to: 

-JarVerificationDialog.SubjectCA= File signed by: 

-JarVerificationDialog.CertificateInfo= Certificate:

-

-UserVerificationDialog.PasswordRequired=Password Required

-UserVerificationDialog.ConnectTo=Connect to: 

-UserVerificationDialog.Password=Password:

-UserVerificationDialog.UserName=User name:

-

-ConfigurationPreviewForm.configDescription=This is the description of the current configuration.

-ConfigurationPreviewForm.install=Install Location

-ConfigurationPreviewForm.AvailableTasks=Available Tasks

-

-ConfigurationView.missingFeature = {0} (not installed)

-ConfigurationView.current=Current Configuration

-ConfigurationView.pending=\ (pending changes)

-ConfigurationView.error=Error

-ConfigurationView.collapseLabel=Collapse All

-ConfigurationView.collapseTooltip=Collapse All

-ConfigurationView.revertLabel=Revert...

-ConfigurationView.installHistory =Installation History

-ConfigurationView.extLocation=Extension Location...

-ConfigurationView.uninstall=Uninstall

-ConfigurationView.install=Install

-ConfigurationView.anotherVersion=&Another Version...

-ConfigurationView.findUpdates=Find Updates...

-ConfigurationView.showNestedFeatures=Show Nested Features

-ConfigurationView.showNestedTooltip=Show Nested Features

-ConfigurationView.showInstall=Show Install Locations

-ConfigurationView.showInstallTooltip=Show Install Locations

-ConfigurationView.showDisabled=Show Disabled Features

-ConfigurationView.showDisabledTooltip=Show Disabled Features

-ConfigurationView.new=New

-ConfigurationView.replaceWith=Replace with

-ConfigurationView.revertPreviousLabel=Revert to Previous

-ConfigurationView.revertPreviousDesc=You can revert to one of the previous configurations if you are having problems with the current one.

-ConfigurationView.updateLabel=Scan for Updates

-ConfigurationView.updateDesc=Search for updates for all the installed features.

-ConfigurationView.detectedChanges=Detected Changes...

-ConfigurationView.detectedLabel=Process Detected Changes

-ConfigurationView.detectedDesc=Process configuration changes that were detected by the configuration manager.

-ConfigurationView.installHistLabel=View Installation History

-ConfigurationView.installHistDesc=View all activities since the installation of the product.

-ConfigurationView.activitiesLabel=Show Activities

-ConfigurationView.activitiesDesc=View the activities that caused the creation of this configuration.

-ConfigurationView.enableLocDesc=You can enable or disable an entire install location. Disabling a location is equivalent to disabling every feature in it.

-ConfigurationView.extLocLabel=Add an Extension Location

-ConfigurationView.extLocDesc=Locate and add an extension location to the current configuration. An extension location contains features and plugins previously installed.

-ConfigurationView.propertiesLabel=Show Properties

-ConfigurationView.installPropDesc=View the properties of the install location.

-ConfigurationView.replaceVersionLabel=Replace With Another Version

-ConfigurationView.replaceVersionDesc=Disables the current version of the feature and replaces it with another version from the list of the currently disabled features.

-ConfigurationView.enableFeatureDesc=You can enable or disable a feature. Function provided by the feature will be removed but the feature itself will still be present to be enabled later.

-ConfigurationView.installOptionalLabel=Install from Originating Server

-ConfigurationView.installOptionalDesc=This optional feature was not originally installed. You can install it now by connecting to the originating server of the parent.

-ConfigurationView.uninstallLabel=Uninstall

-ConfigurationView.uninstallDesc=This feature is currently not used and can be uninstalled from the product.

-ConfigurationView.uninstallDesc2=Uninstall the feature from the product. This will disable the feature from the current configuration and remove it from the disk.

-ConfigurationView.scanLabel=Scan for Updates

-ConfigurationView.scanDesc=Search for updates for this feature.

-ConfigurationView.featurePropLabel=Show Properties

-ConfigurationView.featurePropDesc=View properties of the feature such as version, provider name, license agreement etc.

-

-Actions.brokenConfigQuestion=The current configuration contains errors and this operation can have unpredictable results. Do you want to continue ?

-

-FeatureStateAction.disable=Disable

-FeatureStateAction.enable=Enable

-FeatureStateAction.disableQuestion=Do you want to disable this feature?

-FeatureStateAction.EnableQuestion=Do you want to enable this feature?

-FeatureStateAction.dialogTitle=Current Configuration

-

-FeatureUninstallAction.uninstall=Uninstall

-FeatureUninstallAction.uninstallQuestion=Do you want to uninstall this feature?

-FeatureUninstallAction.dialogTitle=Current Configuration

-

-SiteStateAction.dialogTitle=Current Configuration

-SiteStateAction.disableLabel=Disable

-SiteStateAction.disableMessage=Do you want to disable all the features in "{0}"?

-SiteStateAction.enableLabel=Enable

-SiteStateAction.enableMessage=Do you want to enable features in "{0}"?

-

-FindUpdatesAction.updates=Updates

-

-InstallationHistoryAction.title=Installation History

-InstallationHistoryAction.desc=The list below represents the history of your update activities from the product installation to date. Each operation carries a date it commenced, as well as activities performed. Operations are sorted by date in ascending order.

-InstallationHistoryAction.activity=ACTIVITY

-InstallationHistoryAction.dateTime=Date / Time

-InstallationHistoryAction.target=Target

-InstallationHistoryAction.action=Action

-InstallationHistoryAction.status=Status

-InstallationHistoryAction.errors=Errors while creating installation history file.

-

-NewExtensionLocationAction.selectExtLocation=Select an extension location. An extension location is a directory named eclipse, which contains the .eclipseextension marker file, as well the features and plugins folders.

-NewExtensionLocationAction.extInfoTitle=Invalid Extension

-NewExtensionLocationAction.extInfoMessage=Selected location does not contain a product extension. An extension should consist of a directory named eclipse, which contains a marker file called .eclipseextension and the features and plugins folders.  Please select another location.

-

-ActivitiesTableViewer.enabled=Enabled

-ActivitiesTableViewer.featureInstalled=Feature Installed

-ActivitiesTableViewer.featureRemoved=Feature Removed

-ActivitiesTableViewer.siteInstalled=Site Installed

-ActivitiesTableViewer.siteRemoved=Site Removed

-ActivitiesTableViewer.disabled=Disabled

-ActivitiesTableViewer.revert=Revert

-ActivitiesTableViewer.reconcile=Reconcile

-ActivitiesTableViewer.unknown=unknown

-ActivitiesTableViewer.date=Date

-ActivitiesTableViewer.target=Target

-ActivitiesTableViewer.action=Action

-

-DeltaFeatureAdapter.shortName = {0} ({1})

-DeltaFeatureAdapter.longName = {0} ({1}) in {2}

-

-DuplicateConflictsDialog.title = Duplicate Conflicts

-DuplicateConflictsDialog.message = If you continue with the update/install, \

-the resulting configuration will contain duplication conflicts \

-that may cause parts of the product to be unusable. Do you want to \

-continue?

-DuplicateConflictsDialog.treeLabel = &Detected conflicts:

-

-InstallDeltaWizard.wtitle = Configuration Changes

-InstallDeltaWizard.processing = Processing pending changes:

-InstallDeltaWizard.title = Pending Configuration Changes

-InstallDeltaWizard.desc = Check the changes you wish to process now. Remove changes that should never be processed.

-InstallDeltaWizard.label = Detected &changes:

-InstallDeltaWizard.delete = &Remove

-InstallDeltaWizard.errors = &Error Details...

-InstallDeltaWizard.message = Selected update will result in an invalid configuration.

-

-ModeSelectionPage.title=Feature Updates

-ModeSelectionPage.desc=Choose the way you want to search for features to install

-ModeSelectionPage.updates=Search for &updates of the currently installed features

-ModeSelectionPage.updatesText=Select this option if you want to search for updates of the features you already have installed.

-ModeSelectionPage.newFeatures=&Search for new features to install

-ModeSelectionPage.newFeaturesText=Select this option if you want to install new features from existing or new update sites. \

-Some sites may already be available. You can add new update site URLs to the search. 

-

-MoreInfoGenerator.notInstalled=not installed

-MoreInfoGenerator.all=all

-MoreInfoGenerator.license=License

-MoreInfoGenerator.HTMLlicense=HTML version of the license agreement

-MoreInfoGenerator.licenseAvailable=is also available.

-MoreInfoGenerator.copyright=Copyright

-MoreInfoGenerator.HTMLcopyright=HTML version of the copyright

-MoreInfoGenerator.copyrightAvailable=is also available.

-MoreInfoGenerator.platforms=Supported Platforms

-MoreInfoGenerator.footprint=Footprint

-MoreInfoGenerator.downloadSize=Download size:

-MoreInfoGenerator.installSize=Install size:

-MoreInfoGenerator.downloadTime=Estimated download time:

-MoreInfoGenerator.lessthanone=less than one minute

-MoreInfoGenerator.desc=Description

-MoreInfoGenerator.moreInfo=More info...

-

-NewUpdateSiteDialog.name=Name: 

-NewUpdateSiteDialog.url=URL: 

-

-InstallWizard.isRunningTitle=Install/Update in progress

-InstallWizard.isRunningInfo=Another install/update job is in progress. Please cancel it and then re-launch this action.

-InstallWizard.jobName=Update Manager

-InstallWizard.download=Download and install selected features.

-InstallWizard.anotherJob = There is another update/install task running in the background. Do you want to kill it and continue the current tasks instead?

-InstallWizard.anotherJobTitle=Installer is running

-InstallWizard.wtitle=Install

-InstallWizard.OptionalFeaturesPage.title= Optional Features

-InstallWizard.OptionalFeaturesPage.desc = Some of the features that are included in this feature are optional.

-InstallWizard.OptionalFeaturesPage.treeLabel = &Available optional features:

-InstallWizard.OptionalFeaturesPage.selectAll = &Select All

-InstallWizard.OptionalFeaturesPage.deselectAll = &Deselect All

-

-InstallWizard.ReviewPage.counter = {0} of {1} selected.

-InstallWizard.ReviewPage.title=Search Results

-InstallWizard.ReviewPage.desc=Select features to install from the search result list.

-InstallWizard.ReviewPage.searching=Searching for features is in progress. Click on Cancel if you want to stop it.\nYou may need to wait a few seconds for cancellation to happen.

-InstallWizard.ReviewPage.zeroUpdates=No updates for the currently installed feature(s)found, try again later.

-InstallWizard.ReviewPage.zeroFeatures=No features found on the selected site\(s\). Choose a different site or site category.

-InstallWizard.ReviewPage.label=Select the features to &install:

-InstallWizard.ReviewPage.selectAll=&Select All

-InstallWizard.ReviewPage.deselectAll=&Deselect All

-InstallWizard.ReviewPage.moreInfo=&More Info

-InstallWizard.ReviewPage.properties=&Properties

-InstallWizard.ReviewPage.showStatus=&Error Details...

-InstallWizard.ReviewPage.filterFeatures=\ Fil&ter features included in other features on the list

-InstallWizard.ReviewPage.filterPatches=\ Fil&ter patches included in other patches on the list

-InstallWizard.ReviewPage.filterOlderFeatures=\ Show the latest &version of a feature only

-InstallWizard.ReviewPage.feature=Feature

-InstallWizard.ReviewPage.version=Version

-InstallWizard.ReviewPage.provider=Provider

-InstallWizard.ReviewPage.prop=&Properties

-InstallWizard.ReviewPage.invalid.long=Invalid combination - select \"Show Status...\" for details.

-InstallWizard.ReviewPage.invalid.short=Invalid combination

-InstallWizard.ReviewPage.cycle=Cycle starting at {0}

-

-InstallWizard.LicensePage.accept = I &accept the terms in the license agreement

-InstallWizard.LicensePage.accept2 = I &accept the terms in the license agreements

-InstallWizard.LicensePage.decline = I &do not accept the terms in the license agreement

-InstallWizard.LicensePage.decline2 = I &do not accept the terms in the license agreements

-InstallWizard.LicensePage.desc = This feature has a license \

-agreement that you need to accept before proceeding with \

-the installation.

-InstallWizard.LicensePage.desc2 = Some of the features have license \

-agreements that you need to accept before proceeding with \

-the installation.

-InstallWizard.LicensePage.down=Next &License

-InstallWizard.LicensePage.header={0} out of {1}: {2} ({3})

-InstallWizard.LicensePage.title = Feature License

-InstallWizard.LicensePage.up=&Previous License

-

-InstallWizard.TargetPage.title = Installation

-InstallWizard.TargetPage.desc = The following features will be installed. You can select a feature and change the location where the feature will be installed.

-InstallWizard.TargetPage.jobsLabel = Features to &install:

-InstallWizard.TargetPage.siteLabel = A&vailable installation locations:

-InstallWizard.TargetPage.new = &Add Location...

-InstallWizard.TargetPage.delete = &Remove Location

-InstallWizard.TargetPage.requiredSpace = Required space:

-InstallWizard.TargetPage.availableSpace = Free space:

-InstallWizard.TargetPage.location = Install Location

-InstallWizard.TargetPage.location.change = Change Location ...

-InstallWizard.TargetPage.location.message = Select a new install location

-InstallWizard.TargetPage.location.empty = Target install location must be selected. If none is available, create a new one.

-InstallWizard.TargetPage.location.exists = Target location already exists.

-InstallWizard.TargetPage.location.error.title = Invalid Location

-InstallWizard.TargetPage.location.error.message = The selected location cannot be used to install features: {0}

-InstallWizard.TargetPage.location.error.reason = Reason: {0}

-InstallWizard.TargetPage.size = {0}KB

-InstallWizard.TargetPage.unknownSize = Unknown

-InstallWizard.TargetPage.patchError = Patch "{0}" must be installed in the same location as "{1}"

-InstallWizard.TargetPage.patchError2 = Patch "{0}" must be installed in the same location as "{1}" : {2}

-

-RevertConfigurationWizard.wtitle=Revert to a Previous Configuration

-RevertConfigurationWizardPage.title=Revert to a Previous Configuration

-RevertConfigurationWizardPage.desc=Choose a stable configuration to which you would like to revert

-RevertConfigurationWizardPage.label=&Past configurations:

-RevertConfigurationWizardPage.activities=&Activities that caused the creation of this configuration:

-RevertConfigurationWizardPage.question=This operation requires restarting the workbench.  Would you like to proceed?

-

-Revert.ProblemDialog.title = Restore Problems

-

-ShowActivitiesDialog.title = Current Configuration

-ShowActivitiesDialog.date = Date:

-ShowActivitiesDialog.loc = Location: 

-ShowActivitiesDialog.label = Activities that caused the creation of the current configuration:

-

-SitePage.title=Update sites to visit

-SitePage.desc=Select update sites to visit while looking for new features.

-SitePage.label=&Sites to include in search:

-SitePage.addUpdateSite=New Remo&te Site...

-SitePage.addLocalSite=New &Local Site...

-SitePage.addLocalZippedSite=New &Archived Site...

-SitePage.edit=&Edit...

-SitePage.remove=&Remove

-SitePage.import=I&mport sites...

-SitePage.export=E&xport sites...

-SitePage.ignore=&Ignore features not applicable to this environment

-SitePage.new=New Update Site

-SitePage.dialogEditLocal=Edit Local Site

-SitePage.dialogEditUpdateSite=Edit Remote Site

-SitePage.connecting=Connecting

-SitePage.remove.location.conf.title=Remove Location

-SitePage.remove.location.conf=Are you sure you want to remove this location?

-

-SearchRunner.connectionError=Connection error

-

-LocalSiteSelector.dialogMessage=Select a local update site.

-LocalSiteSelector.dirInfoTitle=Invalid Site

-LocalSiteSelector.dirInfoMessage=Selected location does not contain an update site.  Please select another location.

-LocalSiteSelector.dialogMessagezip=Select Local Site Archive

-LocalSiteSelector.zipInfoTitle=Invalid Site

-LocalSiteSelector.zipInfoMessage=Selected archive does not contain an update site.  Please select another archive.

-LocalSiteSelector.dialogMessageImport=Import Sites Bookmarks

-LocalSiteSelector.importInfoTitle=Invalid Bookmarks File

-LocalSiteSelector.importInfoMessage=Selected file does not contain update sites bookmarks.  Please select another file.

-LocalSiteSelector.dialogMessageExport=Export Sites Bookmarks

-

-InstallServlet.unknownServerURL=Update server URL is unknown.

-InstallServlet.noFeatures=No features to install.

-InstallServlet.inProgress = Another install session is already in progress.

-InstallServlet.incorrectURLFormat=Update server URL has incorrect format: {0}

-InstallServlet.contactWebmaster=Contact Web master that maintains the page that initiated this operation.

-

-MissingFeature.provider = N/A

-MissingFeature.desc.unknown = The feature was not loaded due to errors. Open feature properties for details.

-MissingFeature.desc.optional = This optional feature has not been installed.

-InstallDeltaWizard.reminder=To process these changes at a later time, go to Help->Software Updates->Manage Configuration...

-SwapFeatureWizard.title=Replace With Another Version

-SwapFeatureWizardPage.title=Replace With Another Version

-SwapFeatureWizardPage.desc=Disable the current version of the feature and replace it with one of the versions from the list

-SwapFeatureWizardPage.label=&Available disabled versions:

-

-MirrorsDialog.text=The content of the update site "{0}" is also available on the mirrors listed below. You may choose to select a mirror instead of the default update site.

-MirrorsDialog.title=Update Site Mirrors

-

-AutomaticUpdatesJob.Updates=Updates

-AutomaticUpdatesJob.EclipseUpdates1=Automatic Updates

-AutomaticUpdatesJob.UpdatesAvailable=New updates are available. Do you want to review and install them now?

-AutomaticUpdatesJob.EclipseUpdates2=Automatic Updates

-AutomaticUpdatesJob.UpdatesDownloaded=New updates are available and downloaded. Do you want to review and install them now?
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/BookmarkFolder.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/BookmarkFolder.java
deleted file mode 100644
index 5cca57a..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/BookmarkFolder.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.model;
-
-import java.util.*;
-
-public class BookmarkFolder extends NamedModelObject {
-
-    private static final long serialVersionUID = 1L;
-    protected ArrayList children= new ArrayList();
-	public BookmarkFolder() {
-	}
-	
-	public BookmarkFolder(String name) {
-		super(name);
-	}
-	
-	public Object[] getChildren(Object parent) {
-		return children.toArray();
-	}
-	
-	public boolean hasChildren() {
-		return children.size()>0;
-	} 
-	
-	public void addChild(NamedModelObject object) {
-		internalAdd(object);
-		notifyObjectsAdded(this, new Object[] {object});
-	}
-
-	public void addChildren(NamedModelObject [] objects) {
-		for (int i=0; i<objects.length; i++) {
-			internalAdd(objects[i]);
-		}
-		notifyObjectsAdded(this, objects);
-	}
-	
-	protected void internalAdd(NamedModelObject child) {
-		children.add(child);
-		child.setModel(getModel());
-		child.setParent(this);
-	}
-	
-	public void removeChildren(NamedModelObject [] objects) {
-		for (int i=0; i<objects.length; i++) {
-			children.remove(objects[i]);
-			objects[i].setParent(null);
-		}
-		notifyObjectsRemoved(this, objects);
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/BookmarkUtil.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/BookmarkUtil.java
deleted file mode 100644
index f0bc791..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/BookmarkUtil.java
+++ /dev/null
@@ -1,274 +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 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.update.internal.ui.model;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import javax.xml.parsers.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.ui.*;
-import org.w3c.dom.*;
-import org.xml.sax.*;
-
-public class BookmarkUtil {
-	private static final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-
-	public static void parse(String fileName, Vector bookmarks) {
-		File file = new File(fileName);
-		if (!file.exists())
-			return;
-
-		try {
-			documentBuilderFactory.setNamespaceAware(true);
-			DocumentBuilder parser = documentBuilderFactory.newDocumentBuilder();
-			Document doc = parser.parse(file);
-			Node root = doc.getDocumentElement();
-			processRoot(root, bookmarks);
-		} catch (ParserConfigurationException e) {
-			UpdateUI.logException(e);
-		} catch (SAXException e) {
-			UpdateUI.logException(e);
-		} catch (IOException e) {
-			UpdateUI.logException(e);
-		}
-	}
-
-	public static SiteBookmark[] getBookmarks(Vector bookmarks) {
-		ArrayList result = new ArrayList();
-		for (int i = 0; i < bookmarks.size(); i++) {
-			processEntry(bookmarks.get(i), result);
-		}
-		return (SiteBookmark[]) result.toArray(new SiteBookmark[result.size()]);
-	}
-
-	public static BookmarkFolder getFolder(Vector bookmarks, IPath path) {
-		NamedModelObject object = find(bookmarks, path);
-		if (object != null && object instanceof BookmarkFolder)
-			return (BookmarkFolder) object;
-		return null;
-	}
-
-	public static NamedModelObject find(Vector bookmarks, IPath path) {
-		Object[] array = bookmarks.toArray();
-		return find(array, path);
-	}
-
-	private static NamedModelObject find(Object[] array, IPath path) {
-		String name = path.segment(0);
-		for (int i = 0; i < array.length; i++) {
-			NamedModelObject obj = (NamedModelObject) array[i];
-			if (obj.getName().equals(name)) {
-				if (obj instanceof BookmarkFolder) {
-					if (path.segmentCount() > 1) {
-						IPath childPath = path.removeFirstSegments(1);
-						BookmarkFolder folder = (BookmarkFolder) obj;
-						return find(folder.getChildren(null), childPath);
-					}
-				}
-				return obj;
-			}
-		}
-		return null;
-	}
-
-	private static void processRoot(Node root, Vector bookmarks) {
-		if (root.getNodeName().equals("bookmarks")) { //$NON-NLS-1$
-			NodeList children = root.getChildNodes();
-			processChildren(children, null, bookmarks);
-		}
-	}
-	private static void processChildren(
-		NodeList children,
-		BookmarkFolder folder,
-		Vector bookmarks) {
-		UpdateModel model = UpdateUI.getDefault().getUpdateModel();
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			NamedModelObject object = null;
-			if (child.getNodeType() == Node.ELEMENT_NODE) {
-				if (child.getNodeName().equals("site")) { //$NON-NLS-1$
-					object = createSite(child);
-				} else if (child.getNodeName().equals("folder")) { //$NON-NLS-1$
-					object = createFolder(child);
-				} 
-			}
-			if (object != null) {
-				if (folder != null) {
-					folder.addChild(object);
-				} else {
-					bookmarks.add(object);
-				}
-				object.setModel(model);
-			}
-		}
-	}
-
-	private static SiteBookmark createSite(Node child) {
-		String name = getAttribute(child, "name"); //$NON-NLS-1$
-		URL url = null;
-		try {
-			url = new URL(getAttribute(child, "url")); //$NON-NLS-1$
-		} catch (MalformedURLException e) {
-		}
-
-		String web = getAttribute(child, "web"); //$NON-NLS-1$
-		boolean webBookmark = (web != null && web.equals("true")); //$NON-NLS-1$
-
-		String sel = getAttribute(child, "selected"); //$NON-NLS-1$
-		boolean selected = (sel != null && sel.equals("true")); //$NON-NLS-1$
-
-		SiteBookmark bookmark = new SiteBookmark(name, url, webBookmark, selected);
-
-		String local = getAttribute(child, "local"); //$NON-NLS-1$
-		bookmark.setLocal(local != null && local.equals("true")); //$NON-NLS-1$
-
-		String ign = getAttribute(child, "ignored-categories"); //$NON-NLS-1$
-		if (ign != null) {
-			StringTokenizer stok = new StringTokenizer(ign, ","); //$NON-NLS-1$
-			ArrayList array = new ArrayList();
-			while (stok.hasMoreTokens()) {
-				String tok = stok.nextToken();
-				array.add(tok);
-			}
-			bookmark.setIgnoredCategories((String[]) array.toArray(new String[array.size()]));
-		}
-		// read description
-		NodeList children = child.getChildNodes();
-		for (int i = 0; i < children.getLength(); i++) {
-			Node node = children.item(i);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				bookmark.setDescription(createDescription(node));
-				break;
-			}
-		}
-		return bookmark;
-	}
-
-	private static String createDescription(Node child) {
-		String description = "";
-		NodeList children = child.getChildNodes();
-		for (int i = 0; i < children.getLength(); i++) {
-			Node node = children.item(i);
-			if (node.getNodeType() == Node.TEXT_NODE) 
-				description += node.getNodeValue();
-		}
-		return description;
-	}
-
-		
-	private static BookmarkFolder createFolder(Node child) {
-		BookmarkFolder folder = new BookmarkFolder();
-		String name = getAttribute(child, "name"); //$NON-NLS-1$
-		folder.setName(name);
-		if (child.hasChildNodes())
-			processChildren(child.getChildNodes(), folder, null);
-		return folder;
-	}
-
-	public static void store(String fileName, Vector bookmarks) {
-		FileOutputStream fos = null;
-		OutputStreamWriter osw = null;
-		PrintWriter writer = null;
-		try {
-			fos = new FileOutputStream(fileName);
-			osw = new OutputStreamWriter(fos, "UTF8"); //$NON-NLS-1$
-			writer = new PrintWriter(osw);
-			writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); //$NON-NLS-1$
-			writer.println("<bookmarks>"); //$NON-NLS-1$
-			for (int i = 0; i < bookmarks.size(); i++) {
-				Object obj = bookmarks.get(i);
-				writeObject("   ", obj, writer); //$NON-NLS-1$
-			}
-			writer.println("</bookmarks>"); //$NON-NLS-1$
-			writer.flush();
-			writer.close();
-		} catch (IOException e) {
-		} finally {
-			try {
-				if (osw != null)
-					osw.close();
-			} catch (IOException e1) {
-			}
-			try {
-				if (fos != null)
-					fos.close();
-			} catch (IOException e2) {
-			}
-		}
-	}
-	private static void writeObject(
-		String indent,
-		Object obj,
-		PrintWriter writer) {
-		if (obj instanceof SiteBookmark) {
-			SiteBookmark bookmark = (SiteBookmark) obj;
-			String name = bookmark.getName();
-			String url = bookmark.getURL().toString();
-			String web = bookmark.isWebBookmark()?"true":"false"; //$NON-NLS-1$ //$NON-NLS-2$
-			String sel = bookmark.isSelected()?"true":"false"; //$NON-NLS-1$ //$NON-NLS-2$
-			String local = bookmark.isLocal() ? "true" : "false"; //$NON-NLS-1$ //$NON-NLS-2$
-			String [] ign = bookmark.getIgnoredCategories();
-			StringBuffer wign = new StringBuffer();
-			for (int i = 0; i < ign.length; i++) {
-				if (i > 0)
-					wign.append(',');
-				wign.append(ign[i]);
-			}
-			writer.print(indent + "<site name=\"" + UpdateManagerUtils.getWritableXMLString(name) + "\" url=\"" + url + "\" web=\"" + web + "\" selected=\"" + sel + "\" local=\"" + local + "\""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-			if (wign.length() > 0)
-				writer.print(" ignored-categories=\""+wign.toString()+"\""); //$NON-NLS-1$ //$NON-NLS-2$
-			if (bookmark.getDescription() != null) {
-				writer.println(">"); //$NON-NLS-1$
-				writer.print(indent+"  <description>"); //$NON-NLS-1$
-				writer.print(UpdateManagerUtils.getWritableXMLString(bookmark.getDescription()));
-				writer.println("</description>"); //$NON-NLS-1$
-				writer.println(indent +"</site>"); //$NON-NLS-1$
-			} else {
-				writer.println("/>"); //$NON-NLS-1$
-			}
-		} else if (obj instanceof BookmarkFolder) {
-			BookmarkFolder folder = (BookmarkFolder) obj;
-			String name = folder.getName();
-			writer.println(indent + "<folder name=\"" + UpdateManagerUtils.getWritableXMLString(name) + "\">"); //$NON-NLS-1$ //$NON-NLS-2$
-			Object[] children = folder.getChildren(folder);
-			String indent2 = indent + "   "; //$NON-NLS-1$
-			for (int i = 0; i < children.length; i++) {
-				writeObject(indent2, children[i], writer);
-			}
-			writer.println(indent + "</folder>"); //$NON-NLS-1$
-		}
-	}
-
-	private static String getAttribute(Node node, String name) {
-		NamedNodeMap atts = node.getAttributes();
-		Node att = atts.getNamedItem(name);
-		if (att != null) {
-			return att.getNodeValue();
-		}
-		return ""; //$NON-NLS-1$
-	}
-	private static void processFolder(BookmarkFolder folder, ArrayList result) {
-		Object[] children = folder.getChildren(folder);
-		for (int i = 0; i < children.length; i++) {
-			processEntry(children[i], result);
-		}
-	}
-	private static void processEntry(Object obj, ArrayList result) {
-		if (obj instanceof SiteBookmark)
-			result.add(obj);
-		else if (obj instanceof BookmarkFolder) {
-			processFolder((BookmarkFolder) obj, result);
-		}
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ConfiguredFeatureAdapter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ConfiguredFeatureAdapter.java
deleted file mode 100644
index 0e9bc44..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ConfiguredFeatureAdapter.java
+++ /dev/null
@@ -1,116 +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 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.update.internal.ui.model;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.core.*;

-

-/**

- * @version 	1.0

- * @author

- */

-public class ConfiguredFeatureAdapter

-	extends SimpleFeatureAdapter

-	implements IConfiguredFeatureAdapter {

-	private IConfiguredSiteAdapter adapter;

-	private boolean configured;

-	private boolean updated;

-

-	public ConfiguredFeatureAdapter(

-		IConfiguredSiteAdapter adapter,

-		IFeature feature,

-		boolean configured,

-		boolean updated,

-		boolean optional) {

-		super(feature, optional);

-		this.adapter = adapter;

-		this.configured = configured;

-		this.updated = updated;

-	}

-

-	public boolean equals(Object object) {

-		if (object == null)

-			return false;

-		if (object == this)

-			return true;

-		if (object instanceof ConfiguredFeatureAdapter) {

-			try {

-				ConfiguredFeatureAdapter ad = (ConfiguredFeatureAdapter) object;

-				return ad.getConfiguredSite().equals(getConfiguredSite())

-					&& ad.getFeature(null).equals(getFeature(null));

-			} catch (CoreException e) {

-			}

-		}

-		return false;

-	}

-

-	public IConfiguredSite getConfiguredSite() {

-		return adapter.getConfiguredSite();

-	}

-	public IInstallConfiguration getInstallConfiguration() {

-		return adapter.getInstallConfiguration();

-	}

-	public boolean isConfigured() {

-		return configured;

-	}

-

-	public boolean isUpdated() {

-		return updated;

-	}

-	public IFeatureAdapter[] getIncludedFeatures(IProgressMonitor monitor) {

-		try {

-			IIncludedFeatureReference[] included =

-				getFeature(null).getIncludedFeatureReferences();

-			ConfiguredFeatureAdapter[] result =

-				new ConfiguredFeatureAdapter[included.length];

-			if (monitor == null)

-				monitor = new NullProgressMonitor();

-			SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1);

-			subMonitor.beginTask("", included.length); //$NON-NLS-1$

-

-			for (int i = 0; i < included.length; i++) {

-				IIncludedFeatureReference fref = included[i];

-				IFeature feature;

-				boolean childConfigured = configured;

-				boolean updated = false;

-				try {

-					feature = fref.getFeature(

-							new SubProgressMonitor(subMonitor, 1));

-					childConfigured =

-						adapter.getConfiguredSite().isConfigured(feature);

-					///*

-					PluginVersionIdentifier refpid =

-						fref.getVersionedIdentifier().getVersion();

-					PluginVersionIdentifier fpid =

-						feature.getVersionedIdentifier().getVersion();

-					updated = !refpid.equals(fpid);

-					//*/

-				} catch (CoreException e) {

-					feature = new MissingFeature(getFeature(null), fref);

-					childConfigured = false;

-				}

-

-				result[i] =

-					new ConfiguredFeatureAdapter(

-						adapter,

-						feature,

-						childConfigured,

-						updated,

-						fref.isOptional());

-				result[i].setIncluded(true);

-			}

-			return result;

-		} catch (CoreException e) {

-			return new IFeatureAdapter[0];

-		}

-	}

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ConfiguredSiteAdapter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ConfiguredSiteAdapter.java
deleted file mode 100644
index d52291a..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ConfiguredSiteAdapter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.model;
-
-import org.eclipse.update.configuration.*;
-
-/**
- * @version 	1.0
- * @author
- */
-public class ConfiguredSiteAdapter
-	extends UIModelObject
-	implements IConfiguredSiteAdapter {
-	private IInstallConfiguration config;
-	private IConfiguredSite csite;
-		
-	public ConfiguredSiteAdapter(IInstallConfiguration config, IConfiguredSite csite) {
-		this.csite = csite;
-		this.config = config;
-	}
-	
-	public IConfiguredSite getConfiguredSite() {
-		return csite;
-	}
-
-	public IInstallConfiguration getInstallConfiguration() {
-		return config;
-	}
-	
-	public boolean equals(Object object) {
-		if (object==null) return false;
-		if (object == this) return true;
-		if (object instanceof ConfiguredSiteAdapter) {
-			ConfiguredSiteAdapter adapter = (ConfiguredSiteAdapter)object;
-			return csite!=null && csite.getSite().equals(adapter.getConfiguredSite().getSite());
-		}
-		return false;
-	}
-	
-	public String toString() {
-		return getConfiguredSite().getSite().getURL().toString();
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/DiscoveryFolder.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/DiscoveryFolder.java
deleted file mode 100644
index bc9846f..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/DiscoveryFolder.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.model;
-
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.search.*;
-import org.eclipse.update.internal.ui.UpdateUI;
-import org.eclipse.update.search.*;
-
-public class DiscoveryFolder extends BookmarkFolder {
-
-    private static final long serialVersionUID = 1L;
-    UpdatePolicy updatePolicy = new UpdatePolicy();
-	
-	public DiscoveryFolder() {
-		super(UpdateUI.getString("DiscoveryFolder.name")); //$NON-NLS-1$
-		setModel(UpdateUI.getDefault().getUpdateModel());
-	}
-	public void initialize() {
-		children.clear();
-		// check if discovery sites defined by features should be exposed to the user
-		if (!UpdateUI.getDefault().getPluginPreferences().getBoolean(UpdateUI.P_DISCOVERY_SITES_ENABLED))
-			return;
-		
-		try {
-			URL updateMapURL = UpdateUtils.getUpdateMapURL();
-			if (updateMapURL!=null) {
-				updatePolicy = new UpdatePolicy();
-				// TODO may need to use a proper monitor to be able to cancel connections
-				IStatus status = UpdateUtils.loadUpdatePolicy(updatePolicy, updateMapURL, new NullProgressMonitor());
-				if (status != null) {
-					// log and continue
-					UpdateUtils.log(status);
-				}
-			}
-		} catch (CoreException e) {
-			// log and continue
-			UpdateUtils.log(e.getStatus());
-		}
-		
-		try {
-			ILocalSite site = SiteManager.getLocalSite();
-			IInstallConfiguration config = site.getCurrentConfiguration();
-			IConfiguredSite[] csites = config.getConfiguredSites();
-			for (int i = 0; i < csites.length; i++) {
-				IConfiguredSite csite = csites[i];
-				IFeatureReference[] refs = csite.getConfiguredFeatures();
-				for (int j = 0; j < refs.length; j++) {
-					IFeatureReference ref = refs[j];
-					IFeature feature = ref.getFeature(null);
-					IURLEntry[] entries = feature.getDiscoverySiteEntries();
-					if (entries.length > 0) {
-						// Only add discovery sites of root features
-						if (isIncluded(ref, refs))
-							continue;
-						addBookmarks(feature);
-					}
-				}
-			}
-		} catch (CoreException e) {
-			UpdateUI.logException(e);
-		}
-	}
-	private boolean isIncluded(
-		IFeatureReference ref,
-		IFeatureReference[] refs) {
-		try {
-			VersionedIdentifier vid = ref.getVersionedIdentifier();
-			for (int i = 0; i < refs.length; i++) {
-				IFeatureReference candidate = refs[i];
-				// Ignore self
-				if (candidate.equals(ref))
-					continue;
-				IFeature cfeature = candidate.getFeature(null);
-				IFeatureReference[] irefs =
-					cfeature.getIncludedFeatureReferences();
-				for (int j = 0; j < irefs.length; j++) {
-					IFeatureReference iref = irefs[j];
-					VersionedIdentifier ivid = iref.getVersionedIdentifier();
-					if (ivid.equals(vid)) {
-						// bingo - included in at least one feature
-						return true;
-					}
-				}
-			}
-		} catch (CoreException e) {
-		}
-		return false;
-	}
-	private void addBookmarks(IFeature feature) {
-		// See if this query site adapter is mapped in the map file
-		// to a different URL.
-		if (updatePolicy != null && updatePolicy.isLoaded()) {
-			IUpdateSiteAdapter mappedSite = updatePolicy.getMappedDiscoverySite(feature.getVersionedIdentifier().getIdentifier());
-			if (mappedSite != null) {
-				SiteBookmark bookmark =
-					new SiteBookmark(mappedSite.getLabel(),	mappedSite.getURL(), false);
-				bookmark.setReadOnly(true);
-				if (!contains(bookmark))
-					internalAdd(bookmark);
-				return;
-			} else if (!updatePolicy.isFallbackAllowed()) {
-				// no match - use original sites if fallback allowed, or nothing.
-				return;
-			}
-		}
-		IURLEntry[] entries = feature.getDiscoverySiteEntries();
-		for (int i = 0; i < entries.length; i++) {
-			IURLEntry entry = entries[i];
-			SiteBookmark bookmark =
-				new SiteBookmark(
-					entry.getAnnotation(),
-					entry.getURL(),
-					entry.getType() == IURLEntry.WEB_SITE);
-			bookmark.setReadOnly(entry.getType() != IURLEntry.WEB_SITE);
-			if (!contains(bookmark))
-				internalAdd(bookmark);
-		}
-	}
-	private boolean contains(SiteBookmark bookmark) {
-		for (int i = 0; i < children.size(); i++) {
-			Object o = children.get(i);
-			if (o instanceof SiteBookmark) {
-				// note: match on URL, not the label
-				if (bookmark.getURL().equals(((SiteBookmark) o).getURL()))
-					return true;
-			}
-		}
-		return false;
-	}
-	public Object[] getChildren(Object parent) {
-		if (hasChildren() == false)
-			initialize();
-		return super.getChildren(parent);
-	}
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/FeatureAdapter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/FeatureAdapter.java
deleted file mode 100644
index 7e78e7c..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/FeatureAdapter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.ui.model;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.ui.UpdateUI;

-

-/**

- * @version 	1.0

- * @author

- */

-public abstract class FeatureAdapter extends UIModelObject implements IFeatureAdapter {

-	private boolean included=false;

-

-	/*

-	 * @see IFeatureAdapter#getInstallConfiguration()

-	 */

-	public IInstallConfiguration getInstallConfiguration() {

-		return null;

-	}

-	

-	public boolean isIncluded() {

-		return included;

-	}

-	

-	protected void setIncluded(boolean included) {

-		this.included = included;

-	}

-	

-	public String toString() {

-		try {

-			IFeature feature = getFeature(null);

-			return feature.getLabel();

-		}

-		catch (CoreException e) {

-			return UpdateUI.getString("FeatureAdapter.failure"); //$NON-NLS-1$

-		}

-	}

-	public boolean hasIncludedFeatures(IProgressMonitor monitor) {

-		try {

-			IFeatureReference [] included = getFeature(monitor).getIncludedFeatureReferences();

-			return included.length>0;

-		}

-		catch (CoreException e) {

-			return false;

-		}

-	}

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/FeatureReferenceAdapter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/FeatureReferenceAdapter.java
deleted file mode 100644
index 69f2005..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/FeatureReferenceAdapter.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.ui.model;

-import java.lang.reflect.*;

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.jface.operation.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.ui.*;

-

-public class FeatureReferenceAdapter extends FeatureAdapter {

-	private IFeatureReference featureRef;

-	private boolean touched;

-

-	public FeatureReferenceAdapter(IFeatureReference featureRef) {

-		this.featureRef = featureRef;

-		setIncluded(featureRef instanceof IIncludedFeatureReference);

-	}

-	

-	public IFeature getFeature(IProgressMonitor monitor) throws CoreException {

-		return featureRef.getFeature(monitor);

-	}

-	

-	public String getFastLabel() {

-		return featureRef.getURL().toString();

-	}

-	

-	public ISite getSite() {

-		return featureRef.getSite();

-	}

-	

-	public URL getURL() {

-		return featureRef.getURL();

-	}

-	

-	public boolean isOptional() {

-		return featureRef instanceof IIncludedFeatureReference ? 

-			((IIncludedFeatureReference)featureRef).isOptional():false;

-	}

-	

-	public void touchIncludedFeatures(IRunnableContext context) {

-		if (touched) return;

-		final IFeatureReference [] included;

-		

-		try {

-			included = 	getFeature(null).getIncludedFeatureReferences();

-		}

-		catch (CoreException e) {

-			return;

-		}

-		if (included.length == 0) return;

-		IRunnableWithProgress op = new IRunnableWithProgress () {

-			public void run(IProgressMonitor monitor) {

-				monitor.beginTask(UpdateUI.getString("SiteBookmark.downloading"), included.length); //$NON-NLS-1$

-				for (int i=0; i<included.length; i++) {

-					IFeatureReference ref = included[i];

-					try {

-						monitor.subTask(ref.getURL().toString());

-						ref.getFeature(new SubProgressMonitor(monitor, 1));

-						//monitor.worked(1);

-					}

-					catch (CoreException e) {

-					}

-				}

-				monitor.done();

-			}

-		};

-		try {

-			context.run(true, false, op);

-			touched=true;

-		}

-		catch (InvocationTargetException e) {

-		}

-		catch (InterruptedException e) {

-		}

-	}

-

-	public IFeatureAdapter[] getIncludedFeatures(IProgressMonitor monitor) {

-		try {

-			IFeatureReference[] included =

-				getFeature(monitor).getIncludedFeatureReferences();

-			FeatureReferenceAdapter[] result =

-				new FeatureReferenceAdapter[included.length];

-			for (int i = 0; i < included.length; i++) {

-				result[i] = new FeatureReferenceAdapter(included[i]);

-			}

-			return result;

-		} catch (CoreException e) {

-			return new IFeatureAdapter[0];

-		}

-	}

-

-	public IFeatureReference getFeatureReference() {

-		return featureRef;

-	}

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredFeatureAdapter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredFeatureAdapter.java
deleted file mode 100644
index 6b9743d..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredFeatureAdapter.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.ui.model;

-

-

-/**

- * @version 	1.0

- * @author

- */

-public interface IConfiguredFeatureAdapter extends IFeatureAdapter, IConfiguredSiteContext {

-	public boolean isConfigured();

-	public boolean isUpdated();

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredSiteAdapter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredSiteAdapter.java
deleted file mode 100644
index 85e270d..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredSiteAdapter.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.model;
-
-
-/**
- * @version 	1.0
- * @author
- */
-public interface IConfiguredSiteAdapter extends IConfiguredSiteContext {
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredSiteContext.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredSiteContext.java
deleted file mode 100644
index c7e278b..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredSiteContext.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.model;
-
-import org.eclipse.update.configuration.*;
-
-/**
- * @version 	1.0
- * @author
- */
-public interface IConfiguredSiteContext {
-	public IInstallConfiguration getInstallConfiguration();
-	public IConfiguredSite getConfiguredSite();
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IFeatureAdapter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IFeatureAdapter.java
deleted file mode 100644
index 0206b50..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IFeatureAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.ui.model;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * @version 	1.0

- * @author

- */

-public interface IFeatureAdapter {

-	public URL getURL();

-	public ISite getSite();

-	public IFeature getFeature(IProgressMonitor monitor) throws CoreException;

-	public IFeatureAdapter [] getIncludedFeatures(IProgressMonitor monitor);

-	public boolean hasIncludedFeatures(IProgressMonitor monitor);

-	public boolean isIncluded();

-	public boolean isOptional();

-	public String getFastLabel();

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ISiteAdapter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ISiteAdapter.java
deleted file mode 100644
index 6f58554..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ISiteAdapter.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.ui.model;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-public interface ISiteAdapter {

-	

-	public String getLabel();

-	public URL getURL();

-	public ISite getSite(IProgressMonitor monitor);

-

-}

-

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/MissingFeature.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/MissingFeature.java
deleted file mode 100644
index 8f7719d..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/MissingFeature.java
+++ /dev/null
@@ -1,456 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.ui.model;

-

-import java.io.*;

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.core.model.*;

-import org.eclipse.update.internal.ui.*;

-

-public class MissingFeature implements IFeature {

-

-	private URL url;

-	private ISite site;

-	private IFeatureReference reference;

-	private IFeature parent;

-	private IURLEntry desc;

-	private VersionedIdentifier id = new VersionedIdentifier(UpdateUI.getString("MissingFeature.id"), "0.0.0"); //$NON-NLS-1$ //$NON-NLS-2$

-	public MissingFeature(ISite site, URL url) {

-		this.site = site;

-		this.url = url;

-		desc = new IURLEntry() {

-			public URL getURL() {

-				return null;

-			}

-			public String getAnnotation() {

-				return UpdateUI.getString("MissingFeature.desc.unknown"); //$NON-NLS-1$

-			}

-			public Object getAdapter(Class key) {

-				return null;

-			}

-			public int getType() {

-				return IURLEntry.UPDATE_SITE;

-			}

-		};

-	}

-	public MissingFeature(IFeatureReference ref) {

-		this(null, ref);

-	}

-

-	public MissingFeature(IFeature parent, IFeatureReference ref) {

-		this(ref.getSite(), ref.getURL());

-		this.reference = ref;

-		this.parent = parent;

-

-		if (isOptional()) {

-			desc = new IURLEntry() {

-				public URL getURL() {

-					return null;

-				}

-				public String getAnnotation() {

-					return UpdateUI.getString("MissingFeature.desc.optional"); //$NON-NLS-1$

-				}

-				public Object getAdapter(Class key) {

-					return null;

-				}

-				public int getType() {

-					return IURLEntry.UPDATE_SITE;

-				}

-			};

-		}

-	}

-

-	public boolean isOptional() {

-		return reference != null

-			&& reference instanceof IIncludedFeatureReference

-			&& ((IIncludedFeatureReference) reference).isOptional();

-	}

-

-	public IFeature getParent() {

-		return parent;

-	}

-

-	public URL getOriginatingSiteURL() {

-		VersionedIdentifier vid = getVersionedIdentifier();

-		if (vid == null)

-			return null;

-		String key = vid.getIdentifier();

-		return UpdateUI.getOriginatingURL(key);

-	}

-

-	/*

-	 * @see IFeature#getIdentifier()

-	 */

-	public VersionedIdentifier getVersionedIdentifier() {

-		if (reference != null) {

-			try {

-				return reference.getVersionedIdentifier();

-			} catch (CoreException e) {

-			}

-		}

-		return id;

-	}

-

-	/*

-	 * @see IFeature#getSite()

-	 */

-	public ISite getSite() {

-		return site;

-	}

-

-	/*

-	 * @see IFeature#getLabel()

-	 */

-	public String getLabel() {

-		if (reference != null

-			&& reference instanceof IIncludedFeatureReference) {

-			String name = ((IIncludedFeatureReference) reference).getName();

-			if (name != null)

-				return name;

-		}

-		return url.toString();

-	}

-

-	/*

-	 * @see IFeature#getURL()

-	 */

-	public URL getURL() {

-		return url;

-	}

-

-	/*

-	 * @see IFeature#getUpdateInfo()

-	 */

-	public IURLEntry getUpdateSiteEntry() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getDiscoveryInfos()

-	 */

-	public IURLEntry[] getDiscoverySiteEntries() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getProvider()

-	 */

-	public String getProvider() {

-		return UpdateUI.getString("MissingFeature.provider"); //$NON-NLS-1$

-	}

-

-	/*

-	 * @see IFeature#getDescription()

-	 */

-	public IURLEntry getDescription() {

-		return desc;

-	}

-

-	/*

-	 * @see IFeature#getCopyright()

-	 */

-	public IURLEntry getCopyright() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getLicense()

-	 */

-	public IURLEntry getLicense() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getOS()

-	 */

-	public String getOS() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getWS()

-	 */

-	public String getWS() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getNL()

-	 */

-	public String getNL() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getArch()

-	 */

-	public String getOSArch() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getImage()

-	 */

-	public URL getImage() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getImports()

-	 */

-	public IImport[] getImports() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getArchives()

-	 */

-	public String[] getArchives() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#getDataEntries()

-	 */

-	public INonPluginEntry[] getNonPluginEntries() {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#addDataEntry(IDataEntry)

-	 */

-	public void addNonPluginEntry(INonPluginEntry dataEntry) {

-	}

-

-	/*

-	 * @see IFeature#getDownloadSize()

-	 */

-	public long getDownloadSize() {

-		return 0;

-	}

-

-	/*

-	 * @see IFeature#getInstallSize(ISite)

-	 */

-	public long getInstallSize() {

-		return 0;

-	}

-

-	/*

-	 * @see IFeature#isPrimary()

-	 */

-	public boolean isPrimary() {

-		return false;

-	}

-

-	/*

-	 * @see IFeature#getApplication()

-	 */

-	public String getApplication() {

-		return null;

-	}

-

-	/*

-	 * @see IPluginContainer#getPluginEntries()

-	 */

-	public IPluginEntry[] getPluginEntries() {

-		return new IPluginEntry[0];

-	}

-

-	/*

-	 * @see IPluginContainer#getPluginEntryCount()

-	 */

-	public int getPluginEntryCount() {

-		return 0;

-	}

-

-	/*

-	 * @see IPluginContainer#getDownloadSize(IPluginEntry)

-	 */

-	public long getDownloadSize(IPluginEntry entry) {

-		return 0;

-	}

-

-	/*

-	 * @see IPluginContainer#getInstallSize(IPluginEntry)

-	 */

-	public long getInstallSize(IPluginEntry entry) {

-		return 0;

-	}

-

-	/*

-	 * @see IPluginContainer#addPluginEntry(IPluginEntry)

-	 */

-	public void addPluginEntry(IPluginEntry pluginEntry) {

-	}

-

-	/*

-	 * @see IPluginContainer#store(IPluginEntry, String, InputStream)

-	 */

-	public void store(IPluginEntry entry, String name, InputStream inStream)

-		throws CoreException {

-	}

-

-	/*

-	 * @see IAdaptable#getAdapter(Class)

-	 */

-	public Object getAdapter(Class adapter) {

-		return null;

-	}

-

-	/*

-	 * @see IPluginContainer#remove(IPluginEntry)

-	 */

-	public void remove(IPluginEntry entry) throws CoreException {

-	}

-

-	/*

-	 * @see IFeature#setFeatureContentProvider(IFeatureContentProvider)

-	 */

-	public void setFeatureContentProvider(IFeatureContentProvider featureContentProvider) {

-	}

-

-	/*

-	 * @see IFeature#getFeatureContentConsumer()

-	 */

-	public IFeatureContentConsumer getFeatureContentConsumer()

-		throws CoreException {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#setSite(ISite)

-	 */

-	public void setSite(ISite site) throws CoreException {

-		this.site = site;

-	}

-

-	/*

-	 * @see IFeature#getFeatureContentProvider()

-	 */

-	public IFeatureContentProvider getFeatureContentProvider()

-		throws CoreException {

-		return null;

-	}

-

-	/*

-	 * @see IFeature#install(IFeature,IVerifier, IProgressMonitor)

-	 */

-	public IFeatureReference install(

-		IFeature targetFeature,

-		IVerificationListener verificationListener,

-		IProgressMonitor monitor)

-		throws CoreException {

-		return null;

-	}

-

-	/*

-	 * @see org.eclipse.update.core.IFeature#install(IFeature, IFeatureReference[], IVerificationListener, IProgressMonitor)

-	 */

-	public IFeatureReference install(

-		IFeature targetFeature,

-		IFeatureReference[] optionalFeatures,

-		IVerificationListener verificationListener,

-		IProgressMonitor monitor)

-		throws InstallAbortedException, CoreException {

-		return null;

-	}

-	/*

-	 * @see IFeature#remove(IProgressMonitor)

-	 */

-	public void remove(IProgressMonitor monitor) throws CoreException {

-	}

-

-	/*

-	 * @see IPluginContainer#remove(IPluginEntry, IProgressMonitor)

-	 */

-	public void remove(IPluginEntry entry, IProgressMonitor monitor)

-		throws CoreException {

-	}

-

-	/*

-	 * @see IFeature#getNonPluginEntryCount()

-	 */

-	public int getNonPluginEntryCount() {

-		return 0;

-	}

-

-	/*

-	 * @see IFeature#getInstallHandlerEntry()

-	 */

-	public IInstallHandlerEntry getInstallHandlerEntry() {

-		return null;

-	}

-	/*

-	 * @see IFeature#getIncludedFeatureReferences()

-	 */

-	public IIncludedFeatureReference[] getIncludedFeatureReferences()

-		throws CoreException {

-		return new IIncludedFeatureReference[0];

-	}

-

-	/**

-	 * @see IFeature#getAffinityFeature()

-	 */

-	public String getAffinityFeature() {

-		return null;

-	}

-	/**

-	 * @see org.eclipse.update.core.IFeature#getRawIncludedFeatureReferences()

-	 */

-	public IIncludedFeatureReference[] getRawIncludedFeatureReferences()

-		throws CoreException {

-		return getIncludedFeatureReferences();

-	}

-

-	/**

-	 * @see org.eclipse.update.core.IFeature#getRawNonPluginEntries()

-	 */

-	public INonPluginEntry[] getRawNonPluginEntries() {

-		return getNonPluginEntries();

-	}

-

-	/**

-	 * @see org.eclipse.update.core.IFeature#getRawPluginEntries()

-	 */

-	public IPluginEntry[] getRawPluginEntries() {

-		return getPluginEntries();

-	}

-

-	/**

-	 * @see org.eclipse.update.core.IFeature#getPrimaryPluginID()

-	 */

-	public String getPrimaryPluginID() {

-		return null;

-	}

-

-	/**

-	 * @see org.eclipse.update.core.IFeature#getRawImports()

-	 */

-	public IImport[] getRawImports() {

-		return new IImport[0];

-	}

-

-	/**

-	 * @see org.eclipse.update.core.IFeature#isPatch()

-	 */

-	public boolean isPatch() {

-		return false;

-	}

-	

-	public boolean isExclusive() {

-		return false;

-	}

-

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/NamedModelObject.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/NamedModelObject.java
deleted file mode 100644
index 5199c42..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/NamedModelObject.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.model;
-
-import java.io.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.resource.*;
-import org.eclipse.ui.model.*;
-
-public class NamedModelObject extends UIModelObject 
-							implements IWorkbenchAdapter, Serializable  {
-
-    private static final long serialVersionUID = 1L;
-    private String name;
-	transient private NamedModelObject parent;
-	
-	public static final String P_NAME="p_name"; //$NON-NLS-1$
-	
-	public NamedModelObject() {
-	}
-	
-	public NamedModelObject(String name) {
-		this.name = name;
-	}
-	
-	public Object getAdapter(Class adapter) {
-		if (adapter.equals(IWorkbenchAdapter.class)) {
-			return this;
-		}
-		return super.getAdapter(adapter);
-	}
-	
-	public String getName() {
-		return name;
-	}
-	
-	public IPath getPath() {
-		Object parent = getParent(null);
-		if (parent!=null && parent instanceof NamedModelObject)
-			return ((NamedModelObject)parent).getPath().append(getName());
-		else
-			return new Path(getName());
-	}
-	
-	public String toString() {
-		return getName();
-	}
-	
-	public void setName(String name) {
-		this.name = name;
-		notifyObjectChanged(P_NAME);
-	}
-	
-	/**
-	 * @see IWorkbenchAdapter#getChildren(Object)
-	 */
-	public Object[] getChildren(Object parent) {
-		return null;
-	}
-
-
-	/**
-	 * @see IWorkbenchAdapter#getImageDescriptor(Object)
-	 */
-	public ImageDescriptor getImageDescriptor(Object obj) {
-		return null;
-	}
-
-
-	/**
-	 * @see IWorkbenchAdapter#getLabel(Object)
-	 */
-	public String getLabel(Object obj) {
-		return getName();
-	}
-
-
-	/**
-	 * @see IWorkbenchAdapter#getParent(Object)
-	 */
-	public Object getParent(Object arg0) {
-		return parent;
-	}
-	public void setParent(NamedModelObject parent) {
-		this.parent = parent;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SimpleFeatureAdapter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SimpleFeatureAdapter.java
deleted file mode 100644
index a6a23f4..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SimpleFeatureAdapter.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.ui.model;

-

-import java.net.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-

-/**

- * @version 	1.0

- * @author

- */

-public class SimpleFeatureAdapter extends FeatureAdapter {

-	protected IFeature feature;

-	private boolean optional;

-	public SimpleFeatureAdapter(IFeature feature) {

-		this(feature, false);

-	}

-	public SimpleFeatureAdapter(IFeature feature, boolean optional) {

-		this.feature = feature;

-		this.optional = optional;

-	}

-	

-	public IFeature getFeature(IProgressMonitor monitor) throws CoreException {

-		return feature;

-	}

-	

-	public String getFastLabel() {

-		return feature.getLabel();

-	}

-	

-	public URL getURL() {

-		return feature.getURL();

-	}

-	

-	public ISite getSite() {

-		return feature.getSite();

-	}

-	

-	public IFeatureAdapter[] getIncludedFeatures(IProgressMonitor monitor) {

-		try {

-			IIncludedFeatureReference[] included = getFeature(monitor).getIncludedFeatureReferences();

-			SimpleFeatureAdapter[] result =

-				new SimpleFeatureAdapter[included.length];

-			for (int i = 0; i < included.length; i++) {

-				result[i] =

-					new SimpleFeatureAdapter(included[i].getFeature(null), included[i].isOptional());

-				result[i].setIncluded(true);

-			}

-			return result;

-		} catch (CoreException e) {

-			return new IFeatureAdapter[0];

-		}

-	}

-	public boolean isOptional() {

-		return optional;

-	}

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SiteBookmark.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SiteBookmark.java
deleted file mode 100644
index 9c3b752..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SiteBookmark.java
+++ /dev/null
@@ -1,298 +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 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.update.internal.ui.model;

-

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.ui.*;

-

-public class SiteBookmark extends NamedModelObject 

-							implements ISiteAdapter {

-

-    private static final long serialVersionUID = 1L;

-    public static final String P_URL="p_url"; //$NON-NLS-1$

-	public static final String P_TYPE="p_type"; //$NON-NLS-1$

-	

-	private URL url;

-	transient private ISite site;

-	transient private Vector catalog;

-	transient private SiteCategory otherCategory;

-	private boolean webBookmark;

-	private boolean selected;

-	private String [] ignoredCategories = new String[0];

-	private boolean readOnly = false;

-	private boolean local = false;

-	private boolean unavailable = false;

-	private String description;

-

-	public SiteBookmark() {

-	}

-	

-	public SiteBookmark(String name, URL url, boolean webBookmark) {

-		this(name, url, webBookmark, false);

-	}

-	

-	public SiteBookmark(String name, URL url, boolean webBookmark, boolean selected) {

-		super(name);

-		this.url = url;

-		this.webBookmark = webBookmark;

-		this.selected = selected;

-	}

-

-	public boolean equals(Object obj) {

-        if (obj == this)

-            return true;

-        if (!(obj instanceof SiteBookmark))

-            return false;

-        SiteBookmark b = (SiteBookmark)obj;

-        if (url == null)

-            return false;

-        return url.equals(b.url);

-    }

-

-    public int hashCode() {

-        if (url == null)

-            return super.hashCode();

-        else

-            return url.hashCode();

-    }

-

-    public void setSelected(boolean selected) {

-		this.selected = selected;

-	}

-	

-	public boolean isSelected() {

-		return selected;

-	}

-	

-	public String [] getIgnoredCategories() {

-		return ignoredCategories;

-	}

-	

-	public void setIgnoredCategories(String [] categories) {

-		this.ignoredCategories = categories;

-	}

-	

-	public void setWebBookmark(boolean value) {

-		if (isLocal()) return;

-		this.webBookmark = value;

-		notifyObjectChanged(P_TYPE);

-	}

-	

-	public boolean isWebBookmark() {

-		return webBookmark;

-	}

-	

-	public URL getURL() {

-		return url;

-	}

-

-

-	public void setURL(URL url) {

-		this.url = url;

-		site = null;

-		notifyObjectChanged(P_URL);

-	}

-	

-	public ISite getSite(IProgressMonitor monitor) {

-		return getSite(true, monitor);

-	}

-	

-	public ISite getSite(boolean showDialogIfFailed, IProgressMonitor monitor) {

-		if (site==null) {

-			try {

-				connect(monitor);

-			}

-			catch (CoreException e) {

-				UpdateUI.logException(e, showDialogIfFailed);

-			}

-		}

-		return site;

-	}

-	

-	public boolean isSiteConnected() {

-		return site!=null;

-	}

-	

-	public void connect(IProgressMonitor monitor) throws CoreException {

-		connect(true, monitor);

-	}

-	

-	public void connect(boolean useCache, IProgressMonitor monitor) throws CoreException {

-		try {

-			if (monitor==null) monitor = new NullProgressMonitor();

-			monitor.beginTask("", 2); //$NON-NLS-1$

-			monitor.subTask(UpdateUI.getFormattedMessage("SiteBookmark.connecting", url.toString())); //$NON-NLS-1$

-			site = SiteManager.getSite(url, useCache, new SubProgressMonitor(monitor, 1));

-			if (site!=null) {

-				createCatalog(new SubProgressMonitor(monitor, 1));

-				unavailable = false;

-			} else {

-				catalog = new Vector();

-				unavailable = true;

-			}

-		} catch (CoreException e) {

-			unavailable = true;

-			throw e;

-		}

-	}

-	

-	public boolean isUnavailable() {

-		return unavailable;

-	}

-	

-	public void setUnavailable(boolean value) {

-		unavailable = value;

-	}

-	

-	private void createCatalog(IProgressMonitor monitor) {

-		catalog = new Vector();

-		otherCategory = new SiteCategory(this, null, null);

-		// Add all the categories

-		ICategory [] categories = site.getCategories();

-		

-		ISiteFeatureReference [] featureRefs;

-		featureRefs = site.getRawFeatureReferences();

-		

-		monitor.beginTask("", featureRefs.length + categories.length); //$NON-NLS-1$

-

-		for (int i=0; i<categories.length; i++) {

-			ICategory category = categories[i];

-			addCategoryToCatalog(category);

-			monitor.worked(1);

-		}

-		// Add features to categories

-

-		for (int i=0; i<featureRefs.length; i++) {

-			ISiteFeatureReference featureRef = featureRefs[i];

-			addFeatureToCatalog(featureRef);

-			monitor.worked(1);

-		}

-		if (otherCategory.getChildCount()>0)

-		   catalog.add(otherCategory);

-		

-		// set the site description

-		IURLEntry descURL = site.getDescription();

-		if (descURL != null)

-			description = descURL.getAnnotation();

-	}

-

-	public Object [] getCatalog(boolean withCategories, IProgressMonitor monitor) {

-		if (withCategories)

-			return catalog.toArray();

-		else {

-			// Make a flat catalog

-			Vector flatCatalog = new Vector();

-			for (int i=0; i<catalog.size(); i++) {

-				SiteCategory category = (SiteCategory)catalog.get(i);

-				category.addFeaturesTo(flatCatalog);

-			}

-			return flatCatalog.toArray();

-		}

-	}

-	

-	private void addCategoryToCatalog(ICategory category) {

-		String name = category.getName();

-		int loc = name.indexOf('/');

-		if (loc == -1) {

-			// first level

-			catalog.add(new SiteCategory(this, name, category));

-		}

-		else {

-			IPath path = new Path(name);

-			name = path.lastSegment().toString();

-			path = path.removeLastSegments(1);

-			SiteCategory parentCategory = findCategory(path, catalog.toArray());

-			if (parentCategory!=null) {

-				parentCategory.add(new SiteCategory(this, name, category));

-			}

-		}

-	}

-	private void addFeatureToCatalog(ISiteFeatureReference feature) {

-		ICategory [] categories = feature.getCategories();

-		boolean orphan = true;

-

-		for (int i=0; i<categories.length; i++) {

-			ICategory category = categories[i];

-			String name = category.getName();

-			IPath path = new Path(name);

-			SiteCategory parentCategory = findCategory(path, catalog.toArray());

-			if (parentCategory!=null) {

-		   		parentCategory.add(new FeatureReferenceAdapter(feature));

-		   		orphan = false;

-			}

-		}

-		if (orphan)

-			otherCategory.add(new FeatureReferenceAdapter(feature));

-	}

-	

-	private SiteCategory findCategory(IPath path, Object [] children) {

-		for (int i=0; i<children.length; i++) {

-			Object child = children[i];

-			if (child instanceof SiteCategory) {

-				SiteCategory sc = (SiteCategory)child;

-				if (sc.getName().equals(path.segment(0))) {

-				   if (path.segmentCount()==1) return sc;

-					else {

-						path = path.removeFirstSegments(1);

-						return findCategory(path, sc.getChildren());

-					}

-				}

-			}

-		}

-		return null;

-	}

-	

-	/**

-	 * @see ISiteAdapter#getLabel()

-	 */

-	public String getLabel() {

-		return getName();

-	}

-	

-	public void setReadOnly(boolean readOnly) {

-		this.readOnly = readOnly;

-	}

-	

-	public boolean isReadOnly() {

-		return readOnly;

-	}

-	

-	public void setLocal(boolean local) {

-		this.local = local;

-	}

-	

-	public boolean isLocal() {

-		return local;

-	}

-

-	/**

-	 * @param description The description to set.

-	 */

-	public void setDescription(String description) {

-		this.description = description;

-	}

-

-	/**

-	 * @return Returns the description.

-	 */

-	public String getDescription() {

-		if (description == null && isSiteConnected()) {

-			IURLEntry descURL = site.getDescription();

-			if (descURL != null)

-				description = descURL.getAnnotation();

-		}

-		return description;

-	}

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SiteCategory.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SiteCategory.java
deleted file mode 100644
index e3250aa..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SiteCategory.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.ui.model;

-import java.lang.reflect.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.jface.operation.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.ui.*;

-

-public class SiteCategory extends UIModelObject {

-

-	Vector children;

-	private ICategory category;

-	private String name;

-	private boolean touched;

-	private int featureCount;

-	private boolean canceled;

-	private SiteBookmark bookmark;

-

-	class OtherCategory implements ICategory {

-		IURLEntry entry;

-		public OtherCategory() {

-			entry = new IURLEntry() {

-				public String getAnnotation() {

-					return UpdateUI.getString("SiteCategory.other.description"); //$NON-NLS-1$

-				}

-				public URL getURL() {

-					return null;

-				}

-				public Object getAdapter(Class clazz) {

-					return null;

-				}

-				public int getType() {

-					return IURLEntry.UPDATE_SITE;

-				}

-			};

-		}

-		public String getName() {

-			return SiteCategory.this.getName();

-		}

-		public String getLabel() {

-			return SiteCategory.this.getName();

-		}

-		public IURLEntry getDescription() {

-			return entry;

-		}

-		public Object getAdapter(Class clazz) {

-			return null;

-		}

-	}

-

-	public SiteCategory(SiteBookmark bookmark, String name, ICategory category) {

-		this.bookmark = bookmark;

-		if (category == null) {

-			this.name = UpdateUI.getString("SiteCategory.other.label"); //$NON-NLS-1$

-			this.category = new OtherCategory();

-		} else {

-			this.name = name;

-			this.category = category;

-		}

-		children = new Vector();

-	}

-	

-	public SiteBookmark getBookmark() {

-		return bookmark;

-	}

-

-	public boolean isOtherCategory() {

-		return category instanceof OtherCategory;

-	}

-

-	public Object[] getChildren() {

-		return canceled ? new Object[0] : children.toArray();

-	}

-

-	public int getChildCount() {

-		return canceled ? 0 : children.size();

-	}

-

-	public String getName() {

-		return name;

-	}

-	public String getFullName() {

-		return category.getName();

-	}

-

-	public String toString() {

-		return category.getLabel();

-	}

-

-	public ICategory getCategory() {

-		return category;

-	}

-

-	void add(Object child) {

-		if (child instanceof IFeatureAdapter)

-			featureCount++;

-		children.add(child);

-	}

-

-	public void touchFeatures(IRunnableContext context) {

-		if (children.size() == 0 || touched || featureCount == 0)

-			return;

-

-		IRunnableWithProgress op = new IRunnableWithProgress() {

-			public void run(IProgressMonitor monitor) {

-				monitor.beginTask(

-					UpdateUI.getString("SiteBookmark.downloading"), //$NON-NLS-1$

-					featureCount);

-				for (int i = 0; i < children.size(); i++) {

-					Object child = children.get(i);

-					if (monitor.isCanceled())

-						break;

-					if (child instanceof IFeatureAdapter) {

-						IFeatureAdapter adapter = (IFeatureAdapter) child;

-						monitor.subTask(adapter.getFastLabel());

-						try {

-							adapter.getFeature(

-								new SubProgressMonitor(monitor, 1));

-						} catch (CoreException e) {

-						}

-					}

-				}

-				monitor.done();

-			}

-		};

-

-		try {

-			context.run(true, true, op);

-			touched = true;

-		} catch (InterruptedException e) {

-			canceled = true;

-		} catch (InvocationTargetException e) {

-		}

-	}

-

-	public void addFeaturesTo(Vector flatList) {

-		for (int i = 0; i < children.size(); i++) {

-			Object child = children.get(i);

-			if (child instanceof FeatureReferenceAdapter) {

-				FeatureReferenceAdapter cfeature =

-					(FeatureReferenceAdapter) child;

-				// Don't add duplicates - there may be the same

-				// feature present in several categories

-				if (findFeature(flatList, cfeature.getFeatureReference())

-					== null) {

-					flatList.add(child);

-				}

-			} else if (child instanceof SiteCategory) {

-				((SiteCategory) child).addFeaturesTo(flatList);

-			}

-		}

-	}

-

-	private FeatureReferenceAdapter findFeature(

-		Vector flatList,

-		IFeatureReference featureRef) {

-		for (int i = 0; i < flatList.size(); i++) {

-			FeatureReferenceAdapter cfeature =

-				(FeatureReferenceAdapter) flatList.get(i);

-			if (cfeature.getFeatureReference().equals(featureRef))

-				return cfeature;

-		}

-		return null;

-	}

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/UIModelObject.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/UIModelObject.java
deleted file mode 100644
index 6684dbf..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/UIModelObject.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.model;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.resource.*;
-import org.eclipse.ui.model.*;
-
-
-public class UIModelObject extends PlatformObject implements IWorkbenchAdapter {
-	UpdateModel model;
-	
-	public void setModel(UpdateModel model) {
-		this.model = model;
-	}
-	
-	public UpdateModel getModel() {
-		return model;
-	}
-	
-	protected void notifyObjectChanged(String property) {
-		if (model==null) return;
-		model.fireObjectChanged(this, property);
-	}
-	
-	protected void notifyObjectsAdded(Object parent, Object [] objects) {
-		if (model==null) return;
-		model.fireObjectsAdded(parent, objects);
-	}
-	
-	protected void notifyObjectsRemoved(Object parent, Object [] objects) {
-		if (model==null) return;
-		model.fireObjectsRemoved(parent, objects);
-	}
-	
-	public Object [] getChildren(Object obj) {
-		return new Object[0];
-	}
-	
-	public Object getParent(Object obj) {
-		return null;
-	}
-	public String getLabel(Object obj) {
-		return toString();
-	}
-	public ImageDescriptor getImageDescriptor(Object obj) {
-		return null;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/UpdateModel.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/UpdateModel.java
deleted file mode 100644
index 4f71448..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/UpdateModel.java
+++ /dev/null
@@ -1,121 +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 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.update.internal.ui.model;

-

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.configurator.*;

-import org.eclipse.update.internal.ui.*;

-import org.eclipse.update.operations.*;

-

-public class UpdateModel implements IAdaptable {

-	private Vector bookmarks = new Vector();

-	private Vector listeners = new Vector();

-	private static final String BOOKMARK_FILE = "bookmarks.xml"; //$NON-NLS-1$

-	

-	public UpdateModel() {

-		reset();

-	}

-	

-	public void reset() {

-		// load bookmarks

-		bookmarks.clear();

-		BookmarkUtil.parse(getBookmarksFileName(), bookmarks);

-	}

-	

-	private String getBookmarksFileName() {

-		URL platformXML = ConfiguratorUtils.getCurrentPlatformConfiguration().getConfigurationLocation();

-		if (!"file".equals(platformXML.getProtocol())) {

-			IPath path = UpdateUI.getDefault().getStateLocation();

-			path = path.append(BOOKMARK_FILE);

-			return path.toOSString();

-		} else {

-			File f = new File(platformXML.getFile());

-			f = new File(f.getParentFile(), BOOKMARK_FILE);

-			return f.getAbsolutePath();

-		}

-	}

-	

-	public void shutdown() {

-		saveBookmarks();

-	}

-	

-	public void saveBookmarks() {

-		BookmarkUtil.store(getBookmarksFileName(), bookmarks);

-	}

-	

-	

-	public void addBookmark(NamedModelObject bookmark) {

-		bookmarks.add(bookmark);

-		bookmark.setModel(this);

-		fireObjectsAdded(null, new Object []{bookmark});

-	}

-	

-	public void removeBookmark(NamedModelObject bookmark) {

-		bookmarks.remove(bookmark);

-		bookmark.setModel(null);

-		fireObjectsRemoved(null, new Object []{bookmark});

-	}

-	

-	public NamedModelObject [] getBookmarks() {

-		return (NamedModelObject[])bookmarks.toArray(new NamedModelObject[bookmarks.size()]);

-	}

-	

-	public SiteBookmark [] getBookmarkLeafs() {

-		return BookmarkUtil.getBookmarks(bookmarks);

-	}

-	

-	public BookmarkFolder getFolder(IPath path) {

-		return BookmarkUtil.getFolder(bookmarks, path);

-	}

-	

-	public void addUpdateModelChangedListener(IUpdateModelChangedListener listener) {

-		if (!listeners.contains(listener)) 

-		   listeners.add(listener);

-	}

-

-

-	public void removeUpdateModelChangedListener(IUpdateModelChangedListener listener) {

-		if (listeners.contains(listener))

-			listeners.remove(listener);

-	}

-	

-	public void fireObjectsAdded(Object parent, Object [] children) {

-		for (Iterator iter=listeners.iterator();

-				iter.hasNext();) {

-			IUpdateModelChangedListener listener = (IUpdateModelChangedListener)iter.next();

-			listener.objectsAdded(parent, children);

-		}

-	}

-

-

-	public void fireObjectsRemoved(Object parent, Object [] children) {

-		for (Iterator iter=listeners.iterator();

-				iter.hasNext();) {

-			IUpdateModelChangedListener listener = (IUpdateModelChangedListener)iter.next();

-			listener.objectsRemoved(parent, children);

-		}

-	}

-	

-	public void fireObjectChanged(Object object, String property) {

-		for (Iterator iter=listeners.iterator();

-			iter.hasNext();) {

-			IUpdateModelChangedListener listener = (IUpdateModelChangedListener)iter.next();

-			listener.objectChanged(object, property);

-		}

-	}

-	public Object getAdapter(Class key) {

-		return null;

-	}

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/AbstractOverlayIcon.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/AbstractOverlayIcon.java
deleted file mode 100644
index 80cbdf3..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/AbstractOverlayIcon.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.parts;
-
-import org.eclipse.jface.resource.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * An OverlayIcon consists of a main icon and several adornments.
- */
-public abstract class AbstractOverlayIcon extends CompositeImageDescriptor {
-
-	static final int DEFAULT_WIDTH = 16;
-	static final int DEFAULT_HEIGHT = 16;
-
-	private Point fSize = null;
-
-	private ImageDescriptor fOverlays[][];
-
-	public AbstractOverlayIcon(ImageDescriptor[][] overlays) {
-		this(overlays, null);
-	}
-
-	public AbstractOverlayIcon(ImageDescriptor[][] overlays, Point size) {
-		fOverlays = overlays;
-		if (size != null)
-			fSize = size;
-		else
-			fSize = new Point(DEFAULT_WIDTH, DEFAULT_HEIGHT);
-	}
-	protected void drawBottomLeft(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = 0;
-		for (int i = 0; i < 3; i++) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				drawImage(id, x, getSize().y - id.height);
-				x += id.width;
-			}
-		}
-	}
-	protected void drawBottomRight(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = getSize().x;
-		for (int i = 2; i >= 0; i--) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				x -= id.width;
-				drawImage(id, x, getSize().y - id.height);
-			}
-		}
-	}
-
-	protected abstract ImageData getBaseImageData();
-
-	protected void drawCompositeImage(int width, int height) {
-		ImageData base = getBaseImageData();
-		drawImage(base, 0, 0);
-		if (fOverlays != null) {
-			if (fOverlays.length > 0)
-				drawTopRight(fOverlays[0]);
-
-			if (fOverlays.length > 1)
-				drawBottomRight(fOverlays[1]);
-
-			if (fOverlays.length > 2)
-				drawBottomLeft(fOverlays[2]);
-
-			if (fOverlays.length > 3)
-				drawTopLeft(fOverlays[3]);
-		}
-	}
-	protected void drawTopLeft(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = 0;
-		for (int i = 0; i < 3; i++) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				drawImage(id, x, 0);
-				x += id.width;
-			}
-		}
-	}
-	protected void drawTopRight(ImageDescriptor[] overlays) {
-		if (overlays == null)
-			return;
-		int length = overlays.length;
-		int x = getSize().x;
-		for (int i = 2; i >= 0; i--) {
-			if (i < length && overlays[i] != null) {
-				ImageData id = overlays[i].getImageData();
-				x -= id.width;
-				drawImage(id, x, 0);
-			}
-		}
-	}
-
-	protected Point getSize() {
-		return fSize;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/DefaultContentProvider.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/DefaultContentProvider.java
deleted file mode 100644
index 5a67a7b..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/DefaultContentProvider.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.ui.parts;

-

-import org.eclipse.jface.viewers.*;

-

-public class DefaultContentProvider implements IContentProvider {

-

-public DefaultContentProvider() {

-	super();

-}

-public void dispose() {}

-public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/ImageOverlayIcon.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/ImageOverlayIcon.java
deleted file mode 100644
index 794b977..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/ImageOverlayIcon.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.parts;
-
-import org.eclipse.jface.resource.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * An OverlayIcon consists of a main icon and several adornments.
- */
-public class ImageOverlayIcon extends AbstractOverlayIcon {
-	private Image base;
-
-	public ImageOverlayIcon(Image base, ImageDescriptor[][] overlays) {
-		this(base, overlays, null);
-	}
-	
-	public ImageOverlayIcon(Image base, ImageDescriptor[][] overlays, Point size) {
-		super(overlays, size);
-		this.base = base;
-	}
-	
-	protected ImageData getBaseImageData() {
-		return base.getImageData();
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/OverlayIcon.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/OverlayIcon.java
deleted file mode 100644
index 8ff4e72..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/OverlayIcon.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 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.update.internal.ui.parts;

-

-import org.eclipse.jface.resource.*;

-import org.eclipse.swt.graphics.*;

-

-/**

- * An OverlayIcon consists of a main icon and several adornments.

- */

-public class OverlayIcon extends CompositeImageDescriptor {

-	

-	static final int DEFAULT_WIDTH= 16;

-	static final int DEFAULT_HEIGHT= 16;

-	

-	private Point fSize= null;

-		

-	private ImageDescriptor fBase;

-	private ImageDescriptor fOverlays[][];

-

-	public OverlayIcon(ImageDescriptor base, ImageDescriptor[][] overlays) {

-		fBase= base;

-		if (fBase == null)

-			fBase= ImageDescriptor.getMissingImageDescriptor();

-		fOverlays= overlays;

-		fSize= new Point(DEFAULT_WIDTH, DEFAULT_HEIGHT);

-	}

-	public OverlayIcon(ImageDescriptor base, ImageDescriptor[][] overlays, Point size) {

-		fBase= base;

-		if (fBase == null)

-			fBase= ImageDescriptor.getMissingImageDescriptor();

-		fOverlays= overlays;

-		fSize= size;

-	}

-	protected void drawBottomLeft(ImageDescriptor[] overlays) {

-		if (overlays == null)

-			return;

-		int length= overlays.length;

-		int x= 0;

-		for (int i= 0; i < 3; i++) {

-			if (i < length && overlays[i] != null) {

-				ImageData id= overlays[i].getImageData();

-				drawImage(id, x, getSize().y-id.height);

-				x+= id.width;

-			}

-		}

-	}

-	protected void drawBottomRight(ImageDescriptor[] overlays) {

-		if (overlays == null)

-			return;

-		int length= overlays.length;

-		int x= getSize().x;

-		for (int i= 2; i >= 0; i--) {

-			if (i < length && overlays[i] != null) {

-				ImageData id= overlays[i].getImageData();

-				x-= id.width;

-				drawImage(id, x, getSize().y-id.height);

-			}

-		}

-	}

-	protected void drawCompositeImage(int width, int height) {

-		ImageData bg= fBase.getImageData();

-		drawImage(bg, 0, 0);

-		

-		if (fOverlays != null) {

-			if (fOverlays.length > 0)

-				drawTopRight( fOverlays[0]);

-				

-			if (fOverlays.length > 1)

-				drawBottomRight(fOverlays[1]);

-				

-			if (fOverlays.length > 2)

-				drawBottomLeft(fOverlays[2]);

-				

-			if (fOverlays.length > 3)

-				drawTopLeft(fOverlays[3]);

-		}	

-	}

-	protected void drawTopLeft(ImageDescriptor[] overlays) {

-		if (overlays == null)

-			return;

-		int length= overlays.length;

-		int x= 0;

-		for (int i= 0; i < 3; i++) {

-			if (i < length && overlays[i] != null) {

-				ImageData id= overlays[i].getImageData();

-				drawImage(id, x, 0);

-				x+= id.width;

-			}

-		}

-	}

-	protected void drawTopRight(ImageDescriptor[] overlays) {

-		if (overlays == null)

-			return;

-		int length= overlays.length;

-		int x= getSize().x;

-		for (int i= 2; i >= 0; i--) {

-			if (i < length && overlays[i] != null) {

-				ImageData id= overlays[i].getImageData();

-				x-= id.width;

-				drawImage(id, x, 0);

-			}

-		}

-	}

-

-	protected Point getSize() {

-		return fSize;

-	}

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/PixelConverter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/PixelConverter.java
deleted file mode 100644
index 9560bde..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/PixelConverter.java
+++ /dev/null
@@ -1,45 +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 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.update.internal.ui.parts;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-public class PixelConverter {
-	
-	private FontMetrics fFontMetrics;
-	
-	public PixelConverter(Control control) {
-		GC gc = new GC(control);
-		gc.setFont(control.getFont());
-		fFontMetrics= gc.getFontMetrics();
-		gc.dispose();
-	}
-	
-	public int convertHeightInCharsToPixels(int chars) {
-		return Dialog.convertHeightInCharsToPixels(fFontMetrics, chars);
-	}
-
-	public int convertHorizontalDLUsToPixels(int dlus) {
-		return Dialog.convertHorizontalDLUsToPixels(fFontMetrics, dlus);
-	}
-
-	public int convertVerticalDLUsToPixels(int dlus) {
-		return Dialog.convertVerticalDLUsToPixels(fFontMetrics, dlus);
-	}
-	
-	public int convertWidthInCharsToPixels(int chars) {
-		return Dialog.convertWidthInCharsToPixels(fFontMetrics, chars);
-	}	
-
-}
-
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/SWTUtil.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/SWTUtil.java
deleted file mode 100644
index 2f3c7dc..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/SWTUtil.java
+++ /dev/null
@@ -1,101 +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 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.update.internal.ui.parts;
-/**
- * @version 	1.0
- * @author
- */
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.*;
-import org.eclipse.jface.util.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * Utility class to simplify access to some SWT resources. 
- */
-public class SWTUtil {
-
-	/**
-	 * Returns the standard display to be used. The method first checks, if
-	 * the thread calling this method has an associated disaply. If so, this
-	 * display is returned. Otherwise the method returns the default display.
-	 */
-	public static Display getStandardDisplay() {
-		Display display;
-		display = Display.getCurrent();
-		if (display == null)
-			display = Display.getDefault();
-		return display;
-	}
-
-	/**
-	 * Returns the shell for the given widget. If the widget doesn't represent
-	 * a SWT object that manage a shell, <code>null</code> is returned.
-	 * 
-	 * @return the shell for the given widget
-	 */
-	public static Shell getShell(Widget widget) {
-		if (widget instanceof Control)
-			return ((Control) widget).getShell();
-		if (widget instanceof Caret)
-			return ((Caret) widget).getParent().getShell();
-		if (widget instanceof DragSource)
-			return ((DragSource) widget).getControl().getShell();
-		if (widget instanceof DropTarget)
-			return ((DropTarget) widget).getControl().getShell();
-		if (widget instanceof Menu)
-			return ((Menu) widget).getParent().getShell();
-		if (widget instanceof ScrollBar)
-			return ((ScrollBar) widget).getParent().getShell();
-
-		return null;
-	}
-
-	/**
-	 * Returns a width hint for a button control.
-	 */
-	public static int getButtonWidthHint(Button button) {
-		if (button.getFont().equals(JFaceResources.getDefaultFont()))
-			button.setFont(JFaceResources.getDialogFont());
-		PixelConverter converter= new PixelConverter(button);
-		int widthHint= converter.convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-	}
-
-	/**
-	 * Sets width and height hint for the button control.
-	 * <b>Note:</b> This is a NOP if the button's layout data is not
-	 * an instance of <code>GridData</code>.
-	 * 
-	 * @param button	the button for which to set the dimension hint
-	 */
-	public static void setButtonDimensionHint(Button button) {
-		Dialog.applyDialogFont(button);
-		Assert.isNotNull(button);
-		Object gd = button.getLayoutData();
-		if (gd instanceof GridData) {
-			((GridData) gd).widthHint = getButtonWidthHint(button);
-		}
-	}
-
-	public static void setDialogSize(Dialog dialog, int width, int height) {
-		Point computedSize =
-			dialog.getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		width = Math.max(computedSize.x, width);
-		height = Math.max(computedSize.y, height);
-		dialog.getShell().setSize(width, height);
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/SharedLabelProvider.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/SharedLabelProvider.java
deleted file mode 100644
index 5c9f955..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/SharedLabelProvider.java
+++ /dev/null
@@ -1,201 +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 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.update.internal.ui.parts;
-
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.jface.resource.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.update.internal.ui.*;
-
-/**
- * @version 	1.0
- * @author
- */
-public class SharedLabelProvider
-	extends LabelProvider
-	implements ITableLabelProvider {
-	public static final int F_ERROR = 1;
-	public static final int F_WARNING = 2;
-	public static final int F_CURRENT = 4;
-	public static final int F_INSTALLABLE = 8;
-	public static final int F_LINKED = 16;
-	public static final int F_MOD = 32;
-	public static final int F_UPDATED = 64;
-	public static final int F_UNCONFIGURED = 128;
-	public static final int F_ADD = 256;
-	public static final int F_DEL = 512;
-
-	Hashtable images = new Hashtable();
-	ArrayList consumers = new ArrayList();
-
-	public SharedLabelProvider() {
-	}
-
-	public void connect(Object consumer) {
-		if (!consumers.contains(consumer))
-			consumers.add(consumer);
-	}
-
-	public void disconnect(Object consumer) {
-		consumers.remove(consumer);
-		if (consumers.size() == 0) {
-			reset();
-		}
-	}
-	
-	public void dispose() {
-		reset();
-		super.dispose();
-	}
-
-	private void reset() {
-		for (Enumeration iterator = images.elements(); iterator.hasMoreElements();) {
-			Image image = (Image) iterator.nextElement();
-			image.dispose();
-		}
-		images.clear();
-	}
-
-	public Image get(ImageDescriptor desc) {
-		return get(desc, 0);
-	}
-
-	public Image get(ImageDescriptor desc, int flags) {
-		Object key = desc;
-
-		if (flags != 0) {
-			key = getKey(desc.hashCode(), flags);
-		}
-		Image image = (Image) images.get(key);
-		if (image == null) {
-			image = createImage(desc, flags);
-			images.put(key, image);
-		}
-		return image;
-	}
-	
-	public Image get(Image image, int flags) {
-		if (flags==0) return image;
-		String key = getKey(image.hashCode(), flags);
-		Image resultImage = (Image)images.get(key);
-		if (resultImage == null) {
-			resultImage = createImage(image, flags);
-			images.put(key, resultImage);
-		}
-		return resultImage;
-	}
-
-	private String getKey(long hashCode, int flags) {
-		return (""+hashCode) + ":"+flags; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private Image createImage(ImageDescriptor baseDesc, int flags) {
-		if (flags == 0) {
-			return baseDesc.createImage();
-		}
-		ImageDescriptor[] lowerLeft = getLowerLeftOverlays(flags);
-		ImageDescriptor[] upperRight = getUpperRightOverlays(flags);
-		ImageDescriptor[] lowerRight = getLowerRightOverlays(flags);
-		ImageDescriptor[] upperLeft = getUpperLeftOverlays(flags);
-		OverlayIcon compDesc =
-			new OverlayIcon(
-				baseDesc,
-				new ImageDescriptor[][] { upperRight, lowerRight, lowerLeft, upperLeft });
-		return compDesc.createImage();
-	}
-	
-	private Image createImage(Image baseImage, int flags) {
-		if (flags == 0) {
-			return baseImage;
-		}
-		ImageDescriptor[] lowerLeft = getLowerLeftOverlays(flags);
-		ImageDescriptor[] upperRight = getUpperRightOverlays(flags);
-		ImageDescriptor[] lowerRight = getLowerRightOverlays(flags);
-		ImageDescriptor[] upperLeft = getUpperLeftOverlays(flags);
-		ImageOverlayIcon compDesc =
-			new ImageOverlayIcon(
-				baseImage,
-				new ImageDescriptor[][] { upperRight, lowerRight, lowerLeft, upperLeft });
-		return compDesc.createImage();
-	}
-
-	private ImageDescriptor[] getLowerLeftOverlays(int flags) {
-		if ((flags & F_ERROR) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_ERROR_CO };
-		if ((flags & F_WARNING) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_WARNING_CO };
-		return null;
-	}
-
-	private ImageDescriptor[] getUpperRightOverlays(int flags) {
-		if ((flags & F_ADD) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_ADD_CO };
-		if ((flags & F_DEL) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_DEL_CO };
-		if ((flags & F_UNCONFIGURED) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_UNCONF_CO };
-		if ((flags & F_LINKED) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_LINKED_CO };
-		return null;
-	}
-	
-	private ImageDescriptor[] getLowerRightOverlays(int flags) {
-		if ((flags & F_CURRENT) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_CURRENT_CO };
-		if ((flags & F_MOD) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_MOD_CO };
-		/*
-		if ((flags & F_ADD) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_ADD_CO };
-		if ((flags & F_DEL) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_DEL_CO };
-		if ((flags & F_UNCONFIGURED) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_UNCONF_CO };
-		*/
-		return null;
-	}
-	
-	private ImageDescriptor[] getUpperLeftOverlays(int flags) {
-		if ((flags & F_UPDATED) != 0)
-			return new ImageDescriptor[] { UpdateUIImages.DESC_UPDATED_CO };
-		return null;
-	}
-
-	public String getColumnText(Object obj, int index) {
-		return getText(obj);
-	}
-	public Image getColumnImage(Object obj, int index) {
-		return getImage(obj);
-	}
-
-	public Image getImageFromURL(
-		URL installURL,
-		String subdirectoryAndFilename) {
-		Image image = null;
-		try {
-			URL newURL = new URL(installURL, subdirectoryAndFilename);
-			String key = newURL.toString();
-			image = (Image)images.get(key);
-			if (image == null) {
-				ImageDescriptor desc = ImageDescriptor.createFromURL(newURL);
-				image = desc.createImage();
-				images.put(key, image);
-			}
-		} catch (MalformedURLException e) {
-		} catch (SWTException e) {
-		}
-		return image;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/preferences/MainPreferencePage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/preferences/MainPreferencePage.java
deleted file mode 100644
index 4ea9cce..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/preferences/MainPreferencePage.java
+++ /dev/null
@@ -1,335 +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 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.update.internal.ui.preferences;
-
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.update.core.SiteManager;
-import org.eclipse.update.internal.core.UpdateCore;
-import org.eclipse.update.internal.operations.UpdateUtils;
-import org.eclipse.update.internal.ui.UpdateUI;
-
-/**
- * Insert the type's description here.
- * @see PreferencePage
- */
-public class MainPreferencePage
-	extends PreferencePage
-	implements IWorkbenchPreferencePage {
-
-	//private Label historySizeLabel;
-	private Text historySizeText;
-	private Button checkSignatureCheckbox;
-	private Button equivalentButton;
-	private Button compatibleButton;
-	private Text updatePolicyText;
-	private Label httpProxyHostLabel;
-	private Label httpProxyPortLabel;
-	private Text httpProxyHostText;
-	private Text httpProxyPortText;
-	private Button enableHttpProxy;
-
-	// these two values are for compatibility with old code
-	public static final String EQUIVALENT_VALUE = "equivalent"; //$NON-NLS-1$
-	public static final String COMPATIBLE_VALUE = "compatible"; //$NON-NLS-1$
-
-	/**
-	 * The constructor.
-	 */
-	public MainPreferencePage() {
-		super();
-	}
-
-	/**
-	 * Insert the method's description here.
-	 */
-	public void init(IWorkbench workbench) {
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on PreferencePage.
-	 */
-	protected Control createContents(Composite parent) {
-		WorkbenchHelp.setHelp(parent, "org.eclipse.update.ui.MainPreferencePage"); //$NON-NLS-1$
-
-		Composite mainComposite = new Composite(parent, SWT.NULL);
-		mainComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.numColumns = 2;
-		mainComposite.setLayout(layout);
-
-		Label historySizeLabel = new Label(mainComposite, SWT.NONE);
-		historySizeLabel.setText(UpdateUI.getString("MainPreferencePage.historySize")); //$NON-NLS-1$
-		historySizeText = new Text(mainComposite, SWT.SINGLE | SWT.BORDER);
-		historySizeText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		checkSignatureCheckbox =
-			new Button(mainComposite, SWT.CHECK | SWT.LEFT);
-		checkSignatureCheckbox.setText(UpdateUI.getString("MainPreferencePage.checkSignature")); //$NON-NLS-1$
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		checkSignatureCheckbox.setLayoutData(gd);
-		checkSignatureCheckbox.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (checkSignatureCheckbox.getSelection() == false) {
-					warnSignatureCheck(getShell());
-				}
-			}
-		});
-
-		createSpacer(mainComposite, 2);
-
-		Group group = new Group(mainComposite, SWT.NONE);
-		group.setText(UpdateUI.getString("MainPreferencePage.updateVersions")); //$NON-NLS-1$
-		group.setLayout(new GridLayout());
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		group.setLayoutData(gd);
-
-		equivalentButton = new Button(group, SWT.RADIO);
-		equivalentButton.setText(UpdateUI.getString("MainPreferencePage.updateVersions.equivalent")); //$NON-NLS-1$
-
-		compatibleButton = new Button(group, SWT.RADIO);
-		compatibleButton.setText(UpdateUI.getString("MainPreferencePage.updateVersions.compatible")); //$NON-NLS-1$
-
-		createSpacer(mainComposite, 2);
-
-		group = new Group(mainComposite, SWT.NONE);
-		group.setText(UpdateUI.getString("MainPreferencePage.updatePolicy")); //$NON-NLS-1$
-		layout = new GridLayout();
-		layout.numColumns = 2;
-		group.setLayout(layout);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		group.setLayoutData(gd);
-
-		Label label = new Label(group, SWT.NULL);
-		label.setText(UpdateUI.getString("MainPreferencePage.updatePolicyURL")); //$NON-NLS-1$
-		updatePolicyText = new Text(group, SWT.SINGLE | SWT.BORDER);
-
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		updatePolicyText.setLayoutData(gd);
-
-		createSpacer(mainComposite, 2);
-		createHttpProxy(mainComposite, 2);
-		initialize();
-		updatePolicyText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				textChanged();
-			}
-		});
-		return mainComposite;
-	}
-
-	public void createControl(Composite parent) {
-		super.createControl(parent);
-		Dialog.applyDialogFont(getControl());
-	}
-
-	protected void createSpacer(Composite composite, int columnSpan) {
-		Label label = new Label(composite, SWT.NONE);
-		GridData gd = new GridData();
-		gd.horizontalSpan = columnSpan;
-		label.setLayoutData(gd);
-	}
-
-	protected void createHttpProxy(Composite composite, int columnSpan) {
-		Group group = new Group(composite, SWT.NONE);
-		group.setText(UpdateUI.getString("MainPreferencePage.proxyGroup")); //$NON-NLS-1$
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		group.setLayout(layout);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = columnSpan;
-		group.setLayoutData(gd);
-
-		enableHttpProxy = new Button(group, SWT.CHECK);
-		enableHttpProxy.setText(UpdateUI.getString("MainPreferencePage.enableHttpProxy")); //$NON-NLS-1$
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		enableHttpProxy.setLayoutData(gd);
-
-		httpProxyHostLabel = new Label(group, SWT.NONE);
-		httpProxyHostLabel.setText(UpdateUI.getString("MainPreferencePage.httpProxyHost")); //$NON-NLS-1$
-
-		httpProxyHostText = new Text(group, SWT.SINGLE | SWT.BORDER);
-		httpProxyHostText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		httpProxyPortLabel = new Label(group, SWT.NONE);
-		httpProxyPortLabel.setText(UpdateUI.getString("MainPreferencePage.httpProxyPort")); //$NON-NLS-1$
-
-		httpProxyPortText = new Text(group, SWT.SINGLE | SWT.BORDER);
-		httpProxyPortText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		// Validation of port field
-		httpProxyPortText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				try {
-					String portValue = httpProxyPortText.getText();
-					int num = 80;
-					if (portValue != null && portValue.trim().length() > 0)
-						num = Integer.valueOf(portValue).intValue();
-					if (0 <= num && num <= 0xFFFF) {
-						// port is valid
-						MainPreferencePage.this.setValid(true);
-						setErrorMessage(null);
-						return;
-					}
-
-					// port is invalid
-				} catch (NumberFormatException nfe) {
-				}
-				MainPreferencePage.this.setValid(false);
-				setErrorMessage(UpdateUI.getString("MainPreferencePage.invalidPort")); //$NON-NLS-1$
-			}
-		});
-
-		enableHttpProxy.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				boolean enable = enableHttpProxy.getSelection();
-				httpProxyPortLabel.setEnabled(enable);
-				httpProxyHostLabel.setEnabled(enable);
-				httpProxyPortText.setEnabled(enable);
-				httpProxyHostText.setEnabled(enable);
-			}
-		});
-
-	}
-
-	private int getHistoryCount() {
-		try {
-			Integer count = new Integer(historySizeText.getText());
-			return count.intValue();
-		} catch (NumberFormatException e) {
-		}
-		return UpdateCore.getPlugin().getPluginPreferences().getDefaultInt(
-			UpdateCore.P_HISTORY_SIZE);
-	}
-
-	public boolean performOk() {
-		BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
-			public void run() {
-				try {
-					SiteManager.getLocalSite().setMaximumHistoryCount(
-						getHistoryCount());
-					SiteManager.setHttpProxyInfo(
-						enableHttpProxy.getSelection(),
-						httpProxyHostText.getText(),
-						httpProxyPortText.getText());
-				} catch (CoreException e) {
-					UpdateUI.logException(e);
-				}
-			}
-		});
-
-		Preferences prefs = UpdateCore.getPlugin().getPluginPreferences();
-		prefs.setValue(
-			UpdateCore.P_CHECK_SIGNATURE,
-			checkSignatureCheckbox.getSelection());
-		prefs.setValue(UpdateCore.P_HISTORY_SIZE, historySizeText.getText());
-		prefs.setValue(
-			UpdateCore.P_UPDATE_VERSIONS,
-			equivalentButton.getSelection()
-				? EQUIVALENT_VALUE
-				: COMPATIBLE_VALUE);
-		prefs.setValue(
-			UpdateUtils.P_UPDATE_POLICY_URL,
-			updatePolicyText.getText());
-
-		UpdateCore.getPlugin().savePluginPreferences();
-		return super.performOk();
-	}
-
-
-	private void initialize() {
-		Preferences prefs = UpdateCore.getPlugin().getPluginPreferences();
-		
-		enableHttpProxy.setSelection(prefs.getBoolean(UpdateCore.HTTP_PROXY_ENABLE));
-		String serverValue = prefs.getString(UpdateCore.HTTP_PROXY_HOST);
-		if (serverValue != null)
-			httpProxyHostText.setText(serverValue);
-		String portValue = prefs.getString(UpdateCore.HTTP_PROXY_PORT);
-		if (portValue != null)
-			httpProxyPortText.setText(portValue);
-
-		httpProxyPortLabel.setEnabled(enableHttpProxy.getSelection());
-		httpProxyHostLabel.setEnabled(enableHttpProxy.getSelection());
-		httpProxyPortText.setEnabled(enableHttpProxy.getSelection());
-		httpProxyHostText.setEnabled(enableHttpProxy.getSelection());
-
-		checkSignatureCheckbox.setSelection(
-			prefs.getBoolean(UpdateCore.P_CHECK_SIGNATURE));
-
-		historySizeText.setText(prefs.getString(UpdateCore.P_HISTORY_SIZE));
-
-		boolean isCompatible =
-			UpdateCore.COMPATIBLE_VALUE.equals(
-				prefs.getString(UpdateCore.P_UPDATE_VERSIONS));
-		equivalentButton.setSelection(!isCompatible);
-		compatibleButton.setSelection(isCompatible);
-
-		String text = prefs.getString(UpdateUtils.P_UPDATE_POLICY_URL);
-		updatePolicyText.setText(text);
-	}
-
-	private void textChanged() {
-		String text = updatePolicyText.getText();
-		if (text.length() > 0) {
-			try {
-				new URL(text);
-			} catch (MalformedURLException e) {
-				setValid(false);
-				setErrorMessage(UpdateUI.getString("UpdateSettingsPreferencePage.invalid")); //$NON-NLS-1$
-				return;
-			}
-		}
-		setValid(true);
-		setErrorMessage(null);
-	}
-
-	public void performDefaults() {
-		super.performDefaults();
-		Preferences prefs = UpdateCore.getPlugin().getPluginPreferences();
-
-		enableHttpProxy.setSelection(false);
-		httpProxyHostText.setText(""); //$NON-NLS-1$
-		httpProxyPortText.setText(""); //$NON-NLS-1$
-		httpProxyPortLabel.setEnabled(false);
-		httpProxyHostLabel.setEnabled(false);
-		httpProxyPortText.setEnabled(false);
-		httpProxyHostText.setEnabled(false);
-
-		updatePolicyText.setText(""); //$NON-NLS-1$
-
-		checkSignatureCheckbox.setSelection(true);
-		historySizeText.setText(
-			prefs.getDefaultString(UpdateCore.P_HISTORY_SIZE));
-		equivalentButton.setSelection(true);
-		compatibleButton.setSelection(false);
-	}
-
-	private void warnSignatureCheck(Shell shell) {
-		MessageDialog.openWarning(shell, UpdateUI.getString("MainPreferencePage.digitalSignature.title"), //$NON-NLS-1$
-		UpdateUI.getString("MainPreferencePage.digitalSignature.message")); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/preferences/UpdateSettingsPreferencePage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/preferences/UpdateSettingsPreferencePage.java
deleted file mode 100644
index 52b3dca..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/preferences/UpdateSettingsPreferencePage.java
+++ /dev/null
@@ -1,116 +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 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.update.internal.ui.preferences;
-
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.ui.UpdateUI;
-
-/**
- * Insert the type's description here.
- * @see PreferencePage
- */
-public class UpdateSettingsPreferencePage
-	extends PreferencePage
-	implements IWorkbenchPreferencePage {
-	private Text mappingsFile;
-
-	/**
-	 * The constructor.
-	 */
-	public UpdateSettingsPreferencePage() {
-		setDescription(UpdateUI.getString("UpdateSettingsPreferencePage.description")); //$NON-NLS-1$
-	}
-
-	/**
-	 * Insert the method's description here.
-	 */
-	public void init(IWorkbench workbench) {
-	}
-
-	public Control createContents(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		container.setLayout(layout);
-		layout.marginWidth = layout.marginHeight = 0;
-		layout.numColumns = 2;
-		Label label = new Label(container, SWT.NULL);
-		label.setText(UpdateUI.getString("UpdateSettingsPreferencePage.label")); //$NON-NLS-1$
-		mappingsFile = new Text(container, SWT.SINGLE | SWT.BORDER);
-
-		initialize();
-		mappingsFile.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				textChanged();
-			}
-		});
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		mappingsFile.setLayoutData(gd);
-		return container;
-	}
-
-	private void initialize() {
-		Preferences pref = UpdateCore.getPlugin().getPluginPreferences();
-		String text = pref.getString(UpdateUtils.P_UPDATE_POLICY_URL);
-		mappingsFile.setText(text);
-		textChanged();
-	}
-
-	private void textChanged() {
-		String text = mappingsFile.getText();
-		if (text.length() > 0) {
-			try {
-				new URL(text);
-			} catch (MalformedURLException e) {
-				setValid(false);
-				setErrorMessage(UpdateUI.getString("UpdateSettingsPreferencePage.invalid")); //$NON-NLS-1$
-				return;
-			}
-		}
-		setValid(true);
-		setErrorMessage(null);
-	}
-
-	public boolean performOk() {
-		Preferences pref = UpdateCore.getPlugin().getPluginPreferences();
-		String text = mappingsFile.getText();
-		if (text.length() > 0)
-			pref.setValue(UpdateUtils.P_UPDATE_POLICY_URL, text);
-		else
-			pref.setToDefault(UpdateUtils.P_UPDATE_POLICY_URL);
-		UpdateCore.getPlugin().savePluginPreferences();
-		return true;
-	}
-
-	protected void performDefaults() {
-		mappingsFile.setText(""); //$NON-NLS-1$
-		super.performDefaults();
-	}
-
-	public void createControl(Composite parent) {
-		super.createControl(parent);
-		Dialog.applyDialogFont(getControl());
-		/*
-		WorkbenchHelp.setHelp(
-			parent,"org.eclipse.update.ui.AppServerPreferencePage");
-		*/
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/ConfiguredSitePropertyPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/ConfiguredSitePropertyPage.java
deleted file mode 100644
index d9243f3..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/ConfiguredSitePropertyPage.java
+++ /dev/null
@@ -1,63 +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 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.update.internal.ui.properties;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.dialogs.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.internal.ui.UpdateUI;
-
-/**
- * @see PropertyPage
- */
-public class ConfiguredSitePropertyPage extends PropertyPage implements IWorkbenchPropertyPage {
-	/**
-	 *
-	 */
-	public ConfiguredSitePropertyPage() {
-		noDefaultAndApplyButton();
-	}
-
-	protected Control createContents(Composite parent)  {
-		IConfiguredSiteAdapter adapter = (IConfiguredSiteAdapter)getElement();
-		IConfiguredSite csite = adapter.getConfiguredSite();
-		Composite composite = new Composite(parent,SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		composite.setLayout(layout);
-		addProperty(composite, UpdateUI.getString("ConfiguredSitePropertyPage.path"), csite.getSite().getURL().toString()); //$NON-NLS-1$
-		addProperty(composite, UpdateUI.getString("ConfiguredSitePropertyPage.type"), getLocationType(csite)); //$NON-NLS-1$
-		addProperty(composite, UpdateUI.getString("ConfiguredSitePropertyPage.enabled"), csite.isEnabled()?UpdateUI.getString("ConfiguredSitePropertyPage.yes"):UpdateUI.getString("ConfiguredSitePropertyPage.no")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		return composite;
-	}
-	
-	private String getLocationType(IConfiguredSite csite) {
-		if (csite.isExtensionSite())
-			return UpdateUI.getString("ConfiguredSitePropertyPage.extension"); //$NON-NLS-1$
-		if (csite.isProductSite())
-			return UpdateUI.getString("ConfiguredSitePropertyPage.product"); //$NON-NLS-1$
-		return UpdateUI.getString("ConfiguredSitePropertyPage.unknown"); //$NON-NLS-1$
-	}
-	
-	private void addProperty(Composite parent, String key, String value) {
-		Label label = new Label(parent, SWT.NULL);
-		label.setText(key);
-		
-		label = new Label(parent, SWT.NULL);
-		label.setText(value);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		label.setLayoutData(gd);
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureCopyrightPropertyPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureCopyrightPropertyPage.java
deleted file mode 100644
index da6c7d2..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureCopyrightPropertyPage.java
+++ /dev/null
@@ -1,91 +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 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.update.internal.ui.properties;
-
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.dialogs.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.internal.ui.parts.*;
-import org.eclipse.update.internal.ui.UpdateUI;
-
-/**
- * @see PropertyPage
- */
-public class FeatureCopyrightPropertyPage extends PropertyPage implements IWorkbenchPropertyPage {
-	/**
-	 *
-	 */
-	public FeatureCopyrightPropertyPage() {
-		noDefaultAndApplyButton();
-	}
-
-	protected Control createContents(Composite parent) {
-		try {
-			IFeatureAdapter adapter = (IFeatureAdapter) getElement();
-			IFeature feature = adapter.getFeature(null);
-
-			Composite composite = new Composite(parent, SWT.NULL);
-			composite.setLayout(new GridLayout());
-
-			Label label = new Label(composite, SWT.WRAP);
-			GridData gd =
-				new GridData(
-					GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
-			gd.widthHint = computeWidthLimit(label, 80);
-			label.setLayoutData(gd);
-
-			IURLEntry copyright = feature.getCopyright();
-			String annotation = (copyright != null) ? copyright.getAnnotation() : null;
-
-			if (annotation != null && annotation.length() > 0) {
-				label.setText(annotation);
-				final URL url = copyright.getURL();
-				String filename = (url != null) ? url.getFile() : null;
-				if (filename != null
-					&& (filename.endsWith(".htm") || filename.endsWith(".html"))) { //$NON-NLS-1$ //$NON-NLS-2$
-					Button button = new Button(composite, SWT.PUSH);
-					button.setText(UpdateUI.getString("FeatureCopyrightPropertyPage.showInBrowser")); //$NON-NLS-1$
-					button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-					SWTUtil.setButtonDimensionHint(button);
-					button.addSelectionListener(new SelectionAdapter() {
-						public void widgetSelected(SelectionEvent e) {
-							UpdateUI.showURL(url.toExternalForm());
-						}
-					});
-				}
-			} else {
-				label.setText(UpdateUI.getString("FeatureCopyrightPropertyPage.noCopyright")); //$NON-NLS-1$
-			}
-			Dialog.applyDialogFont(parent);
-		} catch (CoreException e) {
-		}
-		return null;
-	}
-	
-	private int computeWidthLimit(Label label, int nchars) {
-		GC gc = new GC(label);
-		gc.setFont(label.getFont());
-		FontMetrics fontMetrics= gc.getFontMetrics();
-		gc.dispose();
-		return Dialog.convertWidthInCharsToPixels(fontMetrics, nchars);
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureGeneralPropertyPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureGeneralPropertyPage.java
deleted file mode 100644
index 2d48dab..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureGeneralPropertyPage.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.eclipse.update.internal.ui.properties;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.dialogs.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.internal.ui.UpdateUI;
-
-public class FeatureGeneralPropertyPage
-	extends PropertyPage
-	implements IWorkbenchPropertyPage {
-		
-	public FeatureGeneralPropertyPage() {
-		noDefaultAndApplyButton();
-	}
-
-	protected Control createContents(Composite parent) {
-		try {
-			IFeatureAdapter adapter = (IFeatureAdapter) getElement();
-			IFeature feature = adapter.getFeature(null);
-
-			Composite composite = new Composite(parent, SWT.NONE);
-			GridLayout layout = new GridLayout();
-			layout.marginWidth = 0;
-			layout.marginHeight = 0;
-			layout.verticalSpacing = 15;
-			composite.setLayout(layout);
-			
-			addGeneralSection(feature, composite);	
-			addSupportedPlatformsSection(feature, composite);
-			addDescription(feature, composite);
-			
-			Dialog.applyDialogFont(parent);
-			
-			return composite;
-
-		} catch (CoreException e) {
-		}
-
-		return null;
-	}
-
-	private void addGeneralSection(IFeature feature, Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		composite.setLayout(layout);
-
-		addField(composite, UpdateUI.getString("FeatureGeneralPropertyPage.name"), feature.getLabel()); //$NON-NLS-1$
-		addField(
-			composite,
-			UpdateUI.getString("FeatureGeneralPropertyPage.id"), //$NON-NLS-1$
-			feature.getVersionedIdentifier().getIdentifier());
-		addField(
-			composite,
-			UpdateUI.getString("FeatureGeneralPropertyPage.version"), //$NON-NLS-1$
-			feature.getVersionedIdentifier().getVersion().toString());
-		addField(composite, UpdateUI.getString("FeatureGeneralPropertyPage.provider"), feature.getProvider()); //$NON-NLS-1$
-		long size = feature.getInstallSize();
-		if (size != ContentEntryModel.UNKNOWN_SIZE)
-			addField(composite, UpdateUI.getString("FeatureGeneralPropertyPage.size"), new Long(size).toString() + " " + UpdateUI.getString("FeatureGeneralPropertyPage.Kilobytes")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-	}
-	
-	private void addSupportedPlatformsSection(IFeature feature, Composite parent) {
-		Group group = new Group(parent, SWT.NONE);
-		group.setText(UpdateUI.getString("FeatureGeneralPropertyPage.platforms")); //$NON-NLS-1$
-
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = true;
-		group.setLayout(layout);
-		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Label label = new Label(group, SWT.NONE);
-		label.setText(UpdateUI.getString("FeatureGeneralPropertyPage.os") + extractValue(feature.getOS())); //$NON-NLS-1$
-
-		label = new Label(group, SWT.NONE);
-		label.setText(UpdateUI.getString("FeatureGeneralPropertyPage.ws") + extractValue(feature.getWS())); //$NON-NLS-1$
-
-		label = new Label(group, SWT.NONE);
-		label.setText(UpdateUI.getString("FeatureGeneralPropertyPage.arch") + extractValue(feature.getOSArch())); //$NON-NLS-1$
-
-		label = new Label(group, SWT.NONE);
-		label.setText(UpdateUI.getString("FeatureGeneralPropertyPage.nl") + extractValue(feature.getNL())); //$NON-NLS-1$
-	}
-
-	private void addField(Composite parent, String property, String value) {
-
-		if (value != null && value.length() > 0) {
-			Label label = new Label(parent, SWT.NONE);
-			label.setText(property);
-
-			label = new Label(parent, SWT.NONE);
-			label.setText(getEscapedString(value));
-		}
-
-	}
-	private String extractValue(String value) {
-		if (value == null || value.equals("*")) //$NON-NLS-1$
-			return UpdateUI.getString("FeatureGeneralPropertyPage.all"); //$NON-NLS-1$
-		return value;
-	}
-
-	private void addDescription(IFeature feature, Composite parent) {
-		IURLEntry description = feature.getDescription();
-		if (description != null) {
-			String annotation = description.getAnnotation();
-			if (annotation != null && annotation.length() > 0) {
-				Group group = new Group(parent, SWT.NONE);
-				group.setText(UpdateUI.getString("FeatureGeneralPropertyPage.desc")); //$NON-NLS-1$
-				group.setLayout(new GridLayout());
-				group.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-				Text text = new Text(group, SWT.MULTI | SWT.WRAP);
-				GridData gd = new GridData(GridData.FILL_BOTH);
-				gd.heightHint = 200;
-				gd.widthHint = 350;
-				text.setEditable(false);
-				text.setText(annotation);
-				text.setLayoutData(gd);
-			}
-		}
-	}
-	
-	private String getEscapedString(String value) {
-		return value.replaceAll("&", "&&");
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureLicensePropertyPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureLicensePropertyPage.java
deleted file mode 100644
index 115ad79..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureLicensePropertyPage.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.eclipse.update.internal.ui.properties;
-
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.dialogs.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.internal.ui.parts.*;
-import org.eclipse.update.internal.ui.UpdateUI;
-
-
-public class FeatureLicensePropertyPage extends PropertyPage implements IWorkbenchPropertyPage {
-	public FeatureLicensePropertyPage() {
-		noDefaultAndApplyButton();
-	}
-
-	protected Control createContents(Composite parent)  {
-		try {
-			Composite composite = new Composite(parent, SWT.NULL);
-			composite.setLayout(new GridLayout());
-
-			IFeatureAdapter adapter = (IFeatureAdapter)getElement();
-			IFeature feature = adapter.getFeature(null);			
-			IURLEntry license = feature.getLicense();
-			String annotation = (license != null) ? license.getAnnotation() : null;
-			
-			if (annotation != null && annotation.length() > 0) {
-				Text text = new Text(composite, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.WRAP);
-				GridData gd = new GridData(GridData.FILL_BOTH);
-				gd.heightHint = 200;
-				gd.widthHint = 350;
-				text.setLayoutData(gd);
-				text.setText(annotation);
-				text.setEditable(false);
-				final URL url = license.getURL();
-				String filename = (url != null) ? url.getFile() : null;
-				if (filename != null && (filename.endsWith(".htm") || url.getFile().endsWith(".html"))) { //$NON-NLS-1$ //$NON-NLS-2$
-					Button button = new Button(composite, SWT.PUSH);
-					button.setText(UpdateUI.getString("FeatureLicensePropertyPage.showInBrowser")); //$NON-NLS-1$
-					button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-					SWTUtil.setButtonDimensionHint(button);
-					button.addSelectionListener(new SelectionAdapter() {
-						public void widgetSelected(SelectionEvent e) {
-							UpdateUI.showURL(url.toExternalForm());
-						}
-					});
-				}
-			} else {
-				Label label = new Label(composite, SWT.NULL);
-				label.setText(UpdateUI.getString("FeatureLicensePropertyPage.noLicense")); //$NON-NLS-1$
-			}
-			
-			Dialog.applyDialogFont(parent);
-			
-			return composite;
-			
-		} catch (CoreException e) {
-		}
-		return null;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureStatusPropertyPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureStatusPropertyPage.java
deleted file mode 100644
index fb9f35c..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureStatusPropertyPage.java
+++ /dev/null
@@ -1,159 +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 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.update.internal.ui.properties;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.dialogs.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.internal.ui.UpdateUI;
-import org.eclipse.update.operations.*;
-
-/**
- * @see PropertyPage
- */
-public class FeatureStatusPropertyPage
-	extends PropertyPage
-	implements IWorkbenchPropertyPage {
-	/**
-	 *
-	 */
-	public FeatureStatusPropertyPage() {
-		noDefaultAndApplyButton();
-	}
-
-	protected Control createContents(Composite parent) {
-		try {
-
-			Composite composite = new Composite(parent, SWT.NONE);
-			GridLayout layout = new GridLayout();
-			layout.numColumns = 1;
-			layout.verticalSpacing = 20;
-			composite.setLayout(layout);
-
-			Text message = new Text(composite, SWT.MULTI | SWT.WRAP);
-			message.setEditable(false);
-			GridData gd = new GridData();
-			gd.widthHint = 350;
-			message.setLayoutData(gd);
-			
-			ConfiguredFeatureAdapter adapter = (ConfiguredFeatureAdapter) getElement();
-			IFeature feature = adapter.getFeature(null);
-			
-			if (OperationsManager.findPendingOperation(feature) != null) {
-				message.setText(UpdateUI.getString("FeatureStatusPropertyPage.pendingChanges")); //$NON-NLS-1$
-				return composite;
-			}
-			
-			IStatus status = getStatus(feature);
-			int severity = status.getSeverity();
-			if (severity == IStatus.ERROR
-				&& getStatusCode(feature, status) == IFeature.STATUS_HAPPY) {
-				severity = IStatus.OK;
-				message.setText(UpdateUI.getString("FeatureStatusPropertyPage.goodConfiguration")); //$NON-NLS-1$
-			} else {
-				message.setText(status.getMessage());
-			}
-			if (severity != IStatus.OK && status.isMultiStatus()) {
-				String reason = getReason(status);
-				if (reason.length() > 0) {
-					Composite comp = new Composite(composite, SWT.NONE);
-					comp.setLayout(new GridLayout());
-					gd = new GridData(GridData.FILL_BOTH);
-					comp.setLayoutData(gd);
-
-					Label label = new Label(comp, SWT.NONE);
-					label.setText(UpdateUI.getString("FeatureStatusPropertyPage.reason")); //$NON-NLS-1$
-
-					Text text =
-						new Text(comp, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL);
-					text.setEditable(false);
-					text.setText(reason);
-					gd.widthHint = 350;
-					text.setLayoutData(gd);
-				}
-
-			}
-			
-			Dialog.applyDialogFont(parent);
-			
-			return composite;
-
-		} catch (CoreException e) {
-		}
-
-		return null;
-	}
-
-	private String getReason(IStatus status) {
-		IStatus[] children = status.getChildren();
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0; i < children.length; i++) {
-			String message = children[i].getMessage();
-			if (message != null && message.length() > 0) {
-				buffer.append(
-					message
-						+ System.getProperty("line.separator") //$NON-NLS-1$
-						+ System.getProperty("line.separator")); //$NON-NLS-1$
-			}
-		}
-		return buffer.toString();
-	}
-
-	private IStatus getStatus(IFeature feature) throws CoreException {
-		if (feature instanceof MissingFeature) {
-			int severity;
-			String message = ""; //$NON-NLS-1$
-			if (((MissingFeature) feature).isOptional()) {
-				severity = IStatus.OK;
-				message = UpdateUI.getString("FeatureStatusPropertyPage.missingOptional"); //$NON-NLS-1$
-			} else {
-				severity = IStatus.ERROR;
-				message = UpdateUI.getString("FeatureStatusPropertyPage.missing"); //$NON-NLS-1$
-			}
-			return new Status(severity, UpdateUI.PLUGIN_ID, IStatus.OK, message, null);
-		}
-		return SiteManager.getLocalSite().getFeatureStatus(feature);
-	}
-
-	private int getStatusCode(IFeature feature, IStatus status) {
-		int code = status.getCode();
-		if (code == IFeature.STATUS_UNHAPPY) {
-			if (status.isMultiStatus()) {
-				IStatus[] children = status.getChildren();
-				for (int i = 0; i < children.length; i++) {
-					IStatus child = children[i];
-					if (child.isMultiStatus()
-						|| child.getCode() != IFeature.STATUS_DISABLED)
-						return code;
-				}
-				// If we are here, global status is unhappy
-				// because one or more included features
-				// is disabled.
-				if (UpdateUtils.hasObsoletePatches(feature)) {
-					// The disabled included features
-					// are old patches that are now
-					// subsumed by better versions of
-					// the features they were designed to
-					// patch.
-					return IFeature.STATUS_HAPPY;
-				}
-			}
-		}
-		return code;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/InstallConfigurationPropertyPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/InstallConfigurationPropertyPage.java
deleted file mode 100644
index 00e6036..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/InstallConfigurationPropertyPage.java
+++ /dev/null
@@ -1,51 +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 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.update.internal.ui.properties;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.dialogs.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.internal.ui.UpdateUI;
-
-/**
- * @see PropertyPage
- */
-public class InstallConfigurationPropertyPage extends PropertyPage implements IWorkbenchPropertyPage {
-	/**
-	 *
-	 */
-	public InstallConfigurationPropertyPage() {
-		noDefaultAndApplyButton();
-	}
-
-	protected Control createContents(Composite parent)  {
-		Composite composite = new Composite(parent,SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		composite.setLayout(layout);
-		addProperty(composite, UpdateUI.getString("ConfiguredSitePropertyPage.path"), ConfiguratorUtils.getInstallURL().toString()); //$NON-NLS-1$
-		return composite;
-	}
-	
-
-	private void addProperty(Composite parent, String key, String value) {
-		Label label = new Label(parent, SWT.NULL);
-		label.setText(key);
-		
-		label = new Label(parent, SWT.NULL);
-		label.setText(value);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		label.setLayoutData(gd);
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/Authentication.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/Authentication.java
deleted file mode 100644
index 6447a87..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/Authentication.java
+++ /dev/null
@@ -1,36 +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 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.update.internal.ui.security;
-
-/**
- * Keeps user and password strings.
- */
-public class Authentication {
-	protected String user;
-	protected String password;
-	public Authentication(String user, String password){
-		this.user = user;
-		this.password = password;
-	}
-
-	/**
-	 * @return Returns the password.
-	 */
-	public String getPassword() {
-		return password;
-	}
-	/**
-	 * @return Returns the user.
-	 */
-	public String getUser() {
-		return user;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationDialog.java
deleted file mode 100644
index c0f92f0..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationDialog.java
+++ /dev/null
@@ -1,145 +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 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.update.internal.ui.security;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.resource.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.ui.*;
-
-/**
- * 
- */
-public class JarVerificationDialog extends TitleAreaDialog {
-	public final static int INSTALL_ALL = CANCEL + OK + 1;
-	private IVerificationResult _VerificationResult = null;
-	private IDialogPage _DialogPage;
-	private Composite pageContainer;
-	private Image defaultImage = null;
-	private ImageDescriptor defaultImageDescriptor =
-		UpdateUIImages.DESC_UPDATE_WIZ;
-	
-	/**
-	 * Constructor for JarVerificationDialog.
-	 * @param parentShell
-	 */
-	public JarVerificationDialog(Shell parentShell,IDialogPage dialogPage, IVerificationResult verificationResult) {
-		super(parentShell);
-		setShellStyle(SWT.TITLE | SWT.BORDER | SWT.APPLICATION_MODAL | SWT.RESIZE);		
-		_VerificationResult = verificationResult;
-		_DialogPage = dialogPage;
-		if (dialogPage instanceof JarVerificationPage){
-			((JarVerificationPage)_DialogPage).setTitleAreaDialog(this);
-		}
-	}
-
-	/**
-	 * Add buttons to the dialog's button bar.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		if (_VerificationResult.getVerificationCode()
-			!= IVerificationResult.TYPE_ENTRY_CORRUPTED) {
-
-			if (_VerificationResult.isFeatureVerification()) {
-				createButton(
-					parent,
-					IDialogConstants.OK_ID,
-					UpdateUI.getString("JarVerificationDialog.Install"), //$NON-NLS-1$
-					false);
-			} else {
-				createButton(
-					parent,
-					IDialogConstants.OK_ID,
-					UpdateUI.getString("JarVerificationDialog.Continue"), //$NON-NLS-1$
-					false);				
-			}
-			// Radio button: Install all without prompting
-			//----------------------------------
-			createButton(
-				parent,
-				IDialogConstants.YES_TO_ALL_ID,
-				UpdateUI.getString("JarVerificationDialog.InstallAll"), //$NON-NLS-1$
-				false);		
-			
-			// Radio button: Cancel installation
-			//----------------------------------
-			createButton(
-				parent,
-				IDialogConstants.CANCEL_ID,
-				UpdateUI.getString("JarVerificationDialog.Cancel"), //$NON-NLS-1$
-				true);							
-		} else {
-			createButton(
-				parent,
-				IDialogConstants.CANCEL_ID,
-				UpdateUI.getString("JarVerificationDialog.Cancel"), //$NON-NLS-1$
-				true);
-		}
-		getButton(IDialogConstants.CANCEL_ID).setFocus();
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite compositeParent = (Composite)super.createDialogArea(parent);
-		setTitleImage(this.getImage());
-		setTitle(UpdateUI.getString("JarVerificationDialog.Title")); //$NON-NLS-1$
-		
-		_DialogPage.createControl(compositeParent);
-		pageContainer=(Composite)_DialogPage.getControl();
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		pageContainer.setLayoutData(gd);
-		pageContainer.setFont(parent.getFont());		
-		
-		// Build the separator line
-		Label separator= new Label(compositeParent, SWT.HORIZONTAL | SWT.SEPARATOR);
-		separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
-		return compositeParent;
-	}
-	
-		/**
-	 * @see IDialogPage#getImage()
-	 */
-	public Image getImage() {
-		if (defaultImage == null)
-			defaultImage = defaultImageDescriptor.createImage();
-
-		return defaultImage;
-	}
-
-	public boolean close() {
-		// dispose of image
-		if (defaultImage != null) {
-			defaultImage.dispose();
-			defaultImage = null;
-		}
-		return super.close();		
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
-	 */
-	protected void buttonPressed(int buttonId) {
-		if (IDialogConstants.YES_TO_ALL_ID == buttonId)
-			installAllPressed();
-		else
-			super.buttonPressed(buttonId);
-	}
-	
-	private void installAllPressed() {
-        setReturnCode(JarVerificationDialog.INSTALL_ALL);
-        close();
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationPage.java
deleted file mode 100644
index c4438be..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationPage.java
+++ /dev/null
@@ -1,340 +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 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.update.internal.ui.security;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.resource.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.help.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.wizards.*;
-import org.eclipse.jface.dialogs.Dialog;
-
-/**
- * 
- */
-public class JarVerificationPage extends BannerPage {
-
-	private IVerificationResult _VerificationResult = null;
-	private String _fileName = null;
-	private String _strFeatureName = null;
-	private String _strId = null;
-	private String _strProviderName = null;
-	private TitleAreaDialog _Dialog;
-	private String componentVerified;
-
-	/*
-	 * Constructor for JarVerificationPage.
-	 */
-	public JarVerificationPage(IVerificationResult verificationResult) {
-		super(UpdateUI.getString("JarVerificationDialog.Verification")); //$NON-NLS-1$
-		_fileName = verificationResult.getContentReference().getIdentifier();
-		_VerificationResult = verificationResult;
-		_strId = verificationResult.getFeature().getVersionedIdentifier().toString();
-		_strFeatureName = verificationResult.getFeature().getLabel();
-		_strProviderName = verificationResult.getFeature().getProvider();
-		componentVerified =	(verificationResult.isFeatureVerification()) ? ".Feature" : ".File"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected Control createContents(Composite compositeParent) {
-		WorkbenchHelp.setHelp(compositeParent, "org.eclipse.update.ui.JarVerificationPage"); //$NON-NLS-1$
-		// Composite: Client
-		//------------------
-		Composite compositeClient = new Composite(compositeParent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = layout.marginWidth = 0;
-		compositeClient.setLayout(layout);
-		compositeClient.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// Text Information
-		//------------------		
-		createTextArea(compositeClient);
-
-		// Certificate Area
-		//------------------
-		createCertificateArea(compositeClient);
-
-		// File and Feature Information
-		//-----------------------------		
-		createInformationArea(compositeClient);
-
-		// Choice Area
-		//------------		
-		//createChoiceArea(compositeClient);
-
-		Dialog.applyDialogFont(compositeParent);
-		return compositeClient;
-
-	}
-
-	/*
-	 * Creates the Information text
-	 */
-	private void createTextArea(Composite compositeClient) {
-
-		// Label: Information
-		//------------------
-		Label labelInformation =
-			new Label(compositeClient, SWT.WRAP);
-		labelInformation.setLayoutData(
-			new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL));
-
-        String actionMsg = null;
-        if (_VerificationResult.isFeatureVerification()) {
-            actionMsg = UpdateUI.getString("JarVerificationDialog.MayChooseToInstall"); //$NON-NLS-1$
-        } else {
-            actionMsg = UpdateUI.getString("JarVerificationDialog.MayChooseToContinue"); //$NON-NLS-1$                   
-        }
-        
-        StringBuffer strb = new StringBuffer();
-		switch (_VerificationResult.getVerificationCode()) {
-
-			case IVerificationResult.TYPE_ENTRY_NOT_SIGNED :
-				String msg =
-					UpdateUI.getString(
-						"JarVerificationDialog.AboutToInstall"+ //$NON-NLS-1$
-						componentVerified) +
-                        "\r\n" + actionMsg; //$NON-NLS-1$
-				setMessage(msg, WARNING);
-				strb.append(
-					UpdateUI.getString(
-						"JarVerificationDialog.NotDigitallySigned"+ //$NON-NLS-1$
-						componentVerified));
-				strb.append("\r\n"); //$NON-NLS-1$
-				strb.append(
-					UpdateUI.getString(
-						"JarVerificationDialog.CannotVerifyProvider"+ //$NON-NLS-1$
-						componentVerified));
-                
-/*				strb.append("\r\n"); //$NON-NLS-1$
-				if (_VerificationResult.isFeatureVerification()) {
-					strb.append(
-						UpdateUI.getResourceString("JarVerificationDialog.InstallMayCorrupt"));//$NON-NLS-1$
-				} else {
-					strb.append(
-						UpdateUI.getResourceString("JarVerificationDialog.ContinueMayCorrupt"));//$NON-NLS-1$ 					
-				}
-				*/
-				labelInformation.setText(strb.toString());
-				break;
-
-			case IVerificationResult.TYPE_ENTRY_CORRUPTED :
-				msg =
-					UpdateUI.getString(
-						"JarVerificationDialog.CorruptedContent"+ //$NON-NLS-1$
-						componentVerified);
-				setMessage(msg, ERROR);
-				strb.append(
-					UpdateUI.getString(
-						"JarVerificationDialog.ComponentNotInstalled")); //$NON-NLS-1$
-				labelInformation.setText(strb.toString());
-				break;
-
-			case IVerificationResult.TYPE_ENTRY_SIGNED_UNRECOGNIZED :
-				msg =
-					UpdateUI.getString(
-						"JarVerificationDialog.SignedComponent"+ //$NON-NLS-1$
-						componentVerified) +
-                        "\r\n" + actionMsg; //$NON-NLS-1$
-                
-				setMessage(msg, WARNING);
-				strb.append(
-					UpdateUI.getString(
-						"JarVerificationDialog.UnknownCertificate"+ //$NON-NLS-1$
-						componentVerified));
-				strb.append("\r\n"); //$NON-NLS-1$
-				strb.append(
-					UpdateUI.getString(
-						"JarVerificationDialog.UnableToVerifyProvider"+ //$NON-NLS-1$
-						componentVerified));
-/*				strb.append("\r\n"); //$NON-NLS-1$
-				if (_VerificationResult.isFeatureVerification()) {
-					strb.append(
-						UpdateUI.getResourceString("JarVerificationDialog.InstallMayCorrupt")); //$NON-NLS-1$
-				} else {
-					strb.append(
-						UpdateUI.getResourceString("JarVerificationDialog.ContinueMayCorrupt"));//$NON-NLS-1$ 					
-				}
-				*/
-				labelInformation.setText(strb.toString());
-				break;
-
-			case IVerificationResult.TYPE_ENTRY_SIGNED_RECOGNIZED :
-				msg =
-					UpdateUI.getString(
-						"JarVerificationDialog.SignedComponent"+ //$NON-NLS-1$
-						componentVerified) +
-                        "\r\n" + actionMsg; //$NON-NLS-1$
-				setMessage(msg, WARNING);
-				strb.append(
-					UpdateUI.getString(
-						"JarVerificationDialog.KnownCertificate"+ //$NON-NLS-1$
-						componentVerified));
-				strb.append("\r\n"); //$NON-NLS-1$
-				strb.append(
-					UpdateUI.getString(
-						"JarVerificationDialog.ProviderKnown"+ //$NON-NLS-1$
-						componentVerified));
-				strb.append("\r\n"); //$NON-NLS-1$
-
-				labelInformation.setText(strb.toString());
-
-//				createCautionArea(compositeClient);
-				break;
-		}
-	}
-	
-
-	/*
-	 * Presents File & Feature information
-	 */
-	private void createInformationArea(Composite compositeClient) {
-
-		// Composite: Information labels
-		//------------------------------
-		Composite compositeInformation = new Composite(compositeClient, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = layout.marginHeight = 0;
-		compositeInformation.setLayout(layout);
-		compositeInformation.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		// get bold face
-		FontRegistry fregistry = JFaceResources.getFontRegistry();
-		Font boldFont = fregistry.getBold(JFaceResources.DIALOG_FONT);
-		
-		// Feature name
-		//---------------
-		Label keyLabel = null;
-		CLabel valueLabel = null;
-		if (_strFeatureName != null && _strFeatureName.length() > 0) {
-			keyLabel = new Label(compositeInformation, SWT.NULL);
-			keyLabel.setText(
-				UpdateUI.getString("JarVerificationDialog.FeatureName")); //$NON-NLS-1$
-
-			valueLabel = new CLabel(compositeInformation, SWT.NULL);
-			valueLabel.setFont(boldFont);
-			valueLabel.setText(_strFeatureName);
-			valueLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		}
-		// Feature identifier
-		//---------------------
-		if (_strId != null && _strId.length() > 0) {
-			keyLabel = new Label(compositeInformation, SWT.NULL);
-			keyLabel.setText(
-				UpdateUI.getString("JarVerificationDialog.FeatureIdentifier")); //$NON-NLS-1$
-
-			valueLabel = new CLabel(compositeInformation, SWT.NULL);
-			valueLabel.setFont(boldFont);
-			valueLabel.setText(_strId);
-			valueLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		}
-		// Provider name
-		//--------------
-		if (_strProviderName != null && _strProviderName.length() > 0) {
-			keyLabel = new Label(compositeInformation, SWT.NULL);
-			keyLabel.setText(
-				UpdateUI.getString("JarVerificationDialog.Provider")); //$NON-NLS-1$
-
-			valueLabel = new CLabel(compositeInformation, SWT.NULL);
-			valueLabel.setFont(boldFont);
-			valueLabel.setText(_strProviderName);
-			valueLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		}
-		// Label: File name
-		//-----------------
-		keyLabel = new Label(compositeInformation, SWT.NULL);
-		keyLabel.setText(
-			UpdateUI.getString("JarVerificationDialog.FileName")); //$NON-NLS-1$
-
-		valueLabel = new CLabel(compositeInformation, SWT.NULL);
-		valueLabel.setFont(boldFont);
-		valueLabel.setText(_fileName);
-		valueLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-	}
-
-	/*
-	 * Show certificate information
-	 */
-	private void createCertificateArea(Composite compositeClient) {
-
-		if (_VerificationResult.getVerificationCode()
-			== IVerificationResult.TYPE_ENTRY_SIGNED_UNRECOGNIZED
-			|| _VerificationResult.getVerificationCode()
-				== IVerificationResult.TYPE_ENTRY_SIGNED_RECOGNIZED) {
-			// Group box
-			//----------
-			Group group = new Group(compositeClient, SWT.SHADOW_ETCHED_IN);
-			GridLayout layout = new GridLayout();
-			layout.numColumns = 2;
-			layout.marginWidth = layout.marginHeight = 0;
-			group.setLayout(layout);
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			group.setText(UpdateUI.getString("JarVerificationDialog.CertificateInfo")); //$NON-NLS-1$
-
-			// Signer
-			//-------------------
-			Label keyLabel = null;
-			Text valueText = null;
-			//data = new GridData(GridData.FILL_HORIZONTAL);
-			//data.horizontalIndent = 0;
-			//textInformation.setLayoutData(data);			
-			if (_VerificationResult.getSignerInfo() != null) {
-				keyLabel = new Label(group, SWT.NULL);
-				keyLabel.setText(UpdateUI.getString("JarVerificationDialog.SubjectCA")); //$NON-NLS-1$
-				keyLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-
-				valueText = new Text(group, SWT.MULTI|SWT.BORDER|SWT.WRAP|SWT.V_SCROLL);
-				valueText.setText(_VerificationResult.getSignerInfo());
-				valueText.setEditable(false);
-				valueText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			}
-			
-			// Authenticator
-			//---------------------
-			if (_VerificationResult.getVerifierInfo() != null) {
-				keyLabel = new Label(group, SWT.NULL);
-				keyLabel.setText(UpdateUI.getString("JarVerificationDialog.RootCA")); //$NON-NLS-1$
-				keyLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));				
-
-				valueText = new Text(group, SWT.MULTI|SWT.BORDER|SWT.WRAP|SWT.V_SCROLL);
-				valueText.setText(_VerificationResult.getVerifierInfo());
-				valueText.setEditable(false);
-				valueText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			}
-		}
-	}
-
-	/*
-	 * Sets the Dialog
-	 */
-	public void setTitleAreaDialog(TitleAreaDialog dialog) {
-		_Dialog = dialog;
-	}
-
-	/*
-	 * 
-	 */
-	public void setMessage(String newMessage, int newType) {
-		super.setMessage(newMessage, newType);
-		if (_Dialog != null) {
-			_Dialog.setMessage(newMessage, newType);
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationService.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationService.java
deleted file mode 100644
index 1486f67..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationService.java
+++ /dev/null
@@ -1,145 +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 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.update.internal.ui.security;
-
-import java.util.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.ui.*;
-/**
- *
- */
-public class JarVerificationService implements IVerificationListener {
-
-	/*
-	 * The JarVerifier is a instance variable
-	 * bacause we want to reuse it upon multiple calls
-	 */
-
-	private Shell shell;
-	// keep track of the last verify code.
-	private int lastVerifyCode = -1;
-	
-	/**
-	 * Processed ContentRefernces.  They will be skipped if prompted
-	 * to verify the same reference again.
-	 */
-	private Map processed=new HashMap();
-
-	/*
-	 * If no shell, create a new shell 
-	 */
-	public JarVerificationService() {
-		this(null);
-	}
-	
-	/*
-	 * 
-	 */
-	public JarVerificationService(Shell aShell) {
-		shell = aShell;
-
-		// find the default display and get the active shell
-		if (shell == null) {
-			final Display disp = Display.getDefault();
-			if (disp == null) {
-				shell = new Shell(new Display());
-			} else {
-				disp.syncExec(new Runnable() {
-					public void run() {
-						shell = disp.getActiveShell();
-					}
-				});
-			}
-		}
-	}
-
-	/*
-	 * 
-	 */
-	private int openWizard(IVerificationResult result) {
-		int code;
-		IDialogPage page = new JarVerificationPage(result);
-		JarVerificationDialog dialog =
-				new JarVerificationDialog(shell,page,result);
-		dialog.create();
-		dialog.getShell().setSize(600, 500);
-		dialog.getShell().setText(UpdateUI.getString("JarVerificationDialog.wtitle")); //$NON-NLS-1$
-		dialog.open();
-		if (dialog.getReturnCode() == JarVerificationDialog.OK) {
-			code = CHOICE_INSTALL_TRUST_ONCE;
-		} else if (dialog.getReturnCode() == JarVerificationDialog.INSTALL_ALL) {
-			code = CHOICE_INSTALL_TRUST_ALWAYS;
-		} else { 
-			code = CHOICE_ABORT;
-		}
-		return code;
-
-	}
-
-	/*
-	 * 
-	 */
-	public int prompt(final IVerificationResult verificationResult){
-		if (!UpdateCore.getPlugin().getPluginPreferences().getBoolean(UpdateCore.P_CHECK_SIGNATURE)) 
-			return CHOICE_INSTALL_TRUST_ALWAYS;
-
-		if (verificationResult.alreadySeen()) return CHOICE_INSTALL_TRUST_ALWAYS;
-		
-		if(see(verificationResult)) return CHOICE_INSTALL_TRUST_ALWAYS;
-		
-		if (lastVerifyCode == CHOICE_INSTALL_TRUST_ALWAYS) return CHOICE_INSTALL_TRUST_ALWAYS;
-
-		switch (verificationResult.getVerificationCode()) {
-			case IVerificationResult.UNKNOWN_ERROR :
-					return CHOICE_ERROR;
-
-			case IVerificationResult.VERIFICATION_CANCELLED:
-					return CHOICE_ABORT;
-
-			// cannot verify it: do not prompt user.
-			case IVerificationResult.TYPE_ENTRY_UNRECOGNIZED: 
-				return CHOICE_INSTALL_TRUST_ALWAYS;				
-			
-			default :
-				{				
-					shell.getDisplay().syncExec(new Runnable() {
-						public void run() {
-							lastVerifyCode = openWizard(verificationResult);
-						}
-					});
-					return lastVerifyCode;
-				}
-		}
-	}
-
-	/**
-	 * Checks whether feature archive has been seen already.
-	 * Remembers the fact that archive is being seen now.
-	 * @param verificationResult
-	 * @return true if the archive has been seen before, false if first time
-	 */
-	private boolean see(final IVerificationResult verificationResult) {
-		String key = verificationResult.getFeature().getVersionedIdentifier().toString()
-			+"/"+verificationResult.getContentReference().getIdentifier(); //$NON-NLS-1$
-		Long value = new Long(verificationResult.getContentReference().getLastModified());
-		Long cachedValue = (Long)processed.get(key);
-		if(value.equals(cachedValue)){
-			return true;
-		}else{
-			processed.put(key, value);
-			return false;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/UpdateManagerAuthenticator.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/UpdateManagerAuthenticator.java
deleted file mode 100644
index 1399322..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/UpdateManagerAuthenticator.java
+++ /dev/null
@@ -1,52 +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 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.update.internal.ui.security;
-
-import java.net.*;
-
-/**
- * Update Manager Authenticator Sadly there can only be one registered per VM
- */
-public class UpdateManagerAuthenticator extends Authenticator {
-	private Authentication savedPasswordAuthentication;
-
-	/*
-	 * @see Authenticator#getPasswordAuthentication()
-	 */
-	protected PasswordAuthentication getPasswordAuthentication() {
-		// String protocol = getRequestingProtocol();
-		String host = getRequestingHost(); // can be null;
-		InetAddress address = getRequestingSite(); // can be null;
-		// int port = getRequestingPort();
-		String prompt = getRequestingPrompt(); // realm or message, not documented that can be null
-		// String scheme = getRequestingScheme(); // not documented that can be null
-
-		String hostString = host;
-		if (hostString == null && address != null) {
-			address.getHostName();
-		}
-		if (hostString == null) {
-			hostString = ""; //$NON-NLS-1$
-		}
-		String promptString = prompt;
-		if (prompt == null) {
-			promptString = ""; //$NON-NLS-1$
-		}
-
-		Authentication auth = UserValidationDialog.getAuthentication(
-				hostString, promptString);
-		if (auth != null)
-			return new PasswordAuthentication(auth.getUser(), auth
-					.getPassword().toCharArray());
-		else
-			return null;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/UserValidationDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/UserValidationDialog.java
deleted file mode 100644
index e7d46d0..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/UserValidationDialog.java
+++ /dev/null
@@ -1,162 +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 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.update.internal.ui.security;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.help.*;
-import org.eclipse.update.internal.ui.*;
-
-/**
- * User authentication dialog
- */
-public class UserValidationDialog extends Dialog {
-	protected Text usernameField;
-	protected Text passwordField;
-
-	protected String host;
-	protected String message;
-	protected Authentication userAuthentication = null;
-	/**
-	 * Gets user and password from a user. May be called from any thread
-	 * 
-	 * @return UserAuthentication that contains the userid and the password or
-	 *         <code>null</code> if the dialog has been cancelled
-	 */
-	public static Authentication getAuthentication(final String host,
-			final String message) {
-		class UIOperation implements Runnable {
-			public Authentication authentication;
-			public void run() {
-				authentication = UserValidationDialog.askForAuthentication(
-						host, message);
-			}
-		}
-
-		UIOperation uio = new UIOperation();
-		if (Display.getCurrent() != null) {
-			uio.run();
-		} else {
-			Display.getDefault().syncExec(uio);
-		}
-		return uio.authentication;
-	}
-	/**
-	 * Gets user and password from a user Must be called from UI thread
-	 * 
-	 * @return UserAuthentication that contains the userid and the password or
-	 *         <code>null</code> if the dialog has been cancelled
-	 */
-	protected static Authentication askForAuthentication(String host,
-			String message) {
-		UserValidationDialog ui = new UserValidationDialog(null, host, message); //$NON-NLS-1$
-		ui.open();
-		return ui.getAuthentication();
-	}
-	/**
-	 * Creates a new UserValidationDialog.
-	 * 
-	 * @param parentShell
-	 *            parent Shell or null
-	 */
-	protected UserValidationDialog(Shell parentShell, String host,
-			String message) {
-		super(parentShell);
-		this.host = host;
-		this.message = message;
-		setBlockOnOpen(true);
-	}
-	/**
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText(UpdateUI
-				.getString("UserVerificationDialog.PasswordRequired")); //$NON-NLS-1$
-	}
-	/**
-	 */
-	public void create() {
-		super.create();
-		//give focus to username field
-		usernameField.selectAll();
-		usernameField.setFocus();
-	}
-	/**
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite main = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		main.setLayout(layout);
-		main.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Label label = new Label(main, SWT.WRAP);
-		String text = UpdateUI.getString("UserVerificationDialog.ConnectTo") + host; //$NON-NLS-1$
-		text += "\n\n" + message; //$NON-NLS-1$ //$NON-NLS-2$
-		label.setText(text);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 3;
-		label.setLayoutData(data);
-
-		createUsernameFields(main);
-		createPasswordFields(main);
-		WorkbenchHelp.setHelp(main,
-				"org.eclipse.update.ui.UserValidationDialog"); //$NON-NLS-1$
-		return main;
-	}
-	/**
-	 * Creates the three widgets that represent the user name entry area.
-	 */
-	protected void createPasswordFields(Composite parent) {
-		new Label(parent, SWT.NONE).setText(UpdateUI
-				.getString("UserVerificationDialog.Password")); //$NON-NLS-1$
-
-		passwordField = new Text(parent, SWT.BORDER | SWT.PASSWORD);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH);
-		passwordField.setLayoutData(data);
-
-		new Label(parent, SWT.NONE); //spacer
-	}
-	/**
-	 * Creates the three widgets that represent the user name entry area.
-	 */
-	protected void createUsernameFields(Composite parent) {
-		new Label(parent, SWT.NONE).setText(UpdateUI
-				.getString("UserVerificationDialog.UserName")); //$NON-NLS-1$
-
-		usernameField = new Text(parent, SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH);
-		usernameField.setLayoutData(data);
-
-		new Label(parent, SWT.NONE); //spacer
-	}
-	/**
-	 * Returns the UserAuthentication entered by the user, or null if the user
-	 * canceled.
-	 */
-	public Authentication getAuthentication() {
-		return userAuthentication;
-	}
-	/**
-	 * Notifies that the ok button of this dialog has been pressed.
-	 */
-	protected void okPressed() {
-		userAuthentication = new Authentication(usernameField.getText(),
-				passwordField.getText());
-		super.okPressed();
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationPreview.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationPreview.java
deleted file mode 100644
index 7e0cbc4..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationPreview.java
+++ /dev/null
@@ -1,182 +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 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.update.internal.ui.views;
-import java.net.URL;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.forms.widgets.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.update.configuration.ILocalSite;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.operations.*;
-
-public class ConfigurationPreview implements IUpdateModelChangedListener {
-	private ScrolledForm form;
-	private ConfigurationView view;
-	private FormToolkit toolkit;
-	private FormText desc;
-	private FormText taskList;
-	private IPreviewTask[] tasks;
-	
-	public ConfigurationPreview(ConfigurationView view) {
-		this.view = view;
-		UpdateModel model = UpdateUI.getDefault().getUpdateModel();
-		model.addUpdateModelChangedListener(this);
-	}
-	public void dispose() {
-		UpdateModel model = UpdateUI.getDefault().getUpdateModel();
-		model.removeUpdateModelChangedListener(this);
-		toolkit.dispose();
-	}
-
-	public void objectsAdded(Object parent, Object[] children) {
-	}
-	public void objectsRemoved(Object parent, Object[] children) {
-	}
-	public void objectChanged(Object object, String property) {
-	}
-
-	public Control getControl() {
-		return form;
-	}
-
-	public void createControl(Composite parent) {
-		toolkit = new FormToolkit(parent.getDisplay());
-		form = toolkit.createScrolledForm(parent);
-		TableWrapLayout layout = new TableWrapLayout();
-		form.getBody().setLayout(layout);
-		layout.leftMargin = 10;
-		layout.rightMargin = 5;
-		layout.topMargin = 10;
-		layout.horizontalSpacing = 0;
-		layout.verticalSpacing = 20;
-		IHyperlinkListener urlAction = new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				String url = (String) e.getHref();
-				if (url != null)
-					UpdateUI.showURL(url);
-			}
-		};
-		IHyperlinkListener taskAction = new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				String indexArg = (String) e.getHref();
-				try {
-					int index = Integer.parseInt(indexArg);
-					if (tasks != null)
-						tasks[index].run();
-				} catch (NumberFormatException ex) {
-				}
-			}
-		};
-		//taskAction.setStatusLineManager(view.getConfigurationWindow().getStatusLineManager());
-		desc = toolkit.createFormText(form.getBody(), true);
-		desc.setHyperlinkSettings(toolkit.getHyperlinkGroup());
-		desc.addHyperlinkListener(urlAction);
-		desc.setText("", false, false); //$NON-NLS-1$
-		TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
-		desc.setLayoutData(td);
-		taskList = toolkit.createFormText(form.getBody(), true);
-		taskList.setHyperlinkSettings(toolkit.getHyperlinkGroup());
-		taskList.addHyperlinkListener(taskAction); //$NON-NLS-1$
-		taskList.setText("", false, false); //$NON-NLS-1$
-		//factory.setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_ROLLOVER);
-		td = new TableWrapData(TableWrapData.FILL_GRAB);
-		taskList.setLayoutData(td);
-		WorkbenchHelp.setHelp(parent, "org.eclipse.update.ui.SiteForm"); //$NON-NLS-1$
-	}
-	public void setSelection(IStructuredSelection selection) {
-		Object object = selection.getFirstElement();
-		tasks = view.getPreviewTasks(object);
-		String title = getObjectLabel(object);
-		form.setText(title);
-		String description = getObjectDescription(object);
-		boolean tags = description.startsWith("<form>"); //$NON-NLS-1$
-		desc.setText(description, tags, !tags);
-		String taskText = getTasksText();
-		taskList.setText(taskText, true, false);
-		form.reflow(true);
-	}
-	private String getObjectLabel(Object object) {
-		if (object == null)
-			return ""; //$NON-NLS-1$
-		TreeViewer viewer = view.getTreeViewer();
-		LabelProvider provider = (LabelProvider) viewer.getLabelProvider();
-		return provider.getText(object);
-	}
-	private String getObjectDescription(Object object) {
-		if (object instanceof IFeatureAdapter) {
-			return getFeatureDescription((IFeatureAdapter) object);
-		}
-		if (object instanceof IConfiguredSiteAdapter) {
-			return UpdateUI.getString("ConfigurationPreviewForm.install"); //$NON-NLS-1$
-		}
-		if (object instanceof ILocalSite) {
-			return UpdateUI
-					.getString("ConfigurationPreviewForm.configDescription"); //$NON-NLS-1$
-		}
-		return ""; //$NON-NLS-1$
-	}
-	private String getFeatureDescription(IFeatureAdapter adapter) {
-		try {
-			IFeature feature = adapter.getFeature(null);
-			IURLEntry entry = feature.getDescription();
-			if (entry != null) {
-				String text = entry.getAnnotation();
-				if (text != null) {
-					URL url = entry.getURL();
-					if (url == null)
-						return text;
-					else {
-						String link = " <a href=\"" + url //$NON-NLS-1$
-								+ "\">"+UpdateUI.getString("MoreInfoGenerator.moreInfo")+"</a>"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						String fullText = "<form><p>" + text + link //$NON-NLS-1$
-								+ "</p></form>"; //$NON-NLS-1$ //$NON-NLS-2$
-						return fullText;
-					}
-				}
-			}
-		} catch (CoreException e) {
-		}
-		return ""; //$NON-NLS-1$
-	}
-	private String getTasksText() {
-		if (tasks == null || tasks.length == 0)
-			return "<form/>"; //$NON-NLS-1$
-		boolean hasEnabledTasks = false;
-		for (int i = 0; i < tasks.length; i++) {
-			if (tasks[i].isEnabled()) {
-				hasEnabledTasks = true;
-				break;
-			}
-		}
-		if (!hasEnabledTasks)
-			return "<form/>"; //$NON-NLS-1$
-		StringBuffer buf = new StringBuffer();
-		buf.append("<form><p><b>"); //$NON-NLS-1$
-		buf.append(UpdateUI.getString("ConfigurationPreviewForm.AvailableTasks")); //$NON-NLS-1$
-		buf.append("</b></p>"); //$NON-NLS-1$
-		for (int i = 0; i < tasks.length; i++) {
-			IPreviewTask task = tasks[i];
-			if (task.isEnabled() == false)
-				continue;
-			buf.append("<li style=\"text\" indent=\"0\"><a href=\"" + i + "\">" //$NON-NLS-1$ //$NON-NLS-2$
-					+ task.getName() + "</a></li>"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			buf.append("<li style=\"text\" indent=\"10\" vspace=\"false\">" //$NON-NLS-1$
-					+ task.getDescription() + "</li>"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		buf.append("</form>"); //$NON-NLS-1$
-		return buf.toString();
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationView.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationView.java
deleted file mode 100644
index d3a702d..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationView.java
+++ /dev/null
@@ -1,1138 +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 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.update.internal.ui.views;
-import java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.operation.*;
-import org.eclipse.jface.resource.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.branding.*;
-import org.eclipse.ui.dialogs.*;
-import org.eclipse.ui.help.*;
-import org.eclipse.ui.part.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.internal.ui.parts.*;
-import org.eclipse.update.operations.*;
-import org.osgi.framework.*;
-import org.eclipse.core.runtime.Path;
-
-
-/**
- * Insert the type's description here.
- * @see ViewPart
- */
-public class ConfigurationView
-	implements
-		IInstallConfigurationChangedListener,
-		IConfiguredSiteChangedListener,
-		ILocalSiteChangedListener {
-	private TreeViewer treeViewer;
-	private DrillDownAdapter drillDownAdapter;
-	private Action collapseAllAction;
-	private static final String STATE_SHOW_UNCONF = "ConfigurationView.showUnconf"; //$NON-NLS-1$
-	private static final String STATE_SHOW_SITES = "ConfigurationView.showSites"; //$NON-NLS-1$
-	private static final String STATE_SHOW_NESTED_FEATURES =
-		"ConfigurationView.showNestedFeatures"; //$NON-NLS-1$
-
-	private Action showSitesAction;
-	private Action showNestedFeaturesAction;
-	private ReplaceVersionAction swapVersionAction;
-	private FeatureStateAction featureStateAction;
-	private UninstallFeatureAction uninstallFeatureAction;
-	private InstallOptionalFeatureAction installOptFeatureAction;
-	private Action showUnconfFeaturesAction;
-	private RevertConfigurationAction revertAction;
-	private ShowActivitiesAction showActivitiesAction;
-	private Action propertiesAction;
-	private SiteStateAction siteStateAction;
-	private Action installationHistoryAction;
-	private Action newExtensionLocationAction;
-	private FindUpdatesAction findUpdatesAction;
-	private SashForm splitter;
-	private ConfigurationPreview preview;
-	private Hashtable previewTasks;
-
-	private IUpdateModelChangedListener modelListener;
-	private boolean refreshLock = false;
-	private Image eclipseImage;
-	private boolean initialized;
-	private ConfigurationManagerWindow configurationWindow;
-
-	class ConfigurationSorter extends ViewerSorter {
-		public int category(Object obj) {
-			// sites
-			if (obj instanceof IConfiguredSiteAdapter) {
-				IConfiguredSite csite =
-					((IConfiguredSiteAdapter) obj).getConfiguredSite();
-				if (csite.isProductSite())
-					return 1;
-				if (csite.isExtensionSite())
-					return 2;
-				return 3;
-			}
-			return super.category(obj);
-		}
-	}
-
-	class LocalSiteProvider
-		extends DefaultContentProvider
-		implements ITreeContentProvider {
-		public void inputChanged(
-			Viewer viewer,
-			Object oldInput,
-			Object newInput) {
-			if (newInput == null)
-				return;
-		}
-
-		/**
-		 * @see ITreeContentProvider#getChildren(Object)
-		 */
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof UpdateModel) {
-				ILocalSite localSite = getLocalSite();
-				return (localSite != null) ? new Object[] { localSite }
-				: new Object[0];
-			}
-
-			if (parent instanceof ILocalSite) {
-				Object[] csites = openLocalSite();
-				if (showSitesAction.isChecked())
-					return csites;
-				ArrayList result = new ArrayList();
-				boolean showUnconf = showUnconfFeaturesAction.isChecked();
-				for (int i = 0; i < csites.length; i++) {
-					IConfiguredSiteAdapter adapter =
-						(IConfiguredSiteAdapter) csites[i];
-					Object[] roots = getFeatures(adapter, !showUnconf);
-					for (int j = 0; j < roots.length; j++) {
-						result.add(roots[j]);
-					}
-				}
-				return result.toArray();
-			}
-
-			if (parent instanceof IConfiguredSiteAdapter) {
-				return getFeatures(
-					(IConfiguredSiteAdapter) parent,
-					!showUnconfFeaturesAction.isChecked());
-			}
-			if (parent instanceof ConfiguredFeatureAdapter
-				&& showNestedFeaturesAction.isChecked()) {
-				IFeatureAdapter[] nested =
-					((ConfiguredFeatureAdapter) parent).getIncludedFeatures(
-						null);
-				if (showUnconfFeaturesAction.isChecked())
-					return nested;
-				ArrayList result = new ArrayList();
-				for (int i = 0; i < nested.length; i++) {
-					if (((ConfiguredFeatureAdapter) nested[i]).isConfigured())
-						result.add(nested[i]);
-				}
-				return (IFeatureAdapter[]) result.toArray(
-					new IFeatureAdapter[result.size()]);
-			}
-			return new Object[0];
-		}
-
-		public Object getParent(Object child) {
-			return null;
-		}
-		public boolean hasChildren(Object parent) {
-			if (parent instanceof ConfiguredFeatureAdapter) {
-				if (!showNestedFeaturesAction.isChecked())
-					return false;
-				IFeatureAdapter[] features =
-					((ConfiguredFeatureAdapter) parent).getIncludedFeatures(
-						null);
-
-				if (showUnconfFeaturesAction.isChecked())
-					return features.length > 0;
-
-				for (int i = 0; i < features.length; i++) {
-					if (((ConfiguredFeatureAdapter) features[i])
-						.isConfigured())
-						return true;
-				}
-				return false;
-			}
-			if (parent instanceof ConfiguredSiteAdapter) {
-				IConfiguredSite site =
-					((ConfiguredSiteAdapter) parent).getConfiguredSite();
-				if (site.isEnabled()) {
-					if (!showUnconfFeaturesAction.isChecked())
-						return site.getConfiguredFeatures().length > 0;
-					return site.getFeatureReferences().length > 0;
-				}
-				return (showUnconfFeaturesAction.isChecked());
-			}
-			return true;
-		}
-
-		public Object[] getElements(Object input) {
-			return getChildren(input);
-		}
-	}
-
-	class LocalSiteLabelProvider extends LabelProvider {
-		public String getText(Object obj) {
-			if (obj instanceof ILocalSite) {
-				IProduct product = Platform.getProduct();
-				if (product != null)
-					return product.getName();
-				return UpdateUI.getString("ConfigurationView.current"); //$NON-NLS-1$
-			}
-
-			if (obj instanceof IConfiguredSiteAdapter) {
-				IConfiguredSite csite =
-					((IConfiguredSiteAdapter) obj).getConfiguredSite();
-				ISite site = csite.getSite();
-				return new File(site.getURL().getFile()).toString();
-			}
-			if (obj instanceof IFeatureAdapter) {
-				try {
-					IFeature feature = ((IFeatureAdapter) obj).getFeature(null);
-					if (feature instanceof MissingFeature) {
-						return UpdateUI.getFormattedMessage(
-							"ConfigurationView.missingFeature", //$NON-NLS-1$
-							feature.getLabel());
-					}
-					String version =
-						feature
-							.getVersionedIdentifier()
-							.getVersion()
-							.toString();
-					String pending = ""; //$NON-NLS-1$
-					if (OperationsManager.findPendingOperation(feature)
-						!= null)
-						pending = UpdateUI.getString("ConfigurationView.pending"); //$NON-NLS-1$
-					return feature.getLabel() + " " + version + pending; //$NON-NLS-1$
-				} catch (CoreException e) {
-					return UpdateUI.getString("ConfigurationView.error"); //$NON-NLS-1$
-				}
-			}
-			return super.getText(obj);
-		}
-
-		public Image getImage(Object obj) {
-			UpdateLabelProvider provider =
-				UpdateUI.getDefault().getLabelProvider();
-			if (obj instanceof ILocalSite)
-				return eclipseImage;
-
-			if (obj instanceof ConfiguredFeatureAdapter)
-				return getFeatureImage(
-					provider,
-					(ConfiguredFeatureAdapter) obj);
-
-			if (obj instanceof IConfiguredSiteAdapter) {
-				IConfiguredSite csite =
-					((IConfiguredSiteAdapter) obj).getConfiguredSite();
-				int flags =
-					csite.isUpdatable() ? 0 : UpdateLabelProvider.F_LINKED;
-				if (!csite.isEnabled())
-					flags |= UpdateLabelProvider.F_UNCONFIGURED;
-				return provider.get(
-					provider.getLocalSiteDescriptor(csite),
-					flags);
-			}
-			return null;
-		}
-
-		private Image getFeatureImage(
-			UpdateLabelProvider provider,
-			ConfiguredFeatureAdapter adapter) {
-			try {
-				IFeature feature = adapter.getFeature(null);
-				if (feature instanceof MissingFeature) {
-					if (((MissingFeature) feature).isOptional())
-						return provider.get(
-							UpdateUIImages.DESC_NOTINST_FEATURE_OBJ);
-					return provider.get(
-						UpdateUIImages.DESC_FEATURE_OBJ,
-						UpdateLabelProvider.F_ERROR);
-				}
-
-				boolean efix = feature.isPatch();
-				ImageDescriptor baseDesc =
-					efix
-						? UpdateUIImages.DESC_EFIX_OBJ
-						: (adapter.isConfigured()
-							? UpdateUIImages.DESC_FEATURE_OBJ
-							: UpdateUIImages.DESC_UNCONF_FEATURE_OBJ);
-
-				int flags = 0;
-				if (efix && !adapter.isConfigured())
-					flags |= UpdateLabelProvider.F_UNCONFIGURED;
-				if (OperationsManager.findPendingOperation(feature) == null) {
-					ILocalSite localSite = getLocalSite();
-					if (localSite != null) {
-						int code =
-							getStatusCode(
-								feature,
-								localSite.getFeatureStatus(feature));
-						switch (code) {
-							case IFeature.STATUS_UNHAPPY :
-								flags |= UpdateLabelProvider.F_ERROR;
-								break;
-							case IFeature.STATUS_AMBIGUOUS :
-								flags |= UpdateLabelProvider.F_WARNING;
-								break;
-							default :
-								if (adapter.isConfigured()
-									&& adapter.isUpdated())
-									flags |= UpdateLabelProvider.F_UPDATED;
-								break;
-						}
-					}
-				}
-				return provider.get(baseDesc, flags);
-			} catch (CoreException e) {
-				return provider.get(
-					UpdateUIImages.DESC_FEATURE_OBJ,
-					UpdateLabelProvider.F_ERROR);
-			}
-		}
-	}
-
-	class PreviewTask implements IPreviewTask {
-		private String name;
-		private String desc;
-		private IAction action;
-		public PreviewTask(String name, String desc, IAction action) {
-			this.name = name;
-			this.desc = desc;
-			this.action = action;
-		}
-		public IAction getAction() {
-			return action;
-		}
-		public String getName() {
-			if (name != null)
-				return name;
-			return action.getText();
-		}
-		public String getDescription() {
-			return desc;
-		}
-		public void setDescription(String desc) {
-			this.desc = desc;
-		}
-		public void run() {
-			action.run();
-		}
-		public boolean isEnabled() {
-			return action.isEnabled();
-		}
-	}
-
-	public ConfigurationView(ConfigurationManagerWindow window) {
-		UpdateUI.getDefault().getLabelProvider().connect(this);
-		initializeImages();
-		configurationWindow=window;
-	}
-
-	private void initializeImages() {
-		ImageDescriptor edesc = UpdateUIImages.DESC_APP_OBJ;
-		IProduct product = Platform.getProduct();
-		if (product != null) {
-			String windowImageURL = product.getProperty(IProductConstants.WINDOW_IMAGE);
-			if (windowImageURL == null) {
-				String windowImagesUrls = product.getProperty(IProductConstants.WINDOW_IMAGES);
-				if (windowImagesUrls != null ) {
-					StringTokenizer st = new StringTokenizer(windowImagesUrls, ","); //$NON-NLS-1$
-					if (st.hasMoreTokens())
-						windowImageURL = st.nextToken();
-				}
-			}
-			if (windowImageURL != null)
-				try {
-					edesc = ImageDescriptor.createFromURL(new URL(windowImageURL));
-				} catch (MalformedURLException e) {
-					// must be a path relative to the product bundle
-					Bundle productBundle = product.getDefiningBundle();
-					if (productBundle != null) { 
-						URL url = Platform.find(productBundle, new Path(windowImageURL));
-						if (url != null)
-							edesc = ImageDescriptor.createFromURL(url);
-					}
-				}
-		}
-		eclipseImage = UpdateUI.getDefault().getLabelProvider().get(edesc);
-	}
-
-	public void initProviders() {
-		treeViewer.setContentProvider(new LocalSiteProvider());
-		treeViewer.setLabelProvider(new LocalSiteLabelProvider());
-		treeViewer.setInput(UpdateUI.getDefault().getUpdateModel());
-		treeViewer.setSorter(new ConfigurationSorter());
-		ILocalSite localSite = getLocalSite();
-		if (localSite != null)
-			localSite.addLocalSiteChangedListener(this);
-
-		modelListener = new IUpdateModelChangedListener() {
-			public void objectsAdded(Object parent, Object[] children) {
-			}
-			public void objectsRemoved(Object parent, Object[] children) {
-			}
-			public void objectChanged(final Object obj, String property) {
-				if (refreshLock)
-					return;
-				Control control = getControl();
-				if (!control.isDisposed()) {
-					control.getDisplay().asyncExec(new Runnable() {
-						public void run() {
-							treeViewer.refresh();
-							handleSelectionChanged(
-								(IStructuredSelection) treeViewer
-									.getSelection());
-						}
-					});
-				}
-			}
-		};
-		OperationsManager.addUpdateModelChangedListener(modelListener);
-		WorkbenchHelp.setHelp(
-			getControl(),
-			"org.eclipse.update.ui.ConfigurationView"); //$NON-NLS-1$
-	}
-
-	private ILocalSite getLocalSite() {
-		try {
-			return SiteManager.getLocalSite();
-		} catch (CoreException e) {
-			UpdateUI.logException(e);
-			return null;
-		}
-	}
-
-	private Object[] openLocalSite() {
-		final Object[][] bag = new Object[1][];
-		BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
-			public void run() {
-				ILocalSite localSite = getLocalSite();
-				if (localSite == null)
-					return;
-				IInstallConfiguration config =
-					getLocalSite().getCurrentConfiguration();
-				IConfiguredSite[] sites = config.getConfiguredSites();
-				Object[] result = new Object[sites.length];
-				for (int i = 0; i < sites.length; i++) {
-					result[i] = new ConfiguredSiteAdapter(config, sites[i]);
-				}
-				if (!initialized) {
-					config.addInstallConfigurationChangedListener(
-						ConfigurationView.this);
-					initialized = true;
-				}
-				bag[0] = result;
-			}
-		});
-		return bag[0];
-	}
-
-	public void dispose() {
-		UpdateUI.getDefault().getLabelProvider().disconnect(this);
-		if (initialized) {
-			ILocalSite localSite = getLocalSite();
-			if (localSite != null) {
-				localSite.removeLocalSiteChangedListener(this);
-				IInstallConfiguration config =
-					localSite.getCurrentConfiguration();
-				config.removeInstallConfigurationChangedListener(this);
-			}
-			initialized = false;
-		}
-		OperationsManager.removeUpdateModelChangedListener(modelListener);
-		if (preview != null)
-			preview.dispose();
-		//super.dispose();
-	}
-
-	protected void makeActions() {
-		collapseAllAction = new Action() {
-			public void run() {
-				treeViewer.getControl().setRedraw(false);
-				treeViewer.collapseToLevel(
-					treeViewer.getInput(),
-					TreeViewer.ALL_LEVELS);
-				treeViewer.getControl().setRedraw(true);
-			}
-		};
-		collapseAllAction.setText(UpdateUI.getString("ConfigurationView.collapseLabel")); //$NON-NLS-1$
-		collapseAllAction.setToolTipText(UpdateUI.getString("ConfigurationView.collapseTooltip")); //$NON-NLS-1$
-		collapseAllAction.setImageDescriptor(UpdateUIImages.DESC_COLLAPSE_ALL);
-
-		drillDownAdapter = new DrillDownAdapter(treeViewer);
-
-		featureStateAction = new FeatureStateAction(this);
-
-		siteStateAction = new SiteStateAction(getConfigurationWindow().getShell());
-
-		revertAction = new RevertConfigurationAction(getConfigurationWindow().getShell(),UpdateUI.getString("ConfigurationView.revertLabel")); //$NON-NLS-1$
-		WorkbenchHelp.setHelp(
-			revertAction,
-			"org.eclipse.update.ui.CofigurationView_revertAction"); //$NON-NLS-1$
-
-		installationHistoryAction =
-			new InstallationHistoryAction(getConfigurationWindow().getShell(),
-				UpdateUI.getString("ConfigurationView.installHistory"), //$NON-NLS-1$
-				UpdateUIImages.DESC_HISTORY_OBJ);
-		installationHistoryAction.setToolTipText(installationHistoryAction.getText());
-		
-		newExtensionLocationAction =
-			new NewExtensionLocationAction(getConfigurationWindow().getShell(),
-				UpdateUI.getString("ConfigurationView.extLocation"), //$NON-NLS-1$
-				UpdateUIImages.DESC_ESITE_OBJ);
-		
-		propertiesAction =
-			new PropertyDialogAction(
-				getConfigurationWindow().getShell(),
-				treeViewer);
-		WorkbenchHelp.setHelp(
-			propertiesAction,
-			"org.eclipse.update.ui.CofigurationView_propertiesAction"); //$NON-NLS-1$
-
-		uninstallFeatureAction = new UninstallFeatureAction(getConfigurationWindow().getShell(), UpdateUI.getString("ConfigurationView.uninstall")); //$NON-NLS-1$
-
-		installOptFeatureAction =
-			new InstallOptionalFeatureAction(
-				getControl().getShell(),
-				UpdateUI.getString("ConfigurationView.install")); //$NON-NLS-1$
-
-		swapVersionAction = new ReplaceVersionAction(getConfigurationWindow().getShell(), UpdateUI.getString("ConfigurationView.anotherVersion")); //$NON-NLS-1$
-
-		findUpdatesAction =
-			new FindUpdatesAction(getControl().getShell(), UpdateUI.getString("ConfigurationView.findUpdates")); //$NON-NLS-1$
-
-		showActivitiesAction = new ShowActivitiesAction(getControl().getShell(), UpdateUI.getString("ConfigurationView.showActivitiesLabel")); //$NON-NLS-1$
-		WorkbenchHelp.setHelp(
-			showActivitiesAction,
-			"org.eclipse.update.ui.CofigurationView_showActivitiesAction"); //$NON-NLS-1$
-
-		makeShowUnconfiguredFeaturesAction();
-		makeShowSitesAction();
-		makeShowNestedFeaturesAction();
-		makePreviewTasks();
-		configurationWindow.setPropertiesActionHandler(propertiesAction);
-	}
-
-	private void makeShowNestedFeaturesAction() {
-		final Preferences pref = UpdateUI.getDefault().getPluginPreferences();
-		pref.setDefault(STATE_SHOW_NESTED_FEATURES, true);
-		showNestedFeaturesAction = new Action() {
-			public void run() {
-				treeViewer.refresh();
-				pref.setValue(
-					STATE_SHOW_NESTED_FEATURES,
-					showNestedFeaturesAction.isChecked());
-			}
-		};
-		showNestedFeaturesAction.setText(UpdateUI.getString("ConfigurationView.showNestedFeatures")); //$NON-NLS-1$
-		showNestedFeaturesAction.setImageDescriptor(
-			UpdateUIImages.DESC_SHOW_HIERARCHY);
-		showNestedFeaturesAction.setDisabledImageDescriptor(
-			UpdateUIImages.DESC_SHOW_HIERARCHY_D);
-
-		showNestedFeaturesAction.setChecked(
-			pref.getBoolean(STATE_SHOW_NESTED_FEATURES));
-		showNestedFeaturesAction.setToolTipText(UpdateUI.getString("ConfigurationView.showNestedTooltip")); //$NON-NLS-1$
-	}
-
-	private void makeShowSitesAction() {
-		final Preferences pref = UpdateUI.getDefault().getPluginPreferences();
-		pref.setDefault(STATE_SHOW_SITES, true);
-		showSitesAction = new Action() {
-			public void run() {
-				treeViewer.refresh();
-				pref.setValue(STATE_SHOW_SITES, showSitesAction.isChecked());
-				UpdateUI.getDefault().savePluginPreferences();
-			}
-		};
-		showSitesAction.setText(UpdateUI.getString("ConfigurationView.showInstall")); //$NON-NLS-1$
-		showSitesAction.setImageDescriptor(UpdateUIImages.DESC_LSITE_OBJ);
-		showSitesAction.setChecked(pref.getBoolean(STATE_SHOW_SITES));
-		showSitesAction.setToolTipText(UpdateUI.getString("ConfigurationView.showInstallTooltip")); //$NON-NLS-1$
-	}
-
-	private void makeShowUnconfiguredFeaturesAction() {
-		final Preferences pref = UpdateUI.getDefault().getPluginPreferences();
-		pref.setDefault(STATE_SHOW_UNCONF, false);
-		showUnconfFeaturesAction = new Action() {
-			public void run() {
-				pref.setValue(
-					STATE_SHOW_UNCONF,
-					showUnconfFeaturesAction.isChecked());
-				UpdateUI.getDefault().savePluginPreferences();
-				treeViewer.refresh();
-			}
-		};
-		WorkbenchHelp.setHelp(
-			showUnconfFeaturesAction,
-			"org.eclipse.update.ui.CofigurationView_showUnconfFeaturesAction"); //$NON-NLS-1$
-		showUnconfFeaturesAction.setText(UpdateUI.getString("ConfigurationView.showDisabled")); //$NON-NLS-1$
-		showUnconfFeaturesAction.setImageDescriptor(
-			UpdateUIImages.DESC_UNCONF_FEATURE_OBJ);
-		showUnconfFeaturesAction.setChecked(pref.getBoolean(STATE_SHOW_UNCONF));
-		showUnconfFeaturesAction.setToolTipText(UpdateUI.getString("ConfigurationView.showDisabledTooltip")); //$NON-NLS-1$
-	}
-
-	protected void fillActionBars(ToolBarManager tbm) {
-		tbm.add(showSitesAction);
-		tbm.add(showNestedFeaturesAction);
-		tbm.add(showUnconfFeaturesAction);
-		tbm.add(new Separator());
-		drillDownAdapter.addNavigationActions(tbm);
-		tbm.add(new Separator());
-		tbm.add(collapseAllAction);
-		tbm.add(new Separator());
-		tbm.add(installationHistoryAction);
-	}
-
-	protected Object getSelectedObject() {
-		ISelection selection = treeViewer.getSelection();
-		if (selection instanceof IStructuredSelection
-			&& !selection.isEmpty()) {
-			IStructuredSelection ssel = (IStructuredSelection) selection;
-			if (ssel.size() == 1)
-				return ssel.getFirstElement();
-		}
-		return null;
-	}
-
-	protected void fillContextMenu(IMenuManager manager) {
-		Object obj = getSelectedObject();
-
-		if (obj instanceof ILocalSite) {
-			manager.add(findUpdatesAction);
-			manager.add(revertAction);
-		} else if (obj instanceof IConfiguredSiteAdapter) {
-			manager.add(siteStateAction);
-		}
-
-		if (obj instanceof ILocalSite
-			|| obj instanceof IConfiguredSiteAdapter) {
-			manager.add(new Separator());
-			MenuManager mgr = new MenuManager(UpdateUI.getString("ConfigurationView.new")); //$NON-NLS-1$
-			mgr.add(newExtensionLocationAction);
-			manager.add(mgr);
-			manager.add(new Separator());
-		} else if (obj instanceof ConfiguredFeatureAdapter) {
-			try {
-				MenuManager mgr = new MenuManager(UpdateUI.getString("ConfigurationView.replaceWith")); //$NON-NLS-1$
-				
-				manager.add(findUpdatesAction);
-				manager.add(new Separator());
-				
-				mgr.add(swapVersionAction);
-				manager.add(mgr);
-
-				manager.add(featureStateAction);
-
-				IFeature feature =
-					((ConfiguredFeatureAdapter) obj).getFeature(null);
-				if (feature instanceof MissingFeature) {
-					manager.add(installOptFeatureAction);
-				} else {
-					manager.add(uninstallFeatureAction);
-				}
-				manager.add(new Separator());
-
-			} catch (CoreException e) {
-			}
-		}
-
-		drillDownAdapter.addNavigationActions(manager);
-
-		if (obj instanceof ILocalSite) {
-			manager.add(new Separator());
-			manager.add(installationHistoryAction);
-		}
-
-		if (obj instanceof IFeatureAdapter
-			|| obj instanceof ILocalSite
-			|| obj instanceof IConfiguredSiteAdapter) {
-			manager.add(new Separator());
-			manager.add(propertiesAction);
-		}
-	}
-
-	public void installSiteAdded(IConfiguredSite csite) {
-		asyncRefresh();
-	}
-	public void installSiteRemoved(IConfiguredSite site) {
-		asyncRefresh();
-	}
-	public void featureInstalled(IFeature feature) {
-		asyncRefresh();
-	}
-	public void featureRemoved(IFeature feature) {
-		asyncRefresh();
-	}
-	public void featureConfigured(IFeature feature) {
-	}
-
-	public void featureUnconfigured(IFeature feature) {
-	}
-
-	public void currentInstallConfigurationChanged(IInstallConfiguration configuration) {
-		asyncRefresh();
-	}
-
-	public void installConfigurationRemoved(IInstallConfiguration configuration) {
-		asyncRefresh();
-	}
-
-	private void asyncRefresh() {
-		Display display = SWTUtil.getStandardDisplay();
-		if (display == null)
-			return;
-		if (getControl().isDisposed())
-			return;
-		display.asyncExec(new Runnable() {
-			public void run() {
-				if (!getControl().isDisposed())
-					treeViewer.refresh();
-			}
-		});
-	}
-
-	private Object[] getFeatures(
-		final IConfiguredSiteAdapter siteAdapter,
-		final boolean configuredOnly) {
-		final IConfiguredSite csite = siteAdapter.getConfiguredSite();
-		final Object[][] bag = new Object[1][];
-		refreshLock = true;
-
-		IRunnableWithProgress op = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) {
-				ArrayList result = new ArrayList();
-				IFeatureReference[] refs;
-
-				if (configuredOnly)
-					refs = csite.getConfiguredFeatures();
-				else {
-					ISite site = csite.getSite();
-					refs = site.getFeatureReferences();
-				}
-				monitor.beginTask(
-					UpdateUI.getString("ConfigurationView.loading"), //$NON-NLS-1$
-					refs.length);
-
-				for (int i = 0; i < refs.length; i++) {
-					IFeatureReference ref = refs[i];
-					IFeature feature;
-					try {
-						monitor.subTask(ref.getURL().toString());
-						feature = ref.getFeature(null);
-					} catch (CoreException e) {
-						feature =
-							new MissingFeature(ref.getSite(), ref.getURL());
-					}
-					monitor.worked(1);
-					result.add(
-						new ConfiguredFeatureAdapter(
-							siteAdapter,
-							feature,
-							csite.isConfigured(feature),
-							false,
-							false));
-				}
-				monitor.done();
-				bag[0] = getRootFeatures(result);
-			}
-		};
-
-		try {
-			if (configurationWindow.getShell().isVisible())
-				configurationWindow.run(true, false, op);
-			else
-				op.run(new NullProgressMonitor());
-		} catch (InterruptedException e) {
-		} catch (InvocationTargetException e) {
-		} finally {
-			refreshLock = false;
-		}
-		return bag[0];
-	}
-
-	private Object[] getRootFeatures(ArrayList list) {
-		ArrayList children = new ArrayList();
-		ArrayList result = new ArrayList();
-		try {
-			for (int i = 0; i < list.size(); i++) {
-				ConfiguredFeatureAdapter cf =
-					(ConfiguredFeatureAdapter) list.get(i);
-				IFeature feature = cf.getFeature(null);
-				if (feature != null)
-					addChildFeatures(
-						feature,
-						children,
-						cf.isConfigured());
-			}
-			for (int i = 0; i < list.size(); i++) {
-				ConfiguredFeatureAdapter cf =
-					(ConfiguredFeatureAdapter) list.get(i);
-				IFeature feature = cf.getFeature(null);
-				if (feature != null
-					&& isChildFeature(feature, children) == false)
-					result.add(cf);
-			}
-		} catch (CoreException e) {
-			return list.toArray();
-		}
-		return result.toArray();
-	}
-
-	private void addChildFeatures(
-		IFeature feature,
-		ArrayList children,
-		boolean configured) {
-		try {
-			IIncludedFeatureReference[] included =
-				feature.getIncludedFeatureReferences();
-			for (int i = 0; i < included.length; i++) {
-				IFeature childFeature;
-				try {
-					childFeature =
-						included[i].getFeature(null);
-				} catch (CoreException e) {
-					childFeature = new MissingFeature(included[i]);
-				}
-				children.add(childFeature);
-			}
-		} catch (CoreException e) {
-			UpdateUI.logException(e);
-		}
-	}
-
-	private boolean isChildFeature(IFeature feature, ArrayList children) {
-		for (int i = 0; i < children.size(); i++) {
-			IFeature child = (IFeature) children.get(i);
-			if (feature
-				.getVersionedIdentifier()
-				.equals(child.getVersionedIdentifier()))
-				return true;
-		}
-		return false;
-	}
-
-	protected void handleDoubleClick(DoubleClickEvent e) {
-		if (e.getSelection() instanceof IStructuredSelection) {
-			IStructuredSelection ssel = (IStructuredSelection) e.getSelection();
-			Object obj = ssel.getFirstElement();
-			if (obj!=null)
-				propertiesAction.run();
-		}
-	}
-
-	public void createPartControl(Composite parent) {
-		splitter = new SashForm(parent, SWT.HORIZONTAL);
-		splitter.setLayoutData(new GridData(GridData.FILL_BOTH));
-		Composite leftContainer = createLineContainer(splitter);
-		Composite rightContainer = createLineContainer(splitter);
-		createTreeViewer(leftContainer);
-		makeActions();
-		createVerticalLine(leftContainer);
-		createVerticalLine(rightContainer);
-		preview = new ConfigurationPreview(this);
-		preview.createControl(rightContainer);
-		preview.getControl().setLayoutData(
-			new GridData(GridData.FILL_BOTH));
-		splitter.setWeights(new int[] { 2, 3 });
-		fillActionBars(getConfigurationWindow().getToolBarManager());
-
-		treeViewer.expandToLevel(2);
-	}
-
-	private void createTreeViewer(Composite parent) {
-		treeViewer =
-			new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		treeViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-		treeViewer.setUseHashlookup(true);
-		initProviders();
-
-		MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				manager.add(new GroupMarker("additions")); //$NON-NLS-1$
-				fillContextMenu(manager);
-			}
-		});
-
-		treeViewer.getControl().setMenu(
-			menuMgr.createContextMenu(treeViewer.getControl()));
-
-		treeViewer
-			.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				handleSelectionChanged(event);
-			}
-		});
-
-		treeViewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				handleDoubleClick(event);
-			}
-		});
-
-	}
-
-	public TreeViewer getTreeViewer() {
-		return treeViewer;
-	}
-
-	private Composite createLineContainer(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = layout.marginHeight = 0;
-		layout.horizontalSpacing = 0;
-		container.setLayout(layout);
-		return container;
-	}
-
-	private void createVerticalLine(Composite parent) {
-		Label line = new Label(parent, SWT.SEPARATOR | SWT.VERTICAL);
-		GridData gd = new GridData(GridData.VERTICAL_ALIGN_FILL);
-		gd.widthHint = 1;
-		line.setLayoutData(gd);
-	}
-
-	public Control getControl() {
-		return splitter;
-	}
-
-	private int getStatusCode(IFeature feature, IStatus status) {
-		int code = status.getCode();
-		if (code == IFeature.STATUS_UNHAPPY) {
-			if (status.isMultiStatus()) {
-				IStatus[] children = status.getChildren();
-				for (int i = 0; i < children.length; i++) {
-					IStatus child = children[i];
-					if (child.isMultiStatus()
-						|| child.getCode() != IFeature.STATUS_DISABLED)
-						return code;
-				}
-				// If we are here, global status is unhappy
-				// because one or more included features
-				// is disabled.
-				if (UpdateUtils.hasObsoletePatches(feature)) {
-					// The disabled included features
-					// are old patches that are now
-					// subsumed by better versions of
-					// the features they were designed to
-					// patch.
-					return IFeature.STATUS_HAPPY;
-				}
-			}
-		}
-		return code;
-	}
-
-	protected void handleSelectionChanged(IStructuredSelection ssel) {
-		Object obj = ssel.getFirstElement();
-		if (obj instanceof IFeatureAdapter) {
-			try {
-				propertiesAction.setEnabled(true);
-				
-				ConfiguredFeatureAdapter adapter = (ConfiguredFeatureAdapter) obj;
-				IFeature feature = adapter.getFeature(null);
-				
-				boolean missing = feature instanceof MissingFeature;
-				boolean enable = !missing && ((adapter.isOptional() || !adapter.isIncluded()));
-
-				featureStateAction.setFeature(adapter);
-				featureStateAction.setEnabled(enable);
-				
-				uninstallFeatureAction.setFeature(adapter);
-				uninstallFeatureAction.setEnabled(enable && uninstallFeatureAction.canUninstall());
-				if (adapter.isConfigured())
-					setDescriptionOnTask(uninstallFeatureAction, adapter,UpdateUI.getString("ConfigurationView.uninstallDesc2"));
-				else
-					setDescriptionOnTask(uninstallFeatureAction, adapter,UpdateUI.getString("ConfigurationView.uninstallDesc"));
-
-				if (enable && adapter.isConfigured()) {
-					IFeature[] features = UpdateUtils.getInstalledFeatures(feature, false);
-					swapVersionAction.setEnabled(features.length > 1);
-					if (features.length > 1) {
-						swapVersionAction.setCurrentFeature(feature);
-						swapVersionAction.setFeatures(features);
-					}
-					findUpdatesAction.setEnabled(true);
-					findUpdatesAction.setFeature(feature);
-				} else {
-					swapVersionAction.setEnabled(false);
-					findUpdatesAction.setEnabled(false);
-				}
-
-				if (missing) {
-					MissingFeature mf = (MissingFeature) feature;
-					installOptFeatureAction.setEnabled(
-						mf.isOptional() && mf.getOriginatingSiteURL() != null);
-					installOptFeatureAction.setFeature(mf);
-				} else {
-					installOptFeatureAction.setEnabled(false);
-				}
-			} catch (CoreException ex) {
-				UpdateUI.logException(ex);
-			}
-		}
-		if (obj instanceof ILocalSite) {
-			propertiesAction.setEnabled(true);
-			findUpdatesAction.setEnabled(true);
-			findUpdatesAction.setFeature(null);
-			ILocalSite site = getLocalSite();
-			revertAction.setEnabled(site != null && site.getConfigurationHistory().length > 1);
-		} else if (obj instanceof IConfiguredSiteAdapter) {
-			siteStateAction.setSite(
-				((IConfiguredSiteAdapter) obj).getConfiguredSite());
-			siteStateAction.setEnabled(true);
-		}
-		preview.setSelection(ssel);
-	}
-
-	protected void handleSelectionChanged(SelectionChangedEvent e) {
-		handleSelectionChanged(((IStructuredSelection) e.getSelection()));
-	}
-
-	private void setDescriptionOnTask(IAction action, ConfiguredFeatureAdapter adapter, String desc) {
-		IPreviewTask[] tasks = getPreviewTasks(adapter);
-		if (tasks == null)
-			return;
-		for (int i=0; i<tasks.length; i++)
-			if (tasks[i].getAction() == action)
-				tasks[i].setDescription(desc);
-	}
-	
-	private void makePreviewTasks() {
-		previewTasks = new Hashtable();
-		Class key;
-		ArrayList array = new ArrayList();
-		// local site tasks
-		key = ILocalSite.class;
-		array.add(
-			new PreviewTask(
-				UpdateUI.getString("ConfigurationView.updateLabel"), //$NON-NLS-1$
-				UpdateUI.getString("ConfigurationView.updateDesc"), //$NON-NLS-1$
-				findUpdatesAction));
-		array.add(
-			new PreviewTask(
-				UpdateUI.getString("ConfigurationView.installHistLabel"), //$NON-NLS-1$
-				UpdateUI.getString("ConfigurationView.installHistDesc"), //$NON-NLS-1$
-				installationHistoryAction));
-		array.add(
-			new PreviewTask(
-				UpdateUI.getString("ConfigurationView.activitiesLabel"), //$NON-NLS-1$
-				UpdateUI.getString("ConfigurationView.activitiesDesc"), //$NON-NLS-1$
-				showActivitiesAction));
-		array.add(
-				new PreviewTask(
-					UpdateUI.getString("ConfigurationView.extLocLabel"), //$NON-NLS-1$
-					UpdateUI.getString("ConfigurationView.extLocDesc"), //$NON-NLS-1$
-					newExtensionLocationAction));
-		array.add(
-				new PreviewTask(
-					UpdateUI.getString("ConfigurationView.revertPreviousLabel"), //$NON-NLS-1$
-					UpdateUI.getString("ConfigurationView.revertPreviousDesc"), //$NON-NLS-1$
-					revertAction));
-
-		previewTasks.put(key, array.toArray(new IPreviewTask[array.size()]));
-
-		// configured site tasks
-		array.clear();
-		key = IConfiguredSiteAdapter.class;
-		array.add(
-			new PreviewTask(
-				null,
-				UpdateUI.getString("ConfigurationView.enableLocDesc"), //$NON-NLS-1$
-				siteStateAction));
-		array.add(
-			new PreviewTask(
-				UpdateUI.getString("ConfigurationView.extLocLabel"), //$NON-NLS-1$
-				UpdateUI.getString("ConfigurationView.extLocDesc"), //$NON-NLS-1$
-				newExtensionLocationAction));
-		array.add(
-			new PreviewTask(
-				UpdateUI.getString("ConfigurationView.propertiesLabel"), //$NON-NLS-1$
-				UpdateUI.getString("ConfigurationView.installPropDesc"), //$NON-NLS-1$
-				propertiesAction));
-		previewTasks.put(key, array.toArray(new IPreviewTask[array.size()]));
-
-		// feature adapter tasks
-		array.clear();
-		key = IFeatureAdapter.class;
-		array.add(
-				new PreviewTask(
-					UpdateUI.getString("ConfigurationView.scanLabel"), //$NON-NLS-1$
-					UpdateUI.getString("ConfigurationView.scanDesc"), //$NON-NLS-1$
-					findUpdatesAction));
-		array.add(
-			new PreviewTask(
-				UpdateUI.getString("ConfigurationView.replaceVersionLabel"), //$NON-NLS-1$
-				UpdateUI.getString("ConfigurationView.replaceVersionDesc"), //$NON-NLS-1$
-				swapVersionAction));
-		array.add(
-			new PreviewTask(
-				null,
-				UpdateUI.getString("ConfigurationView.enableFeatureDesc"), //$NON-NLS-1$
-				featureStateAction));
-		array.add(
-			new PreviewTask(
-				UpdateUI.getString("ConfigurationView.installOptionalLabel"), //$NON-NLS-1$
-				UpdateUI.getString("ConfigurationView.installOptionalDesc"), //$NON-NLS-1$
-				installOptFeatureAction));
-		array.add(
-			new PreviewTask(
-				UpdateUI.getString("ConfigurationView.uninstallLabel"), //$NON-NLS-1$
-				UpdateUI.getString("ConfigurationView.uninstallDesc"), //$NON-NLS-1$
-				uninstallFeatureAction));
-		array.add(
-			new PreviewTask(
-				UpdateUI.getString("ConfigurationView.featurePropLabel"), //$NON-NLS-1$
-				UpdateUI.getString("ConfigurationView.featurePropDesc"), //$NON-NLS-1$
-				propertiesAction));
-		previewTasks.put(key, array.toArray(new IPreviewTask[array.size()]));
-	}
-
-	public IPreviewTask[] getPreviewTasks(Object object) {
-		IPreviewTask[] tasks = null;
-
-		if (object instanceof IFeatureAdapter)
-			tasks = (IPreviewTask[]) previewTasks.get(IFeatureAdapter.class);
-		if (object instanceof ILocalSite)
-			tasks = (IPreviewTask[]) previewTasks.get(ILocalSite.class);
-		if (object instanceof IConfiguredSiteAdapter)
-			tasks =
-				(IPreviewTask[]) previewTasks.get(IConfiguredSiteAdapter.class);
-		return (tasks != null) ? tasks : new IPreviewTask[0];
-	}
-
-	ConfigurationManagerWindow getConfigurationWindow(){
-		return configurationWindow;
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FeatureStateAction.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FeatureStateAction.java
deleted file mode 100644
index 89c1eed..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FeatureStateAction.java
+++ /dev/null
@@ -1,96 +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 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.update.internal.ui.views;
-
-import java.lang.reflect.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.operations.*;
-
-public class FeatureStateAction extends Action {
-	private ConfiguredFeatureAdapter adapter;
-    private ConfigurationView parent;
-
-    public FeatureStateAction(ConfigurationView parent) {
-        this.parent = parent;
-    }
-    
-	public void setFeature(ConfiguredFeatureAdapter adapter) {
-		this.adapter = adapter;
-		if (adapter.isConfigured()) {
-			setText(UpdateUI.getString("FeatureStateAction.disable")); //$NON-NLS-1$
-		} else {
-			setText(UpdateUI.getString("FeatureStateAction.enable")); //$NON-NLS-1$
-		}
-	}
-
-	public void run() {
-		try {
-			if (adapter == null)
-				return;
-			
-			IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-			if (status != null)
-				throw new CoreException(status);
-			
-			boolean isConfigured = adapter.isConfigured();
-			// Ask user to confirm the operation
-			String message =
-				isConfigured
-					? UpdateUI.getString("FeatureStateAction.disableQuestion") //$NON-NLS-1$
-					: UpdateUI.getString("FeatureStateAction.EnableQuestion"); //$NON-NLS-1$
-
-			if (!confirm(message))
-				return;
-
-			// If current config is broken, confirm with the user to continue
-			if (OperationsManager.getValidator().validateCurrentState() != null &&
-					!confirm(UpdateUI.getString("Actions.brokenConfigQuestion"))) //$NON-NLS-1$
-				return;
-			
-			IOperation toggleOperation =
-				isConfigured
-					? (IOperation)OperationsManager
-						.getOperationFactory()
-						.createUnconfigOperation(
-						adapter.getConfiguredSite(),
-						adapter.getFeature(null))
-					: OperationsManager
-						.getOperationFactory()
-						.createConfigOperation(
-						adapter.getConfiguredSite(),
-						adapter.getFeature(null));
-
-			boolean restartNeeded = toggleOperation.execute(null, null);
-			UpdateUI.requestRestart(restartNeeded);
-
-		} catch (CoreException e) {
-			ErrorDialog.openError(parent.getConfigurationWindow().getShell(),
-                    null, null, e.getStatus());
-		} catch (InvocationTargetException e) {
-			// This should not happen
-			UpdateUtils.logException(e.getTargetException());
-		}
-	}
-
-	private boolean confirm(String message) {
-		return MessageDialog.openConfirm(
-            parent.getConfigurationWindow().getShell(),
-			UpdateUI.getString("FeatureStateAction.dialogTitle"), //$NON-NLS-1$
-			message);
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FindUpdatesAction.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FindUpdatesAction.java
deleted file mode 100644
index eef5e14..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FindUpdatesAction.java
+++ /dev/null
@@ -1,79 +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 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.update.internal.ui.views;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.wizard.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.wizards.*;
-import org.eclipse.update.operations.*;
-import org.eclipse.update.search.*;
-
-public class FindUpdatesAction extends Action {
-
-	private IFeature feature;
-	private Shell shell;
-
-	public FindUpdatesAction(Shell shell, String text) {
-		super(text);
-		this.shell = shell;
-	}
-	
-	public void setFeature(IFeature feature) {
-		this.feature = feature;
-	}
-
-	public void run() {
-		
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			ErrorDialog.openError(shell, null, null, status);
-			return;
-		}
-		
-		// If current config is broken, confirm with the user to continue
-		if (OperationsManager.getValidator().validateCurrentState() != null &&
-				!confirm(UpdateUI.getString("Actions.brokenConfigQuestion"))) //$NON-NLS-1$
-			return;
-			
-		if (InstallWizard.isRunning()) {
-			MessageDialog.openInformation(shell, UpdateUI.getString("InstallWizard.isRunningTitle"), UpdateUI.getString("InstallWizard.isRunningInfo"));
-			return;
-		}
-		
-		IFeature [] features=null;
-		if (feature!=null)
-			features = new IFeature[] { feature };
-		final UpdateSearchRequest searchRequest = UpdateUtils.createNewUpdatesRequest(features);
-
-		BusyIndicator.showWhile(shell.getDisplay(), new Runnable() {
-			public void run() {
-				InstallWizard wizard = new InstallWizard(searchRequest);
-				WizardDialog dialog = new ResizableInstallWizardDialog(shell, wizard, UpdateUI.getString("FindUpdatesAction.updates")); //$NON-NLS-1$
-				dialog.create();
-				dialog.open();				
-			}
-		});
-	}
-	
-	private boolean confirm(String message) {
-		return MessageDialog.openConfirm(
-			shell,
-			UpdateUI.getString("FeatureStateAction.dialogTitle"), //$NON-NLS-1$
-			message);
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/IPreviewTask.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/IPreviewTask.java
deleted file mode 100644
index a05c520..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/IPreviewTask.java
+++ /dev/null
@@ -1,22 +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 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.update.internal.ui.views;
-
-import org.eclipse.jface.action.*;
-
-public interface IPreviewTask {
-	String getName();
-	String getDescription();
-	void run();
-	boolean isEnabled();
-	void setDescription(String desc);
-	IAction getAction();
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/InstallOptionalFeatureAction.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/InstallOptionalFeatureAction.java
deleted file mode 100644
index df28a63..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/InstallOptionalFeatureAction.java
+++ /dev/null
@@ -1,95 +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 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.update.internal.ui.views;
-
-import java.net.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.wizard.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.search.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.internal.ui.wizards.*;
-import org.eclipse.update.operations.*;
-import org.eclipse.update.search.*;
-
-
-public class InstallOptionalFeatureAction extends Action {
-	private static final String KEY_OPTIONAL_INSTALL_TITLE = "FeaturePage.optionalInstall.title"; //$NON-NLS-1$
-
-	private MissingFeature missingFeature;
-	private Shell shell;
-
-	public InstallOptionalFeatureAction(Shell shell, String text) {
-		super(text);
-		this.shell = shell;
-	}
-
-	public void setFeature(MissingFeature feature) {
-		this.missingFeature = feature;
-	}
-
-	public void run() {
-		if (missingFeature == null)
-			return;
-		
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			ErrorDialog.openError(shell, null, null, status);
-			return;
-		}
-		
-		// If current config is broken, confirm with the user to continue
-		if (OperationsManager.getValidator().validateCurrentState() != null &&
-				!confirm(UpdateUI.getString("Actions.brokenConfigQuestion"))) //$NON-NLS-1$
-			return;
-			
-		
-		VersionedIdentifier vid = missingFeature.getVersionedIdentifier();
-		URL originatingURL = missingFeature.getOriginatingSiteURL();
-
-		UpdateSearchScope scope = new UpdateSearchScope();
-		scope.addSearchSite(originatingURL.toString(), originatingURL, null);
-
-		OptionalFeatureSearchCategory category = new OptionalFeatureSearchCategory();
-		category.addVersionedIdentifier(vid);
-		final UpdateSearchRequest searchRequest =
-			new UpdateSearchRequest(category, scope);
-
-		BusyIndicator.showWhile(shell.getDisplay(), new Runnable() {
-			public void run() {
-				openWizard(searchRequest);
-			}
-		});
-	}
-	private void openWizard(UpdateSearchRequest searchRequest) {
-		if (InstallWizard.isRunning()) {
-			MessageDialog.openInformation(shell, UpdateUI.getString("InstallWizard.isRunningTitle"), UpdateUI.getString("InstallWizard.isRunningInfo"));
-			return;
-		}
-		InstallWizard wizard = new InstallWizard(searchRequest);
-		WizardDialog dialog = new ResizableInstallWizardDialog(shell, wizard, UpdateUI.getString(KEY_OPTIONAL_INSTALL_TITLE));
-		dialog.create();
-		dialog.open();
-	}
-	
-	private boolean confirm(String message) {
-		return MessageDialog.openConfirm(
-			shell,
-			UpdateUI.getString("FeatureStateAction.dialogTitle"), //$NON-NLS-1$
-			message);
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/InstallationHistoryAction.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/InstallationHistoryAction.java
deleted file mode 100644
index da3a5dd..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/InstallationHistoryAction.java
+++ /dev/null
@@ -1,259 +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 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.update.internal.ui.views;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.resource.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.configurator.*;
-import org.eclipse.update.internal.ui.*;
-
-public class InstallationHistoryAction extends Action {
-    private Shell shell;
-	private BufferedReader buffRead;
-	private PrintWriter htmlLog;
-	private File tempFile;
-	private String rowType;
-	private IPath path;
-	private static final String lightBlue = "#EEEEFF"; //$NON-NLS-1$
-	private static final String white = "#FFFFFF"; //$NON-NLS-1$
-	private static final String darkBlue = "#99AADD"; //$NON-NLS-1$
-//	private static final String CONFIGURATION = "CONFIGURATION"; //$NON-NLS-1$
-	private static final String ACTIVITY = "ACTIVITY"; //$NON-NLS-1$
-
-	public InstallationHistoryAction(Shell shell, String text, ImageDescriptor desc) {
-		super(text, desc);
-        this.shell = shell;
-		String location =
-			ConfiguratorUtils
-				.getCurrentPlatformConfiguration()
-				.getConfigurationLocation()
-				.getFile();
-		path = new Path(location).removeLastSegments(1).append("install.log"); //$NON-NLS-1$
-		rowType = "light-row"; //$NON-NLS-1$
-	}
-
-	public void run() {
-		try {
-			openLog();
-			parseLog();
-			UpdateUI.showURL("file:" + getTempFile().getPath().toString()); //$NON-NLS-1$
-		} catch (CoreException e) {
-			UpdateUI.logException(e);
-		} finally {
-			closeLog();
-		}
-	}
-
-	private void openLog() throws CoreException {
-		try {
-		    // throws FileNotFoundException, IOException
-		    InputStream is = new FileInputStream(path.toOSString());
-		    // throws UnsupportedEncodingException
-		    InputStreamReader isr = new InputStreamReader(is,"UTF-8");
-		    buffRead = new BufferedReader(isr);
-			htmlLog = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(getTempFile()), "UTF-8")));
-		} catch (Exception e) {
-			throwCoreException(e);
-		}
-	}
-
-	private File getTempFile() throws CoreException {
-		if (tempFile == null) {
-			try {
-				tempFile = File.createTempFile("install-log", ".html"); //$NON-NLS-1$ //$NON-NLS-2$
-				tempFile.deleteOnExit();
-			} catch (IOException e) {
-				throwCoreException(e);
-			}
-		}
-		return tempFile;
-	}
-
-	private void parseLog() throws CoreException {
-		//		!CONFIGURATION <configuration-date>
-		//		!ACTIVITY <date> <target> <action> <status>
-
-		try {
-			String type, date, status, target, action;
-			StringTokenizer htmlCode;
-
-			htmlLog.println("<html>"); //$NON-NLS-1$
-			htmlLog.println("<head>"); //$NON-NLS-1$
-			htmlLog.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
-			htmlLog.println("<title>Install-Log</title>"); //$NON-NLS-1$
-			addCSS();
-			htmlLog.println("</head>"); //$NON-NLS-1$
-			htmlLog.println("<body>"); //$NON-NLS-1$
-			String title = UpdateUI.getString("InstallationHistoryAction.title"); //$NON-NLS-1$
-			String desc = UpdateUI.getString("InstallationHistoryAction.desc"); //$NON-NLS-1$
-			htmlLog.println("<h1 class=title>"+title+"</h1>"); //$NON-NLS-1$ //$NON-NLS-2$
-			htmlLog.println("<p class=bodyText>"+desc+"</p>"); //$NON-NLS-1$ //$NON-NLS-2$
-			
-			htmlLog.println("<center>"); //$NON-NLS-1$
-
-			htmlLog.println("<table width =100% border=0 cellspacing=1 cellpadding=2>"); //$NON-NLS-1$
-
-			while (buffRead.ready()) {
-
-				htmlCode = new StringTokenizer(buffRead.readLine());
-				while (!(htmlCode.hasMoreElements())) {
-					if (!buffRead.ready())
-						return;
-					htmlCode = new StringTokenizer(buffRead.readLine());
-				}
-
-				type = htmlCode.nextToken();
-				type = type.substring(type.indexOf("!") + 1, type.length()); //$NON-NLS-1$
-
-				if (type.equals(ACTIVITY)) {
-					target = ""; //$NON-NLS-1$
-					Date d = new Date(new Long(htmlCode.nextToken()).longValue());
-					DateFormat df = DateFormat.getDateTimeInstance();
-					date = df.format(d);
-					// ignore string date
-					htmlCode.nextToken("."); //$NON-NLS-1$
-					htmlCode.nextToken(" "); //$NON-NLS-1$
-					while (htmlCode.countTokens() > 2)
-						target = target + " " + htmlCode.nextToken(); //$NON-NLS-1$
-
-					action = htmlCode.nextToken();
-					status = htmlCode.nextToken();
-
-					addActivity(action, date, status, target);
-
-				} else {
-					htmlLog.println();
-					htmlLog.println(
-						"<tr id=separator><td colspan=4></td></tr>"); //$NON-NLS-1$
-					htmlLog.println();
-					Date d = new Date(new Long(htmlCode.nextToken()).longValue());
-					DateFormat df = DateFormat.getDateTimeInstance();
-					date = df.format(d);
-//					date = ""; //$NON-NLS-1$
-//					while (htmlCode.countTokens() > 0)
-//						date = date + " " + htmlCode.nextToken(); //$NON-NLS-1$
-					addConfigurationHeader(date);
-					addActivityHeader();
-				}
-
-			}
-			htmlLog.println("</table>"); //$NON-NLS-1$
-			htmlLog.println("</body>"); //$NON-NLS-1$
-			htmlLog.println("</html>"); //$NON-NLS-1$
-			htmlLog.flush();
-
-		} catch (Exception e) {
-			throwCoreException(e);
-		}
-
-	}
-
-	private void addActivity(
-		String type,
-		String date,
-		String status,
-		String target) {
-		htmlLog.print("<tr class=" + rowType + ">"); //$NON-NLS-1$ //$NON-NLS-2$
-		htmlLog.print("<td class=log-text width=30%>"); //$NON-NLS-1$
-		htmlLog.print(date);
-		htmlLog.println("</td>"); //$NON-NLS-1$
-		htmlLog.print("<td class=log-text width=40%>"); //$NON-NLS-1$
-		htmlLog.print(target);
-		htmlLog.println("</td>"); //$NON-NLS-1$
-		htmlLog.print("<td class=log-text width=20%>"); //$NON-NLS-1$
-		htmlLog.print(type);
-		htmlLog.println("</td>"); //$NON-NLS-1$
-		htmlLog.print("<td class=log-text width=10%>"); //$NON-NLS-1$
-		htmlLog.print(status);
-		htmlLog.println("</td></tr>"); //$NON-NLS-1$
-		toggleRowColor();
-	}
-
-	private void addCSS() {
-		htmlLog.println("<STYLE type=\"text/css\">"); //$NON-NLS-1$
-		htmlLog.println("H1.title { font-family: sans-serif; color: #99AACC }"); //$NON-NLS-1$
-		htmlLog.println("P.bodyText { font-family: sans-serif; font-size: 9pt; }"); //$NON-NLS-1$
-		htmlLog.println(
-			"TD.log-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white}"); //$NON-NLS-1$
-		htmlLog.println(
-			"TD.log-text { font-family: sans-serif; font-style: normal; font-weight: lighter; font-size: 8pt; color:black}"); //$NON-NLS-1$
-		htmlLog.println(
-		//	"TD.config-log-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white; ;text-align: right; border-top:10px solid white}");
-		"TD.config-log-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white; border-top:10px solid white}"); //$NON-NLS-1$
-		htmlLog.println("TR.light-row {background:" + white + "}"); //$NON-NLS-1$ //$NON-NLS-2$
-		htmlLog.println("TR.dark-row {background:" + lightBlue + "}"); //$NON-NLS-1$ //$NON-NLS-2$
-		htmlLog.println("TR.header {background:" + darkBlue + "}"); //$NON-NLS-1$ //$NON-NLS-2$
-		htmlLog.println("</STYLE>"); //$NON-NLS-1$
-	}
-
-	private void addActivityHeader() {
-		htmlLog.print("<tr class=header>"); //$NON-NLS-1$
-		htmlLog.print("<td class=log-header>"); //$NON-NLS-1$
-		htmlLog.print(UpdateUI.getString("InstallationHistoryAction.dateTime")); //$NON-NLS-1$
-		htmlLog.print("</td>"); //$NON-NLS-1$
-		htmlLog.print("<td class=log-header>"); //$NON-NLS-1$
-		htmlLog.print(UpdateUI.getString("InstallationHistoryAction.target")); //$NON-NLS-1$
-		htmlLog.print("</td>"); //$NON-NLS-1$
-		htmlLog.print("<td class=log-header>"); //$NON-NLS-1$
-		htmlLog.print(UpdateUI.getString("InstallationHistoryAction.action")); //$NON-NLS-1$
-		htmlLog.print("</td>"); //$NON-NLS-1$
-		htmlLog.print("<td class=log-header>"); //$NON-NLS-1$
-		htmlLog.print(UpdateUI.getString("InstallationHistoryAction.status")); //$NON-NLS-1$
-		htmlLog.println("</td></tr>"); //$NON-NLS-1$
-	}
-
-	private void addConfigurationHeader(String date) {
-		if (date == null)
-			return;
-
-		htmlLog.print("<tr class=header>"); //$NON-NLS-1$
-		htmlLog.print("<td class=config-log-header colspan=4>"); //$NON-NLS-1$
-		htmlLog.print(date);
-		htmlLog.println("</td></tr>"); //$NON-NLS-1$
-	}
-
-	private void toggleRowColor() {
-		if (rowType.equals("light-row")) //$NON-NLS-1$
-			rowType = "dark-row"; //$NON-NLS-1$
-		else
-			rowType = "light-row"; //$NON-NLS-1$
-	}
-
-	private void throwCoreException(Throwable e) throws CoreException {
-		throw new CoreException(
-			new Status(
-				IStatus.ERROR,
-				UpdateUI.getPluginId(),
-				IStatus.ERROR,
-				UpdateUI.getString("InstallationHistoryAction.errors"), //$NON-NLS-1$
-				e));
-	}
-
-	private void closeLog() {
-		try {
-			if (buffRead != null)
-				buffRead.close();
-			if (htmlLog != null)
-				htmlLog.close();
-		} catch (IOException e) {
-		} finally {
-			buffRead = null;
-			htmlLog = null;
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/NewExtensionLocationAction.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/NewExtensionLocationAction.java
deleted file mode 100644
index d039cf9..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/NewExtensionLocationAction.java
+++ /dev/null
@@ -1,113 +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 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.update.internal.ui.views;
-
-import java.io.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.resource.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.operations.*;
-
-public class NewExtensionLocationAction extends Action {
-    private Shell shell;
-    
-	public NewExtensionLocationAction(Shell shell, String text, ImageDescriptor desc) {
-		super(text, desc);
-        this.shell = shell;
-	}
-
-	public void run() {
-		
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			ErrorDialog.openError(shell, null, null, status);
-			return;
-		}
-		
-		DirectoryDialog dialog =
-			new DirectoryDialog(shell, SWT.APPLICATION_MODAL);
-		dialog.setMessage(UpdateUI.getString("NewExtensionLocationAction.selectExtLocation")); //$NON-NLS-1$
-
-		String dir = dialog.open();
-		while (dir != null) {
-			File dirFile = getExtensionSite(new File(dir));
-			if (dirFile != null) {
-				if (addExtensionLocation(dirFile))
-					return;
-				else {
-					// re-open the directory dialog
-					dialog.setFilterPath(dir);
-					dir = dialog.open();
-				}	
-			} else {
-				MessageDialog.openInformation(
-					shell,
-					UpdateUI.getString(
-						"NewExtensionLocationAction.extInfoTitle"), //$NON-NLS-1$
-					UpdateUI.getString(
-						"NewExtensionLocationAction.extInfoMessage")); //$NON-NLS-1$
-				// re-open the directory dialog
-				dialog.setFilterPath(dir);
-				dir = dialog.open();
-			}
-		}
-	}
-
-	/**
-	 * @param directory
-	 * @return the site file (including "eclipse" path) when directory is an eclipse exstension, null otherwise
-	 */
-	static File getExtensionSite(File directory) {
-		// Check the eclipse folder
-		if (directory.getName().equals("eclipse")) { //$NON-NLS-1$
-			// if we picked up the eclipse directory, check if its parent is a site
-			File site = getExtensionSite(directory.getParentFile());
-			if (site != null)
-				return directory;
-			// otherwise, fall through
-		}
-		
-		File eclipse = new File(directory, "eclipse"); //$NON-NLS-1$
-		if (!eclipse.exists() || !eclipse.isDirectory())
-			return null;
-
-		// check the marker
-		File marker = new File(eclipse, ".eclipseextension"); //$NON-NLS-1$
-		if (!marker.exists() || marker.isDirectory())
-			return null;
-		return eclipse;
-	}
-
-	private boolean addExtensionLocation(File dir) {
-		try {
-			IInstallConfiguration config = SiteManager.getLocalSite().getCurrentConfiguration();
-			IConfiguredSite csite = config.createLinkedConfiguredSite(dir);
-			csite.verifyUpdatableStatus();
-			config.addConfiguredSite(csite);
-			boolean restartNeeded = SiteManager.getLocalSite().save();
-			UpdateUI.requestRestart(restartNeeded);
-			return true;
-		} catch (CoreException e) {
-			String title = UpdateUI.getString("InstallWizard.TargetPage.location.error.title"); //$NON-NLS-1$
-			ErrorDialog.openError(shell, title, null, e.getStatus());
-			UpdateUI.logException(e,false);
-			return false;
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ReplaceVersionAction.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ReplaceVersionAction.java
deleted file mode 100644
index c6f3941..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ReplaceVersionAction.java
+++ /dev/null
@@ -1,60 +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 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.update.internal.ui.views;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.core.IFeature;
-import org.eclipse.update.internal.ui.wizards.ReplaceFeatureVersionWizard;
-import org.eclipse.update.operations.*;
-
-public class ReplaceVersionAction extends Action {
-	
-	private IFeature currentFeature;
-	private IFeature[] features;
-	private Shell shell;
-    
-	public ReplaceVersionAction(Shell shell, String text) {
-		super(text);
-        this.shell = shell;
-	}
-	
-	public void setCurrentFeature(IFeature feature) {
-		currentFeature = feature;
-	}
-	
-	public void setFeatures(IFeature[] features) {
-		this.features = features;
-	}
-		
-	public void run() {
-		if (currentFeature == null || features == null || features.length < 2)
-			return;
-			
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			ErrorDialog.openError(shell, null, null, status);
-			return;
-		}
-		
-		ReplaceFeatureVersionWizard wizard = new ReplaceFeatureVersionWizard(currentFeature, features);
-		WizardDialog dialog = new WizardDialog(shell, wizard);
-		dialog.create();
-		dialog.getShell().setText(shell.getText());
-		dialog.getShell().setSize(400,400);
-		dialog.open();
-	}
-
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/RevertConfigurationAction.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/RevertConfigurationAction.java
deleted file mode 100644
index cacb340..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/RevertConfigurationAction.java
+++ /dev/null
@@ -1,43 +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 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.update.internal.ui.views;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.wizard.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.ui.wizards.*;
-import org.eclipse.update.operations.*;
-
-public class RevertConfigurationAction extends Action {
-    private Shell shell;
-    
-	public RevertConfigurationAction(Shell shell, String text) {
-		super(text);
-        this.shell = shell;
-	}
-	
-	public void run() {
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			ErrorDialog.openError(shell, null, null, status);
-			return;
-		}
-		
-		RevertConfigurationWizard wizard = new RevertConfigurationWizard();
-		WizardDialog dialog = new WizardDialog(shell, wizard);
-		dialog.create();
-		dialog.getShell().setText(shell.getText());
-		dialog.getShell().setSize(600,500);
-		dialog.open();
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ShowActivitiesAction.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ShowActivitiesAction.java
deleted file mode 100644
index bd884ee..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ShowActivitiesAction.java
+++ /dev/null
@@ -1,32 +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 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.update.internal.ui.views;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.update.internal.ui.UpdateUI;
-import org.eclipse.update.internal.ui.wizards.ShowActivitiesDialog;
-
-public class ShowActivitiesAction extends Action {
-	Shell shell;
-	
-	public ShowActivitiesAction(Shell parentShell, String text) {
-		super(text);
-		this.shell = parentShell;
-	}
-	
-	public void run() {
-		ShowActivitiesDialog dialog = new ShowActivitiesDialog(shell);
-		dialog.create();
-		dialog.getShell().setText(UpdateUI.getString("ShowActivitiesDialog.title")); //$NON-NLS-1$
-		dialog.open();
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/SiteStateAction.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/SiteStateAction.java
deleted file mode 100644
index 6c17055..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/SiteStateAction.java
+++ /dev/null
@@ -1,76 +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 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.update.internal.ui.views;
-
-import java.lang.reflect.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.operations.*;
-
-/**
- * Toggles a site's enabled state
- */
-
-public class SiteStateAction extends Action {
-	private IConfiguredSite site;
-    private Shell shell;
-
-	public SiteStateAction(Shell shell) {
-        this.shell = shell;
-	}
-
-	public void setSite(IConfiguredSite site) {
-		this.site = site;
-		boolean state = site.isEnabled();
-		setText(state ? UpdateUI.getString("SiteStateAction.disableLabel") : UpdateUI.getString("SiteStateAction.enableLabel")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void run() {
-		try {
-			if (site == null)
-				return;
-			
-			IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-			if (status != null) {
-				ErrorDialog.openError(shell, null, null, status);
-				return;
-			}
-			
-			boolean oldValue = site.isEnabled();
-			if (!confirm(!oldValue))
-				return;
-			
-			IOperation toggleSiteOperation = OperationsManager.getOperationFactory().createToggleSiteOperation(site);
-			boolean restartNeeded = toggleSiteOperation.execute(null, null);
-					
-			UpdateUI.requestRestart(restartNeeded);
-
-		} catch (CoreException e) {
-            ErrorDialog.openError(shell, null, null, e.getStatus());
-		} catch (InvocationTargetException e) {
-			UpdateUI.logException(e);
-		}
-	}
-
-	private boolean confirm(boolean newState) {
-		String name = site.getSite().getURL().toString();
-		String enableMessage = UpdateUI.getFormattedMessage("SiteStateAction.enableMessage", name); //$NON-NLS-1$ //$NON-NLS-2$
-		String disableMessage = UpdateUI.getFormattedMessage("SiteStateAction.disableMessage", name); //$NON-NLS-1$ //$NON-NLS-2$
-
-		String message = newState ? enableMessage : disableMessage;
-		return MessageDialog.openConfirm(shell, UpdateUI.getString("SiteStateAction.dialogTitle"), message); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UninstallFeatureAction.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UninstallFeatureAction.java
deleted file mode 100644
index ea7be02..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UninstallFeatureAction.java
+++ /dev/null
@@ -1,99 +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 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.update.internal.ui.views;
-
-import java.lang.reflect.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.operations.*;
-
-public class UninstallFeatureAction extends Action {
-	private ConfiguredFeatureAdapter adapter;
-    private Shell shell;
-
-	public UninstallFeatureAction(Shell shell, String text) {
-		super(text);
-        this.shell = shell;
-	}
-
-	public void run() {
-		try {
-			IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-			if (status != null)
-				throw new CoreException(status);
-			
-			if (adapter == null || !confirm(UpdateUI.getString("FeatureUninstallAction.uninstallQuestion"))) //$NON-NLS-1$))
-				return;
-
-			// If current config is broken, confirm with the user to continue
-			if (OperationsManager.getValidator().validateCurrentState() != null &&
-					!confirm(UpdateUI.getString("Actions.brokenConfigQuestion"))) //$NON-NLS-1$
-				return;
-
-			IOperation uninstallOperation =
-				(IOperation) OperationsManager
-					.getOperationFactory()
-					.createUninstallOperation(
-					adapter.getConfiguredSite(),
-					adapter.getFeature(null));
-
-			boolean restartNeeded = uninstallOperation.execute(null, null);
-			UpdateUI.requestRestart(restartNeeded);
-
-		} catch (CoreException e) {
-			ErrorDialog.openError(shell, null, null, e.getStatus());
-		} catch (InvocationTargetException e) {
-			// This should not happen
-			UpdateUtils.logException(e.getTargetException());
-		}
-	}
-
-	private boolean confirm(String message) {
-		return MessageDialog.openConfirm(
-			shell,
-			UpdateUI.getString("FeatureUninstallAction.dialogTitle"), //$NON-NLS-1$
-			message);
-	}
-
-	public void setFeature(ConfiguredFeatureAdapter adapter) {
-		this.adapter = adapter;
-		setText(UpdateUI.getString("FeatureUninstallAction.uninstall")); //$NON-NLS-1$
-	}
-
-	public boolean canUninstall() {
-		if (adapter == null)
-			return false;
-		
-		if (adapter.isConfigured())
-			return false;
-		
-		try {
-			// check for pending changes (e.g. if the feature has just been disabled)
-			IFeatureOperation pendingOperation = OperationsManager.findPendingOperation(adapter.getFeature(null));
-			if (pendingOperation != null)
-				return false;
-
-			if (InstallRegistry.getInstance().get("feature_"+adapter.getFeature(null).getVersionedIdentifier()) == null) //$NON-NLS-1$
-				return false;
-		} catch (CoreException e) {
-			return false;
-		}
-				
-		return true;	
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ActivitiesTableViewer.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ActivitiesTableViewer.java
deleted file mode 100644
index 27b517a..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ActivitiesTableViewer.java
+++ /dev/null
@@ -1,148 +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 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.update.internal.ui.wizards;
-
-import java.util.*;
-
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.parts.*;
-
-
-/**
- * Viewer for configuration activities
- */
-public class ActivitiesTableViewer{
-
-	private static InstallLogParser parser; 
-	
-	static class ActivitiesContentProvider
-		extends DefaultContentProvider
-		implements IStructuredContentProvider {
-		
-		private boolean showCurrentOnly;
-		
-		public ActivitiesContentProvider(boolean showCurrentOnly){
-			this.showCurrentOnly = showCurrentOnly;
-		}
-		public ActivitiesContentProvider(){
-			this.showCurrentOnly = false;
-		}
-		
-		public Object[] getElements(Object element) {
-			InstallConfiguration currentConfig = (InstallConfiguration)element;
-			InstallConfiguration[] configs = parser.getConfigurations();
-			boolean hitCurrentConfig = false;
-			ArrayList activitiesList = new ArrayList();
-			for (int i = 0; i<configs.length; i++){
-				if (configs[i].equals(currentConfig) && !hitCurrentConfig)
-					hitCurrentConfig = true;
-				if (hitCurrentConfig && showCurrentOnly)
-					return configs[i].getActivities();
-				else if (hitCurrentConfig){
-					IActivity[] activities = configs[i].getActivities();
-					for (int j = 0; j<activities.length; j++)
-						activitiesList.add(activities[j]);	
-				}
-				
-			}
-			return (IActivity[])activitiesList.toArray(new IActivity[activitiesList.size()]);
-		}
-		
-	}
-
-	static class ActivitiesLabelProvider
-		extends LabelProvider
-		implements ITableLabelProvider {
-		public Image getColumnImage(Object element, int columnIndex) {
-			if (columnIndex == 0) {
-				UpdateLabelProvider provider =
-					UpdateUI.getDefault().getLabelProvider();
-				switch (((IActivity) element).getStatus()) {
-					case IActivity.STATUS_OK :
-						return provider.get(UpdateUIImages.DESC_OK_ST_OBJ, 0);
-					case IActivity.STATUS_NOK :
-						return provider.get(UpdateUIImages.DESC_ERR_ST_OBJ, 0);
-				}
-			}
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			IActivity activity = (IActivity) element;
-			switch (columnIndex) {
-				case 1 :
-					return Utilities.format(activity.getDate());
-				case 2 :
-					return activity.getLabel();
-				case 3 :
-					return getActionLabel(activity);
-			}
-			return ""; //$NON-NLS-1$
-		}
-
-		private String getActionLabel(IActivity activity) {
-			int action = activity.getAction();
-			switch (action) {
-				case IActivity.ACTION_CONFIGURE :
-					return UpdateUI.getString("ActivitiesTableViewer.enabled"); //$NON-NLS-1$
-				case IActivity.ACTION_FEATURE_INSTALL :
-					return UpdateUI.getString("ActivitiesTableViewer.featureInstalled"); //$NON-NLS-1$
-				case IActivity.ACTION_FEATURE_REMOVE :
-					return UpdateUI.getString("ActivitiesTableViewer.featureRemoved"); //$NON-NLS-1$
-				case IActivity.ACTION_SITE_INSTALL :
-					return UpdateUI.getString("ActivitiesTableViewer.siteInstalled"); //$NON-NLS-1$
-				case IActivity.ACTION_SITE_REMOVE :
-					return UpdateUI.getString("ActivitiesTableViewer.siteRemoved"); //$NON-NLS-1$
-				case IActivity.ACTION_UNCONFIGURE :
-					return UpdateUI.getString("ActivitiesTableViewer.disabled"); //$NON-NLS-1$
-				case IActivity.ACTION_REVERT :
-					return UpdateUI.getString("ActivitiesTableViewer.revert"); //$NON-NLS-1$
-				case IActivity.ACTION_RECONCILIATION :
-					return UpdateUI.getString("ActivitiesTableViewer.reconcile"); //$NON-NLS-1$
-				default :
-					return UpdateUI.getString("ActivitiesTableViewer.unknown"); //$NON-NLS-1$
-			}
-		}
-	}
-
-	public static TableViewer createViewer(Composite parent, boolean showCurrentOnly) {
-		parser = new InstallLogParser();
-		parser.parseInstallationLog();
-		Table table = new Table(parent, SWT.BORDER);
-		table.setLayoutData(new GridData(GridData.FILL_BOTH));
-		table.setHeaderVisible(true);
-
-		TableColumn column = new TableColumn(table, SWT.NONE);
-
-		column = new TableColumn(table, SWT.NONE);
-		column.setText(UpdateUI.getString("ActivitiesTableViewer.date")); //$NON-NLS-1$
-
-		column = new TableColumn(table, SWT.NONE);
-		column.setText(UpdateUI.getString("ActivitiesTableViewer.target")); //$NON-NLS-1$
-
-		column = new TableColumn(table, SWT.NONE);
-		column.setText(UpdateUI.getString("ActivitiesTableViewer.action")); //$NON-NLS-1$
-
-		TableViewer activitiesViewer = new TableViewer(table);
-		activitiesViewer.setLabelProvider(new ActivitiesLabelProvider());
-		activitiesViewer.setContentProvider(new ActivitiesContentProvider(showCurrentOnly));
-		return activitiesViewer;
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/BannerPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/BannerPage.java
deleted file mode 100644
index e62dc34..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/BannerPage.java
+++ /dev/null
@@ -1,76 +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 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.update.internal.ui.wizards;
-import java.net.*;
-
-import org.eclipse.jface.wizard.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.ui.*;
-
-public abstract class BannerPage extends WizardPage {
-	private Image bannerImage;
-	private boolean bannerVisible = false;
-	public BannerPage(String name) {
-		super(name);
-	}
-
-	public void createControl(Composite parent) {
-		Composite client = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.horizontalSpacing = 10;
-		client.setLayout(layout);
-
-		if (bannerVisible) {
-			Label label = new Label(client, SWT.NULL);
-			label.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-			label.setImage(getBannerImage());
-		}
-
-		Control contents = createContents(client);
-		contents.setLayoutData(new GridData(GridData.FILL_BOTH));
-		setControl(client);
-	}
-
-	public void setBannerVisible(boolean visible) {
-		this.bannerVisible = visible;
-	}
-	public boolean isBannedVisible() {
-		return bannerVisible;
-	}
-
-	protected URL getBannerImageURL() {
-		return null;
-	}
-	private Image getBannerImage() {
-		URL imageURL = getBannerImageURL();
-		Image image = null;
-		if (imageURL == null) {
-			// use default
-			bannerImage =
-				UpdateUIImages.DESC_INSTALL_BANNER.createImage();
-			image = bannerImage;
-		}
-		return image;
-	}
-
-	public void dispose() {
-		if (bannerImage != null) {
-			bannerImage.dispose();
-		}
-		super.dispose();
-	}
-
-	protected abstract Control createContents(Composite parent);
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ContainerCheckedTreeViewer.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ContainerCheckedTreeViewer.java
deleted file mode 100644
index 88c3b60..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ContainerCheckedTreeViewer.java
+++ /dev/null
@@ -1,203 +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
- *******************************************************************************/
-package org.eclipse.update.internal.ui.wizards;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Copied from ui internal package.
- * 
- * CheckboxTreeViewer with special behaviour of the checked / gray state on 
- * container (non-leaf) nodes:
- * The grayed state is used to visualize the checked state of its children.
- * Containers are checked and non-gary if all contained leafs are checked. The
- * container is grayed if some but not all leafs are checked.
- * 
- */
-public class ContainerCheckedTreeViewer extends CheckboxTreeViewer {
-
-    /**
-     * Constructor for ContainerCheckedTreeViewer.
-     * @see CheckboxTreeViewer#CheckboxTreeViewer(Composite)
-     */
-    public ContainerCheckedTreeViewer(Composite parent) {
-        super(parent);
-        initViewer();
-    }
-
-    /**
-     * Constructor for ContainerCheckedTreeViewer.
-     * @see CheckboxTreeViewer#CheckboxTreeViewer(Composite,int)
-     */
-    public ContainerCheckedTreeViewer(Composite parent, int style) {
-        super(parent, style);
-        initViewer();
-    }
-
-    /**
-     * Constructor for ContainerCheckedTreeViewer.
-     * @see CheckboxTreeViewer#CheckboxTreeViewer(Tree)
-     */
-    public ContainerCheckedTreeViewer(Tree tree) {
-        super(tree);
-        initViewer();
-    }
-
-    private void initViewer() {
-        setUseHashlookup(true);
-        addCheckStateListener(new ICheckStateListener() {
-            public void checkStateChanged(CheckStateChangedEvent event) {
-                doCheckStateChanged(event.getElement());
-            }
-        });
-        addTreeListener(new ITreeViewerListener() {
-            public void treeCollapsed(TreeExpansionEvent event) {
-            }
-
-            public void treeExpanded(TreeExpansionEvent event) {
-                Widget item = findItem(event.getElement());
-                if (item instanceof TreeItem) {
-                    initializeItem((TreeItem) item);
-                }
-            }
-        });
-    }
-
-    protected void doCheckStateChanged(Object element) {
-        Widget item = findItem(element);
-        if (item instanceof TreeItem) {
-            TreeItem treeItem = (TreeItem) item;
-            treeItem.setGrayed(false);
-            updateChildrenItems(treeItem);
-            updateParentItems(treeItem.getParentItem());
-        }
-    }
-
-    /**
-     * The item has expanded. Updates the checked state of its children. 
-     */
-    private void initializeItem(TreeItem item) {
-        if (item.getChecked() && !item.getGrayed()) {
-            updateChildrenItems((TreeItem) item);
-        }
-    }
-
-    /**
-     * Updates the check state of all created children
-     */
-    private void updateChildrenItems(TreeItem parent) {
-        Item[] children = getChildren(parent);
-        boolean state = parent.getChecked();
-        for (int i = 0; i < children.length; i++) {
-            TreeItem curr = (TreeItem) children[i];
-            if (curr.getData() != null
-                    && ((curr.getChecked() != state) || curr.getGrayed())) {
-                curr.setChecked(state);
-                curr.setGrayed(false);
-                updateChildrenItems(curr);
-            }
-        }
-    }
-
-    /**
-     * Updates the check / gray state of all parent items
-     */
-    private void updateParentItems(TreeItem item) {
-        if (item != null) {
-            Item[] children = getChildren(item);
-            boolean containsChecked = false;
-            boolean containsUnchecked = false;
-            for (int i = 0; i < children.length; i++) {
-                TreeItem curr = (TreeItem) children[i];
-                containsChecked |= curr.getChecked();
-                containsUnchecked |= (!curr.getChecked() || curr.getGrayed());
-            }
-            item.setChecked(containsChecked);
-            item.setGrayed(containsChecked && containsUnchecked);
-            updateParentItems(item.getParentItem());
-        }
-    }
-
-    /*
-     * @see ICheckable#setChecked(Object, boolean)
-     */
-    public boolean setChecked(Object element, boolean state) {
-        if (super.setChecked(element, state)) {
-            doCheckStateChanged(element);
-            return true;
-        }
-        return false;
-    }
-
-    /*
-     * @see CheckboxTreeViewer#setCheckedElements(Object[])
-     */
-    public void setCheckedElements(Object[] elements) {
-        super.setCheckedElements(elements);
-        for (int i = 0; i < elements.length; i++) {
-            doCheckStateChanged(elements[i]);
-        }
-    }
-
-    /*
-     * @see AbstractTreeViewer#setExpanded(Item, boolean)
-     */
-    protected void setExpanded(Item item, boolean expand) {
-        super.setExpanded(item, expand);
-        if (expand && item instanceof TreeItem) {
-            initializeItem((TreeItem) item);
-        }
-    }
-
-    /*
-     * @see CheckboxTreeViewer#getCheckedElements()
-     */
-    public Object[] getCheckedElements() {
-        Object[] checked = super.getCheckedElements();
-        // add all items that are children of a checked node but not created yet
-        ArrayList result = new ArrayList();
-        for (int i = 0; i < checked.length; i++) {
-            Object curr = checked[i];
-            result.add(curr);
-            Widget item = findItem(curr);
-            if (item != null) {
-                Item[] children = getChildren(item);
-                // check if contains the dummy node
-                if (children.length == 1 && children[0].getData() == null) {
-                    // not yet created
-                    collectChildren(curr, result);
-                }
-            }
-        }
-        return result.toArray();
-    }
-
-    private void collectChildren(Object element, ArrayList result) {
-        Object[] filteredChildren = getFilteredChildren(element);
-        for (int i = 0; i < filteredChildren.length; i++) {
-            Object curr = filteredChildren[i];
-            result.add(curr);
-            collectChildren(curr, result);
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/DuplicateConflictsDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/DuplicateConflictsDialog.java
deleted file mode 100644
index dc71012..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/DuplicateConflictsDialog.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.wizards;
-
-import java.util.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.parts.*;
-
-/**
- * 
- */
-public class DuplicateConflictsDialog extends MessageDialog {
-
-	private TreeViewer treeViewer;
-	private ArrayList conflicts;
-
-	class ConflictContentProvider
-		extends DefaultContentProvider
-		implements ITreeContentProvider, IStructuredContentProvider {
-		public Object[] getElements(Object input) {
-			return getChildren(input);
-		}
-		public Object getParent(Object child) {
-			return null;
-		}
-		public boolean hasChildren(Object parent) {
-			if (parent instanceof ArrayList)
-				return true;
-			return false;
-		}
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof ArrayList)
-				return ((ArrayList) parent).toArray();
-			return new Object[0];
-		}
-	}
-
-	class ConflictLabelProvider extends LabelProvider {
-		public String getText(Object obj) {
-			if (obj instanceof ArrayList) {
-				ArrayList list = (ArrayList) obj;
-				for (int i = 0; i < list.size(); i++) {
-					DuplicateConflictsValidator.IdEntry entry =
-						(DuplicateConflictsValidator.IdEntry) (list).get(i);
-					if (entry.isInstallCandidate())
-						return entry.getFeature().getLabel();
-				}
-			}
-			return super.getText(obj);
-		}
-		public Image getImage(Object obj) {
-			int flags = 0;
-			if (obj instanceof ArrayList)
-				flags = UpdateLabelProvider.F_WARNING;
-			if (obj instanceof DuplicateConflictsValidator.IdEntry
-				|| obj instanceof ArrayList)
-				return UpdateUI.getDefault().getLabelProvider().get(
-					UpdateUIImages.DESC_FEATURE_OBJ,
-					flags);
-			return null;
-		}
-	}
-
-	public DuplicateConflictsDialog(Shell shell, ArrayList conflicts) {
-		super(
-			shell,
-			UpdateUI.getString("DuplicateConflictsDialog.title"), //$NON-NLS-1$
-			null,
-			UpdateUI.getString("DuplicateConflictsDialog.message"), //$NON-NLS-1$
-			WARNING,
-			new String[] {
-				IDialogConstants.YES_LABEL,
-				IDialogConstants.NO_LABEL },
-			0);
-		this.conflicts = conflicts;
-		UpdateUI.getDefault().getLabelProvider().connect(this);
-	}
-
-	public boolean close() {
-		UpdateUI.getDefault().getLabelProvider().disconnect(this);
-		return super.close();
-	}
-
-	protected Control createCustomArea(Composite parent) {
-		Composite client = new Composite(parent, SWT.NULL);
-		client.setLayoutData(new GridData(GridData.FILL_BOTH));
-		GridLayout layout = new GridLayout();
-		client.setLayout(layout);
-
-		Label label = new Label(client, SWT.NULL);
-		label.setText(UpdateUI.getString("DuplicateConflictsDialog.treeLabel")); //$NON-NLS-1$
-
-		treeViewer = new TreeViewer(client, SWT.SINGLE | SWT.BORDER);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.heightHint = 200;
-		gd.widthHint = 300;
-		treeViewer.getTree().setLayoutData(gd);
-		treeViewer.setContentProvider(new ConflictContentProvider());
-		treeViewer.setLabelProvider(new ConflictLabelProvider());
-		treeViewer.setAutoExpandLevel(10);
-		treeViewer.setSorter(new ViewerSorter() {
-		});
-		treeViewer.setInput(conflicts);
-		return client;
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/EditSiteDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/EditSiteDialog.java
deleted file mode 100644
index 5d94826..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/EditSiteDialog.java
+++ /dev/null
@@ -1,42 +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 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.update.internal.ui.wizards;
-
-import java.net.*;
-
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-
-
-public class EditSiteDialog extends NewUpdateSiteDialog {
-	SiteBookmark bookmark;
-
-	public EditSiteDialog(Shell parentShell, SiteBookmark bookmark) {
-		super(parentShell);
-		this.bookmark = bookmark;
-	}
-
-	protected void initializeFields() {
-		name.setText(bookmark.getName());
-		url.setText(bookmark.getURL().toString());
-		url.setEditable(!bookmark.isLocal());
-	}
-
-	protected void update() {
-		try {
-			bookmark.setName(name.getText());
-			bookmark.setURL(new URL(url.getText()));
-			UpdateUI.getDefault().getUpdateModel().fireObjectChanged(bookmark, null);
-		} catch (MalformedURLException e) {
-		}
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureSorter.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureSorter.java
deleted file mode 100644
index 295589d..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureSorter.java
+++ /dev/null
@@ -1,92 +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 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.update.internal.ui.wizards;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.operations.*;
-
-public class FeatureSorter extends ViewerSorter {
-	
-	public static final int FEATURE_VERSION = 1;
-	public static final int FEATURE_LABEL = 2;
-	public static final int FEATURE_PROVIDER = 3;
-	
-	public static final int ASCENDING = 1;
-	public static final int DESCENDING = -1;
-	
-	private int key = FEATURE_LABEL;
-	private int labelOrder;
-	private int versionOrder;
-	private int providerOrder;
-	
-	public FeatureSorter() {
-		this(FEATURE_LABEL, ASCENDING, ASCENDING, ASCENDING);
-	}
-	
-	public FeatureSorter(int key, int labelOrder, int versionOrder, int providerOrder) {
-		this.key = key;
-		this.labelOrder = labelOrder;
-		this.versionOrder = versionOrder;
-		this.providerOrder = providerOrder;
-	}
-
-	public int compare(Viewer viewer, Object e1, Object e2) {
-		if (!(e1 instanceof IInstallFeatureOperation)
-			|| !(e2 instanceof IInstallFeatureOperation))
-			return super.compare(viewer, e1, e2);
-			
-		IFeature f1 = ((IInstallFeatureOperation)e1).getFeature();
-		IFeature f2 = ((IInstallFeatureOperation)e2).getFeature();
-		
-		PluginVersionIdentifier v1 = f1.getVersionedIdentifier().getVersion();
-		PluginVersionIdentifier v2 = f2.getVersionedIdentifier().getVersion();
-		
-		String label1 = f1.getLabel() == null ? "" : f1.getLabel(); //$NON-NLS-1$
-		String label2 = f2.getLabel() == null ? "" : f2.getLabel(); //$NON-NLS-1$
-		
-		String provider1 = f1.getProvider() == null ? "" : f1.getProvider(); //$NON-NLS-1$
-		String provider2 = f2.getProvider() == null ? "" : f2.getProvider(); //$NON-NLS-1$
-		
-		int result = 0;
-		if (key == FEATURE_VERSION) {
-			result = compareVersions(v1, v2) * versionOrder;
-			if (result == 0) {
-				result = collator.compare(label1, label2) * labelOrder;
-				if (result == 0)
-					result = collator.compare(provider1, provider2) * providerOrder;
-			}
-		} else if (key == FEATURE_LABEL) {
-			result = collator.compare(label1, label2) * labelOrder;
-			if (result == 0) {
-				result = compareVersions(v1, v2) * versionOrder;
-				if (result == 0)
-					result = collator.compare(provider1, provider2) * providerOrder;
-			}
-		} else if (key == FEATURE_PROVIDER) {
-			result = collator.compare(provider1, provider2) * providerOrder;
-			if (result == 0) {
-				result = collator.compare(label1, label2) * labelOrder;
-				if (result == 0)
-					result = compareVersions(v1, v2) * versionOrder;
-			}
-		}
-		return result;
-	}
-	
-	private int compareVersions(PluginVersionIdentifier v1, PluginVersionIdentifier v2) {
-		if (v1.equals(v2))
-			return 0;
-		return v2.isGreaterThan(v1) ? -1 : 1;
-	}
-	
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/IDynamicPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/IDynamicPage.java
deleted file mode 100644
index bc99427..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/IDynamicPage.java
+++ /dev/null
@@ -1,22 +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 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.update.internal.ui.wizards;
-
-
-import org.eclipse.update.operations.*;
-
-/**
- *  A dynamic page in the install wizard
- */
-public interface IDynamicPage {
-	public void setJobs(IInstallFeatureOperation [] jobs);
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ISearchProvider.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ISearchProvider.java
deleted file mode 100644
index 0045cef..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ISearchProvider.java
+++ /dev/null
@@ -1,20 +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 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.update.internal.ui.wizards;
-
-import org.eclipse.update.search.*;
-
-/**
- * A search request provider
- */
-public interface ISearchProvider {
-	UpdateSearchRequest getSearchRequest();
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard.java
deleted file mode 100644
index ba04b97..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard.java
+++ /dev/null
@@ -1,217 +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 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.update.internal.ui.wizards;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.core.runtime.jobs.*;

-import org.eclipse.jface.dialogs.*;

-import org.eclipse.jface.wizard.*;

-import org.eclipse.swt.custom.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.internal.search.*;

-import org.eclipse.update.internal.ui.*;

-import org.eclipse.update.operations.*;

-import org.eclipse.update.search.*;

-

-

-public class InstallWizard

-	extends Wizard

-	implements ISearchProvider {

-	private ModeSelectionPage modePage;

-	private SitePage sitePage;

-	private IInstallConfiguration config;

-	private int installCount = 0;

-	private UpdateSearchRequest searchRequest;

-	private ArrayList jobs;

-	private boolean needsRestart;

-	private static boolean isRunning;

-	private IBatchOperation installOperation;

-	private UpdateJob job;

-	private IJobChangeListener jobListener;

-

-

-	public InstallWizard(UpdateSearchRequest searchRequest) {

-		isRunning = true;

-        if (searchRequest == null) {

-            searchRequest =

-                new UpdateSearchRequest(

-                    new SiteSearchCategory(),

-                    new UpdateSearchScope());

-            searchRequest.addFilter(new BackLevelFilter());

-        }

-        this.searchRequest = searchRequest;

-		setDialogSettings(UpdateUI.getDefault().getDialogSettings());

-		setDefaultPageImageDescriptor(UpdateUIImages.DESC_UPDATE_WIZ);

-		setForcePreviousAndNextButtons(true);

-		setNeedsProgressMonitor(true);

-		setWindowTitle(UpdateUI.getString("InstallWizard.wtitle")); //$NON-NLS-1$

-	}

-

-	public InstallWizard(UpdateSearchRequest searchRequest, ArrayList jobs) {

-		this(searchRequest);

-		this.jobs = jobs;

-	}

-

-	public boolean isRestartNeeded() {

-		return installCount > 0 && needsRestart; // or == selectedJobs.length

-	}

-

-	public boolean performCancel() {

-		isRunning = false;

-		return super.performCancel();

-	}

-

-	public void addPages() {

-		modePage = new ModeSelectionPage(searchRequest);

-		addPage(modePage);

-		sitePage = new SitePage(searchRequest);

-		addPage(sitePage);

-	}

-

-	private void saveSettings() {

-		if (modePage != null)

-			modePage.saveSettings();

-	}

-

-	private boolean isPageRequired(IWizardPage page) {

-		if (page == null)

-			return false;

-		return true;

-	}

-

-	public IWizardPage getNextPage(IWizardPage page) {

-		IWizardPage[] pages = getPages();

-		boolean start = false;

-		IWizardPage nextPage = null;

-

-		if (modePage != null && page.equals(modePage)) {

-			boolean update = modePage.isUpdateMode();

-			if (!update)

-				return sitePage;

-		}

-        return null;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.update.internal.ui.wizards.ISearchProvider2#getSearchRequest()

-	 */

-	public UpdateSearchRequest getSearchRequest() {

-		return searchRequest;

-	}

-

-	public static synchronized boolean isRunning() {

-		return isRunning || Platform.getJobManager().find(UpdateJob.family).length > 0;

-	}

-

-    /**

-     * @see Wizard#performFinish()

-     */

-    public boolean performFinish() {

-        saveSettings();

-        

-        if (Platform.getJobManager().find(UpdateJob.family).length > 0) {

-            // another update/install job is running, need to wait to finish or cancel old job

-            boolean proceed = MessageDialog.openQuestion(

-                    UpdateUI.getActiveWorkbenchShell(),

-                    UpdateUI.getString("InstallWizard.anotherJobTitle"),

-                    UpdateUI.getString("InstallWizard.anotherJob")); //$NON-NLS-1$

-            if (!proceed)

-                return false; // cancel this job, and let the old one go on

-        }

-        

-        launchInBackground();

-        isRunning = false;

-        return true;

-    }

-    

-	private void launchInBackground() {

-		// Downloads the feature content in the background.

-		// The job listener will then install the feature when download is finished.

-

-		if (jobListener != null)

-			Platform.getJobManager().removeJobChangeListener(jobListener);

-		if (job != null)

-			Platform.getJobManager().cancel(job);

-		jobListener = new UpdateJobChangeListener();

-		Platform.getJobManager().addJobChangeListener(jobListener);

-		

-        if (isUpdate())

-            job = new UpdateJob(UpdateUI.getString("InstallWizard.jobName"), true, false, false);  //$NON-NLS-1$

-        else

-            job = new UpdateJob(UpdateUI.getString("InstallWizard.jobName"), searchRequest);  //$NON-NLS-1$    

-		job.setUser(true);

-		job.setPriority(Job.INTERACTIVE);

-//		if (wait) {

-//			progressService.showInDialog(workbench.getActiveWorkbenchWindow().getShell(), job); 

-//		}

-		job.schedule();

-	}

-    

-    private class UpdateJobChangeListener extends JobChangeAdapter {

-        public void done(final IJobChangeEvent event) {  

-            // the job listener is triggered when the search job is done, and proceeds to next wizard

-            if (event.getJob() == InstallWizard.this.job) {

-                isRunning = false;

-                Platform.getJobManager().removeJobChangeListener(this);

-                Platform.getJobManager().cancel(job);

-                

-                if (InstallWizard.this.job.getStatus() == Status.CANCEL_STATUS)

-                    return;

-                

-                if (InstallWizard.this.job.getStatus() != Status.OK_STATUS)

-                    UpdateUI.getStandardDisplay().syncExec(new Runnable() {

-                        public void run() {

-                            UpdateUI.log(InstallWizard.this.job.getStatus(), true);

-                        }

-                    });

-                

-                UpdateUI.getStandardDisplay().asyncExec(new Runnable() {

-                    public void run() {

-                        UpdateUI.getStandardDisplay().beep();

-                        BusyIndicator.showWhile(UpdateUI.getStandardDisplay(),

-                                new Runnable() {

-                                    public void run() {

-                                        openInstallWizard2();

-                                    }

-                                });

-                    }

-                });

-            }

-        }

-        

-        private void openInstallWizard2() {

-            if (InstallWizard2.isRunning())

-                // job ends and a new one is rescheduled

-                return;

-                

-            InstallWizard2 wizard = new InstallWizard2(job.getSearchRequest(), job.getUpdates(), job.isUpdate());

-            WizardDialog dialog =

-                new ResizableInstallWizardDialog(

-                    UpdateUI.getActiveWorkbenchShell(),

-                    wizard,

-                    UpdateUI.getString("AutomaticUpdatesJob.Updates")); //$NON-NLS-1$

-            dialog.create();

-            dialog.open();

-        }

-    }

-

-    public boolean canFinish() {

-        if (isUpdate())

-            return true;

-        else

-            return super.canFinish();

-    }

-    

-    private boolean isUpdate() {

-        return (modePage != null && modePage.isUpdateMode());

-    }

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard2.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard2.java
deleted file mode 100644
index f659bf4..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard2.java
+++ /dev/null
@@ -1,449 +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 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.update.internal.ui.wizards;
-import java.lang.reflect.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.operation.*;
-import org.eclipse.jface.wizard.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.progress.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.security.*;
-import org.eclipse.update.operations.*;
-import org.eclipse.update.search.*;
-
-
-public class InstallWizard2
-	extends Wizard
-	implements IOperationListener, ISearchProvider {
-	private ReviewPage reviewPage;
-	private LicensePage licensePage;
-	private OptionalFeaturesPage optionalFeaturesPage;
-	private TargetPage targetPage;
-	private IInstallConfiguration config;
-	private int installCount = 0;
-	private UpdateSearchRequest searchRequest;
-	private ArrayList jobs;
-	private boolean needsRestart;
-	private static boolean isRunning;
-	private IBatchOperation installOperation;
-	private Job job;
-	public static final Object jobFamily = new Object();
-	private IJobChangeListener jobListener;
-    private final boolean isUpdate;
-
-	public InstallWizard2(UpdateSearchRequest searchRequest, ArrayList jobs, boolean isUpdate) {
-        this.isUpdate = isUpdate;
-        this.searchRequest = searchRequest;
-        this.jobs = jobs;
-        isRunning = true;
-        setDialogSettings(UpdateUI.getDefault().getDialogSettings());
-        setDefaultPageImageDescriptor(UpdateUIImages.DESC_UPDATE_WIZ);
-        setForcePreviousAndNextButtons(true);
-        setNeedsProgressMonitor(true);
-        setWindowTitle(UpdateUI.getString("InstallWizard.wtitle")); //$NON-NLS-1$
-	}
-    
-	public int getInstallCount() {
-		return installCount;
-	}
-	public boolean isRestartNeeded() {
-		return installCount > 0 && needsRestart; // or == selectedJobs.length
-	}
-
-	public boolean performCancel() {
-		isRunning = false;
-		if (targetPage != null)
-			targetPage.removeAddedSites();
-		return super.performCancel();
-	}
-	/**
-	 * @see Wizard#performFinish()
-	 */
-	public boolean performFinish() {
-		IInstallFeatureOperation[] selectedJobs = reviewPage.getSelectedJobs();
-		
-		// Check for duplication conflicts
-		ArrayList conflicts = DuplicateConflictsValidator.computeDuplicateConflicts(selectedJobs, config);
-		if (conflicts != null) {
-			DuplicateConflictsDialog dialog = new DuplicateConflictsDialog(getShell(), conflicts);
-			if (dialog.open() != 0)
-				return false;
-		}
-		
-		if (Platform.getJobManager().find(jobFamily).length > 0) {
-			// another update/install job is running, need to wait to finish or cancel old job
-			boolean proceed = MessageDialog.openQuestion(
-					UpdateUI.getActiveWorkbenchShell(),
-					UpdateUI.getString("InstallWizard.anotherJobTitle"),
-					UpdateUI.getString("InstallWizard.anotherJob")); //$NON-NLS-1$
-			if (!proceed)
-				return false; // cancel this job, and let the old one go on
-		}
-		
-		// set the install operation
-		installOperation = getBatchInstallOperation(selectedJobs);
-		if (installOperation != null)
-			launchInBackground();
-		return true;
-	}
-
-	public void addPages() {
-		reviewPage = new ReviewPage(isUpdate, searchRequest, jobs);
-		addPage(reviewPage);
-
-		try {
-//			config = UpdateUtils.createInstallConfiguration();
-			config = SiteManager.getLocalSite().getCurrentConfiguration();
-		} catch (CoreException e) {
-			UpdateUI.logException(e);
-		}
-
-		licensePage = new LicensePage(true);
-		addPage(licensePage);
-		optionalFeaturesPage = new OptionalFeaturesPage(config);
-		addPage(optionalFeaturesPage);
-		targetPage = new TargetPage(config);
-		addPage(targetPage);
-	}
-
-
-	private boolean isPageRequired(IWizardPage page) {
-		if (page == null)
-			return false;
-			
-		if (page.equals(licensePage)) {
-			return OperationsManager.hasSelectedJobsWithLicenses(
-				reviewPage.getSelectedJobs());
-		}
-		if (page.equals(optionalFeaturesPage)) {
-			return OperationsManager.hasSelectedJobsWithOptionalFeatures(
-				reviewPage.getSelectedJobs());
-		}
-		if (page.equals(targetPage)) {
-			return reviewPage.getSelectedJobs().length > 0;
-		}
-		return true;
-	}
-
-	public IWizardPage getNextPage(IWizardPage page) {
-		IWizardPage[] pages = getPages();
-		boolean start = false;
-		IWizardPage nextPage = null;
-
-		if (page.equals(reviewPage)) {
-			updateDynamicPages();
-		}
-
-		for (int i = 0; i < pages.length; i++) {
-			if (pages[i].equals(page)) {
-				start = true;
-			} else if (start) {
-				if (isPageRequired(pages[i])) {
-					nextPage = pages[i];
-					break;
-				}
-			}
-		}
-		return nextPage;
-	}
-
-	private void updateDynamicPages() {
-		if (licensePage != null) {
-			IInstallFeatureOperation[] licenseJobs =
-				OperationsManager.getSelectedJobsWithLicenses(
-					reviewPage.getSelectedJobs());
-			licensePage.setJobs(licenseJobs);
-		}
-		if (optionalFeaturesPage != null) {
-			IInstallFeatureOperation[] optionalJobs =
-				OperationsManager.getSelectedJobsWithOptionalFeatures(
-					reviewPage.getSelectedJobs());
-			optionalFeaturesPage.setJobs(optionalJobs);
-		}
-		if (targetPage != null) {
-			IInstallFeatureOperation[] installJobs =
-				reviewPage.getSelectedJobs();
-			targetPage.setJobs(installJobs);
-		}
-	}
-
-	public boolean canFinish() {
-		IWizardPage page = getContainer().getCurrentPage();
-		return page.equals(targetPage) && page.isPageComplete();
-	}
-
-	private void preserveOriginatingURLs(
-		IFeature feature,
-		IFeatureReference[] optionalFeatures) {
-		// walk the hierarchy and preserve the originating URL
-		// for all the optional features that are not chosen to
-		// be installed.
-		URL url = feature.getSite().getURL();
-		try {
-			IIncludedFeatureReference[] irefs =
-				feature.getIncludedFeatureReferences();
-			for (int i = 0; i < irefs.length; i++) {
-				IIncludedFeatureReference iref = irefs[i];
-				boolean preserve = false;
-				if (iref.isOptional()) {
-					boolean onTheList = false;
-					for (int j = 0; j < optionalFeatures.length; j++) {
-						if (optionalFeatures[j].equals(iref)) {
-							//was on the list
-							onTheList = true;
-							break;
-						}
-					}
-					if (!onTheList)
-						preserve = true;
-				}
-				if (preserve) {
-					try {
-						String id =
-							iref.getVersionedIdentifier().getIdentifier();
-						UpdateUI.setOriginatingURL(id, url);
-					} catch (CoreException e) {
-						// Silently ignore
-					}
-				} else {
-					try {
-						IFeature ifeature = iref.getFeature(null);
-						preserveOriginatingURLs(ifeature, optionalFeatures);
-					} catch (CoreException e) {
-						// Silently ignore
-					}
-				}
-			}
-		} catch (CoreException e) {
-			// Silently ignore
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.operations.IOperationListener#afterExecute(org.eclipse.update.operations.IOperation)
-	 */
-	public boolean afterExecute(IOperation operation, Object data) {
-		if (!(operation instanceof IInstallFeatureOperation))
-			return true;
-		IInstallFeatureOperation job = (IInstallFeatureOperation) operation;
-		IFeature oldFeature = job.getOldFeature();
-		if (oldFeature == null && job.getOptionalFeatures() != null)
-			preserveOriginatingURLs(
-				job.getFeature(),
-				job.getOptionalFeatures());
-
-		installCount++;
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.operations.IOperationListener#beforeExecute(org.eclipse.update.operations.IOperation)
-	 */
-	public boolean beforeExecute(IOperation operation, Object data) {
-		return true;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.internal.ui.wizards.ISearchProvider2#getSearchRequest()
-	 */
-	public UpdateSearchRequest getSearchRequest() {
-		return searchRequest;
-	}
-
-	public static synchronized boolean isRunning() {
-		return isRunning || Platform.getJobManager().find(jobFamily).length > 0;
-	}
-	
-	private IBatchOperation getBatchInstallOperation(final IInstallFeatureOperation[] selectedJobs) {
-		final IVerificationListener verificationListener =new JarVerificationService(
-				//InstallWizard.this.getShell());
-				UpdateUI.getActiveWorkbenchShell());
-		
-		// setup jobs with the correct environment
-		IInstallFeatureOperation[] operations =	new IInstallFeatureOperation[selectedJobs.length];
-		for (int i = 0; i < selectedJobs.length; i++) {
-			IInstallFeatureOperation job = selectedJobs[i];
-			IFeature[] unconfiguredOptionalFeatures = null;
-			IFeatureReference[] optionalFeatures = null;
-			if (UpdateUtils.hasOptionalFeatures(job.getFeature())) {
-				optionalFeatures = optionalFeaturesPage.getCheckedOptionalFeatures(job);
-				unconfiguredOptionalFeatures = optionalFeaturesPage.getUnconfiguredOptionalFeatures(job, job.getTargetSite());
-			}
-			IInstallFeatureOperation op =
-				OperationsManager
-					.getOperationFactory()
-					.createInstallOperation(
-					job.getTargetSite(),
-					job.getFeature(),
-					optionalFeatures,
-					unconfiguredOptionalFeatures,
-					verificationListener);
-			operations[i] = op;
-		}
-		return OperationsManager.getOperationFactory().createBatchInstallOperation(operations);
-	}
-
-
-
-	private void launchInBackground() {
-		// Downloads the feature content in the background.
-		// The job listener will then install the feature when download is finished.
-		
-		// TODO: should we cancel existing jobs?
-		if (jobListener != null)
-			Platform.getJobManager().removeJobChangeListener(jobListener);
-		if (job != null)
-			Platform.getJobManager().cancel(job);
-		jobListener = new UpdateJobChangeListener();
-		Platform.getJobManager().addJobChangeListener(jobListener);
-		
-		job = new Job(UpdateUI.getString("InstallWizard.jobName")) { //$NON-NLS-1$	
-			public IStatus run(IProgressMonitor monitor) {
-				if (download(monitor))
-					return Status.OK_STATUS;
-				else {
-					isRunning = false;
-					return Status.CANCEL_STATUS;
-				}
-			}
-			public boolean belongsTo(Object family) {
-				return InstallWizard2.jobFamily == family;
-			}
-		};
-
-		job.setUser(true);
-		job.setPriority(Job.INTERACTIVE);
-//		if (wait) {
-//			progressService.showInDialog(workbench.getActiveWorkbenchWindow().getShell(), job); 
-//		}
-		job.schedule();
-	}
-	
-	private void install(IProgressMonitor monitor) {
-		// Installs the (already downloaded) features and prompts for restart
-		try {
-			needsRestart = installOperation.execute(monitor, InstallWizard2.this);
-			UpdateUI.getStandardDisplay().asyncExec(new Runnable() {
-				public void run() {
-					UpdateUI.requestRestart(InstallWizard2.this.isRestartNeeded());
-				}
-			});
-		} catch (final InvocationTargetException e) {
-			final Throwable targetException = e.getTargetException();
-			if (!(targetException instanceof InstallAbortedException)){
-				UpdateUI.getStandardDisplay().syncExec(new Runnable() {
-					public void run() {
-						UpdateUI.logException(targetException);
-					}
-				});
-			}
-		} catch (CoreException e) {
-		} finally {
-			isRunning = false;
-		}
-	}
-	
-	private boolean download(final IProgressMonitor monitor) {
-		// Downloads the feature content.
-		// This method is called from a background job.
-		// If download fails, the user is prompted to retry.
-		try {
-			IFeatureOperation[] ops = installOperation.getOperations();
-			monitor.beginTask(UpdateUI.getString("InstallWizard.download"), 3*ops.length);
-			for (int i=0; i<ops.length; i++) {
-				IInstallFeatureOperation op = (IInstallFeatureOperation)ops[i];
-				SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 3);
-				try {
-					UpdateUtils.downloadFeatureContent(op.getTargetSite(), op.getFeature(), op.getOptionalFeatures(), subMonitor);
-				} catch (final CoreException e) {
-					if(e instanceof FeatureDownloadException){
-						boolean retry = retryDownload((FeatureDownloadException)e);
-						if (retry) {
-							// redownload current feature
-							i--;
-							continue;
-						}
-					} else {
-						UpdateCore.log(e);
-					}
-					return false;
-				}
-			}
-			return true;
-		} finally {
-			monitor.done();
-		}
-	}
-	
-	private boolean retryDownload(final FeatureDownloadException e) {
-
-		final boolean retry[] = new boolean[1];
-		UpdateUI.getStandardDisplay().syncExec(new Runnable() {
-			public void run() {
-				retry[0] =	MessageDialog.openQuestion(
-					UpdateUI.getActiveWorkbenchShell(),
-					UpdateUI.getString("InstallWizard.retryTitle"), //$NON-NLS-1$
-					e.getMessage()+"\n" //$NON-NLS-1$
-						+ UpdateUI.getString("InstallWizard.retry")); //$NON-NLS-1$
-			}
-		});
-		return retry[0];
-	}
-    
-
-    private class UpdateJobChangeListener extends JobChangeAdapter {
-        public void done(final IJobChangeEvent event) {
-            // the job listener is triggered when the download job is done, and it proceeds
-            // with the actual install
-            if (event.getJob() == InstallWizard2.this.job && event.getResult() == Status.OK_STATUS) {
-                Platform.getJobManager().removeJobChangeListener(this);
-                Platform.getJobManager().cancel(job);
-                
-                final IProgressService progressService= PlatformUI.getWorkbench().getProgressService();
-                UpdateUI.getStandardDisplay().asyncExec(new Runnable() {
-                    public void run() {
-                        try {
-                            progressService.busyCursorWhile( new IRunnableWithProgress() {
-                                public void run(final IProgressMonitor monitor){
-                                    install(monitor);
-                                }
-                            });
-                        } catch (InvocationTargetException e) {
-                            UpdateUI.logException(e);
-                        } catch (InterruptedException e) {
-                            UpdateUI.logException(e, false);
-                        }
-                    }
-                }); 
-            } else if (event.getJob() == InstallWizard2.this.job && event.getResult() != Status.OK_STATUS) {
-                isRunning = false;
-                Platform.getJobManager().removeJobChangeListener(this);
-                Platform.getJobManager().cancel(job);
-                UpdateUI.getStandardDisplay().syncExec(new Runnable() {
-                    public void run() {
-                        UpdateUI.log(event.getResult(), true);
-                    }
-                });
-            }
-        }
-    }
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LicensePage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LicensePage.java
deleted file mode 100644
index f5812df..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LicensePage.java
+++ /dev/null
@@ -1,175 +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 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.update.internal.ui.wizards;

-import org.eclipse.jface.dialogs.Dialog;

-import org.eclipse.jface.wizard.*;

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.layout.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.ui.help.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.ui.*;

-import org.eclipse.update.operations.*;

-

-public class LicensePage extends WizardPage implements IDynamicPage {

-	private static final String KEY_TITLE = "InstallWizard.LicensePage.title"; //$NON-NLS-1$

-	private static final String KEY_DESC = "InstallWizard.LicensePage.desc"; //$NON-NLS-1$

-	private static final String KEY_DESC2 = "InstallWizard.LicensePage.desc2"; //$NON-NLS-1$

-	private static final String KEY_ACCEPT = "InstallWizard.LicensePage.accept"; //$NON-NLS-1$

-	private static final String KEY_DECLINE = "InstallWizard.LicensePage.decline"; //$NON-NLS-1$

-	private static final String KEY_ACCEPT2 = "InstallWizard.LicensePage.accept2"; //$NON-NLS-1$

-	private static final String KEY_DECLINE2 = "InstallWizard.LicensePage.decline2"; //$NON-NLS-1$

-	private boolean multiLicenseMode = false;

-	private IInstallFeatureOperation[] jobs;

-	private Text text;

-	private Table table;

-

-	/**

-	 * Constructor for LicensePage2

-	 */

-	public LicensePage(boolean multiLicenseMode) {

-		super("License"); //$NON-NLS-1$

-		setTitle(UpdateUI.getString(KEY_TITLE));

-		setPageComplete(false);

-		this.multiLicenseMode = multiLicenseMode;

-		UpdateUI.getDefault().getLabelProvider().connect(this);

-		setDescription(

-			UpdateUI.getString(

-				multiLicenseMode ? KEY_DESC2 : KEY_DESC));

-	}

-	public void dispose() {

-		UpdateUI.getDefault().getLabelProvider().disconnect(this);

-		super.dispose();

-	}

-

-	public LicensePage(IInstallFeatureOperation job) {

-		this(false);

-		setJobs(new IInstallFeatureOperation[] { job });

-	}

-

-	public void setJobs(IInstallFeatureOperation[] jobs) {

-		this.jobs = jobs;

-	}

-

-	public void createControl(Composite parent) {

-		Composite client = new Composite(parent, SWT.NULL);

-		client.setLayoutData(new GridData(GridData.FILL_BOTH));

-		GridLayout layout = new GridLayout();

-		client.setLayout(layout);

-		

-		WorkbenchHelp.setHelp(client, "org.eclipse.update.ui.LicensePage2"); //$NON-NLS-1$

-

-		if (multiLicenseMode) {

-			layout.numColumns = 3;

-			layout.makeColumnsEqualWidth = true;

-

-			table = new Table(client, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);

-

-			table.addSelectionListener(new SelectionAdapter() {

-				public void widgetSelected(SelectionEvent e) {

-					if (e.item != null) {

-						Object data = e.item.getData();

-						text.setText((data == null) ? "" : (String) data); //$NON-NLS-1$

-					}

-				}

-			});

-			table.setLayoutData(new GridData(GridData.FILL_BOTH));

-		}

-		text =

-			new Text(

-				client,

-				SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.READ_ONLY);

-

-		GridData gd = new GridData(GridData.FILL_BOTH);

-		if (multiLicenseMode)

-			gd.horizontalSpan = 2;

-		text.setLayoutData(gd);

-		text.setBackground(text.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));

-

-		Composite buttonContainer = new Composite(client, SWT.NULL);

-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);

-		if (multiLicenseMode)

-			gd.horizontalSpan = 3;

-		buttonContainer.setLayout(new GridLayout());

-		buttonContainer.setLayoutData(gd);

-

-		final Button acceptButton = new Button(buttonContainer, SWT.RADIO);

-		acceptButton.setText(

-			UpdateUI.getString(multiLicenseMode ? KEY_ACCEPT2 : KEY_ACCEPT));

-		acceptButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(SelectionEvent e) {

-				setPageComplete(acceptButton.getSelection());

-			}

-		});

-		Button declineButton = new Button(buttonContainer, SWT.RADIO);

-		declineButton.setText(

-			UpdateUI.getString(multiLicenseMode ? KEY_DECLINE2 : KEY_DECLINE));

-		declineButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(SelectionEvent e) {

-				setPageComplete(acceptButton.getSelection());

-			}

-		});

-		setControl(client);

-		

-		Dialog.applyDialogFont(parent);

-	}

-

-	public void setVisible(boolean visible) { // TO DO: Optimize out the case where a feature does not have a license?

-		if (visible) {

-			if (multiLicenseMode) {

-				TableItem item;

-				for (int i = 0; i < jobs.length; i++) {

-					IFeature feature = jobs[i].getFeature();

-					item = new TableItem(table, SWT.NONE);

-					String label =

-						feature.getLabel()

-							+ " " //$NON-NLS-1$

-							+ feature.getVersionedIdentifier().getVersion().toString();

-					item.setText(label);

-					item.setImage(

-						UpdateUI.getDefault().getLabelProvider().get(

-							feature.isPatch()

-								? UpdateUIImages.DESC_EFIX_OBJ

-								: UpdateUIImages.DESC_FEATURE_OBJ));

-					String license = feature.getLicense().getAnnotation();

-					// Question: Can this ever be null? What is the runtime cost?

-					item.setData(license);

-				}

-

-				table.setSelection(0);

-			}

-			showLicenseText();

-		} else {

-			if (multiLicenseMode) {

-				TableItem items[] = table.getItems();

-				for (int i = items.length - 1; i >= 0; i--) {

-					table.getItem(i).dispose();

-				}

-			}

-		}

-		super.setVisible(visible);

-	}

-

-	private void showLicenseText() {

-		if (!multiLicenseMode) {

-			text.setText(jobs[0].getFeature().getLicense().getAnnotation());

-			return;

-		}

-		TableItem[] selectedItems = table.getSelection();

-		if (selectedItems.length == 0) {

-			text.setText(""); //$NON-NLS-1$

-		} else {

-			Object data = selectedItems[0].getData();

-			text.setText((data == null) ? "" : (String) data); //$NON-NLS-1$

-		}

-	}

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LocalSiteSelector.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LocalSiteSelector.java
deleted file mode 100644
index 8e101c0..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LocalSiteSelector.java
+++ /dev/null
@@ -1,212 +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 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.update.internal.ui.wizards;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.zip.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-
-/**
- */
-public class LocalSiteSelector {
-
-	/**
-	 * 
-	 */
-	static String lastLocation = null;
-	public LocalSiteSelector() {
-		super();
-	}
-	public static SiteBookmark getLocaLSite(Shell parent) {
-		DirectoryDialog dialog = new DirectoryDialog(parent);
-		dialog.setMessage(
-			UpdateUI.getString("LocalSiteSelector.dialogMessage")); //$NON-NLS-1$
-		dialog.setFilterPath(lastLocation);
-		String dir = dialog.open();
-
-		SiteBookmark siteBookmark = null;
-		while (dir != null && siteBookmark == null) {
-			File dirFile = new File(dir);
-			if (isDirSite(dirFile)) {
-				siteBookmark = createDirSite(dirFile);
-				lastLocation = dir;
-			} else {
-				MessageDialog.openInformation(
-					parent,
-					UpdateUI.getString("LocalSiteSelector.dirInfoTitle"), //$NON-NLS-1$
-					UpdateUI.getString("LocalSiteSelector.dirInfoMessage")); //$NON-NLS-1$
-				dialog.setFilterPath(dir);
-				dir = dialog.open();
-			}
-		}
-		return siteBookmark;
-	}
-	public static SiteBookmark getLocaLZippedSite(Shell parent) {
-		FileDialog dialog = new FileDialog(parent);
-		dialog.setText(
-			UpdateUI.getString("LocalSiteSelector.dialogMessagezip")); //$NON-NLS-1$
-		//dialog.setFilterExtensions(new String[] { "*.zip", "*.jar" });
-		// //$NON-NLS-1$
-		dialog.setFilterExtensions(new String[] { "*.jar;*.zip" }); //$NON-NLS-1$
-
-		SiteBookmark siteBookmark = null;
-
-		String zip = dialog.open();
-		while (zip != null && siteBookmark == null) {
-			File zipF = new File(zip);
-			if (isZipSite(zipF)) {
-				siteBookmark = createZipSite(zipF);
-			} else {
-				MessageDialog.openInformation(
-					parent,
-					UpdateUI.getString("LocalSiteSelector.zipInfoTitle"), //$NON-NLS-1$
-					UpdateUI.getString("LocalSiteSelector.zipInfoMessage")); //$NON-NLS-1$
-				zip = dialog.open();
-			}
-		}
-		return siteBookmark;
-	}
-	/**
-	 * Returns true the zip file contains an update site
-	 * 
-	 * @param file
-	 * @return
-	 */
-	static boolean isZipSite(File file) {
-		if (!file.getName().toLowerCase().endsWith(".zip") //$NON-NLS-1$
-			&& !file.getName().toLowerCase().endsWith(".jar")) { //$NON-NLS-1$
-			return false;
-		}
-
-		ZippedSiteValidator validator = new ZippedSiteValidator(file);
-		BusyIndicator.showWhile(
-			UpdateUI.getActiveWorkbenchShell().getDisplay(),
-			validator);
-		return validator.isValid();
-	}
-
-	/**
-	 * Returns true if the specified dir contains an update site
-	 * 
-	 * @param dir
-	 * @return
-	 */
-	static boolean isDirSite(File dir) {
-		File siteXML = new File(dir, "site.xml"); //$NON-NLS-1$
-		File featuresDir = new File(dir, "features"); //$NON-NLS-1$
-		File pluginsDir = new File(dir, "plugins"); //$NON-NLS-1$
-		return siteXML.exists()
-			|| featuresDir.exists()
-			&& featuresDir.isDirectory()
-			&& pluginsDir.exists()
-			&& pluginsDir.isDirectory();
-	}
-
-	/**
-	 * Creates a bookmark to a zipped site
-	 * 
-	 * @param file
-	 * @return
-	 */
-	static SiteBookmark createZipSite(File file) {
-		try {
-			URL fileURL = new URL("file", null, file.getAbsolutePath()); //$NON-NLS-1$
-			URL url =
-				new URL(
-					"jar:" //$NON-NLS-1$
-						+ fileURL.toExternalForm().replace('\\', '/')
-						+ "!/"); //$NON-NLS-1$
-			SiteBookmark site = new SiteBookmark(file.getName(), url, false);
-			site.setLocal(true);
-			return site;
-		} catch (Exception e) {
-			return null;
-		}
-	}
-
-	/**
-	 * Creates a bookmark to a site on the file system
-	 * 
-	 * @param file
-	 * @return
-	 */
-	static SiteBookmark createDirSite(File file) {
-		try {
-			URL url = file.toURL();
-			String siteName = file.getAbsolutePath();
-			SiteBookmark site = new SiteBookmark(siteName, url, false);
-			site.setLocal(true);
-			return site;
-		} catch (Exception e) {
-			return null;
-		}
-	}
-	static class ZippedSiteValidator implements Runnable {
-		File file;
-		boolean valid = false;
-		public ZippedSiteValidator(File file) {
-			this.file = file;
-		}
-		public void run() {
-			ZipFile siteZip = null;
-			try {
-				// check if the zip file contains site.xml
-				siteZip = new ZipFile(file);
-				if (siteZip.getEntry("site.xml") != null) { //$NON-NLS-1$
-					valid = true;
-					return;
-				}
-
-				boolean hasFeatures = false;
-				boolean hasPlugins = false;
-				for (Enumeration iterator = siteZip.entries();
-					iterator.hasMoreElements();
-					) {
-					ZipEntry zEntry = (ZipEntry) iterator.nextElement();
-					if (!hasFeatures
-						&& zEntry.getName().startsWith("features")) { //$NON-NLS-1$
-						hasFeatures = true;
-					}
-					if (!hasPlugins
-						&& zEntry.getName().startsWith("plugins")) { //$NON-NLS-1$
-						hasPlugins = true;
-					}
-					if (hasFeatures && hasPlugins) {
-						valid = true;
-						return;
-					}
-				}
-			} catch (Exception e) {
-			} finally {
-				try {
-					if (siteZip != null) {
-						siteZip.close();
-					}
-				} catch (IOException ioe) {
-				}
-			}
-
-		}
-		/**
-		 * @return Returns the valid. */
-		public boolean isValid() {
-			return valid;
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/MirrorsDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/MirrorsDialog.java
deleted file mode 100644
index 3ec16d5..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/MirrorsDialog.java
+++ /dev/null
@@ -1,116 +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 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.update.internal.ui.wizards;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.ui.*;
-
-
-public class MirrorsDialog extends Dialog {
-	private ISiteWithMirrors site;
-	private String siteName;
-	private IURLEntry[] mirrors;
-	private List mirrorsList;
-	private IURLEntry mirrorSelected;
-	private Button okButton;
-	/**
-	 * @param parentShell
-	 */
-	public MirrorsDialog(Shell parentShell, ISiteWithMirrors site, String siteName) {
-		super(parentShell);
-		this.site = site;
-		this.siteName = siteName;
-		try {
-			this.mirrors = site.getMirrorSiteEntries();
-		} catch (CoreException e) {
-			// ignore, as the mirrors have already been queried earlier, so we don't expect error here
-		}
-	}
-	
-	protected void createButtonsForButtonBar(Composite parent) {
-		okButton = createButton(
-				parent,
-				IDialogConstants.OK_ID,
-				IDialogConstants.OK_LABEL,
-				true);
-		createButton(
-			parent,
-			IDialogConstants.CANCEL_ID,
-			IDialogConstants.CANCEL_LABEL,
-			false);
-	}
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = 10;
-		layout.marginWidth = 10;
-		layout.verticalSpacing = 10;
-		composite.setLayout(layout);
-		GridData data = new GridData();
-		data.widthHint = 450;
-		data.heightHint = 300;
-		composite.setLayoutData(data);
-		
-		Text text = new Text(composite, SWT.WRAP );
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 2;
-		text.setLayoutData(data);
-		text.setText(UpdateUI.getFormattedMessage("MirrorsDialog.text", siteName));
-		text.setBackground(parent.getBackground());
-		text.setEditable(false);
-		// the text should not receive focus
-		text.addFocusListener(new FocusAdapter() {
-			public void focusGained(FocusEvent e) {
-				mirrorsList.setFocus();
-			}
-		});
-		
-		mirrorsList = new List(composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-		data = new GridData(GridData.FILL_BOTH);
-		data.horizontalSpan = 2;
-		mirrorsList.setLayoutData(data);
-		
-		mirrorsList.add(siteName);
-		for (int i=0; i<mirrors.length; i++)
-			mirrorsList.add(mirrors[i].getAnnotation());
-
-		mirrorsList.select(0);
-		
-		Dialog.applyDialogFont(composite);
-		return composite;
-	}
-		
-	protected void okPressed() {
-		int i = mirrorsList.getSelectionIndex();
-		// first entry is the site itself
-		if (i > 0)
-			mirrorSelected = mirrors[i-1];
-		super.okPressed();
-	}
-	
-	public IURLEntry getMirror() {
-		return mirrorSelected;
-	}
-
-   protected void configureShell(Shell shell) {
-       super.configureShell(shell);
-       shell.setText(UpdateUI.getString("MirrorsDialog.title"));
-    }
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ModeSelectionPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ModeSelectionPage.java
deleted file mode 100644
index 4ea749b..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ModeSelectionPage.java
+++ /dev/null
@@ -1,130 +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 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.update.internal.ui.wizards;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.update.internal.operations.UpdateUtils;
-import org.eclipse.update.internal.ui.UpdateUI;
-import org.eclipse.update.search.*;
-
-/**
- */
-public class ModeSelectionPage extends BannerPage implements ISearchProvider {
-	private boolean updateMode=true;
-	private Button updatesButton;
-	private Button newFeaturesButton;
-	private UpdateSearchRequest searchRequest;
-	private static final String SECTION_ID = "ModeSelectionPage"; //$NON-NLS-1$
-	private static final String P_NEW_FEATURES_MODE = "new-features-mode"; //$NON-NLS-1$
-	
-	public ModeSelectionPage(UpdateSearchRequest searchRequest) {
-		super("modeSelection"); //$NON-NLS-1$
-		setTitle(UpdateUI.getString("ModeSelectionPage.title")); //$NON-NLS-1$
-		setDescription(UpdateUI.getString("ModeSelectionPage.desc")); //$NON-NLS-1$
-		this.searchRequest = searchRequest;
-	}
-	
-	public UpdateSearchRequest getSearchRequest() {
-		initializeSearch();
-		return searchRequest;
-	}
-	
-	private IDialogSettings getSettings() {
-		IDialogSettings master = UpdateUI.getDefault().getDialogSettings();
-		IDialogSettings section = master.getSection(SECTION_ID);
-		if (section==null)
-			section = master.addNewSection(SECTION_ID);
-		return section;
-	}
-
-	private void initializeSearch() {
-		if (searchRequest!=null) return;
-		searchRequest = UpdateUtils.createNewUpdatesRequest(null);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.internal.ui.wizards.BannerPage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		composite.setLayout(layout);
-		updatesButton = new Button(composite, SWT.RADIO);
-		updatesButton.setText(UpdateUI.getString("ModeSelectionPage.updates")); //$NON-NLS-1$
-		updateMode = !getSettings().getBoolean(P_NEW_FEATURES_MODE);
-		updatesButton.setSelection(updateMode);
-		
-		final Label updatesText = new Label(composite, SWT.WRAP);
-		updatesText.setText(UpdateUI.getString("ModeSelectionPage.updatesText"));
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 100;
-		updatesText.setLayoutData(gd);
-		
-		updatesButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateMode = true;
-                getWizard().getContainer().updateButtons();
-			}
-		});
-		// spacer
-		new Label(composite, SWT.NULL);
-		newFeaturesButton = new Button(composite, SWT.RADIO);
-		newFeaturesButton.setSelection(!updateMode);
-		newFeaturesButton.setText(UpdateUI.getString("ModeSelectionPage.newFeatures")); //$NON-NLS-1$
-		newFeaturesButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateMode = false;
-                getWizard().getContainer().updateButtons();
-			}
-		});		
-
-		final Label newFeaturesText = new Label(composite, SWT.WRAP);
-		newFeaturesText.setText(UpdateUI.getString("ModeSelectionPage.newFeaturesText"));
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 100;
-		newFeaturesText.setLayoutData(gd);
-
-		/*
-		composite.addControlListener(new ControlAdapter() {
-			public void controlResized(ControlEvent e) {
-				Composite parent = (Composite)e.widget;
-				Rectangle carea = parent.getClientArea();
-				GridData gd = (GridData)updatesText.getLayoutData();
-				gd.widthHint = carea.width; 
-				gd = (GridData)newFeaturesText.getLayoutData();
-				gd.widthHint = carea.width; 
-			}
-		});
-		*/
-		
-		Dialog.applyDialogFont(parent);
-		
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, "org.eclipse.update.ui.ModeSelectionPage"); //$NON-NLS-1$
-
-		return composite;
-	}
-	
-	public void saveSettings() {
-		boolean updateMode = updatesButton.getSelection();
-		getSettings().put(P_NEW_FEATURES_MODE, !updateMode);
-	}
-	
-	public boolean isUpdateMode() {
-		return updateMode;
-	}
-    
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdateSiteDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdateSiteDialog.java
deleted file mode 100644
index 465be3c..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdateSiteDialog.java
+++ /dev/null
@@ -1,131 +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 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.update.internal.ui.wizards;
-
-import java.net.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-
-
-public class NewUpdateSiteDialog extends Dialog {
-	
-	protected Text name;
-	protected Text url;
-	private Button okButton;
-	/**
-	 * @param parentShell
-	 */
-	public NewUpdateSiteDialog(Shell parentShell) {
-		super(parentShell);
-	}
-	
-	protected void createButtonsForButtonBar(Composite parent) {
-		okButton = createButton(
-				parent,
-				IDialogConstants.OK_ID,
-				IDialogConstants.OK_LABEL,
-				true);
-		createButton(
-			parent,
-			IDialogConstants.CANCEL_ID,
-			IDialogConstants.CANCEL_LABEL,
-			false);
-		
-		okButton.setEnabled(false);
-		
-	}
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		composite.setLayout(layout);
-		GridData data = new GridData();
-		data.widthHint = 350;
-		composite.setLayoutData(data);
-		
-		Label label = new Label(composite, SWT.NONE);
-		label.setText(UpdateUI.getString("NewUpdateSiteDialog.name")); //$NON-NLS-1$
-		
-		name = new Text(composite, SWT.BORDER);
-		name.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		name.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				verifyComplete();
-			}
-		});
-		
-		label = new Label(composite, SWT.NONE);
-		label.setText(UpdateUI.getString("NewUpdateSiteDialog.url")); //$NON-NLS-1$
-		
-		url = new Text(composite, SWT.BORDER);
-		url.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		url.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				verifyComplete();
-			}
-		});
-		
-		initializeFields();
-		Dialog.applyDialogFont(composite);
-		return composite;
-	}
-	
-	protected void initializeFields() {
-		url.setText("http://"); //$NON-NLS-1$
-	}
-	
-	protected void okPressed() {
-		update();
-		super.okPressed();
-	}
-
-	protected void update() {
-		try {
-			UpdateModel model = UpdateUI.getDefault().getUpdateModel();
-			SiteBookmark bookmark = new SiteBookmark(name.getText(), new URL(url.getText()), false);
-            bookmark.setSelected(true);
-			model.addBookmark(bookmark);
-			model.saveBookmarks();
-		} catch (MalformedURLException e) {
-		}
-	}
-	
-	private void verifyComplete() {
-		if (okButton == null)
-			return;
-			
-		if (name.getText().trim().length() == 0 || url.getText().trim().length() == 0) {
-			okButton.setEnabled(false);
-			return;
-		}
-	
-		try {
-			URL newURL = new URL(URLDecoder.decode(url.getText().trim(), "UTF-8")); //$NON-NLS-1$
-			if (url.getEditable())
-				okButton.setEnabled(!newURL.getProtocol().equals("file")); //$NON-NLS-1$
-			else 
-				okButton.setEnabled(true);
-		} catch (Exception e) {
-			okButton.setEnabled(false);
-		}
-	}
-	
-
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewWebSiteDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewWebSiteDialog.java
deleted file mode 100644
index 003eeeb..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewWebSiteDialog.java
+++ /dev/null
@@ -1,35 +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 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.update.internal.ui.wizards;
-
-import java.net.*;
-
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-
-
-public class NewWebSiteDialog extends NewUpdateSiteDialog {
-
-	public NewWebSiteDialog(Shell parentShell) {
-		super(parentShell);
-	}
-	
-	protected void update() {
-		try {
-			UpdateModel model = UpdateUI.getDefault().getUpdateModel();
-			SiteBookmark bookmark = new SiteBookmark(name.getText(), new URL(url.getText()), true);
-			model.addBookmark(bookmark);
-		} catch (MalformedURLException e) {
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/OptionalFeaturesPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/OptionalFeaturesPage.java
deleted file mode 100644
index d7b5095..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/OptionalFeaturesPage.java
+++ /dev/null
@@ -1,324 +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 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.update.internal.ui.wizards;
-import java.util.*;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.help.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.parts.*;
-import org.eclipse.update.operations.*;
-
-public class OptionalFeaturesPage extends BannerPage implements IDynamicPage {
-	// NL keys
-	private static final String KEY_TITLE =
-		"InstallWizard.OptionalFeaturesPage.title"; //$NON-NLS-1$
-	private static final String KEY_DESC =
-		"InstallWizard.OptionalFeaturesPage.desc"; //$NON-NLS-1$
-	private static final String KEY_TREE_LABEL =
-		"InstallWizard.OptionalFeaturesPage.treeLabel"; //$NON-NLS-1$
-	private static final String KEY_SELECT_ALL =
-		"InstallWizard.OptionalFeaturesPage.selectAll"; //$NON-NLS-1$
-	private static final String KEY_DESELECT_ALL =
-		"InstallWizard.OptionalFeaturesPage.deselectAll"; //$NON-NLS-1$
-	private CheckboxTreeViewer treeViewer;
-	private Button selectAllButton;
-	private Button deselectAllButton;
-	private IInstallConfiguration config;
-	private JobRoot[] jobRoots;
-
-	class TreeContentProvider
-		extends DefaultContentProvider
-		implements ITreeContentProvider {
-
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof JobRoot) {
-				return ((JobRoot) parent).getElements();
-			}
-			if (parent instanceof FeatureHierarchyElement) {
-				FeatureHierarchyElement fe = (FeatureHierarchyElement) parent;
-				Object root = fe.getRoot();
-				boolean oldFeature = false;
-				if (root instanceof JobRoot) {
-					IInstallFeatureOperation job = ((JobRoot)root).getJob();
-					boolean patch = UpdateUtils.isPatch(job.getFeature());
-					oldFeature = job.getOldFeature() != null;
-					return fe.getChildren(oldFeature, patch, config);
-				}
-			}
-			return new Object[0];
-		}
-
-		public Object getParent(Object child) {
-			return null;
-		}
-
-		public boolean hasChildren(Object parent) {
-			return getChildren(parent).length > 0;
-		}
-
-		public Object[] getElements(Object input) {
-			if (jobRoots == null)
-				return new Object[0];
-			return jobRoots;
-		}
-	}
-
-	class TreeLabelProvider extends LabelProvider {
-		public String getText(Object obj) {
-			if (obj instanceof JobRoot) {
-				IFeature feature = ((JobRoot) obj).getJob().getFeature();
-				return feature.getLabel()
-					+ " " //$NON-NLS-1$
-					+ feature.getVersionedIdentifier().getVersion().toString();
-			}
-			if (obj instanceof FeatureHierarchyElement) {
-				String name = ((FeatureHierarchyElement) obj).getLabel();
-				if (name != null)
-					return name;
-			}
-
-			return super.getText(obj);
-		}
-		public Image getImage(Object obj) {
-			return UpdateUI.getDefault().getLabelProvider().get(
-				UpdateUIImages.DESC_FEATURE_OBJ);
-		}
-	}
-
-	/**
-	 * Constructor for ReviewPage2
-	 */
-	public OptionalFeaturesPage(IInstallConfiguration config) {
-		super("OptionalFeatures"); //$NON-NLS-1$
-		setTitle(UpdateUI.getString(KEY_TITLE));
-		setDescription(UpdateUI.getString(KEY_DESC));
-		this.config = config;
-		UpdateUI.getDefault().getLabelProvider().connect(this);
-	}
-
-	public void setJobs(IInstallFeatureOperation[] jobs) {
-		jobRoots = new JobRoot[jobs.length];
-		for (int i = 0; i < jobs.length; i++) {
-			jobRoots[i] = new JobRoot(jobs[i]);
-		}
-	}
-
-	public void dispose() {
-		UpdateUI.getDefault().getLabelProvider().disconnect(this);
-		super.dispose();
-	}
-
-
-	public Control createContents(Composite parent) {
-		Composite client = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = layout.marginHeight = 0;
-		client.setLayout(layout);
-
-		createCheckboxTreeViewer(client);
-
-		selectAllButton = new Button(client, SWT.PUSH);
-		selectAllButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				selectAll(true);
-			}
-		});
-		selectAllButton.setText(UpdateUI.getString(KEY_SELECT_ALL));
-		GridData gd =
-			new GridData(
-				GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
-		selectAllButton.setLayoutData(gd);
-		SWTUtil.setButtonDimensionHint(selectAllButton);
-
-		deselectAllButton = new Button(client, SWT.PUSH);
-		deselectAllButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				selectAll(false);
-			}
-		});
-		deselectAllButton.setText(UpdateUI.getString(KEY_DESELECT_ALL));
-		gd =
-			new GridData(
-				GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
-		deselectAllButton.setLayoutData(gd);
-		SWTUtil.setButtonDimensionHint(deselectAllButton);
-		WorkbenchHelp.setHelp(client, "org.eclipse.update.ui.MultiOptionalFeaturesPage2"); //$NON-NLS-1$
-		
-		Dialog.applyDialogFont(parent);
-		
-		return client;
-	}
-
-	private void createCheckboxTreeViewer(Composite parent) {
-		Label label = new Label(parent, SWT.NULL);
-		label.setText(UpdateUI.getString(KEY_TREE_LABEL));
-		GridData gd = new GridData();
-		gd.horizontalSpan = 2;
-		label.setLayoutData(gd);
-		treeViewer =
-			new CheckboxTreeViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.verticalSpan = 2;
-		treeViewer.getTree().setLayoutData(gd);
-		treeViewer.setContentProvider(new TreeContentProvider());
-		treeViewer.setLabelProvider(new TreeLabelProvider());
-		treeViewer.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent e) {
-				handleChecked(e.getElement(), e.getChecked());
-			}
-		});
-		treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
-		treeViewer.setInput(this);
-	}
-
-	public void setVisible(boolean visible) {
-		if (visible) {
-			treeViewer.setInput(jobRoots);
-			initializeStates();
-		}
-		super.setVisible(visible);
-		if (visible) {
-			treeViewer.getTree().setFocus();
-		}		
-	}
-
-	private void initializeStates() {
-		ArrayList checked = new ArrayList();
-		ArrayList grayed = new ArrayList();
-		ArrayList editable = new ArrayList();
-
-		for (int i = 0; i < jobRoots.length; i++) {
-			checked.add(jobRoots[i]);
-			grayed.add(jobRoots[i]);
-			boolean update = jobRoots[i].getJob().getOldFeature() != null;
-			initializeStates(update, jobRoots[i].getElements(), checked, grayed, editable);
-		}
-		treeViewer.setCheckedElements(checked.toArray());
-		treeViewer.setGrayedElements(grayed.toArray());
-		selectAllButton.setEnabled(editable.size()>0);
-		deselectAllButton.setEnabled(editable.size()>0);
-	}
-
-	private void initializeStates(
-		boolean update,
-		Object[] elements,
-		ArrayList checked,
-		ArrayList grayed,
-		ArrayList editable) {
-
-		for (int i = 0; i < elements.length; i++) {
-			FeatureHierarchyElement element =
-				(FeatureHierarchyElement) elements[i];
-			if (element.isChecked())
-				checked.add(element);
-			if (!element.isEditable())
-				grayed.add(element);
-			else
-				editable.add(element);
-			initializeStates(update, element.getChildren(), checked, grayed, editable);
-		}
-	}
-
-	private void selectAll(boolean value) {
-		ArrayList selected = new ArrayList();
-		for (int i = 0; i < jobRoots.length; i++) {
-			IInstallFeatureOperation job = jobRoots[i].getJob();
-			selected.add(job);
-			Object[] elements = jobRoots[i].getElements();
-			for (int j = 0; j < elements.length; j++) {
-				FeatureHierarchyElement element = (FeatureHierarchyElement) elements[j];
-				selectAll(job.getOldFeature() != null, element, selected, value);
-			}
-		}
-		treeViewer.setCheckedElements(selected.toArray());
-	}
-
-	private void selectAll(
-		boolean update,
-		FeatureHierarchyElement ref,
-		ArrayList selected,
-		boolean value) {
-
-		if (!ref.isOptional()) {
-			selected.add(ref);
-		} else {
-			if (ref.isEditable()) {
-				ref.setChecked(value);
-				if (value)
-					selected.add(ref);
-			} else if (ref.isChecked()) {
-				selected.add(ref);
-			}
-		}
-		Object[] included = ref.getChildren();
-		for (int i = 0; i < included.length; i++) {
-			selectAll(update, (FeatureHierarchyElement) included[i], selected, value);
-		}
-	}
-
-	private void handleChecked(Object element, boolean checked) {
-		if (element instanceof JobRoot) {
-			treeViewer.setChecked(element, !checked);
-			return;
-		}
-		FeatureHierarchyElement fe = (FeatureHierarchyElement) element;
-
-		if (!fe.isEditable())
-			treeViewer.setChecked(element, !checked);
-		else {
-			// update the result
-			fe.setChecked(checked);
-		}
-	}
-	
-	public IFeature[] getUnconfiguredOptionalFeatures(IInstallFeatureOperation job, IConfiguredSite targetSite) {
-		for (int i = 0; i < jobRoots.length; i++) {
-			if (job.equals(jobRoots[i].getJob())) {
-				return jobRoots[i].getUnconfiguredOptionalFeatures(config, targetSite);
-			}
-		}
-		return new IFeature[0];
-	}
-	
-	public IFeatureReference[] getCheckedOptionalFeatures(IInstallFeatureOperation currentJob) {
-		HashSet set = new HashSet();
-		JobRoot jobRoot = null;
-
-		for (int i = 0; i < jobRoots.length; i++) {
-			if (currentJob.equals(jobRoots[i].getJob())) {
-				jobRoot = jobRoots[i];
-				break;
-			}
-		}
-		if (jobRoot == null)
-			return new IFeatureReference[0];
-
-		IInstallFeatureOperation job = jobRoot.getJob();
-		boolean update = job.getOldFeature() != null;
-		boolean patch = UpdateUtils.isPatch(job.getFeature());
-		FeatureHierarchyElement[] elements = jobRoot.getElements();
-		for (int i = 0; i < elements.length; i++) {
-			elements[i].addCheckedOptionalFeatures(update, patch, config, set);
-		}
-		return (IFeatureReference[]) set.toArray(new IFeatureReference[set.size()]);
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReplaceFeatureVersionWizard.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReplaceFeatureVersionWizard.java
deleted file mode 100644
index 411416c..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReplaceFeatureVersionWizard.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.update.internal.ui.wizards;
-
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.update.core.IFeature;
-import org.eclipse.update.internal.ui.UpdateUI;
-import org.eclipse.update.internal.ui.UpdateUIImages;
-
-
-public class ReplaceFeatureVersionWizard extends Wizard {
-	private ReplaceFeatureVersionWizardPage page;
-
-	public ReplaceFeatureVersionWizard(IFeature currentFeature, IFeature[] features) {
-		setWindowTitle(UpdateUI.getString("SwapFeatureWizard.title")); //$NON-NLS-1$
-		setDefaultPageImageDescriptor(UpdateUIImages.DESC_UPDATE_WIZ);
-		page = new ReplaceFeatureVersionWizardPage(currentFeature, features);
-	}
-
-	public void addPages() {
-		addPage(page);
-	}
-	
-	public boolean performFinish() {
-		return page.performFinish();
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReplaceFeatureVersionWizardPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReplaceFeatureVersionWizardPage.java
deleted file mode 100644
index 3ed0c37..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReplaceFeatureVersionWizardPage.java
+++ /dev/null
@@ -1,177 +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 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.update.internal.ui.wizards;
-
-import java.lang.reflect.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.wizard.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.operations.*;
-
-
-public class ReplaceFeatureVersionWizardPage extends WizardPage {
-	
-	private IFeature currentFeature;
-	private IFeature[] features;
-	private TableViewer tableViewer;
-
-	public ReplaceFeatureVersionWizardPage(IFeature currentFeature, IFeature[] features) {
-		super("SwapFeature"); //$NON-NLS-1$
-		setTitle(UpdateUI.getString("SwapFeatureWizardPage.title")); //$NON-NLS-1$
-		setDescription(UpdateUI.getString("SwapFeatureWizardPage.desc")); //$NON-NLS-1$
-		this.currentFeature = currentFeature;
-		this.features = features;
-	}
-
-	public void createControl(Composite parent) {
-		Composite tableContainer = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = layout.marginWidth = 0;
-		tableContainer.setLayout(layout);
-
-		Label label = new Label(tableContainer, SWT.NONE);
-		label.setText(UpdateUI.getString("SwapFeatureWizardPage.label")); //$NON-NLS-1$
-
-		Table table = new Table(tableContainer, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL);
-		table.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		tableViewer = new TableViewer(table);
-		tableViewer.setLabelProvider(new LabelProvider() {
-			public Image getImage(Object element) {
-				UpdateLabelProvider provider =
-					UpdateUI.getDefault().getLabelProvider();
-				return provider.get(UpdateUIImages.DESC_UNCONF_FEATURE_OBJ, 0);
-			}
-			public String getText(Object element) {
-				IFeature feature = (IFeature) element;
-				return feature.getLabel() + " " + feature.getVersionedIdentifier().getVersion().toString(); //$NON-NLS-1$
-			}
-		});
-		
-		tableViewer.setContentProvider(new IStructuredContentProvider() {
-			public Object[] getElements(Object element) {
-				return features;
-			}
-			public void dispose() {
-			}
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			}
-		});
-		
-		tableViewer.setSorter(new ViewerSorter() {
-			public int compare(Viewer viewer, Object e1, Object e2) {
-				PluginVersionIdentifier v1 = ((IFeature)e1).getVersionedIdentifier().getVersion();
-				PluginVersionIdentifier v2 = ((IFeature)e2).getVersionedIdentifier().getVersion();
-				return v1.isGreaterOrEqualTo(v2) ? -1 : 1;
-			}
-		});
-		
-		tableViewer.addFilter(new ViewerFilter() {
-			public boolean select(Viewer viewer, Object parentElement, Object element) {
-				String version =
-					((IFeature) element).getVersionedIdentifier().getVersion().toString();
-				return !version.equals(
-					currentFeature.getVersionedIdentifier().getVersion().toString());
-			}
-		});
-
-		tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				IStructuredSelection ssel = (IStructuredSelection)tableViewer.getSelection();
-				if (ssel == null)
-					return;
-				IFeature chosenFeature = (IFeature)ssel.getFirstElement();
-				IStatus validationStatus =
-					OperationsManager.getValidator().validatePendingReplaceVersion(currentFeature, chosenFeature);
-				setPageComplete(validationStatus == null || validationStatus.getCode() == IStatus.WARNING);
-		
-				if (validationStatus == null) {
-					setErrorMessage(null);
-				} else if (validationStatus.getCode() == IStatus.WARNING) {
-					setErrorMessage(null);
-					setMessage(validationStatus.getMessage(), IMessageProvider.WARNING);
-				} else {
-					setErrorMessage(validationStatus.getMessage());
-				}
-			}
-		});
-		
-		tableViewer.setInput(currentFeature);
-		tableViewer.getTable().select(0);
-		setControl(tableContainer);
-		
-		Dialog.applyDialogFont(tableContainer);
-	}
-
-	public boolean performFinish() {
-		IStructuredSelection ssel = (IStructuredSelection)tableViewer.getSelection();
-		IFeature chosenFeature = (IFeature)ssel.getFirstElement();
-		
-		return swap(currentFeature, chosenFeature);
-	}
-	
-	private boolean swap(final IFeature currentFeature, final IFeature anotherFeature) {
-//		IStatus status =
-//			OperationsManager.getValidator().validatePendingReplaceVersion(currentFeature, anotherFeature);
-//		if (status != null) {
-//			ErrorDialog.openError(
-//				UpdateUI.getActiveWorkbenchShell(),
-//				null,
-//				null,
-//				status);
-//			return false;
-//		}
-
-		IRunnableWithProgress operation = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor)
-				throws InvocationTargetException {
-				IOperation revertOperation =
-					OperationsManager
-						.getOperationFactory()
-						.createReplaceFeatureVersionOperation(currentFeature, anotherFeature);
-				try {
-					boolean restartNeeded = revertOperation.execute(monitor, null);
-					UpdateUI.requestRestart(restartNeeded);
-				} catch (CoreException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					monitor.done();
-				}
-			}
-		};
-		try {
-			getContainer().run(false, true, operation);
-			return true;
-		} catch (InvocationTargetException e) {
-			Throwable targetException = e.getTargetException();
-			if (targetException instanceof InstallAbortedException) {
-				return true;
-			} else {
-				UpdateUI.logException(e);
-			}
-			return false;
-		} catch (InterruptedException e) {
-			return false;
-		}
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ResizableInstallWizardDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ResizableInstallWizardDialog.java
deleted file mode 100644
index 0af170f..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ResizableInstallWizardDialog.java
+++ /dev/null
@@ -1,61 +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 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.update.internal.ui.wizards;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.wizard.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.ui.parts.*;
-import org.eclipse.update.operations.*;
-
-public class ResizableInstallWizardDialog extends WizardDialog {
-	private String title;
-	
-	/**
-	 * Creates a new resizable wizard dialog.
-	 */
-	public ResizableInstallWizardDialog(Shell parent, IWizard wizard, String title) {
-		super(parent, wizard);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.title = title;
-	}	
-	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.window.Window#create()
-	 */
-	public void create() {
-		super.create();
-		
-		getShell().setText(title);
-		SWTUtil.setDialogSize(this, 600, 500);
-	}
-	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.window.Window#open()
-	 */
-	public int open() {
-		IStatus status = OperationsManager.getValidator().validatePlatformConfigValid();
-		if (status != null) {
-			ErrorDialog.openError(
-					getShell(),
-					null,
-					null,
-					status);
-			return IDialogConstants.ABORT_ID;
-		}
-		
-		return super.open();
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/RevertConfigurationWizard.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/RevertConfigurationWizard.java
deleted file mode 100644
index 46411b8..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/RevertConfigurationWizard.java
+++ /dev/null
@@ -1,39 +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 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.update.internal.ui.wizards;
-
-import org.eclipse.jface.wizard.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.UpdateUI;
-
-/**
- * @author Wassim Melhem
- */
-public class RevertConfigurationWizard extends Wizard {
-	
-	RevertConfigurationWizardPage page;
-
-	public RevertConfigurationWizard() {
-		super();
-		setWindowTitle(UpdateUI.getString("RevertConfigurationWizard.wtitle")); //$NON-NLS-1$
-		setDefaultPageImageDescriptor(UpdateUIImages.DESC_CONFIG_WIZ);
-	}
-	
-	public void addPages() {
-		page = new RevertConfigurationWizardPage();
-		addPage(page);
-	}
-
-	public boolean performFinish() {
-		return page.performFinish();
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/RevertConfigurationWizardPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/RevertConfigurationWizardPage.java
deleted file mode 100644
index 5e03833..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/RevertConfigurationWizardPage.java
+++ /dev/null
@@ -1,263 +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 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.update.internal.ui.wizards;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.wizard.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.operations.*;
-
-
-public class RevertConfigurationWizardPage extends WizardPage {
-
-	private TableViewer activitiesViewer;
-	private TableViewer configViewer;
-	public static Color blueBGColor;
-	private SashForm sashForm;
-
-	public RevertConfigurationWizardPage() {
-		super("RevertConfiguration"); //$NON-NLS-1$
-		setTitle(UpdateUI.getString("RevertConfigurationWizardPage.title")); //$NON-NLS-1$
-		setDescription(UpdateUI.getString("RevertConfigurationWizardPage.desc")); //$NON-NLS-1$
-		blueBGColor = new Color(null, 238,238,255);
-		
-	}
-
-	public void createControl(Composite parent) {
-		sashForm = new SashForm(parent, SWT.VERTICAL);
-		sashForm.setLayout(new GridLayout());
-		sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		createConfigurationsSection(sashForm);
-		createActivitiesSection(sashForm);
-		setControl(sashForm);
-
-		Object element = configViewer.getElementAt(0);
-		if (element != null)
-			configViewer.setSelection(new StructuredSelection(element));
-		Dialog.applyDialogFont(sashForm);
-	}
-
-	private void createConfigurationsSection(Composite parent) {
-		Composite tableContainer = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = layout.marginWidth = 0;
-		tableContainer.setLayout(layout);
-		tableContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Label label = new Label(tableContainer, SWT.NONE);
-		label.setText(UpdateUI.getString("RevertConfigurationWizardPage.label")); //$NON-NLS-1$
-
-		Table table = new Table(tableContainer, SWT.BORDER | SWT.V_SCROLL);
-		table.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		configViewer = new TableViewer(table);
-		configViewer.setLabelProvider(new LabelProvider() {
-			public Image getImage(Object element) {
-				UpdateLabelProvider provider =
-					UpdateUI.getDefault().getLabelProvider();
-				return provider.get(UpdateUIImages.DESC_CONFIG_OBJ, 0);
-			}
-			public String getText(Object element) {
-				return Utilities.format(
-					((IInstallConfiguration) element).getCreationDate());
-			}
-
-		});
-		configViewer.setContentProvider(new IStructuredContentProvider() {
-			public Object[] getElements(Object element) {
-				ArrayList result = new ArrayList();
-				ILocalSite localSite = (ILocalSite) element;
-				IInstallConfiguration current =	localSite.getCurrentConfiguration();
-				IInstallConfiguration[] configurations = localSite.getConfigurationHistory();
-				for (int i = configurations.length - 1; i >= 0; i--) {
-					if (!current.equals(configurations[i])) {
-						result.add(configurations[i]);
-					}
-				}
-				return result.toArray();
-			}
-			
-			public void dispose() {
-			}
-
-			public void inputChanged(
-				Viewer viewer,
-				Object oldInput,
-				Object newInput) {
-			}
-
-		});
-
-		configViewer
-			.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent e) {
-				IStructuredSelection ssel =	(IStructuredSelection) e.getSelection();
-				InstallConfiguration currentConfig = (InstallConfiguration)ssel.getFirstElement();
-				activitiesViewer.setInput(currentConfig);
-				activitiesViewer.refresh();
-				TableItem[] items = activitiesViewer.getTable().getItems();
-				for (int i =0; i<items.length; i++){
-					IActivity activity = (IActivity)items[i].getData();
-					// for now, we test exact config match. If needed, we can also compare dates, etc.
-					if (((InstallConfiguration)activity.getInstallConfiguration()).equals(currentConfig))
-						items[i].setBackground(blueBGColor);
-					else
-						items[i].setBackground(activitiesViewer.getControl().getBackground());
-				}
-			}
-		});
-
-		try {
-			configViewer.setInput(SiteManager.getLocalSite());
-		} catch (CoreException e1) {
-		}
-	}
-
-	private void createActivitiesSection(Composite parent) {
-		final Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.marginHeight = gridLayout.marginWidth = 0;
-		composite.setLayout(gridLayout);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		composite.setLayoutData(gd);
-
-
-
-		Label label = new Label(composite, SWT.NONE);
-		label.setText(
-			UpdateUI.getString("RevertConfigurationWizardPage.activities")); //$NON-NLS-1$
-
-		TableLayoutComposite tlComposite= new TableLayoutComposite(composite, SWT.NONE);
-		tlComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		activitiesViewer = ActivitiesTableViewer.createViewer(tlComposite, false);
-
-		tlComposite.addColumnData(new ColumnPixelData(20, true));
-		tlComposite.addColumnData(new ColumnWeightData(2, 150, true));
-		tlComposite.addColumnData(new ColumnWeightData(5, 200, true));
-		tlComposite.addColumnData(new ColumnWeightData(4, 100, true));
-
-		//activitiesViewer.getTable().setLayout(layout);
-
-		TableItem[] configs = configViewer.getTable().getItems();
-		if (configs.length >0)
-			activitiesViewer.setInput((InstallConfiguration)configs[0].getData());
-		
-		composite.addControlListener(new ControlAdapter() {
-			public void controlResized(ControlEvent e) {
-				int sashHeight = getSashForm().getSize().y;
-				int sashWidth = getSashForm().getSize().x;
-				if (composite.getSize().y > (sashHeight*0.85) && composite.getSize().x > (sashWidth*0.5)){
-					getSashForm().setOrientation(SWT.HORIZONTAL);
-				} else {
-					getSashForm().setOrientation(SWT.VERTICAL);
-				}
-			}
-		});
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
-	 */
-	public void dispose() {
-		blueBGColor.dispose();
-	}
-	
-	public SashForm getSashForm(){
-		return sashForm;
-	}
-	public boolean performFinish() {
-		Shell shell = getContainer().getShell();
-		boolean result =
-			MessageDialog.openQuestion(
-				shell,
-				shell.getText(),
-				UpdateUI.getString("RevertConfigurationWizardPage.question")); //$NON-NLS-1$
-		if (!result)
-			return false;
-
-		boolean finish = performRevert();
-		if (finish) {
-			PlatformUI.getWorkbench().restart();
-		}
-		return finish;
-	}
-
-	public boolean performRevert() {
-
-		IStructuredSelection ssel =
-			(IStructuredSelection) configViewer.getSelection();
-		final IInstallConfiguration target =
-			(IInstallConfiguration) ssel.getFirstElement();
-
-		IStatus status =
-			OperationsManager.getValidator().validatePendingRevert(target);
-		if (status != null && status.getCode() == IStatus.ERROR) {
-			ErrorDialog.openError(
-				UpdateUI.getActiveWorkbenchShell(),
-				null,
-				null,
-				status);
-			return false;
-		}
-
-		IRunnableWithProgress operation = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor)
-				throws InvocationTargetException {
-				IOperation revertOperation =
-					OperationsManager
-						.getOperationFactory()
-						.createRevertConfigurationOperation(
-						target,
-						new UIProblemHandler());
-				try {
-					revertOperation.execute(monitor, null);
-				} catch (CoreException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					monitor.done();
-				}
-			}
-		};
-		try {
-			getContainer().run(false, true, operation);
-			return true;
-		} catch (InvocationTargetException e) {
-			Throwable targetException = e.getTargetException();
-			if (targetException instanceof InstallAbortedException) {
-				return true;
-			} else {
-				UpdateUI.logException(e);
-			}
-			return false;
-		} catch (InterruptedException e) {
-			return false;
-		}
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReviewPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReviewPage.java
deleted file mode 100644
index 3792856..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReviewPage.java
+++ /dev/null
@@ -1,1141 +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 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.update.internal.ui.wizards;

-import java.lang.reflect.*;

-import java.net.*;

-import java.util.*;

-

-import org.eclipse.core.runtime.*;

-import org.eclipse.jface.action.*;

-import org.eclipse.jface.dialogs.*;

-import org.eclipse.jface.dialogs.Dialog;

-import org.eclipse.jface.operation.*;

-import org.eclipse.jface.viewers.*;

-import org.eclipse.swt.*;

-import org.eclipse.swt.custom.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.layout.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.ui.*;

-import org.eclipse.ui.dialogs.*;

-import org.eclipse.ui.forms.*;

-import org.eclipse.ui.forms.widgets.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.core.*;

-import org.eclipse.update.internal.operations.*;

-import org.eclipse.update.internal.ui.*;

-import org.eclipse.update.internal.ui.model.*;

-import org.eclipse.update.internal.ui.parts.*;

-import org.eclipse.update.operations.*;

-import org.eclipse.update.search.*;

-

-public class ReviewPage	extends BannerPage {

-

-	private Label label;

-	private ArrayList jobs;

-	private Label counterLabel;

-	private IStatus validationStatus;

-	private Collection problematicFeatures = new HashSet();

-	// feature that was recently selected or null

-	private IFeature newlySelectedFeature;

-	// 

-	private FeatureStatus lastDisplayedStatus;

-	private PropertyDialogAction propertiesAction;

-	private ScrolledFormText descLabel;

-	private Button statusButton;

-	private Button moreInfoButton;

-	private Button propertiesButton;

-	private Button filterCheck;

-	private Button filterOlderVersionCheck;

-	private ContainmentFilter filter = new ContainmentFilter();

-	private LatestVersionFilter olderVersionFilter = new LatestVersionFilter();

-	private UpdateSearchRequest searchRequest;

-	private int LABEL_ORDER = 1;

-	private int VERSION_ORDER = 1;

-	private int PROVIDER_ORDER = 1;

-    private ContainerCheckedTreeViewer treeViewer;

-    private boolean initialized;

-    private boolean isUpdateSearch;

-    

-    class TreeContentProvider extends DefaultContentProvider implements

-            ITreeContentProvider {

-

-        public Object[] getElements(Object parent) {

-            return getSites();

-        }

-

-        public Object[] getChildren(final Object parent) {

-            if (parent instanceof SiteBookmark) {

-                SiteBookmark bookmark = (SiteBookmark) parent;

-                bookmark.getSite(null); // triggers catalog creation

-                Object[] children = bookmark.getCatalog(true,null);

-                ArrayList nonEmptyCategories = new ArrayList(children.length);

-                for (int i=0; i<children.length; i++)

-                    if (hasChildren(children[i]))

-                        nonEmptyCategories.add(children[i]);

-                return nonEmptyCategories.toArray();

-            } else if (parent instanceof SiteCategory) {

-                SiteCategory category = (SiteCategory)parent;

-                //return category.getChildren();

-                Object[] children = category.getChildren();

-                ArrayList list = new ArrayList(children.length);

-                for (int i=0; i<children.length; i++) {

-                    if (children[i] instanceof FeatureReferenceAdapter) {

-                        try {

-                            IInstallFeatureOperation job = findJob((FeatureReferenceAdapter)children[i]);

-                            if (job != null)

-                                list.add(job);

-                        } catch (CoreException e) {

-                            UpdateCore.log(e.getStatus());

-                        }

-                    }

-                }

-                return list.toArray();

-            }

-            return new Object[0];

-        }

-

-        public Object getParent(Object element) {

-            if (element instanceof SiteCategory)

-                return ((SiteCategory) element).getBookmark();

-            if (element instanceof IInstallFeatureOperation) {

-                IFeature f = ((IInstallFeatureOperation)element).getFeature();

-                ISiteFeatureReference fr = f.getSite().getFeatureReference(f);

-                ICategory[] categories = fr.getCategories();

-//                if (categories != null && categories.length > 0)

-//                    return categories[0];

-                SiteBookmark[] sites = (SiteBookmark[])((ITreeContentProvider)treeViewer.getContentProvider()).getElements(null);

-                for (int i=0; i<sites.length; i++) {

-                    if (sites[i].getSite(false, null) != f.getSite())

-                        continue;

-                    Object[] children = sites[i].getCatalog(true, null);

-                    for (int j = 0; j<children.length; j++) {

-                        if (!(children[j] instanceof SiteCategory))

-                            continue;

-                        for (int c=0; c < categories.length; c++)

-                            if (categories[c].getName().equals(((SiteCategory)children[j]).getName()))

-                                return children[j];

-                    }

-                }

-            }

-

-            return null;

-        }

-

-        public boolean hasChildren(Object element) {

-            return (element instanceof SiteBookmark || (

-                    element instanceof SiteCategory && getChildren(element).length > 0));

-        }

-

-        private SiteBookmark[] getSites() {

-            if (searchRequest == null)

-                return new SiteBookmark[0];

-            else if (searchRequest.getScope().getSearchSites() == null ||

-                searchRequest.getScope().getSearchSites().length == 0) {

-                // this is an update search, so see if there are any jobs first,

-                // and get their sites

-                if (jobs != null) {

-                    ArrayList sitesList = new ArrayList(jobs.size());

-                    for (int i = 0; i < jobs.size(); i++) {

-                        IInstallFeatureOperation op = (IInstallFeatureOperation) jobs

-                                .get(i);

-                        // we need a label for the site, so try to get it from the old

-                        // feature update url

-                        String label = null;

-                        IFeature[] existingFeatures = UpdateUtils

-                                .getInstalledFeatures(op.getFeature(), true);

-                        if (existingFeatures != null

-                                && existingFeatures.length > 0) {

-                            IURLEntry entry = op.getFeature()

-                                    .getUpdateSiteEntry();

-                            label = entry.getAnnotation();

-                        }

-                        if (label == null)

-                            label = op.getFeature().getSite().getURL().toExternalForm();

-                                    

-                        SiteBookmark bookmark = new SiteBookmark(label,

-                                op.getFeature().getSite().getURL(), false);

-                        if (sitesList.contains(bookmark))

-                            continue;

-                        else

-                            sitesList.add(bookmark);

-                        

-                    }

-                    if (!sitesList.isEmpty())

-                        return (SiteBookmark[]) sitesList

-                                .toArray(new SiteBookmark[sitesList.size()]);

-                }

-                return new SiteBookmark[0];

-            } else {

-                // search for features

-                IUpdateSearchSite[] sites = searchRequest.getScope().getSearchSites();

-                SiteBookmark[] siteBookmarks = new SiteBookmark[sites.length];

-                for (int i = 0; i < sites.length; i++)

-                    siteBookmarks[i] = new SiteBookmark(sites[i].getLabel(),

-                            sites[i].getURL(), false);

-                return siteBookmarks;

-            }

-        }

-    }

-

-    class TreeLabelProvider extends SharedLabelProvider {

-

-        public Image getImage(Object obj) {

-            if (obj instanceof SiteBookmark)

-                return UpdateUI.getDefault().getLabelProvider().get(

-                        UpdateUIImages.DESC_SITE_OBJ);

-            if (obj instanceof SiteCategory)

-                return UpdateUI.getDefault().getLabelProvider().get(

-                        UpdateUIImages.DESC_CATEGORY_OBJ);

-            if (obj instanceof IInstallFeatureOperation) {

-                IFeature feature = ((IInstallFeatureOperation) obj).getFeature();

-                boolean patch = feature.isPatch();

-                

-                boolean problematic=problematicFeatures.contains(feature);

-                

-                if (patch) {

-                    return get(UpdateUIImages.DESC_EFIX_OBJ, problematic? F_ERROR : 0);

-                } else {

-                    return get(UpdateUIImages.DESC_FEATURE_OBJ, problematic? F_ERROR : 0);

-                }

-            }

-            return super.getImage(obj);

-

-        }

-

-        public String getText(Object obj) {

-            if (obj instanceof SiteBookmark) 

-                return ((SiteBookmark) obj).getLabel();

-            if (obj instanceof SiteCategory)

-                return ((SiteCategory)obj).getName();

-            if (obj instanceof IInstallFeatureOperation) {

-                IInstallFeatureOperation job = (IInstallFeatureOperation) obj;

-                IFeature feature = job.getFeature();

-                return feature.getLabel() + " " + feature

-                            .getVersionedIdentifier()

-                            .getVersion()

-                            .toString();

-            }

-            return super.getText(obj);

-        }

-    }

-

-    class ModelListener implements IUpdateModelChangedListener {

-        public void objectChanged(Object object, String property) {

-            treeViewer.refresh();

-            checkItems();

-        }

-

-        public void objectsAdded(Object parent, Object[] children) {

-            treeViewer.refresh();

-            checkItems();

-        }

-

-        public void objectsRemoved(Object parent, Object[] children) {

-            treeViewer.refresh();

-            checkItems();

-        }

-        

-        private void checkItems() {

-            TreeItem[] items = treeViewer.getTree().getItems();

-            for (int i = 0; i < items.length; i++) {

-                SiteBookmark bookmark = (SiteBookmark) items[i].getData();

-                treeViewer.setChecked(bookmark, bookmark.isSelected());

-                String[] ignoredCats = bookmark.getIgnoredCategories();

-                treeViewer.setGrayed(bookmark, ignoredCats.length > 0

-                        && bookmark.isSelected());

-            }

-        }

-    }

-

-	class ContainmentFilter extends ViewerFilter {

-		public boolean select(Viewer v, Object parent, Object child) {

-            if (child instanceof IInstallFeatureOperation)

-                return !isContained((IInstallFeatureOperation) child);

-            else

-                return true;

-		}

-		private boolean isContained(IInstallFeatureOperation job) {

-			VersionedIdentifier vid = job.getFeature().getVersionedIdentifier();

-

-			for (int i = 0; i < jobs.size(); i++) {

-				IInstallFeatureOperation candidate = (IInstallFeatureOperation) jobs.get(i);

-				if (candidate.equals(job))

-					continue;

-				IFeature feature = candidate.getFeature();

-				if (includes(feature, vid,null))

-					return true;

-			}

-			return false;

-		}

-		private boolean includes(IFeature feature, VersionedIdentifier vid, ArrayList cycleCandidates) {

-			try {

-				if (cycleCandidates == null)

-					cycleCandidates = new ArrayList();

-				if (cycleCandidates.contains(feature))

-					throw Utilities.newCoreException(UpdateUI.getFormattedMessage("InstallWizard.ReviewPage.cycle", feature.getVersionedIdentifier().toString()), null); //$NON-NLS-1$

-				else

-					cycleCandidates.add(feature);

-				IFeatureReference[] irefs =

-					feature.getIncludedFeatureReferences();

-				for (int i = 0; i < irefs.length; i++) {

-					IFeatureReference iref = irefs[i];

-					IFeature ifeature = iref.getFeature(null);

-					VersionedIdentifier ivid =

-						ifeature.getVersionedIdentifier();

-					if (ivid.equals(vid))

-						return true;

-					if (includes(ifeature, vid, cycleCandidates))

-						return true;

-				}

-				return false;

-			} catch (CoreException e) {

-				return false;

-			} finally {

-				// after this feature has been DFS-ed, it is no longer a cycle candidate

-				cycleCandidates.remove(feature);

-			}

-		}

-	}

-

-	class LatestVersionFilter extends ViewerFilter {

-		public boolean select(Viewer v, Object parent, Object child) {

-            if (child instanceof IInstallFeatureOperation)

-                return isLatestVersion((IInstallFeatureOperation) child);

-            else

-                return true;

-		}

-		private boolean isLatestVersion(IInstallFeatureOperation job) {

-			IFeature feature = job.getFeature();

-			for (int i = 0; i < jobs.size(); i++) {

-				IInstallFeatureOperation candidateJob = (IInstallFeatureOperation) jobs.get(i);

-				if (candidateJob.equals(job))

-					continue;

-				IFeature candidate = candidateJob.getFeature();

-				if (feature.getSite() != job.getFeature().getSite())

-					continue;

-				if (!feature.getVersionedIdentifier().getIdentifier().equals(candidate.getVersionedIdentifier().getIdentifier()))

-					continue;

-				if (!feature.getVersionedIdentifier().getVersion().isGreaterThan(candidate.getVersionedIdentifier().getVersion()))

-					return false;

-			}

-			return true;

-		}

-	}

-	

-	class FeaturePropertyDialogAction extends PropertyDialogAction {

-		private IStructuredSelection selection;

-

-		public FeaturePropertyDialogAction(

-			Shell shell,

-			ISelectionProvider provider) {

-			super(shell, provider);

-		}

-

-		public IStructuredSelection getStructuredSelection() {

-			return selection;

-		}

-

-		public void selectionChanged(IStructuredSelection selection) {

-			this.selection = selection;

-		}

-

-	}

-	/**

-	 * Constructor for ReviewPage2

-	 */

-	public ReviewPage(boolean isUpdateSearch, UpdateSearchRequest searchRequest, ArrayList jobs) {

-		super("Review"); //$NON-NLS-1$

-        this.isUpdateSearch = isUpdateSearch;

-        this.jobs = jobs;

-        if (this.jobs==null) this.jobs = new ArrayList();

-        this.searchRequest = searchRequest;

-        

-		setTitle(UpdateUI.getString("InstallWizard.ReviewPage.title")); //$NON-NLS-1$

-		setDescription(UpdateUI.getString("InstallWizard.ReviewPage.desc")); //$NON-NLS-1$

-		UpdateUI.getDefault().getLabelProvider().connect(this);

-		setBannerVisible(false);

-	}

-

-	public void dispose() {

-		UpdateUI.getDefault().getLabelProvider().disconnect(this);

-		super.dispose();

-	}

-

-	public void setVisible(boolean visible) {

-		super.setVisible(visible);

-		

-		// when searching for updates, only nested patches can be shown.

-		// when searching for features, features and patches can be shown

-		String filterText = filterCheck.getText();

-		String filterFeatures = UpdateUI.getString("InstallWizard.ReviewPage.filterFeatures"); //$NON-NLS-1$

-		String filterPatches = UpdateUI.getString("InstallWizard.ReviewPage.filterPatches"); //$NON-NLS-1$

-

-		if (isUpdateSearch && filterText.equals(filterFeatures))

-			filterCheck.setText(filterPatches);

-		else if ( !isUpdateSearch && filterText.equals(filterPatches))

-			filterCheck.setText(filterFeatures);

-		

-		if (visible && !initialized) {

-            initialized = true;

-//			jobs.clear();

-

-//			setDescription(UpdateUI.getString("InstallWizard.ReviewPage.searching")); //$NON-NLS-1$;

-//			label.setText(UpdateUI.getString("")); //$NON-NLS-1$

-

-			getShell().getDisplay().asyncExec(new Runnable() {

-				public void run() {

-//					searchRunner.runSearch();

-					performPostSearchProcessing();

-				}

-			});

-		}

-	}

-

-	private void performPostSearchProcessing() {

-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {

-			public void run() {

-				if (treeViewer != null) {

-//                    treeViewer.refresh();

-//                    treeViewer.getTree().layout(true);

-					if (isUpdateSearch) {

-						selectTrueUpdates();

-					}

-				}

-				pageChanged();

-				

-				int totalCount = jobs != null ? jobs.size(): 0;

-				if(totalCount >0) {

-					setDescription(UpdateUI.getString("InstallWizard.ReviewPage.desc")); //$NON-NLS-1$;

-					label.setText(UpdateUI.getString("InstallWizard.ReviewPage.label")); //$NON-NLS-1$

-				} else {

-					if (isUpdateSearch)

-						setDescription(UpdateUI.getString("InstallWizard.ReviewPage.zeroUpdates")); //$NON-NLS-1$

-					else

-						setDescription(UpdateUI.getString("InstallWizard.ReviewPage.zeroFeatures")); //$NON-NLS-1$

-					label.setText("");

-				}

-			}

-		});

-	}

-	

-	private void selectTrueUpdates() {

-		ArrayList trueUpdates = new ArrayList();

-		for (int i=0; i<jobs.size(); i++) {

-			IInstallFeatureOperation job = (IInstallFeatureOperation)jobs.get(i);

-			if (!UpdateUtils.isPatch(job.getFeature()))

-				trueUpdates.add(job);

-		}

-		treeViewer.setCheckedElements(trueUpdates.toArray()); 

-	}	

-

-	/**

-	 * @see DialogPage#createControl(Composite)

-	 */

-	public Control createContents(Composite parent) {

-		Composite client = new Composite(parent, SWT.NULL);

-		GridLayout layout = new GridLayout();

-		layout.numColumns = 2;

-		layout.marginWidth = layout.marginHeight = 0;

-		client.setLayout(layout);

-		label = new Label(client, SWT.NULL);

-		label.setText(UpdateUI.getString("InstallWizard.ReviewPage.label")); //$NON-NLS-1$

-		GridData gd = new GridData();

-		gd.horizontalSpan = 2;

-		label.setLayoutData(gd);

-

-        createTreeViewer(client);

-

-		Composite comp = new Composite(client, SWT.NONE);

-		layout = new GridLayout();

-		layout.marginWidth = layout.marginHeight = 0;

-		comp.setLayout(layout);

-		comp.setLayoutData(new GridData(GridData.FILL_VERTICAL));

-				

-		Composite buttonContainer = new Composite(comp, SWT.NULL);

-		gd = new GridData(GridData.FILL_VERTICAL);

-		buttonContainer.setLayoutData(gd);

-		layout = new GridLayout();

-		layout.marginWidth = 0;

-		layout.marginHeight = 0; //30?

-		buttonContainer.setLayout(layout);

-		buttonContainer.setLayoutData(new GridData(GridData.FILL_BOTH));

-

-//		Button button = new Button(buttonContainer, SWT.PUSH);

-//		button.setText(UpdateUI.getString("InstallWizard.ReviewPage.selectAll")); //$NON-NLS-1$

-//		gd =

-//			new GridData(

-//				GridData.HORIZONTAL_ALIGN_FILL

-//					| GridData.VERTICAL_ALIGN_BEGINNING);

-//		button.setLayoutData(gd);

-//		SWTUtil.setButtonDimensionHint(button);

-//		button.addSelectionListener(new SelectionAdapter() {

-//			public void widgetSelected(SelectionEvent e) {

-//				handleSelectAll(true);

-//			}

-//		});

-

-		Button button = new Button(buttonContainer, SWT.PUSH);

-		button.setText(UpdateUI.getString("InstallWizard.ReviewPage.deselectAll")); //$NON-NLS-1$

-		gd =

-			new GridData(

-				GridData.HORIZONTAL_ALIGN_FILL

-					| GridData.VERTICAL_ALIGN_BEGINNING);

-		button.setLayoutData(gd);

-		SWTUtil.setButtonDimensionHint(button);

-		button.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(SelectionEvent e) {

-				handleDeselectAll();

-			}

-		});

-

-		moreInfoButton = new Button(buttonContainer, SWT.PUSH);

-		moreInfoButton.setText(UpdateUI.getString("InstallWizard.ReviewPage.moreInfo")); //$NON-NLS-1$

-		gd =

-			new GridData(

-				GridData.HORIZONTAL_ALIGN_FILL

-					| GridData.VERTICAL_ALIGN_BEGINNING);

-		moreInfoButton.setLayoutData(gd);

-		SWTUtil.setButtonDimensionHint(moreInfoButton);

-		moreInfoButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(SelectionEvent e) {

-				handleMoreInfo();

-			}

-		});

-		moreInfoButton.setEnabled(false);

-		

-		

-		propertiesButton = new Button(buttonContainer, SWT.PUSH);

-		propertiesButton.setText(UpdateUI.getString("InstallWizard.ReviewPage.properties")); //$NON-NLS-1$

-		gd =

-			new GridData(

-				GridData.HORIZONTAL_ALIGN_FILL

-					| GridData.VERTICAL_ALIGN_BEGINNING);

-		propertiesButton.setLayoutData(gd);

-		SWTUtil.setButtonDimensionHint(propertiesButton);

-		propertiesButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(SelectionEvent e) {

-				handleProperties();

-			}

-		});

-		propertiesButton.setEnabled(false);

-

-		statusButton = new Button(buttonContainer, SWT.PUSH);

-		statusButton.setText(UpdateUI.getString("InstallWizard.ReviewPage.showStatus")); //$NON-NLS-1$

-		gd =

-			new GridData(

-				GridData.HORIZONTAL_ALIGN_FILL

-					| GridData.VERTICAL_ALIGN_BEGINNING);

-		statusButton.setLayoutData(gd);

-		SWTUtil.setButtonDimensionHint(statusButton);

-		statusButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(SelectionEvent e) {

-				showStatus();

-			}

-		});

-

-		//new Label(client, SWT.NULL);

-

-		counterLabel = new Label(client, SWT.NULL);

-		gd = new GridData();

-		gd.horizontalSpan = 2;

-		counterLabel.setLayoutData(gd);

-

-		filterOlderVersionCheck = new Button(client, SWT.CHECK);

-		filterOlderVersionCheck.setText(UpdateUI.getString("InstallWizard.ReviewPage.filterOlderFeatures")); //$NON-NLS-1$

-		filterOlderVersionCheck.setSelection(true);

-//		tableViewer.addFilter(olderVersionFilter);

-		filterOlderVersionCheck.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(SelectionEvent e) {

-				if (filterOlderVersionCheck.getSelection())

-					treeViewer.addFilter(olderVersionFilter);

-				else 

-					treeViewer.removeFilter(olderVersionFilter);

-				

-				pageChanged();

-			}

-		});

-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);

-		gd.horizontalSpan = 2;

-		filterOlderVersionCheck.setLayoutData(gd);

-		

-		filterCheck = new Button(client, SWT.CHECK);

-		filterCheck.setText(UpdateUI.getString("InstallWizard.ReviewPage.filterFeatures")); //$NON-NLS-1$

-		filterCheck.setSelection(false);

-		//tableViewer.addFilter(filter);

-		filterCheck.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(SelectionEvent e) {

-				if (filterCheck.getSelection()) {

-					// make sure model is local

-					if (downloadIncludedFeatures()) {

-						treeViewer.addFilter(filter);

-					} else {

-						filterCheck.setSelection(false);

-					}

-				} else {

-					treeViewer.removeFilter(filter);

-				}

-				pageChanged();

-			}

-		});

-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);

-		gd.horizontalSpan = 2;

-		filterCheck.setLayoutData(gd);

-		

-		pageChanged();

-

-		PlatformUI.getWorkbench().getHelpSystem().setHelp(client, "org.eclipse.update.ui.MultiReviewPage2"); //$NON-NLS-1$

-

-		Dialog.applyDialogFont(parent);

-

-		return client;

-	}

-

-    private void createTreeViewer(Composite parent) {

-        SashForm sform = new SashForm(parent, SWT.VERTICAL);

-        GridData gd = new GridData(GridData.FILL_BOTH);

-        gd.widthHint = 250;

-        gd.heightHint =100;

-        sform.setLayoutData(gd);

-        

-        treeViewer = new ContainerCheckedTreeViewer(sform, SWT.H_SCROLL | SWT.V_SCROLL

-                | SWT.BORDER);

-        treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));

-        treeViewer.setContentProvider(new TreeContentProvider());

-        treeViewer.setLabelProvider(new TreeLabelProvider());

-        treeViewer.setInput(UpdateUI.getDefault().getUpdateModel());

-

-        treeViewer

-            .addSelectionChangedListener(new ISelectionChangedListener() {

-            public void selectionChanged(SelectionChangedEvent e) {

-                handleSelectionChanged((IStructuredSelection) e.getSelection());

-            }

-        });

-        

-        treeViewer.addCheckStateListener(new ICheckStateListener() {

-            public void checkStateChanged(CheckStateChangedEvent event) {

-                validateSelection();

-                Object site = getSite(event.getElement());

-                ArrayList descendants = new ArrayList();

-                collectDescendants(site, descendants);

-                Object[] nodes = new Object[descendants.size()];

-                for (int i=0; i<nodes.length; i++)

-                    nodes[i] = descendants.get(i);

-                treeViewer.update(nodes, null);

-            }

-        });

-

-//      treeViewer.addFilter(new ViewerFilter() {

-//          public boolean select(

-//              Viewer viewer,

-//              Object parentElement,

-//              Object element) {

-//              if (element instanceof SiteBookmark)

-//                  return !((SiteBookmark) element).isWebBookmark();

-//              return true;

-//          }

-//      });

-        

-      descLabel = new ScrolledFormText(sform, true);

-      descLabel.setText("");

-      descLabel.setBackground(parent.getBackground());

-      HyperlinkSettings settings = new HyperlinkSettings(parent.getDisplay());

-      descLabel.getFormText().setHyperlinkSettings(settings);

-      

-      gd = new GridData(SWT.FILL, SWT.FILL, true, true);

-      gd.horizontalSpan = 1;

-      descLabel.setLayoutData(gd);

-      

-      sform.setWeights(new int[] {10, 2});

-    }

-    

-    

-//    private void handleSiteChecked(SiteBookmark bookmark, boolean checked) {

-//

-//        bookmark.setSelected(checked);

-//        if (checked)

-//            bookmark.setIgnoredCategories(new String[0]);

-//            

-//        if (checked || bookmark.isSiteConnected())

-//            treeViewer.setSubtreeChecked(bookmark, checked);

-//   

-//        treeViewer.setGrayed(bookmark, false);

-//    }

-//    

-//    private void handleCategoryChecked(SiteCategory category, boolean checked) {

-//        SiteBookmark bookmark = category.getBookmark();

-//

-//        ArrayList array = new ArrayList();

-//

-//        if (bookmark.isSelected()) {

-//            String[] ignored = bookmark.getIgnoredCategories();

-//            for (int i = 0; i < ignored.length; i++)

-//                array.add(ignored[i]);

-//        } else {

-//            Object[] categs = bookmark.getCatalog(true, null);

-//            for (int i = 0; i < categs.length; i++)

-//                array.add(((SiteCategory) categs[i]).getFullName());

-//        }

-//

-//        if (checked) {

-//            array.remove(category.getFullName());

-//        } else {

-//            array.add(category.getFullName());

-//        }

-//

-//        bookmark.setIgnoredCategories((String[]) array.toArray(new String[array

-//                .size()]));

-//

-//        Object[] children = ((TreeContentProvider) treeViewer

-//                .getContentProvider()).getChildren(category.getBookmark());

-//        treeViewer.setChecked(bookmark, array.size() < children.length);

-//        bookmark.setSelected(array.size() < children.length);

-//        

-//        if (checked)

-//            treeViewer.setSubtreeChecked(bookmark, checked);

-//        

-//        treeViewer.setGrayed(bookmark, array.size() > 0

-//                && array.size() < children.length);

-//    }

-//

-//    private void handleFeatureChecked(IInstallFeatureOperation job, boolean checked) {

-//        treeViewer.setGrayed(job, false);

-//    }

-    

-    private void handleSelectionChanged(IStructuredSelection ssel) {

-        boolean enable = false;

-        Object item = ssel.getFirstElement();

-        String description = null;

-        if (item instanceof SiteBookmark) {

-            enable = !((SiteBookmark) item).isReadOnly();

-            description = ((SiteBookmark)item).getDescription();

-        } else if (item instanceof SiteCategory) {

-            IURLEntry descEntry = ((SiteCategory)item).getCategory().getDescription();

-            if (descEntry != null)

-                description = descEntry.getAnnotation();

-        } else if (item instanceof IInstallFeatureOperation) {

-            jobSelected(ssel);

-//            IURLEntry descEntry = ((IInstallFeatureOperation)item).getFeature().getDescription();

-//            if (descEntry != null)

-//                description = descEntry.getAnnotation();

-            return;

-        }

-

-        if (description == null)

-            description = ""; //$NON-NLS-1$

-        descLabel.setText(UpdateManagerUtils.getWritableXMLString(description));

-        propertiesButton.setEnabled(false);

-        moreInfoButton.setEnabled(false);

-    }

-

-	

-	private void fillContextMenu(IMenuManager manager) {

-		if (treeViewer.getSelection().isEmpty()) return;

-		Action action = new Action(UpdateUI.getString("InstallWizard.ReviewPage.prop")) { //$NON-NLS-1$

-			public void run() {

-				handleProperties();

-			}

-		};

-		manager.add(action);

-	}

-

-	public void accept(final IFeature feature) {

-		getShell().getDisplay().syncExec(new Runnable() {

-			public void run() {

-				IInstallFeatureOperation job = OperationsManager.getOperationFactory().createInstallOperation( null, feature,null, null, null);

-				ViewerFilter[] filters = treeViewer.getFilters();

-				boolean visible = true;

-

-				for (int i = 0; i < filters.length; i++) {

-					ViewerFilter filter = filters[i];

-					if (!filter.select(treeViewer, null, job)) {

-						visible = false;

-						break;

-					}

-				}

-				if (visible) 

-					updateItemCount(0, -1);

-				

-				jobs.add(job);

-			}

-		});

-	}

-

-

-	private void jobSelected(IStructuredSelection selection) {

-		IInstallFeatureOperation job = (IInstallFeatureOperation) selection.getFirstElement();

-		IFeature feature = job != null ? job.getFeature() : null;

-		IURLEntry descEntry = feature != null ? feature.getDescription() : null;

-		String desc = null;

-		if (descEntry != null)

-			desc = descEntry.getAnnotation();

-		if (desc == null)

-			desc = ""; //$NON-NLS-1$

-		descLabel.setText(UpdateManagerUtils.getWritableXMLString(desc));

-		propertiesButton.setEnabled(feature != null);

-		moreInfoButton.setEnabled(job != null && getMoreInfoURL(job) != null);

-	}

-	

-	private void pageChanged() {

-		Object[] checked = getSelectedJobs();

-		int totalCount = jobs.size();

-		updateItemCount(checked.length, totalCount);

-		if (checked.length > 0) {

-			validateSelection();

-		} else {

-			lastDisplayedStatus = null;

-			setErrorMessage(null);

-			setPageComplete(false);

-			validationStatus = null;

-			problematicFeatures.clear();

-		}

-		treeViewer.update(jobs.toArray(), null);

-		statusButton.setEnabled(validationStatus != null);

-        treeViewer.refresh();

-	}

-

-	private void updateItemCount(int checkedCount, int totalCount) {

-		if (checkedCount == -1) {

-			Object[] checkedElements = getSelectedJobs();

-			checkedCount = checkedElements.length;

-		}

-		if (totalCount == -1) {

-			totalCount = jobs.size();

-		}

-		String total = "" + totalCount; //$NON-NLS-1$

-		String selected = "" + checkedCount; //$NON-NLS-1$

-		counterLabel.setText(

-			UpdateUI.getFormattedMessage(

-				"InstallWizard.ReviewPage.counter", //$NON-NLS-1$

-				new String[] { selected, total }));

-		counterLabel.getParent().layout();

-	}

-

-//	private void handleSelectAll(boolean select) {

-//		treeViewer.setAllChecked(select);

-////		 make sure model is local (download using progress monitor from container)

-//		downloadIncludedFeatures(); 

-//			

-//		treeViewer.getControl().getDisplay().asyncExec(new Runnable() {

-//			public void run() {

-//				pageChanged();

-//			}

-//		});

-//	}

-

-//  private void handleSelectAll(boolean select) {

-//  treeViewer.setAllChecked(select);

-////     make sure model is local (download using progress monitor from container)

-//  downloadIncludedFeatures(); 

-//      

-//  treeViewer.getControl().getDisplay().asyncExec(new Runnable() {

-//      public void run() {

-//          pageChanged();

-//      }

-//  });

-//}

-

-   private void handleDeselectAll() {

-        treeViewer.setCheckedElements(new Object[0]);

-        // make sure model is local (download using progress monitor from

-        // container)

-//        downloadIncludedFeatures();

-

-        treeViewer.getControl().getDisplay().asyncExec(new Runnable() {

-            public void run() {

-                pageChanged();

-            }

-        });

-}

-    

-	private void handleProperties() {

-		final IStructuredSelection selection =

-			(IStructuredSelection) treeViewer.getSelection();

-

-		final IInstallFeatureOperation job =

-			(IInstallFeatureOperation) selection.getFirstElement();

-		if (propertiesAction == null) {

-			propertiesAction =

-				new FeaturePropertyDialogAction(getShell(), treeViewer);

-		}

-

-		BusyIndicator

-			.showWhile(treeViewer.getControl().getDisplay(), new Runnable() {

-			public void run() {

-				SimpleFeatureAdapter adapter =

-					new SimpleFeatureAdapter(job.getFeature());

-				propertiesAction.selectionChanged(

-					new StructuredSelection(adapter));

-				propertiesAction.run();

-			}

-		});

-	}

-

-	private String getMoreInfoURL(IInstallFeatureOperation job) {

-		IURLEntry desc = job.getFeature().getDescription();

-		if (desc != null) {

-			URL url = desc.getURL();

-			return (url == null) ? null : url.toString();

-		}

-		return null;

-	}

-

-	private void handleMoreInfo() {

-		IStructuredSelection selection =

-			(IStructuredSelection) treeViewer.getSelection();

-		final IInstallFeatureOperation selectedJob =

-			(IInstallFeatureOperation) selection.getFirstElement();

-		BusyIndicator

-			.showWhile(treeViewer.getControl().getDisplay(), new Runnable() {

-			public void run() {

-				String urlName = getMoreInfoURL(selectedJob);

-				UpdateUI.showURL(urlName);

-			}

-		});

-	}

-

-	public IInstallFeatureOperation[] getSelectedJobs() {      

-        Object[] selected = treeViewer.getCheckedElements();

-        ArrayList selectedJobs = new ArrayList(selected.length);

-        for (int i=0; i<selected.length; i++)

-            if (selected[i] instanceof IInstallFeatureOperation)

-                selectedJobs.add(selected[i]);

-        return (IInstallFeatureOperation[])selectedJobs.toArray(new IInstallFeatureOperation[selectedJobs.size()]);

-	}

-

-	public void validateSelection() {

-		IInstallFeatureOperation[] jobs = getSelectedJobs();

-		validationStatus =

-			OperationsManager.getValidator().validatePendingChanges(jobs);

-		problematicFeatures.clear();

-		if (validationStatus != null) {

-			IStatus[] status = validationStatus.getChildren();

-			for (int i = 0; i < status.length; i++) {

-				IStatus singleStatus = status[i];

-				if(isSpecificStatus(singleStatus)){

-					IFeature f = ((FeatureStatus) singleStatus).getFeature();

-					problematicFeatures.add(f);				

-				}

-			}

-		}

-

-		setPageComplete(validationStatus == null || validationStatus.getCode() == IStatus.WARNING);

-		

-		updateWizardMessage();

-	}

-

-	private void showStatus() {

-		if (validationStatus != null) {

-			new StatusDialog().open();

-		}

-

-	}

-	/**

-	 * Check whether status is relevant to show for

-	 * a specific feature or is a other problem

-	 * @param status

-	 * @return true if status is FeatureStatus with

-	 * specified feature and certain error codes

-	 */

-	private boolean isSpecificStatus(IStatus status){

-		if(!(status instanceof FeatureStatus)){

-			return false;

-		}

-		if(status.getSeverity()!=IStatus.ERROR){

-			return false;

-		}

-		FeatureStatus featureStatus = (FeatureStatus) status;

-		if(featureStatus.getFeature()==null){

-			return false;

-		}

-		return 0!= (featureStatus.getCode()

-				& FeatureStatus.CODE_CYCLE

-				+ FeatureStatus.CODE_ENVIRONMENT

-				+ FeatureStatus.CODE_EXCLUSIVE

-				+ FeatureStatus.CODE_OPTIONAL_CHILD

-				+ FeatureStatus.CODE_PREREQ_FEATURE

-				+ FeatureStatus.CODE_PREREQ_PLUGIN);

-	}

-	/**

-	 * Update status in the wizard status area

-	 */

-	private void updateWizardMessage() {

-		if (validationStatus == null) {

-			lastDisplayedStatus=null;

-			setErrorMessage(null);

-		} else if (validationStatus.getCode() == IStatus.WARNING) {

-			lastDisplayedStatus=null;

-			setErrorMessage(null);

-			setMessage(validationStatus.getMessage(), IMessageProvider.WARNING);

-		} else {

-			// 1.  Feature selected, creating a problem for it, show status for it

-			if(newlySelectedFeature !=null){

-				IStatus[] status = validationStatus.getChildren();

-				for(int s =0; s< status.length; s++){

-					if(isSpecificStatus(status[s])){

-						FeatureStatus featureStatus = (FeatureStatus)status[s];

-						if(newlySelectedFeature.equals(featureStatus.getFeature())){

-							lastDisplayedStatus=featureStatus;

-							setErrorMessage(featureStatus.getMessage());

-							return;

-						}

-					}

-				}

-			}

-			

-			// 2.  show old status if possible (it is still valid)

-			if(lastDisplayedStatus !=null){

-				IStatus[] status = validationStatus.getChildren();

-				for(int i=0; i<status.length; i++){

-					if(lastDisplayedStatus.equals(status[i])){

-						//lastDisplayedStatus=lastDisplayedStatus;

-						//setErrorMessage(status[i].getMessage());

-						return;

-					}

-				}

-				lastDisplayedStatus = null;

-			}

-			

-			// 3.  pick the first problem that is specific to some feature

-			IStatus[] status = validationStatus.getChildren();

-			for(int s =0; s< status.length; s++){

-				if(isSpecificStatus(status[s])){

-					lastDisplayedStatus = (FeatureStatus)status[s];

-					setErrorMessage(status[s].getMessage());

-					return;

-				}

-			}

-				

-			// 4.  display the first problem (no problems specify a feature)

-			if(status.length>0){

-				IStatus singleStatus=status[0];

-				setErrorMessage(singleStatus.getMessage());

-			}else{

-			// 5. not multi or empty multi status

-				setErrorMessage(UpdateUI.getString("InstallWizard.ReviewPage.invalid.long")); //$NON-NLS-1$

-			}

-		}

-	}

-

-	class StatusDialog extends ErrorDialog {

-//		Button detailsButton;

-		public StatusDialog() {

-			super(getContainer().getShell(), UpdateUI

-					.getString("InstallWizard.ReviewPage.invalid.short"), null, //$NON-NLS-1$

-					validationStatus, IStatus.OK | IStatus.INFO

-							| IStatus.WARNING | IStatus.ERROR);

-		}

-//		protected Button createButton(

-//				Composite parent,

-//				int id,

-//				String label,

-//				boolean defaultButton) {

-//			Button b = super.createButton(parent, id, label, defaultButton);

-//			if(IDialogConstants.DETAILS_ID == id){

-//				detailsButton = b;

-//			}

-//			return b;

-//		}

-		public void create() {

-			super.create();

-			buttonPressed(IDialogConstants.DETAILS_ID);

-//			if(detailsButton!=null){

-//				detailsButton.dispose();

-//			}

-		}

-	}

-

-	/**

-	 * @return true, if completed, false if canceled by the user

-	 */

-	private boolean downloadIncludedFeatures() {

-		try {

-			Downloader downloader = new Downloader(jobs);

-			getContainer().run(true, true, downloader);

-			return !downloader.isCanceled();

-		} catch (InvocationTargetException ite) {

-		} catch (InterruptedException ie) {

-		}

-		return true;

-	}

-	/**

-	 * Runnable to resolve included feature references.

-	 */

-	class Downloader implements IRunnableWithProgress {

-		boolean canceled = false;

-		/**

-		 * List of IInstallFeatureOperation

-		 */

-		ArrayList operations;

-		public Downloader(ArrayList installOperations) {

-			operations = installOperations;

-		}

-		public boolean isCanceled() {

-			return canceled;

-		}

-		public void run(IProgressMonitor monitor)

-				throws InvocationTargetException, InterruptedException {

-			for (int i = 0; i < operations.size(); i++) {

-				IInstallFeatureOperation candidate = (IInstallFeatureOperation) operations

-						.get(i);

-				IFeature feature = candidate.getFeature();

-				try {

-					IFeatureReference[] irefs = feature

-							.getRawIncludedFeatureReferences();

-					for (int f = 0; f < irefs.length; f++) {

-						if (monitor.isCanceled()) {

-							canceled = true;

-							return;

-						}

-						IFeatureReference iref = irefs[f];

-						IFeature ifeature = iref.getFeature(monitor);

-					}

-				} catch (CoreException e) {

-				}

-			}

-			if (monitor.isCanceled()) {

-				canceled = true;

-			}

-		}

-	}

-    

-    private IInstallFeatureOperation findJob(FeatureReferenceAdapter feature)

-            throws CoreException {

-        if (jobs == null)

-            return null;

-        for (int i = 0; i < jobs.size(); i++)

-            if (((IInstallFeatureOperation) jobs.get(i)).getFeature()

-                    .getVersionedIdentifier().equals(feature.getFeatureReference()

-                    .getVersionedIdentifier()))

-                return (IInstallFeatureOperation) jobs.get(i);

-

-        return null;

-    }

-    

-    private Object getSite(Object object) {

-        ITreeContentProvider provider = (ITreeContentProvider)treeViewer.getContentProvider();

-        while (object != null && !(object instanceof SiteBookmark)) {

-            object = provider.getParent(object);

-        }

-        return object;

-    }

-    

-    private void collectDescendants(Object root, ArrayList list) {

-        ITreeContentProvider provider = (ITreeContentProvider)treeViewer.getContentProvider();

-        Object[] children = provider.getChildren(root);

-        if (children != null && children.length > 0)

-            for (int i=0; i<children.length; i++) {

-                list.add(children[i]);

-                collectDescendants(children[i], list);

-            }

-    }

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ShowActivitiesDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ShowActivitiesDialog.java
deleted file mode 100644
index bcbe1a0..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ShowActivitiesDialog.java
+++ /dev/null
@@ -1,199 +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 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.update.internal.ui.wizards;
-
-import java.text.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.ui.*;
-
-
-
-public class ShowActivitiesDialog extends Dialog {
-	private TableViewer activitiesViewer;
-
-	// location configuration
-	private IDialogSettings dialogSettings;
-	private Point dialogLocation;
-	private Point dialogSize;
-
-	/**
-	 * @param parentShell
-	 */
-	public ShowActivitiesDialog(Shell parentShell) {
-		super(parentShell);
-		setShellStyle(SWT.RESIZE | SWT.MIN | SWT.MAX | SWT.APPLICATION_MODAL);
-		readConfiguration();
-	}
-	
-	public void create() {
-		super.create();
-		// dialog location 
-		if (dialogLocation != null)
-			getShell().setLocation(dialogLocation);
-		
-		// dialog size
-		if (dialogSize != null)
-			getShell().setSize(dialogSize);
-		else
-			getShell().setSize(500,500);
-		
-		
-		applyDialogFont(buttonBar);
-		getButton(IDialogConstants.OK_ID).setFocus();
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite container = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		layout.makeColumnsEqualWidth = false;
-		container.setLayout(layout);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.grabExcessHorizontalSpace = true;
-		gd.grabExcessVerticalSpace = true;
-		container.setLayoutData(gd);
-		createDescriptionSection(container);
-		createActivitiesViewer(container);
-		Dialog.applyDialogFont(container);
-		return container;
-	}
-
-	protected Control createDescriptionSection(Composite parent){
-		Composite container = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = false;
-		container.setLayout(layout);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		container.setLayoutData(gd);
-		try {
-			Label targetLabel = new Label(container, SWT.NONE);
-			targetLabel.setText(UpdateUI.getString("ShowActivitiesDialog.date")); //$NON-NLS-1$
-			Label target = new Label(container, SWT.NONE);
-			DateFormat df = DateFormat.getDateTimeInstance();
-			String localizedDate = df.format(SiteManager.getLocalSite().getCurrentConfiguration().getCreationDate());
-			target.setText(localizedDate);
-			
-			Label urlLabel = new Label(container, SWT.NONE);
-			urlLabel.setText(UpdateUI.getString("ShowActivitiesDialog.loc")); //$NON-NLS-1$
-			Label url = new Label(container, SWT.NONE);
-			url.setText(((InstallConfiguration)SiteManager.getLocalSite().getCurrentConfiguration()).getURL().getFile());
-			
-			
-		} catch (CoreException e) {
-			UpdateUI.logException(e);
-		}
-		return container;
-	}
-	protected Control createActivitiesViewer(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.marginHeight = gridLayout.marginWidth = 4;
-		composite.setLayout(gridLayout);
-
-		GridData gd = new GridData(GridData.FILL_BOTH);
-//		gd.grabExcessHorizontalSpace = true;
-//		gd.grabExcessVerticalSpace = true;
-
-		composite.setLayoutData(gd);
-
-		
-		Label label = new Label(composite, SWT.NONE);
-		label.setText(UpdateUI.getString("ShowActivitiesDialog.label")); //$NON-NLS-1$
-		activitiesViewer = ActivitiesTableViewer.createViewer(composite, true);
-
-		TableLayout layout = new TableLayout();
-		layout.addColumnData(new ColumnWeightData(8, 20, false));
-		layout.addColumnData(new ColumnWeightData(50, 160, true));
-		layout.addColumnData(new ColumnWeightData(50, 183, true));
-		layout.addColumnData(new ColumnWeightData(50, 100, true));
-
-		activitiesViewer.getTable().setLayout(layout);
-		try {
-			activitiesViewer.setInput(SiteManager.getLocalSite().getCurrentConfiguration());
-		} catch (CoreException e) {
-		}
-		Dialog.applyDialogFont(composite);
-		return composite;
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		// create OK button only by default
-		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-	}
-
-	public boolean close() {
-		storeSettings();
-		return super.close();
-	}
-	
-	/**
-	 * Stores the current state in the dialog settings.
-	 * @since 2.0
-	 */
-	private void storeSettings() {
-		writeConfiguration();
-	}
-	/**
-	 * Returns the dialog settings object used to share state
-	 * between several event detail dialogs.
-	 * 
-	 * @return the dialog settings to be used
-	 */
-	private IDialogSettings getDialogSettings() {
-		IDialogSettings settings = UpdateUI.getDefault().getDialogSettings();
-		dialogSettings = settings.getSection(getClass().getName());
-		if (dialogSettings == null)
-			dialogSettings= settings.addNewSection(getClass().getName());
-		return dialogSettings;
-	}
-
-	/**
-	 * Initializes itself from the dialog settings with the same state
-	 * as at the previous invocation.
-	 */
-	private void readConfiguration() {
-		IDialogSettings s= getDialogSettings();
-		try {
-			int x= s.getInt("x"); //$NON-NLS-1$
-			int y= s.getInt("y"); //$NON-NLS-1$
-			dialogLocation= new Point(x, y);
-			
-			x = s.getInt("width"); //$NON-NLS-1$
-			y = s.getInt("height"); //$NON-NLS-1$
-			dialogSize = new Point(x,y);
-		} catch (NumberFormatException e) {
-			dialogLocation= null;
-			dialogSize = null;
-		}
-	}
-	
-	private void writeConfiguration(){
-		IDialogSettings s = getDialogSettings();
-		Point location = getShell().getLocation();
-		s.put("x", location.x); //$NON-NLS-1$
-		s.put("y", location.y); //$NON-NLS-1$
-		
-		Point size = getShell().getSize();
-		s.put("width", size.x); //$NON-NLS-1$
-		s.put("height", size.y); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitePage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitePage.java
deleted file mode 100644
index a45d2ec..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitePage.java
+++ /dev/null
@@ -1,535 +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 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.update.internal.ui.wizards;
-
-import java.net.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.widgets.*;
-import org.eclipse.update.internal.core.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-import org.eclipse.update.internal.ui.parts.*;
-import org.eclipse.update.operations.*;
-import org.eclipse.update.search.*;
-
-public class SitePage extends BannerPage implements ISearchProvider {
-
-	class TreeContentProvider
-		extends DefaultContentProvider
-		implements ITreeContentProvider {
-
-		public Object[] getElements(Object parent) {
-			return getAllSiteBookmarks();
-		}
-
-		public Object[] getChildren(final Object parent) {
-//			if (parent instanceof SiteBookmark) {
-//				final SiteBookmark bookmark = (SiteBookmark) parent;
-//				if (bookmark.isUnavailable())
-//					return new Object[0];
-//				final Object[] children =
-//					getSiteCatalogWithIndicator(
-//						bookmark,
-//						!bookmark.isSiteConnected());
-//				treeViewer.getControl().getDisplay().asyncExec(new Runnable() {
-//					public void run() {
-//						if (children.length > 0)
-//							handleSiteExpanded(bookmark, children);
-//					}
-//				});
-//				return children;
-//			}
-			return new Object[0];
-		}
-
-		public Object getParent(Object element) {
-//			if (element instanceof SiteCategory)
-//				return ((SiteCategory) element).getBookmark();
-			return null;
-		}
-
-		public boolean hasChildren(Object element) {
-            return false;
-//			return (element instanceof SiteBookmark);
-		}
-
-	}
-
-	class TreeLabelProvider extends LabelProvider {
-
-		public Image getImage(Object obj) {
-			if (obj instanceof SiteBookmark)
-				return UpdateUI.getDefault().getLabelProvider().get(
-					UpdateUIImages.DESC_SITE_OBJ);
-			if (obj instanceof SiteCategory)
-				return UpdateUI.getDefault().getLabelProvider().get(
-					UpdateUIImages.DESC_CATEGORY_OBJ);
-			return super.getImage(obj);
-		}
-
-		public String getText(Object obj) {
-			if (obj instanceof SiteBookmark) {
-				return ((SiteBookmark) obj).getLabel();
-			}
-			return super.getText(obj);
-		}
-	}
-
-	class ModelListener implements IUpdateModelChangedListener {
-		public void objectChanged(Object object, String property) {
-			treeViewer.refresh();
-			checkItems();
-		}
-
-		public void objectsAdded(Object parent, Object[] children) {
-            treeViewer.refresh();
-			checkItems();
-		}
-
-		public void objectsRemoved(Object parent, Object[] children) {
-			treeViewer.refresh();
-			checkItems();
-		}
-	}
-
-	private static DiscoveryFolder discoveryFolder = new DiscoveryFolder();
-	private CheckboxTreeViewer treeViewer;
-	private ScrolledFormText descLabel;
-	private Button addSiteButton;
-	private Button addLocalButton;
-	private Button addLocalZippedButton;
-	private Button editButton;
-	private Button removeButton;
-	private Button exportButton;
-	private Button importButton;
-	private Button envFilterCheck;
-	private EnvironmentFilter envFilter;
-	private UpdateSearchRequest searchRequest;
-	private ModelListener modelListener;
-
-	public SitePage(UpdateSearchRequest searchRequest) {
-		super("SitePage"); //$NON-NLS-1$
-        this.searchRequest = searchRequest;
-		setTitle(UpdateUI.getString("SitePage.title")); //$NON-NLS-1$
-		setDescription(UpdateUI.getString("SitePage.desc")); //$NON-NLS-1$
-		UpdateUI.getDefault().getLabelProvider().connect(this);
-    	envFilter = new EnvironmentFilter();
-
-		modelListener = new ModelListener();
-		UpdateUI.getDefault().getUpdateModel().addUpdateModelChangedListener(
-			modelListener);
-	}
-
-	private void toggleEnvFilter(boolean add) {
-		if (add)
-			searchRequest.addFilter(envFilter);
-		else
-			searchRequest.removeFilter(envFilter);
-	}
-
-	public void dispose() {
-		UpdateUI.getDefault().getLabelProvider().disconnect(this);
-		UpdateUI
-			.getDefault()
-			.getUpdateModel()
-			.removeUpdateModelChangedListener(
-			modelListener);
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc) @see
-	 * org.eclipse.update.internal.ui.wizards.BannerPage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Composite client = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		client.setLayout(layout);
-
-		Label label = new Label(client, SWT.NULL);
-		label.setText(UpdateUI.getString("SitePage.label")); //$NON-NLS-1$
-		GridData gd = new GridData();
-		gd.horizontalSpan = 2;
-		label.setLayoutData(gd);
-
-		createTreeViewer(client);
-
-		Composite buttonContainer = new Composite(client, SWT.NULL);
-		buttonContainer.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		buttonContainer.setLayout(layout);
-
-		addSiteButton = new Button(buttonContainer, SWT.PUSH);
-		addSiteButton.setText(UpdateUI.getString("SitePage.addUpdateSite")); //$NON-NLS-1$
-		addSiteButton.setLayoutData(
-			new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		SWTUtil.setButtonDimensionHint(addSiteButton);
-		addSiteButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleAddSite();
-			}
-		});
-
-		addLocalButton = new Button(buttonContainer, SWT.PUSH);
-		addLocalButton.setText(UpdateUI.getString("SitePage.addLocalSite")); //$NON-NLS-1$
-		addLocalButton.setLayoutData(
-			new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		SWTUtil.setButtonDimensionHint(addLocalButton);
-		addLocalButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleAddLocal();
-			}
-		});
-
-		addLocalZippedButton = new Button(buttonContainer, SWT.PUSH);
-		addLocalZippedButton.setText(UpdateUI.getString("SitePage.addLocalZippedSite")); //$NON-NLS-1$
-		addLocalZippedButton.setLayoutData(
-			new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		SWTUtil.setButtonDimensionHint(addLocalZippedButton);
-		addLocalZippedButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleAddLocalZipped();
-			}
-		});
-		
-		// separator
-		new Label(buttonContainer, SWT.None);
-		
-		editButton = new Button(buttonContainer, SWT.PUSH);
-		editButton.setText(UpdateUI.getString("SitePage.edit")); //$NON-NLS-1$
-		editButton.setEnabled(false);
-		editButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		SWTUtil.setButtonDimensionHint(editButton);
-		editButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleEdit();
-			}
-		});
-
-		removeButton = new Button(buttonContainer, SWT.PUSH);
-		removeButton.setText(UpdateUI.getString("SitePage.remove")); //$NON-NLS-1$
-		removeButton.setEnabled(false);
-		removeButton.setLayoutData(
-			new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		SWTUtil.setButtonDimensionHint(removeButton);
-		removeButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleRemove();
-			}
-		});
-		
-		// separator
-		new Label(buttonContainer, SWT.None);
-		
-		importButton = new Button(buttonContainer, SWT.PUSH);
-		importButton.setText(UpdateUI.getString("SitePage.import")); //$NON-NLS-1$
-		importButton.setLayoutData(
-			new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		SWTUtil.setButtonDimensionHint(importButton);
-		importButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleImport();
-			}
-		});
-		
-		exportButton = new Button(buttonContainer, SWT.PUSH);
-		exportButton.setText(UpdateUI.getString("SitePage.export")); //$NON-NLS-1$
-		exportButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		SWTUtil.setButtonDimensionHint(exportButton);
-		exportButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleExport();
-			}
-		});
-
-		descLabel = new ScrolledFormText(client, true);
-		descLabel.setText("");
-		descLabel.setBackground(parent.getBackground());
-		HyperlinkSettings settings = new HyperlinkSettings(parent.getDisplay());
-		descLabel.getFormText().setHyperlinkSettings(settings);
-		
-		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-		gd.horizontalSpan = 1;
-        gd.heightHint = 30;
-		descLabel.setLayoutData(gd);
-		
-		envFilterCheck = new Button(client, SWT.CHECK);
-		envFilterCheck.setText(UpdateUI.getString("SitePage.ignore")); //$NON-NLS-1$
-		envFilterCheck.setSelection(true);
-		toggleEnvFilter(true);
-		envFilterCheck.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				toggleEnvFilter(envFilterCheck.getSelection());
-			}
-		});
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-        gd.verticalAlignment = SWT.BOTTOM;
-		envFilterCheck.setLayoutData(gd);
-
-		Dialog.applyDialogFont(parent);
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(client, "org.eclipse.update.ui.SitePage"); //$NON-NLS-1$
-
-		return client;
-	}
-
-	private void createTreeViewer(Composite parent) {
-		treeViewer =
-			new CheckboxTreeViewer(
-				parent,
-				SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
-		treeViewer.setContentProvider(new TreeContentProvider());
-		treeViewer.setLabelProvider(new TreeLabelProvider());
-		treeViewer.setInput(UpdateUI.getDefault().getUpdateModel());
-
-		initializeItems();
-
-		treeViewer.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent e) {
-				Object element = e.getElement();
-				if (element instanceof SiteBookmark)
-					handleSiteChecked((SiteBookmark) element, e.getChecked());
-//				else if (element instanceof SiteCategory) {
-//					handleCategoryChecked(
-//						(SiteCategory) element,
-//						e.getChecked());
-//				}
-			}
-		});
-
-		treeViewer
-			.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent e) {
-				handleSelectionChanged((IStructuredSelection) e.getSelection());
-			}
-		});
-
-	}
-
-	private void initializeItems() {
-		checkItems();
-		updateSearchRequest();
-	}
-
-	private void checkItems() {
-		TreeItem[] items = treeViewer.getTree().getItems();
-		for (int i = 0; i < items.length; i++) {
-			SiteBookmark bookmark = (SiteBookmark) items[i].getData();
-			treeViewer.setChecked(bookmark, bookmark.isSelected());
-//			String[] ignoredCats = bookmark.getIgnoredCategories();
-//			treeViewer.setGrayed(bookmark, ignoredCats.length > 0
-//					&& bookmark.isSelected());
-		}
-	}
-
-	private void handleAddSite() {
-		NewUpdateSiteDialog dialog = new NewUpdateSiteDialog(getShell());
-		dialog.create();
-		dialog.getShell().setText(UpdateUI.getString("SitePage.new")); //$NON-NLS-1$
-		if (dialog.open() == NewUpdateSiteDialog.OK)
-			updateSearchRequest();
-	}
-
-	private void handleAddLocal() {
-		SiteBookmark siteBookmark = LocalSiteSelector.getLocaLSite(getShell());
-		if (siteBookmark != null) {
-			UpdateModel model = UpdateUI.getDefault().getUpdateModel();
-            siteBookmark.setSelected(true);
-			model.addBookmark(siteBookmark);
-			model.saveBookmarks();
-			updateSearchRequest();
-		}
-		return;
-	}
-
-	private void handleAddLocalZipped() {
-		SiteBookmark siteBookmark =
-			LocalSiteSelector.getLocaLZippedSite(getShell());
-		if (siteBookmark != null) {
-			UpdateModel model = UpdateUI.getDefault().getUpdateModel();
-            siteBookmark.setSelected(true);
-			model.addBookmark(siteBookmark);
-			model.saveBookmarks();
-			updateSearchRequest();
-		}
-		return;
-	}
-
-	private void handleRemove() {
-		BusyIndicator
-			.showWhile(treeViewer.getControl().getDisplay(), new Runnable() {
-			public void run() {
-				UpdateModel updateModel =
-					UpdateUI.getDefault().getUpdateModel();
-				IStructuredSelection ssel =
-					(IStructuredSelection) treeViewer.getSelection();
-				SiteBookmark bookmark = (SiteBookmark) ssel.getFirstElement();
-				String selName = bookmark.getLabel();
-				boolean answer = MessageDialog
-								.openQuestion(
-										getShell(),
-										UpdateUI
-												.getString("SitePage.remove.location.conf.title"), //$NON-NLS-1$
-										UpdateUI
-												.getString("SitePage.remove.location.conf")	//$NON-NLS-1$
-												+ " " + selName); //$NON-NLS-1$
-
-				if (answer && !bookmark.isReadOnly()) {
-					updateModel.removeBookmark(bookmark);
-					updateSearchRequest();
-				}
-			}
-		});
-	}
-
-	private void handleEdit() {
-		IStructuredSelection ssel =
-			(IStructuredSelection) treeViewer.getSelection();
-		SiteBookmark bookmark = (SiteBookmark) ssel.getFirstElement();
-		URL oldURL = bookmark.getURL();
-		EditSiteDialog dialog = new EditSiteDialog(getShell(), bookmark);
-		dialog.create();
-		String title = bookmark.isLocal() ? UpdateUI.getString("SitePage.dialogEditLocal") : UpdateUI.getString("SitePage.dialogEditUpdateSite"); //$NON-NLS-1$ //$NON-NLS-2$
-																																				  // //$NON-NLS-2$
-		dialog.getShell().setText(title);
-		if (dialog.open() == EditSiteDialog.OK ) {
-			URL newURL = bookmark.getURL();
-			if (!UpdateManagerUtils.sameURL(oldURL, newURL)) {
-				UpdateModel model = UpdateUI.getDefault().getUpdateModel();
-				model.fireObjectChanged(bookmark, null);
-				updateSearchRequest();	
-			}
-		}
-	}
-
-	private void handleImport() {
-		SiteBookmark[] siteBookmarks = SitesImportExport.getImportedBookmarks(getShell());
-		if (siteBookmarks != null && siteBookmarks.length > 0) {
-			UpdateModel model = UpdateUI.getDefault().getUpdateModel();
-			SiteBookmark[] currentBookmarks = getAllSiteBookmarks();
-			for (int i=0; i<siteBookmarks.length; i++) {
-				boolean siteExists = false;
-				for (int j=0; !siteExists && j<currentBookmarks.length; j++)
-					if (currentBookmarks[j].getURL().equals(siteBookmarks[i].getURL()))
-						siteExists = true;
-				if (!siteExists)
-					model.addBookmark(siteBookmarks[i]);
-			}
-			model.saveBookmarks();
-			updateSearchRequest();
-		}
-		return;
-	}
-	
-	private void handleExport() {
-		SitesImportExport.exportBookmarks(getShell(), getAllSiteBookmarks());
-	}
-	
-	private void handleSiteChecked(SiteBookmark bookmark, boolean checked) {
-		if (bookmark.isUnavailable()) {
-			bookmark.setSelected(false);
-			treeViewer.setChecked(bookmark, false);
-			return;
-		}
-		
-		bookmark.setSelected(checked);
-		updateSearchRequest();
-	}
-
-
-	private void handleSelectionChanged(IStructuredSelection ssel) {
-		boolean enable = false;
-		Object item = ssel.getFirstElement();
-		String description = null;
-		if (item instanceof SiteBookmark) {
-			enable = !((SiteBookmark) item).isReadOnly();
-			description = ((SiteBookmark)item).getDescription();
-		} else if (item instanceof SiteCategory) {
-//			IURLEntry descEntry = ((SiteCategory)item).getCategory().getDescription();
-//			if (descEntry != null)
-//				description = descEntry.getAnnotation();
-		}
-		editButton.setEnabled(enable);
-		removeButton.setEnabled(enable);
-
-		if (description == null)
-			description = ""; //$NON-NLS-1$
-		descLabel.setText(UpdateManagerUtils.getWritableXMLString(description));
-	}
-
-	private void updateSearchRequest() {
-		Object[] checked = treeViewer.getCheckedElements();
-
-		UpdateSearchScope scope = new UpdateSearchScope();
-		int nsites = 0;
-
-		for (int i = 0; i < checked.length; i++) {
-			if (checked[i] instanceof SiteBookmark) {
-				SiteBookmark bookmark = (SiteBookmark) checked[i];
-				scope.addSearchSite(
-					bookmark.getLabel(),
-					bookmark.getURL(),
-					bookmark.getIgnoredCategories());
-				nsites++;
-			}
-		}
-		searchRequest.setScope(scope);
-		setPageComplete(nsites > 0);
-	}
-
-	public UpdateSearchRequest getSearchRequest() {
-		return searchRequest;
-	}
-    
-	public void setVisible(boolean value) {
-		super.setVisible(value);
-		if (value) {
-			// Reset all unavailable sites, so they can be tried again if the user wants it
-			SiteBookmark[] bookmarks = getAllSiteBookmarks();
-			for (int i=0; i<bookmarks.length; i++) {
-				if (bookmarks[i].isUnavailable())
-					bookmarks[i].setUnavailable(false);
-			}
-		}
-	}
-	
-	private SiteBookmark[] getAllSiteBookmarks() {
-		UpdateModel model = UpdateUI.getDefault().getUpdateModel();
-		Object[] bookmarks = model.getBookmarkLeafs();
-		Object[] sitesToVisit =
-			discoveryFolder.getChildren(discoveryFolder);
-		SiteBookmark[] all = new SiteBookmark[bookmarks.length + sitesToVisit.length];
-		System.arraycopy(bookmarks, 0, all, 0, bookmarks.length);
-		System.arraycopy(
-			sitesToVisit,
-			0,
-			all,
-			bookmarks.length,
-			sitesToVisit.length);
-		return all;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitesImportExport.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitesImportExport.java
deleted file mode 100644
index d1ea0ea..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitesImportExport.java
+++ /dev/null
@@ -1,88 +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 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.update.internal.ui.wizards;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.model.*;
-
-/**
- */
-public class SitesImportExport {
-
-	static String lastLocation = null;
-	
-	public SitesImportExport() {
-		super();
-	}
-	
-
-	public static SiteBookmark[] getImportedBookmarks(Shell parent) {
-		FileDialog dialog = new FileDialog(parent);
-		dialog.setText(
-			UpdateUI.getString("LocalSiteSelector.dialogMessageImport")); //$NON-NLS-1$
-
-		dialog.setFilterExtensions(new String[] { "*.xml", "*" }); //$NON-NLS-1$
-
-		SiteBookmark[] siteBookmarks = null;
-
-		String bookmarksFile = dialog.open();
-		while (bookmarksFile != null && siteBookmarks == null) {
-			File file = new File(bookmarksFile);
-			siteBookmarks = createImportedBookmarks(file);
-			if (siteBookmarks == null || siteBookmarks.length == 0) {
-				MessageDialog.openInformation(
-					parent,
-					UpdateUI.getString("LocalSiteSelector.importInfoTitle"), //$NON-NLS-1$
-					UpdateUI.getString("LocalSiteSelector.importInfoMessage")); //$NON-NLS-1$
-				bookmarksFile = dialog.open();
-			} else {
-				break;
-			}
-		}
-		return siteBookmarks;
-	}
-
-	public static void exportBookmarks(Shell parent, SiteBookmark[] siteBookmarks) {
-		FileDialog dialog = new FileDialog(parent, SWT.SAVE);
-		dialog.setText(
-			UpdateUI.getString("LocalSiteSelector.dialogMessageExport")); //$NON-NLS-1$
-
-		dialog.setFileName("bookmarks.xml"); //$NON-NLS-1$
-
-		String bookmarksFile = dialog.open();
-		if (bookmarksFile == null)
-			return;
-		
-		Vector bookmarks = new Vector(siteBookmarks.length);
-		for (int i=0; i<siteBookmarks.length; i++)
-			bookmarks.add(siteBookmarks[i]);
-		BookmarkUtil.store(bookmarksFile, bookmarks);
-	}
-	
-	/**
-	 * Creates bookmarks out from the given file
-	 * 
-	 * @param file
-	 * @return
-	 */
-	static SiteBookmark[] createImportedBookmarks(File file) {
-		Vector bookmarks = new Vector();
-		BookmarkUtil.parse(file.getAbsolutePath(), bookmarks);
-		return BookmarkUtil.getBookmarks(bookmarks);
-	}
-
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TableLayoutComposite.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TableLayoutComposite.java
deleted file mode 100644
index ef112d5..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TableLayoutComposite.java
+++ /dev/null
@@ -1,173 +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 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.update.internal.ui.wizards;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-
-/**
- * A special composite to layout columns inside a table. The composite is needed since we have
- * to layout the columns "before" the actual table gets layouted. Hence we can't use a normal
- * layout manager.
- */
-public class TableLayoutComposite extends Composite {
-
-	private List columns= new ArrayList();
-
-	/**
-	 * Creates a new <code>TableLayoutComposite</code>.
-	 */
-	public TableLayoutComposite(Composite parent, int style) {
-		super(parent, style);
-        addControlListener(new ControlAdapter() {
-            public void controlResized(ControlEvent e) {
-                Rectangle area= getClientArea();
-                Table table= (Table)getChildren()[0];
-                Point preferredSize= computeTableSize(table);
-                int width= area.width - 2 * table.getBorderWidth();
-                if (preferredSize.y > area.height) {
-                    // Subtract the scrollbar width from the total column width
-                    // if a vertical scrollbar will be required
-                    Point vBarSize = table.getVerticalBar().getSize();
-                    width -= vBarSize.x;
-                }
-                layoutTable(table, width, area, table.getSize().x < area.width);
-            }
-        });
-	}
-	
-	/**
-	 * Adds a new column of data to this table layout.
-	 *
-	 * @param data the column layout data
-	 */
-	public void addColumnData(ColumnLayoutData data) {
-		columns.add(data);
-	}
-	
-	//---- Helpers -------------------------------------------------------------------------------------
-	
-	private Point computeTableSize(Table table) {
-		Point result= table.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		
-		int width= 0;
-		int size= columns.size();
-		for (int i= 0; i < size; ++i) {
-			ColumnLayoutData layoutData= (ColumnLayoutData) columns.get(i);
-			if (layoutData instanceof ColumnPixelData) {
-				ColumnPixelData col= (ColumnPixelData) layoutData;
-				width += col.width;
-			} else if (layoutData instanceof ColumnWeightData) {
-				ColumnWeightData col= (ColumnWeightData) layoutData;
-				width += col.minimumWidth;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$
-			}
-		}
-		if (width > result.x)
-			result.x= width;
-		return result;
-	}
-	
-	private void layoutTable(Table table, int width, Rectangle area, boolean increase) {
-		// XXX: Layout is being called with an invalid value the first time
-		// it is being called on Linux. This method resets the
-		// Layout to null so we make sure we run it only when
-		// the value is OK.
-		if (width <= 1)
-			return;
-
-		TableColumn[] tableColumns= table.getColumns();
-		int size= Math.min(columns.size(), tableColumns.length);
-		int[] widths= new int[size];
-		int fixedWidth= 0;
-		int numberOfWeightColumns= 0;
-		int totalWeight= 0;
-
-		// First calc space occupied by fixed columns
-		for (int i= 0; i < size; i++) {
-			ColumnLayoutData col= (ColumnLayoutData) columns.get(i);
-			if (col instanceof ColumnPixelData) {
-				int pixels= ((ColumnPixelData) col).width;
-				widths[i]= pixels;
-				fixedWidth += pixels;
-			} else if (col instanceof ColumnWeightData) {
-				ColumnWeightData cw= (ColumnWeightData) col;
-				numberOfWeightColumns++;
-				// first time, use the weight specified by the column data, otherwise use the actual width as the weight
-				// int weight = firstTime ? cw.weight : tableColumns[i].getWidth();
-				int weight= cw.weight;
-				fixedWidth+=cw.minimumWidth;
-				totalWeight += weight;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$
-			}
-		}
-
-		// Do we have columns that have a weight
-		if (numberOfWeightColumns > 0) {
-			// Now distribute the rest to the columns with weight.
-			int rest= width - fixedWidth;
-			int totalDistributed= 0;
-			for (int i= 0; i < size; ++i) {
-				ColumnLayoutData col= (ColumnLayoutData) columns.get(i);
-				if (col instanceof ColumnWeightData) {
-					ColumnWeightData cw= (ColumnWeightData) col;
-					// calculate weight as above
-					// int weight = firstTime ? cw.weight : tableColumns[i].getWidth();
-					int weight= cw.weight;
-					int sparePixels= totalWeight == 0 ? 0 : weight * rest / totalWeight;
-					int newWidth = cw.minimumWidth;
-					if (sparePixels >0 )
-						newWidth += sparePixels;
-					totalDistributed += newWidth;
-					widths[i]= newWidth;
-				}
-			}
-
-			// Distribute any remaining pixels to columns with weight.
-			int diff= rest - totalDistributed;
-			for (int i= 0; diff > 0; ++i) {
-				if (i == size)
-					i= 0;
-				ColumnLayoutData col= (ColumnLayoutData) columns.get(i);
-				if (col instanceof ColumnWeightData) {
-					++widths[i];
-					--diff;
-				}
-			}
-		}
-		
-		if (increase) {
-			table.setSize(area.width, area.height);
-		}
-		for (int i= 0; i < size; i++) {
-			tableColumns[i].setWidth(widths[i]);
-		}
-		if (!increase) {
-			table.setSize(area.width, area.height);
-		}
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetPage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetPage.java
deleted file mode 100644
index 8ac8713..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetPage.java
+++ /dev/null
@@ -1,423 +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 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.update.internal.ui.wizards;

-

-import java.io.*;

-import java.util.*;

-

-import org.eclipse.jface.dialogs.Dialog;

-import org.eclipse.jface.resource.*;

-import org.eclipse.jface.viewers.*;

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.layout.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.ui.help.*;

-import org.eclipse.update.configuration.*;

-import org.eclipse.update.core.*;

-import org.eclipse.update.internal.operations.*;

-import org.eclipse.update.internal.ui.*;

-import org.eclipse.update.internal.ui.parts.*;

-import org.eclipse.update.operations.*;

-

-public class TargetPage extends BannerPage implements IDynamicPage {

-	private TableViewer jobViewer;

-	private IInstallConfiguration config;

-	private ConfigListener configListener;

-	private Label requiredSpaceLabel;

-	private Label availableSpaceLabel;

-	private IInstallFeatureOperation[] jobs;

-    private IInstallFeatureOperation currentJob;

-    private Label installLocation;

-    private Button changeLocation;

-    static HashSet added;

-

-	class JobsContentProvider

-		extends DefaultContentProvider

-		implements IStructuredContentProvider {

-		public Object[] getElements(Object parent) {

-			return jobs;

-		}

-	}

-

-	class JobsLabelProvider

-		extends LabelProvider

-		implements ITableLabelProvider {

-			

-		public Image getColumnImage(Object obj, int col) {

-			UpdateLabelProvider provider = UpdateUI.getDefault().getLabelProvider();

-

-			IInstallFeatureOperation job = (IInstallFeatureOperation) obj;

-			ImageDescriptor base =

-				job.getFeature().isPatch()

-					? UpdateUIImages.DESC_EFIX_OBJ

-					: UpdateUIImages.DESC_FEATURE_OBJ;

-			int flags = 0;

-			if (job.getTargetSite() == null)

-				flags = UpdateLabelProvider.F_ERROR;

-			return provider.get(base, flags);

-		}

-

-		public String getColumnText(Object obj, int col) {

-			if (col == 0) {

-				IFeature feature = ((IInstallFeatureOperation) obj).getFeature();

-				return feature.getLabel()

-					+ " " //$NON-NLS-1$

-					+ feature.getVersionedIdentifier().getVersion().toString();

-			}

-			return null;

-		}

-	}

-	

-	class ConfigListener implements IInstallConfigurationChangedListener {

-		public void installSiteAdded(IConfiguredSite csite) {

-			

-			// set the site as target for all jobs without a target

-			for (int i=0; jobs != null && i<jobs.length; i++)

-				if (jobs[i].getTargetSite() == null && getSiteVisibility(csite, jobs[i])) {

-					jobs[i].setTargetSite(csite);

-				}

-

-			jobViewer.refresh();

-		}

-

-		public void installSiteRemoved(IConfiguredSite csite) {

-			// remove the target site for all jobs that use it

-			// set the site as target for all jobs without a target

-			boolean refreshJobs = false;

-			for (int i=0; jobs != null && i<jobs.length; i++)

-				if (jobs[i].getTargetSite() == csite) {

-					jobs[i].setTargetSite(null);

-					refreshJobs = true;

-				}

-				

-			pageChanged();

-			

-			jobViewer.refresh();

-			if (refreshJobs) {

-				jobViewer.getControl().setFocus();

-			}

-		}

-	}

-

-	/**

-	 * Constructor for ReviewPage2

-	 */

-	public TargetPage(IInstallConfiguration config) {

-		super("Target"); //$NON-NLS-1$

-		setTitle(UpdateUI.getString("InstallWizard.TargetPage.title")); //$NON-NLS-1$

-		setDescription(UpdateUI.getString("InstallWizard.TargetPage.desc")); //$NON-NLS-1$

-		this.config = config;

-		UpdateUI.getDefault().getLabelProvider().connect(this);

-		configListener = new ConfigListener();

-	}

-

-	public void setJobs(IInstallFeatureOperation[] jobs) {

-		this.jobs = jobs;

-	}

-

-	public void dispose() {

-		UpdateUI.getDefault().getLabelProvider().disconnect(this);

-//		config.removeInstallConfigurationChangedListener(configListener);

-		super.dispose();

-	}

-

-	public Control createContents(Composite parent) {

-		Composite client = new Composite(parent, SWT.NULL);

-		GridLayout layout = new GridLayout();

-		layout.numColumns = 3;

-		layout.marginWidth = layout.marginHeight = 0;

-		client.setLayout(layout);

-		client.setLayoutData(new GridData(GridData.FILL_BOTH));

-		

-		Label label = new Label(client, SWT.NULL);

-		label.setText(UpdateUI.getString("InstallWizard.TargetPage.jobsLabel")); //$NON-NLS-1$

-		createJobViewer(client);

-

-		label = new Label(client, SWT.NULL);

-		label.setText(UpdateUI.getString("InstallWizard.TargetPage.location")); //$NON-NLS-1$

-        GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);

-        label.setLayoutData(gd);

-

-		installLocation = new Label(client, SWT.NULL);

-        installLocation.setText("foo");

-        gd = new GridData(GridData.FILL_HORIZONTAL);

-        installLocation.setLayoutData(gd);

-        

-        changeLocation = new Button(client, SWT.PUSH);

-        changeLocation.setText(UpdateUI.getString("InstallWizard.TargetPage.location.change")); //$NON-NLS-1$

-        changeLocation.addSelectionListener(new SelectionAdapter() {

-            public void widgetSelected(SelectionEvent e) {

-                IStructuredSelection selection = (IStructuredSelection) jobViewer.getSelection();

-                if (selection == null)

-                    return;

-                IInstallFeatureOperation job = (IInstallFeatureOperation) selection.getFirstElement();

-                if (job == null) 

-                    return;

-                

-                TargetSiteDialog dialog = new TargetSiteDialog(getShell(), config, job, configListener);

-                dialog.create();

-

-                SWTUtil.setDialogSize(dialog, 400, 300);

-                

-                dialog.getShell().setText(UpdateUI.getString("SitePage.new")); //$NON-NLS-1$

-                dialog.open();

-                setTargetLocation(job);

-                pageChanged();

-                jobViewer.refresh();

-                updateStatus(job.getTargetSite());

-            }

-        });

-			

-		Composite status = new Composite(client, SWT.NULL);

-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);

-		gd.horizontalSpan = 3;

-		status.setLayoutData(gd);

-		layout = new GridLayout();

-		layout.numColumns = 2;

-		status.setLayout(layout);

-		label = new Label(status, SWT.NULL);

-		label.setText(UpdateUI.getString("InstallWizard.TargetPage.requiredSpace")); //$NON-NLS-1$

-		requiredSpaceLabel = new Label(status, SWT.NULL);

-		requiredSpaceLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-		label = new Label(status, SWT.NULL);

-		label.setText(UpdateUI.getString("InstallWizard.TargetPage.availableSpace")); //$NON-NLS-1$

-		availableSpaceLabel = new Label(status, SWT.NULL);

-		availableSpaceLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-

-		WorkbenchHelp.setHelp(client, "org.eclipse.update.ui.MultiTargetPage2"); //$NON-NLS-1$

-		

-		Dialog.applyDialogFont(parent);

-		

-		return client;

-	}

-

-	private void createJobViewer(Composite parent) {

-		jobViewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);

-		GridData gd = new GridData(GridData.FILL_BOTH);

-        gd.horizontalSpan = 3;

-		gd.widthHint = 150;

-		jobViewer.getTable().setLayoutData(gd);

-		jobViewer.setContentProvider(new JobsContentProvider());

-		jobViewer.setLabelProvider(new JobsLabelProvider());

-

-		jobViewer.addSelectionChangedListener(new ISelectionChangedListener() {

-			public void selectionChanged(SelectionChangedEvent event) {

-				IStructuredSelection selection = (IStructuredSelection) event.getSelection();

-				IInstallFeatureOperation job = (IInstallFeatureOperation) selection.getFirstElement();

-				setTargetLocation(job);

-			}

-		});

-	}

-

-	public void setVisible(boolean visible) {

-		if (visible) {

-			initializeDefaultTargetSites();

-			jobViewer.setInput(jobs);

-			if (jobViewer.getSelection().isEmpty() && jobs.length > 0)

-				jobViewer.setSelection(new StructuredSelection(jobs[0]));

-		}

-		

-		super.setVisible(visible);

-	}

-

-	private void verifyNotEmpty(boolean empty) {

-		String errorMessage = null;

-		if (empty)

-			errorMessage = UpdateUI.getString("InstallWizard.TargetPage.location.empty"); //$NON-NLS-1$

-		setErrorMessage(errorMessage);

-		setPageComplete(!empty);

-	}

-

-

-	private void updateStatus(Object element) {

-		if (element == null) {

-			requiredSpaceLabel.setText(""); //$NON-NLS-1$

-			availableSpaceLabel.setText(""); //$NON-NLS-1$

-			return;

-		}

-		IConfiguredSite site = (IConfiguredSite) element;

-		File file = new File(site.getSite().getURL().getFile());

-		long available = LocalSystemInfo.getFreeSpace(file);

-		long required = computeRequiredSizeFor(site);

-		if (required <= 0)

-			requiredSpaceLabel.setText(UpdateUI.getString("InstallWizard.TargetPage.unknownSize")); //$NON-NLS-1$

-		else

-			requiredSpaceLabel.setText(

-				UpdateUI.getFormattedMessage("InstallWizard.TargetPage.size", "" + required)); //$NON-NLS-1$ //$NON-NLS-2$

-

-		if (available == LocalSystemInfo.SIZE_UNKNOWN)

-			availableSpaceLabel.setText(UpdateUI.getString("InstallWizard.TargetPage.unknownSize")); //$NON-NLS-1$

-		else

-			availableSpaceLabel.setText(

-				UpdateUI.getFormattedMessage("InstallWizard.TargetPage.size", "" + available)); //$NON-NLS-1$ //$NON-NLS-2$

-	}

-

-	private long computeRequiredSizeFor(IConfiguredSite site) {

-		long totalSize = 0;

-		for (int i = 0; i < jobs.length; i++) {

-			if (site.equals(jobs[i].getTargetSite())) {

-				long jobSize = site.getSite().getInstallSizeFor(jobs[i].getFeature());

-				if (jobSize == -1)

-					return -1;

-				totalSize += jobSize;

-			}

-		}

-		return totalSize;

-	}

-

-	private void pageChanged() {

-		boolean empty = false;

-		for (int i=0; jobs!=null && i<jobs.length; i++) {

-			if (jobs[i].getTargetSite() == null) {

-				empty = true;

-				break;

-			}

-		

-			IFeature feature = jobs[i].getFeature();

-			if (feature.isPatch()) {

-				// Patches must go together with the features

-				// they are patching.

-				

-				// Check current jobs

-				IInstallFeatureOperation patchedFeatureJob = findPatchedFeature(feature);

-				if (patchedFeatureJob != null

-					&& patchedFeatureJob.getTargetSite() != null

-					&& !jobs[i].getTargetSite().equals(patchedFeatureJob.getTargetSite())) {

-					String msg = UpdateUI.getFormattedMessage(

-						"InstallWizard.TargetPage.patchError", //$NON-NLS-1$

-						new String[] {

-							feature.getLabel(),

-							patchedFeatureJob.getFeature().getLabel()});

-					setErrorMessage(msg);

-					setPageComplete(false);

-					return;

-				}

-				// Check installed features

-				IFeature patchedFeature = UpdateUtils.getPatchedFeature(feature);

-				if (patchedFeature != null  

-					&& !jobs[i].getTargetSite().equals(patchedFeature.getSite().getCurrentConfiguredSite())) {

-					String msg = UpdateUI.getFormattedMessage(

-							"InstallWizard.TargetPage.patchError2", //$NON-NLS-1$

-							new String[] {

-								feature.getLabel(),

-								patchedFeature.getLabel(),

-								patchedFeature.getSite().getCurrentConfiguredSite().getSite().getURL().getFile()});

-					setErrorMessage(msg);

-					setPageComplete(false);

-					return;

-				}

-			}

-		}

-		verifyNotEmpty(empty);

-	}

-	

-	

-	private  boolean getSiteVisibility(IConfiguredSite site, IInstallFeatureOperation job) {

-		// Do not allow installing into a non-updateable site

-		if (!site.isUpdatable())

-			return false;

-		

-		// If affinity site is known, only it should be shown

-		IConfiguredSite affinitySite = UpdateUtils.getAffinitySite(config, job.getFeature());

-		if (affinitySite != null) {

-			// Must compare referenced sites because

-			// configured sites themselves may come from 

-			// different configurations

-			return site.getSite().equals(affinitySite.getSite());

-		}

-		

-		// Co-locate updates with the old feature

-		if (job.getOldFeature() != null) {

-			IConfiguredSite oldSite = UpdateUtils.getSiteWithFeature(config, job.getOldFeature().getVersionedIdentifier().getIdentifier());

-			return (site == oldSite);

-		}

-

-		// Allow installing into any site that is updateable and there is no affinity specified

-		return true;

-	}

-	

-	private void initializeDefaultTargetSites() {

-		for (int i = 0; i < jobs.length; i++) {

-			if (jobs[i].getTargetSite() != null)

-				continue;

-			

-			IConfiguredSite affinitySite =	UpdateUtils.getAffinitySite(config, jobs[i].getFeature());

-			if (affinitySite != null) {

-				jobs[i].setTargetSite(affinitySite);

-				continue;

-			}

-

-			IConfiguredSite defaultSite = UpdateUtils.getDefaultTargetSite(config, jobs[i], false);

-			if (defaultSite != null) {

-				jobs[i].setTargetSite(defaultSite);

-				continue;

-			}

-

-			jobs[i].setTargetSite(getFirstTargetSite(jobs[i]));

-

-		}

-	}

-	

-

-	private IConfiguredSite getFirstTargetSite(IInstallFeatureOperation job) {

-		IConfiguredSite[] sites = config.getConfiguredSites();

-		for (int i = 0; i < sites.length; i++) {

-			IConfiguredSite csite = sites[i];

-			if (getSiteVisibility(csite, job)) 

-				return csite;

-		}

-		return null;

-	}

-	

-	public IInstallFeatureOperation findPatchedFeature(IFeature patch) {

-		for (int i=0; i<jobs.length; i++) {

-			IFeature target = jobs[i].getFeature();

-			if (!target.equals(patch) && UpdateUtils.isPatch(target, patch))

-				return jobs[i];

-		}

-		return null;

-	}

-  

-    

-    void removeAddedSites() {

-        if (added != null) {

-            while (!added.isEmpty()) {

-                Iterator it = added.iterator(); 

-                if (it.hasNext())

-                    config.removeConfiguredSite((IConfiguredSite) it.next());

-            }

-        }           

-    }

-    

-    /* (non-Javadoc)

-     * @see org.eclipse.jface.wizard.IWizardPage#isPageComplete()

-     */

-    public boolean isPageComplete() {

-        // check if all jobs have a target site set

-        for (int i = 0; jobs != null && i < jobs.length; i++) {

-            if (jobs[i].getTargetSite() == null)

-                return false;

-        }

-        return super.isPageComplete();

-    }

-

-    /**

-     * @param job

-     */

-    private void setTargetLocation(IInstallFeatureOperation job) {

-        if (job != null && job.getTargetSite() != null) {

-            installLocation.setText(new File(job.getTargetSite().getSite().getURL().getFile()).toString());

-            updateStatus(job.getTargetSite());

-        }

-    }

-}

diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetSiteDialog.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetSiteDialog.java
deleted file mode 100644
index ae09293..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetSiteDialog.java
+++ /dev/null
@@ -1,281 +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 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.update.internal.ui.wizards;
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.help.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.parts.*;
-import org.eclipse.update.operations.*;
-
-public class TargetSiteDialog extends Dialog {
-	private TableViewer siteViewer;
-	private IInstallConfiguration config;
-    private Label installLocation;
-	private Button addButton;
-	private Button deleteButton;
-	private IInstallConfigurationChangedListener listener;
-    private IConfiguredSite targetSite;
-    private IInstallFeatureOperation job;
-    
-    class SitesContentProvider
-		extends DefaultContentProvider
-		implements IStructuredContentProvider {
-
-		public Object[] getElements(Object parent) {
-			return config.getConfiguredSites();
-		}
-	}
-	
-	class SitesLabelProvider
-	extends LabelProvider
-	implements ITableLabelProvider {
-		
-		public Image getColumnImage(Object obj, int col) {
-			UpdateLabelProvider provider = UpdateUI.getDefault().getLabelProvider();
-			return provider.getLocalSiteImage((IConfiguredSite) obj);
-		}
-	
-		public String getColumnText(Object obj, int col) {
-			if (col == 0) {
-				ISite site = ((IConfiguredSite) obj).getSite();
-				return new File(site.getURL().getFile()).toString();
-			}
-			return null;
-		}
-	}
-
-
-	/**
-	 * Constructor for ReviewPage2
-	 */
-	public TargetSiteDialog(Shell parentShell, IInstallConfiguration config, IInstallFeatureOperation job, IInstallConfigurationChangedListener listener) {
-        super(parentShell);
-		this.config = config;
-		UpdateUI.getDefault().getLabelProvider().connect(this);
-		this.job = job;
-        this.listener = listener;
-        config.addInstallConfigurationChangedListener(listener);
-	}
-
-	public boolean close() {
-		UpdateUI.getDefault().getLabelProvider().disconnect(this);
-		config.removeInstallConfigurationChangedListener(listener);
-		return super.close();
-	}
-
-    public Control createDialogArea(Composite parent) {
-    	Composite client = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = layout.marginHeight = 10;
-		client.setLayout(layout);
-		client.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Composite leftPanel = new Composite(client, SWT.NULL);
-		GridLayout centerLayout = new GridLayout();
-		centerLayout.numColumns = 1;
-		centerLayout.marginWidth = centerLayout.marginHeight = 0;
-		leftPanel.setLayout(centerLayout);
-		leftPanel.setLayoutData(new GridData(GridData.FILL_BOTH));
-        
-		Label label = new Label(leftPanel, SWT.NULL);
-		label.setText(UpdateUI.getString("InstallWizard.TargetPage.siteLabel")); //$NON-NLS-1$
-		createSiteViewer(leftPanel);
-
-		Composite rightPanel = new Composite(client, SWT.NULL);
-		GridLayout rightLayout = new GridLayout();
-		rightLayout.numColumns = 1;
-		rightLayout.marginWidth = rightLayout.marginHeight = 0;
-		rightPanel.setLayout(rightLayout);
-		rightPanel.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-
-		new Label(rightPanel, SWT.NULL);
-		Composite buttonContainer = new Composite(rightPanel, SWT.NULL);
-		GridLayout blayout = new GridLayout();
-		blayout.marginWidth = blayout.marginHeight = 0;
-		buttonContainer.setLayout(blayout);
-		buttonContainer.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-		
-		addButton = new Button(buttonContainer, SWT.PUSH);
-		addButton.setText(UpdateUI.getString("InstallWizard.TargetPage.new")); //$NON-NLS-1$
-		addButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addTargetLocation();
-			}
-		});
-
-		addButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		SWTUtil.setButtonDimensionHint(addButton);
-		
-		deleteButton = new Button(buttonContainer, SWT.PUSH);
-		deleteButton.setText(UpdateUI.getString("InstallWizard.TargetPage.delete")); //$NON-NLS-1$
-		deleteButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				try {
-					removeSelection();
-				}
-				catch (CoreException ex) {
-					UpdateUI.logException(ex);
-				}
-			}
-		});
-		deleteButton.setEnabled(false);
-		deleteButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		SWTUtil.setButtonDimensionHint(deleteButton);		
-
-		WorkbenchHelp.setHelp(client, "org.eclipse.update.ui.MultiTargetPage2"); //$NON-NLS-1$
-		Dialog.applyDialogFont(parent);
-        
-        siteViewer.setInput(job);
-        IConfiguredSite affinitySite = UpdateUtils.getDefaultTargetSite(config, job, true);
-        if (job.getTargetSite() != null) 
-          siteViewer.setSelection(new StructuredSelection(job.getTargetSite()));
-        addButton.setEnabled(affinitySite == null);
-        
-        return client;
-	}
-
-	private void createSiteViewer(Composite parent) {
-		siteViewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = 200;
-		siteViewer.getTable().setLayoutData(gd);
-		siteViewer.setContentProvider(new SitesContentProvider());
-		siteViewer.setLabelProvider(new SitesLabelProvider());
-		siteViewer.addFilter(new ViewerFilter() {
-			public boolean select(Viewer v, Object parent, Object obj) {
-				IInstallFeatureOperation job = (IInstallFeatureOperation) siteViewer.getInput();
-				return getSiteVisibility((IConfiguredSite) obj, job);
-			}
-		});
-		siteViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				IStructuredSelection ssel = (IStructuredSelection) event.getSelection();
-				selectTargetSite(ssel);
-				updateDeleteButton(ssel);
-			}
-		});
-	}
-	
-    protected void okPressed() {
-        super.okPressed();
-    }
-    
-	private void updateDeleteButton(IStructuredSelection selection) {
-		boolean enable = TargetPage.added != null && !TargetPage.added.isEmpty();
-		if (enable) {
-			for (Iterator iter = selection.iterator(); iter.hasNext();) {
-				if (!TargetPage.added.contains(iter.next())) {
-					enable = false;
-					break;
-				}
-			}
-		}
-		deleteButton.setEnabled(enable);
-	}
-
-
-	private void selectTargetSite(IStructuredSelection selection) {
-		IConfiguredSite site = (IConfiguredSite) selection.getFirstElement();
-		if (site != null)
-			job.setTargetSite(site);
-	}
-
-	private void addTargetLocation() {
-		DirectoryDialog dd = new DirectoryDialog(getShell());
-		dd.setMessage(UpdateUI.getString("InstallWizard.TargetPage.location.message")); //$NON-NLS-1$
-		String path = dd.open();
-		if (path != null) {
-			addConfiguredSite(getShell(), config, new File(path));
-		}
-	}
-	
-	private void removeSelection() throws CoreException {
-		IStructuredSelection selection = (IStructuredSelection) siteViewer.getSelection();
-		for (Iterator iter = selection.iterator(); iter.hasNext();) {
-			IConfiguredSite targetSite = (IConfiguredSite) iter.next();
-			config.removeConfiguredSite(targetSite);
-
-            if (TargetPage.added != null)
-                TargetPage.added.remove(targetSite);
-            siteViewer.remove(targetSite);
-		}
-
-//        siteViewer.getControl().setFocus();
-	}
-
-	private IConfiguredSite addConfiguredSite(
-		Shell shell,
-		IInstallConfiguration config,
-		File file) {
-		try {
-			IConfiguredSite csite = config.createConfiguredSite(file);
-			IStatus status = csite.verifyUpdatableStatus();
-			if (status.isOK())
-				config.addConfiguredSite(csite);
-			else 
-				throw new CoreException(status);
-			
-            if (TargetPage.added == null)
-                TargetPage.added = new HashSet();
-            TargetPage.added.add(csite);
-            
-            siteViewer.add(csite);         
-            siteViewer.setSelection(new StructuredSelection(csite));
-            siteViewer.getControl().setFocus();
-            
-			return csite;
-		} catch (CoreException e) {
-			String title = UpdateUI.getString("InstallWizard.TargetPage.location.error.title"); //$NON-NLS-1$
-			ErrorDialog.openError(shell, title, null, e.getStatus());
-			UpdateUI.logException(e,false);
-			return null;
-		}
-	}
-	
-	private  boolean getSiteVisibility(IConfiguredSite site, IInstallFeatureOperation job) {
-		// Do not allow installing into a non-updateable site
-		if (!site.isUpdatable())
-			return false;
-		
-		// If affinity site is known, only it should be shown
-		IConfiguredSite affinitySite = UpdateUtils.getAffinitySite(config, job.getFeature());
-		if (affinitySite != null) {
-			// Must compare referenced sites because
-			// configured sites themselves may come from 
-			// different configurations
-			return site.getSite().equals(affinitySite.getSite());
-		}
-		
-		// Co-locate updates with the old feature
-		if (job.getOldFeature() != null) {
-			IConfiguredSite oldSite = UpdateUtils.getSiteWithFeature(config, job.getOldFeature().getVersionedIdentifier().getIdentifier());
-			return (site == oldSite);
-		}
-
-		// Allow installing into any site that is updateable and there is no affinity specified
-		return true;
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/UIProblemHandler.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/UIProblemHandler.java
deleted file mode 100644
index 0375691..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/UIProblemHandler.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.wizards;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.internal.ui.*;
-
-/**
- *
- */
-public class UIProblemHandler implements IProblemHandler {
-
-	/*
-	 * @see IProblemHandler#reportProblem(String)
-	 */
-	public boolean reportProblem(String problemText) {
-		String title = UpdateUI.getString("Revert.ProblemDialog.title"); //$NON-NLS-1$
-		return MessageDialog.openQuestion(UpdateUI.getActiveWorkbenchShell(), title, problemText);
-	}
-}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/ui/UpdateManagerUI.java b/update/org.eclipse.update.ui/src/org/eclipse/update/ui/UpdateManagerUI.java
deleted file mode 100644
index c87ce28..0000000
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/ui/UpdateManagerUI.java
+++ /dev/null
@@ -1,55 +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 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.update.ui;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.window.*;
-import org.eclipse.jface.wizard.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.wizards.*;
-import org.eclipse.update.search.*;
-
-/**
- * Entry point into update manager UI.
- * Clients can use this class to launch the configuration manager window or the install wizard.
- * @since 3.0
- */
-public class UpdateManagerUI {
-
-	/**
-	 * Opens the configuration manager window. This is used to manage a current installation 
-	 * configuration: browser sites, enable/disable features, etc.
-	 * @param shell the parent shell to use
-	 */
-	public static void openConfigurationManager(Shell shell) {
-
-		ApplicationWindow appWindow = new ConfigurationManagerWindow(shell);
-		appWindow.create();
-		appWindow.open();
-	}
-	
-	/**
-	 * Opens the install wizard dialog. This wizard is used to find and install updates to existing
-	 * features, or to find and install new features.
-	 * @param shell the dialog parent shell
-	 */
-	public static void openInstaller(Shell shell) {
-		if (InstallWizard.isRunning()) {
-			MessageDialog.openInformation(shell, UpdateUI.getString("InstallWizard.isRunningTitle"), UpdateUI.getString("InstallWizard.isRunningInfo"));
-			return;
-		}
-		InstallWizard wizard = new InstallWizard((UpdateSearchRequest) null);
-		WizardDialog dialog = new ResizableInstallWizardDialog(shell, wizard, UpdateUI.getString("InstallWizardAction.title")); //$NON-NLS-1$
-		dialog.create();
-		dialog.open();
-	}
-}
diff --git a/update/org.eclipse.update.ui/src_webapp/org/eclipse/update/internal/ui/servlets/InstallServlet.java b/update/org.eclipse.update.ui/src_webapp/org/eclipse/update/internal/ui/servlets/InstallServlet.java
deleted file mode 100644
index 8ad7032..0000000
--- a/update/org.eclipse.update.ui/src_webapp/org/eclipse/update/internal/ui/servlets/InstallServlet.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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.update.internal.ui.servlets;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
-
-import org.eclipse.jface.wizard.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.internal.search.*;
-import org.eclipse.update.internal.ui.*;
-import org.eclipse.update.internal.ui.parts.*;
-import org.eclipse.update.internal.ui.wizards.*;
-import org.eclipse.update.operations.*;
-import org.eclipse.update.search.*;
-
-/**
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class InstallServlet extends HttpServlet {
-	private ServletConfig servletConfig;
-	public static final String SERVLET_NAME = "/InstallServlet"; //$NON-NLS-1$
-
-	public void init(ServletConfig config) throws ServletException {
-		this.servletConfig = config;
-	}
-
-	public void destroy() {
-	}
-
-	public ServletConfig getServletConfig() {
-		return servletConfig;
-	}
-
-	public String getServletInfo() {
-		return "Eclipse Install servlet"; //$NON-NLS-1$
-	}
-
-	public void service(
-		HttpServletRequest servletRequest,
-		HttpServletResponse servletResponse)
-		throws ServletException, IOException {
-		PrintWriter writer =
-			ServletsUtil.createResponsePrologue(servletResponse);
-		execute(writer, servletRequest);
-		ServletsUtil.createResponseEpilogue(
-			servletRequest,
-			servletResponse,
-			writer);
-	}
-
-	/**
-	 * Method execute.
-	 * @param servletRequest
-	 */
-	private void execute(
-		PrintWriter writer,
-		HttpServletRequest servletRequest) {
-		String serverURL = servletRequest.getParameter("server"); //$NON-NLS-1$
-		String license = servletRequest.getParameter("license"); //$NON-NLS-1$
-		boolean needLicensePage = true;
-		if (license != null && license.equalsIgnoreCase("false")) //$NON-NLS-1$
-			needLicensePage = false;
-
-		String[] versionedIds = servletRequest.getParameterValues("feature"); //$NON-NLS-1$
-
-		if (serverURL == null) {
-			createPageError(writer, UpdateUI.getString("InstallServlet.unknownServerURL")); //$NON-NLS-1$
-			return;
-		}
-		if (versionedIds == null) {
-			createPageError(writer, UpdateUI.getString("InstallServlet.noFeatures")); //$NON-NLS-1$
-			return;
-		}
-		if (OperationsManager.isInProgress()) {
-			ServletsUtil.createError(writer, UpdateUI.getString("InstallServlet.inProgress"), null); //$NON-NLS-1$
-			return;
-		}
-//		if (DetailsForm.isInProgress()) {
-//			ServletsUtil.createError(writer, UpdateUI.getString("InstallServlet.inProgress"), null);
-//			return;
-//		}
-		try {
-			URL url = new URL(serverURL);
-			VersionedIdentifier[] vids =
-				computeVersionedIdentifiers(versionedIds);
-			boolean success =
-				executeInstall(writer, url, vids, needLicensePage);
-			if (success)
-				ServletsUtil.createInfo(writer);
-		} catch (MalformedURLException e) {
-			createPageError(writer, UpdateUI.getFormattedMessage("InstallServlet.incorrectURLFormat", //$NON-NLS-1$
-			serverURL.toString()));
-		}
-	}
-
-	private void createPageError(PrintWriter writer, String problem) {
-		ServletsUtil.createError(writer, problem, UpdateUI.getString("InstallServlet.contactWebmaster")); //$NON-NLS-1$
-	}
-
-	private VersionedIdentifier[] computeVersionedIdentifiers(String[] array) {
-		ArrayList result = new ArrayList();
-		for (int i = 0; i < array.length; i++) {
-			String id_version = array[i];
-			int sep = id_version.lastIndexOf('_');
-			if (sep == -1)
-				continue;
-			String id = id_version.substring(0, sep);
-			String version = id_version.substring(sep + 1);
-			VersionedIdentifier vid = new VersionedIdentifier(id, version);
-			result.add(vid);
-		}
-		return (VersionedIdentifier[]) result.toArray(
-			new VersionedIdentifier[result.size()]);
-	}
-
-	private boolean executeInstall(
-		final PrintWriter writer,
-		final URL siteURL,
-		final VersionedIdentifier[] vids,
-		final boolean needLicensePage) {
-
-		Display display = SWTUtil.getStandardDisplay();
-		final boolean[] result = new boolean[] { false };
-
-		display.syncExec(new Runnable() {
-			public void run() {
-				final Shell shell = UpdateUI.getActiveWorkbenchShell();
-				BusyIndicator.showWhile(shell.getDisplay(), new Runnable() {
-					public void run() {
-						result[0] =
-							doExecuteInstall(
-								writer,
-								shell,
-								siteURL,
-								vids,
-								needLicensePage);
-					}
-				});
-			}
-		});
-		return result[0];
-	}
-
-	private boolean doExecuteInstall(
-		PrintWriter writer,
-		final Shell shell,
-		URL siteURL,
-		VersionedIdentifier[] vids,
-		final boolean needLicensePage) {
-			
-		shell.forceActive();
-
-		UpdateSearchScope searchScope = new UpdateSearchScope();
-		searchScope.addSearchSite(
-			siteURL.toString(),
-			siteURL,
-			new String[0]);
-
-		final UpdateSearchRequest searchRequest =
-			new UpdateSearchRequest(
-				new SiteSearchCategory(),
-				searchScope);
-	
-		searchRequest.addFilter(new VersionedIdentifiersFilter(vids));
-		searchRequest.addFilter(new EnvironmentFilter());
-		searchRequest.addFilter(new BackLevelFilter());
-
-		shell.getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				openWizard(shell, searchRequest);
-			}
-		});	
-		return true;
-	}
-
-
-	private void openWizard(Shell shell, UpdateSearchRequest searchRequest) {
-		InstallWizard wizard = new InstallWizard(searchRequest);
-		WizardDialog dialog = new ResizableWizardDialog(shell, wizard);
-		dialog.create();
-//		dialog.getShell().setText(
-//			UpdateUI.getString(KEY_OPTIONAL_INSTALL_TITLE));
-		dialog.getShell().setSize(600, 500);
-		dialog.open();
-		if (wizard.isSuccessfulInstall())
-			UpdateUI.requestRestart();
-	}
-}
diff --git a/update/org.eclipse.update.ui/src_webapp/org/eclipse/update/internal/ui/servlets/ServletsUtil.java b/update/org.eclipse.update.ui/src_webapp/org/eclipse/update/internal/ui/servlets/ServletsUtil.java
deleted file mode 100644
index 8ec2fd5..0000000
--- a/update/org.eclipse.update.ui/src_webapp/org/eclipse/update/internal/ui/servlets/ServletsUtil.java
+++ /dev/null
@@ -1,151 +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 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.update.internal.ui.servlets;
-
-import java.io.*;
-import java.util.*;
-
-import javax.servlet.http.*;
-
-import org.eclipse.core.boot.*;
-import org.eclipse.update.internal.ui.*;
-
-/**
- */
-public class ServletsUtil {
-
-	public static String getServerInfo(HttpServletRequest servletRequest) {
-		String host = servletRequest.getServerName();
-		int port = servletRequest.getServerPort();
-		String context = servletRequest.getContextPath();
-
-		Enumeration atts = servletRequest.getParameterNames();
-		StringBuffer buff = new StringBuffer();
-		for (; atts.hasMoreElements();) {
-			String attName = (String) atts.nextElement();
-			Object attValue = servletRequest.getParameter(attName);
-			buff.append(attName + "=" + "\"" + attValue + "\"+"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		return host + ":" + port + context + "?" + buff.toString(); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public static PrintWriter createResponsePrologue(HttpServletResponse response)
-		throws IOException {
-		response.setContentType("text/html"); //$NON-NLS-1$
-		PrintWriter writer = response.getWriter();
-		String title = UpdateUI.getString("ServletsUtil.responseTitle"); //$NON-NLS-1$
-		writer.println(
-			"" //$NON-NLS-1$
-				+ "<!DOCTYPE HTML PUBLIC \" -//W3C//DTD HTML 4.0 Transitional//EN\">" //$NON-NLS-1$
-				+ "\n <HTML> \n <HEAD> \n" //$NON-NLS-1$
-				+ "<TITLE>"+title+"</TITLE>\n" //$NON-NLS-1$ //$NON-NLS-2$
-				+ "<META http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" //$NON-NLS-1$
-				+ "</HEAD>"); //$NON-NLS-1$
-		writer.println(" <BODY topmargin=\"0\" leftmargin=\"0\">"); //$NON-NLS-1$
-		return writer;
-	}
-
-	public static void createError(
-		PrintWriter writer,
-		String problem,
-		String resolution) {
-		createHeading(writer, UpdateUI.getString("ServletsUtil.updateFailed")); //$NON-NLS-1$
-		startTextArea(writer);
-		createParagraph(writer, UpdateUI.getString("ServletsUtil.problem"), problem); //$NON-NLS-1$
-		if (resolution != null) {
-			writer.println("<p>"); //$NON-NLS-1$
-			createParagraph(writer, UpdateUI.getString("ServletsUtil.whatToDo"), resolution); //$NON-NLS-1$
-		}
-		endTextArea(writer);
-	}
-
-	public static void createParagraph(
-		PrintWriter writer,
-		String heading,
-		String text) {
-		writer.print("<b><font color=\"#5B78AC\">"); //$NON-NLS-1$
-		writer.print(heading);
-		writer.println("</b></font><br>"); //$NON-NLS-1$
-		writer.println(text);
-	}
-
-	public static void createInfo(PrintWriter writer) {
-		createHeading(writer, UpdateUI.getString("ServletsUtil.updateInProgress")); //$NON-NLS-1$
-		startTextArea(writer);
-		writer.println(
-			UpdateUI.getString("ServletsUtil.updateInitiated")); //$NON-NLS-1$
-		endTextArea(writer);
-	}
-	
-	private static boolean isWin32() {
-		return BootLoader.getWS().equals("win32"); //$NON-NLS-1$
-	}
-
-	private static void startTextArea(PrintWriter writer) {
-		writer.println(
-			"<table border=\"0\" width=\"100%\" cellspacing=\"5\" cellpadding=\"5\">"); //$NON-NLS-1$
-		writer.println("<tr>"); //$NON-NLS-1$
-		writer.print("<td width=\"100%\">"); //$NON-NLS-1$
-		if (isWin32())
-			writer.println("<font face=\"MS Sans Serif\" size=\"1\">"); //$NON-NLS-1$
-		else
-			writer.println(""); //$NON-NLS-1$
-	}
-	private static void endTextArea(PrintWriter writer) {
-		if (isWin32())
-			writer.println("</font>"); //$NON-NLS-1$
-		writer.println("</td>"); //$NON-NLS-1$
-		writer.println("</tr>"); //$NON-NLS-1$
-		writer.println("</table>"); //$NON-NLS-1$
-	}
-
-	public static void createHeading(PrintWriter writer, String title) {
-		writer.println(
-			"<table cols=1 width=\"588\" cellspacing=\"0\" cellpadding=\"0\">"); //$NON-NLS-1$
-		writer.println("<tr>"); //$NON-NLS-1$
-		writer.println(
-			"<td background=\"images/form_banner.jpg\" width=\"580\" height=\"30\">"); //$NON-NLS-1$
-		writer.print("<p><b><font size=\"3\" face=\"Tahoma\">&nbsp;"); //$NON-NLS-1$
-		writer.print(title);
-		writer.println("</font></b></p>"); //$NON-NLS-1$
-		writer.println("</td>"); //$NON-NLS-1$
-		writer.println("</tr>"); //$NON-NLS-1$
-
-		writer.println("<tr>"); //$NON-NLS-1$
-		writer.println(
-			"<td width=\"580\"><img border=\"0\" src=\"images/form_underline.jpg\" width=\"600\" height=\"15\"></td>"); //$NON-NLS-1$
-		writer.println("</td>"); //$NON-NLS-1$
-		writer.println("</tr>"); //$NON-NLS-1$
-		writer.println("</table>"); //$NON-NLS-1$
-	}
-
-	public static void createResponseEpilogue(
-		HttpServletRequest request,
-		HttpServletResponse response,
-		PrintWriter writer) {
-
-		String backURL = getOriginatingURL(request);
-		if (backURL != null) {
-			startTextArea(writer);
-			String backText = UpdateUI.getString("ServletsUtil.back"); //$NON-NLS-1$
-			writer.print("<img border=\"0\" src=\"images/backward_nav.gif\"/><a href=\""); //$NON-NLS-1$
-			writer.print(getOriginatingURL(request));
-			writer.print("\">"+backText+"</a>"); //$NON-NLS-1$ //$NON-NLS-2$
-			endTextArea(writer);
-		}
-		writer.println(" </BODY> "); //$NON-NLS-1$
-		writer.println("</HTML>"); //$NON-NLS-1$
-		writer.close();
-	}
-	private static String getOriginatingURL(HttpServletRequest request) {
-		return request.getParameter("backURL"); //$NON-NLS-1$
-	}
-}
diff --git a/update/org.eclipse.update.ui/webapp/WEB-INF/.cvsignore b/update/org.eclipse.update.ui/webapp/WEB-INF/.cvsignore
deleted file mode 100644
index 90b07e9..0000000
--- a/update/org.eclipse.update.ui/webapp/WEB-INF/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-classes
diff --git a/update/org.eclipse.update.ui/webapp/WEB-INF/lib/.cvsignore b/update/org.eclipse.update.ui/webapp/WEB-INF/lib/.cvsignore
deleted file mode 100644
index 64292a3..0000000
--- a/update/org.eclipse.update.ui/webapp/WEB-INF/lib/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-update-servlets.jar
diff --git a/update/org.eclipse.update.ui/webapp/WEB-INF/web.xml b/update/org.eclipse.update.ui/webapp/WEB-INF/web.xml
deleted file mode 100644
index ff84774..0000000
--- a/update/org.eclipse.update.ui/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-
-<!DOCTYPE web-app
-    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
-    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
-
-<web-app>
-
-    <servlet>
-        <servlet-name>install</servlet-name>
-        <servlet-class>org.eclipse.update.internal.ui.servlets.InstallServlet</servlet-class>
-    </servlet>
-    
-	<servlet-mapping>
-		<servlet-name>install</servlet-name>
-		<url-pattern>/install</url-pattern>
-	</servlet-mapping>
-
-</web-app>
\ No newline at end of file
diff --git a/update/org.eclipse.update.ui/webapp/images/backward_nav.gif b/update/org.eclipse.update.ui/webapp/images/backward_nav.gif
deleted file mode 100644
index 85188b7..0000000
--- a/update/org.eclipse.update.ui/webapp/images/backward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/webapp/images/form_banner.jpg b/update/org.eclipse.update.ui/webapp/images/form_banner.jpg
deleted file mode 100644
index 253e2d2..0000000
--- a/update/org.eclipse.update.ui/webapp/images/form_banner.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update.ui/webapp/images/form_underline.jpg b/update/org.eclipse.update.ui/webapp/images/form_underline.jpg
deleted file mode 100644
index 0ff3d0b..0000000
--- a/update/org.eclipse.update.ui/webapp/images/form_underline.jpg
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update/.classpath b/update/org.eclipse.update/.classpath
deleted file mode 100644
index f12531d..0000000
--- a/update/org.eclipse.update/.classpath
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="var"
-        path="ECLIPSE_HOME/plugins/org.eclipse.core.boot/boot.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.core.boot/bootsrc.zip"/>
-    <classpathentry kind="var"
-        path="ECLIPSE_HOME/plugins/org.eclipse.core.runtime/runtime.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.core.runtime/runtimesrc.zip"/>
-    <classpathentry kind="var"
-        path="ECLIPSE_HOME/plugins/org.eclipse.swt/swt.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.swt/swtsrc.zip"/>
-    <classpathentry kind="var"
-        path="ECLIPSE_HOME/plugins/org.eclipse.ui/workbench.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.ui/workbenchsrc.zip"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.webdav/webdav.jar"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/update/org.eclipse.update/.cvsignore b/update/org.eclipse.update/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/update/org.eclipse.update/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/update/org.eclipse.update/.project b/update/org.eclipse.update/.project
deleted file mode 100644
index 7560f76..0000000
--- a/update/org.eclipse.update/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.update</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/update/org.eclipse.update/.vcm_meta b/update/org.eclipse.update/.vcm_meta
deleted file mode 100644
index 7655f8d..0000000
--- a/update/org.eclipse.update/.vcm_meta
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project-description>

-	<comment></comment>

-	<nature id="org.eclipse.jdt.core.javanature"/>

-	<builder name="org.eclipse.jdt.core.javabuilder">

-	</builder>

-</project-description>